Agent开发系列(四):Skill篇

Agent开发系列(四):Skill篇
symwssyAgent开发系列 · 第 4/4 篇
当 Agent 开始承担真实任务时,只依靠 Prompt 很难保证稳定性。Skill 的作用,是把任务知识、操作步骤、工具和验收标准封装为一个可复用的能力单元。
一、Tool、Skill、Agent 与 Workflow
| 概念 | 主要职责 |
|---|---|
| Tool | 提供原子能力,例如搜索、查询和写文件 |
| Skill | 封装完成某类任务所需的知识、步骤、工具和校验 |
| Agent | 根据目标选择并组合 Skill,处理动态情况 |
| Workflow | 用确定性规则控制必须固定的步骤 |
一个查询天气的 API 是 Tool;根据用户场景选择数据源、生成查询、格式化结果并检查异常的流程,更适合封装为 Skill。
二、Skill 应该包含什么
1. 明确的元数据
至少应该包含名称、用途、适用条件、版本和不适用场景。描述越清晰,Agent 越容易正确选择。
2. 执行说明
说明不是把知识堆得越多越好,而是提供完成任务所需的判断依据、步骤和边界。
3. 确定性脚本
计算、格式转换、文件操作等不需要模型决策的部分,应尽量交给确定性代码。
4. 资源与模板
示例、报告模板、检查清单和参考文件可以成为 Skill 的一部分,避免每次临时重建。
5. 验证规则
Skill 需要定义怎样才算完成,例如输出格式、必填字段、测试命令和人工确认条件。
三、一个目录示例
1 | blog-publisher/ |
SKILL.md 负责说明何时使用、如何执行和何时停止;脚本负责确定性操作;资源文件提供稳定上下文。
四、Skill 的调用过程
1. 发现
Agent 根据名称、描述和当前任务判断是否需要加载 Skill。
2. 选择
如果多个 Skill 相似,需要有明确边界,避免 Agent 选择错误。
3. 执行
执行时只加载完成任务需要的说明和资源,减少上下文占用。
4. 验证
运行完成后检查输出、文件状态或测试结果,而不是只相信 Agent 自述。
5. 回退
工具失败、权限不足或验证不通过时,应停止、报告或交给人工处理。
五、安全与治理
Skill 越接近真实工具,越需要最小权限:
- 文件操作限制在明确目录
- 网络访问与命令执行单独授权
- 删除、发布和支付等操作要求人工确认
- 不在 Skill 中硬编码密钥
- 对输入、输出和外部内容做边界检查
Skill 描述本身也可能被恶意内容污染,因此加载来源和版本必须可信。
六、测试一个 Skill
测试至少应覆盖:
- 正常输入能否完成目标。
- 缺少字段时是否拒绝执行。
- 工具失败时是否能正确报告。
- 是否出现越权文件或网络访问。
- 输出是否满足格式和验收标准。
- 重复执行是否具有幂等性。
七、系列收束
四个部分分别解决不同问题:
- 框架提供运行结构和控制点
- 记忆提供跨步骤与跨会话连续性
- 评测提供可度量性和回归能力
- Skill 提供可复用、可测试和可治理的任务能力
一个成熟的 Agent 系统,不是这四个模块的简单堆叠,而是让它们形成闭环:框架执行任务,记忆保留状态,评测发现问题,Skill 沉淀稳定能力。





