多步骤 Skill 模式
复杂任务往往需要多个步骤协作完成。设计多步骤 Skill 时:
状态传递
- 显式输出:每步要求输出结构化结果(如 JSON),下一步将其作为输入
- 共享上下文:通过 Skill 的
context或 MCP Resource 存储中间状态 - 检查点:长流程中支持从某一步恢复,避免全部重跑
步骤描述规范
- 每步有明确的输入、输出、成功条件
- 步骤间依赖关系要写清,如「步骤 2 依赖步骤 1 的 X 字段」
- 可选步骤要标注,便于模型在资源不足时跳过
示例结构
## 步骤 1:收集信息
输入:用户原始需求
输出:{ "keywords": [], "constraints": [] }
成功条件:至少提取 1 个关键词
步骤 2:执行检索
输入:步骤 1 的 keywords
输出:{ "documents": [] }
依赖:步骤 1 完成
条件分支模式
当流程需要根据中间结果选择不同路径时:
分支描述
- 在 Skill 中明确写出「若 X 则 A,否则 B」
- 使用「当…时」「如果…则」等自然语言,便于模型理解
- 为每个分支提供完整子步骤,避免模型「自由发挥」
子 Skill 编排
- 将分支逻辑封装为独立 Skill,主 Skill 负责「选择并调用」
- 通过 MCP Tool 实现分支:Tool 内部根据参数执行不同逻辑,Skill 只负责传参
循环与迭代
- 明确「重复直到满足条件」的终止条件
- 限制最大迭代次数,防止死循环
- 每轮迭代要有进度输出,便于调试与用户感知
错误处理模式
可恢复错误
- 重试:网络超时、临时失败,可自动重试并指数退避
- 降级:主路径失败时,执行简化版流程或返回部分结果
- 提示:在 Skill 中写明「若 X 失败,可尝试 Y」
不可恢复错误
- 明确告知:用清晰语言说明失败原因与影响
- 建议替代:提供用户可执行的手动步骤或替代方案
- 记录:便于后续分析与改进
边界情况
- 输入为空、格式错误时的处理
- 权限不足、资源不可用时的提示
- 超时与取消的响应方式
小结
高级 Skill 设计需要关注状态传递、条件分支和错误处理。通过显式状态、清晰的分支描述和分层错误策略,可构建健壮、可维护的复杂 Skill,提升模型执行成功率与用户体验。