技能系统
wescraft 通过技能(Skill)为 AI 注入特定领域的工作方法和最佳实践。
什么是技能
技能是结构化的 Markdown 文件(SKILL.md),告诉 AI 在特定场景下应该如何工作。它不是代码插件,而是一套可复用的工作指令。
示例:一个"会议纪要整理"技能可能包含:
- 从录音转写文本中提取关键议题
- 按"决议 / 待办 / 风险"三类分组
- 自动关联到项目数据表中的待办事项
技能来源
预装技能
wescraft 自带一组信息工作场景的技能,安装在 Cell 的 skills/ 目录中:
- 内容整理与总结
- 文档格式规范化
- 知识提取与归档
- 数据分析报告生成
自定义技能
通过 .wesskill 包安装自定义技能:
my-skill.wesskill (tar.gz)
├── SKILL.md # 技能定义(必需)
├── manifest.json # 可选:依赖声明
├── scripts/ # 可选:辅助脚本
├── templates/ # 可选:输出模板
└── references/ # 可选:参考资料
SKILL.md 结构
---
name: meeting-notes
description: 整理会议纪要。
version: 1.0.0
author: your-name
---
# 会议纪要整理技能
## When to Use
当用户提供会议录音转写文本或会议笔记时使用。
## Procedure
1. 识别参与者和时间
2. 提取关键议题
3. 分类:决议 / 待办 / 风险
4. 生成结构化纪要
技能管理
安装
通过 Cell Handle 安装:
cell.Skills().InstallPackage(ctx, tarGzBytes)
查看已安装
skills, _ := cell.Skills().List(ctx)
for _, s := range skills {
fmt.Printf("%s v%s (%s)\n", s.Name, s.Version, s.Channel)
}
启用 / 禁用
cell.Skills().SetEnabled(ctx, "meeting-notes", false)
卸载
cell.Skills().Uninstall(ctx, "meeting-notes")
技能渠道
| 渠道 | 来源 | 可编辑 |
|---|---|---|
engine | 引擎 Tier E 内置 | ❌ 只读 |
product | wescraft 预装 | 按版本更新 |
user | 用户自行安装 | ✅ 可编辑 |
技能与 Agent 绑定
可以指定某些技能只对特定 Agent 生效:
AgentConfig.Skills = nil:加载所有技能AgentConfig.Skills = []string{"meeting-notes", "report-gen"}:只加载指定技能AgentConfig.Skills = []string{}:不加载任何技能(空列表)
双层白名单:Cell 级 DisabledEngineSkills × Agent 级 Skills allowlist,AND 生效。
技能在对话中的使用
在 Sidebar Chat 中,AI 会根据用户的意图自动加载匹配的技能。你也可以通过斜杠命令显式触发:
/skills install path/to/skill.wesskill
/skills list
/skills reload