技能系统

wesgine 的技能(Skill)是结构化的提示词模板,告诉 Agent 如何处理特定场景。技能分为两层:引擎内置和 Cell 安装。

技能二分

层级位置说明可编辑
Tier E(引擎技能)引擎二进制 embed约 7 个核心技能❌ 只读
Tier C(Cell 技能)Cell 内 skills/ 目录应用安装或用户上传✅ 可编辑

Tier E — 引擎技能

引擎内置的核心技能,所有 Cell 默认可用:

Tier E 技能不含行业术语,只描述引擎机制。

Tier C — Cell 技能

安装到特定 Cell 的业务技能:

# 通过 API 安装技能包(tar.gz)
curl -X POST http://localhost:9091/cells/my-cell/skills \
  -H "Content-Type: application/octet-stream" \
  --data-binary @code-review.wesskill

技能包结构

.wesskill 是一个 tar.gz 包:

code-review.wesskill/
├── SKILL.md          # 必需:技能定义(名称、描述、指令)
├── manifest.json     # 可选:依赖声明
├── scripts/          # 可选:辅助脚本
├── templates/        # 可选:模板文件
├── references/       # 可选:参考资料
└── signature.sig     # 可选:ed25519 签名

SKILL.md 格式

---
name: code-review
description: 代码审查技能
version: 1.0.0
author: weisyn
---

# Code Review 技能

## 何时使用

当用户请求代码审查或 PR Review 时激活。

## 流程

1. 阅读变更的文件
2. 检查代码规范
3. 识别潜在问题
4. 给出改进建议

## 注意事项

- 不修改代码,只提建议
- 关注安全问题

技能管理 API

方法端点说明
GET/cells/{id}/skills列出已安装技能
POST/cells/{id}/skills安装技能包
PUT/cells/{id}/skills/{name}更新技能
DELETE/cells/{id}/skills/{name}卸载技能
PATCH/cells/{id}/skills/{name}/enabled启用/禁用
GET/cells/{id}/skills/{name}/export导出 .wesskill
POST/cells/{id}/skills/{name}/rollback回滚到指定版本

双层白名单

技能激活受两层控制:

  1. Cell 级 — DisabledEngineSkills 可禁用 Tier E 技能
  2. Agent 级 — AgentConfig.Skills 可限制 Agent 可用的技能列表

两层 AND 生效——Cell 级禁用的技能即使 Agent 配置允许也不会加载。

技能渠道

每个技能有一个不可变的渠道属性:

渠道含义说明
engine引擎内置随二进制分发,只读
product应用自带产品预装,三方 digest 比较更新
user用户安装用户上传,引擎不修改