逐项对比
Skill 并不天然是一个托管服务或黑箱 agent。它是一个可移植的指令包,用于教会兼容的运行时如何用已文档化的能力完成某项任务。
什么时候用 Agent Skill
以下情况优先用 Skill:- 用户要的是一个结果,而不是某个具体 endpoint。
- 该工作流会在多个项目或 agent 客户端中重复使用。
- 工具选择和调用顺序需要遵循一致的方法。
- 证据规则、安全检查和输出结构应该随工作流一起传递。
- 已有 Skill 覆盖该任务,并且可以在使用前审阅。
什么时候用直接 API
以下情况优先用直接 API:- 应用必须选择精确的 endpoint 和参数。
- 请求时机、缓存、分页、重试或降级行为是产品特有的。
- 数据必须归一化成内部 schema。
- 工作流依赖专有业务规则或内部状态。
- 每一次外部调用都必须在应用代码和可观测性中显式体现。
在合适的时候结合使用
两种方式是互补的。Skill 可以定义流程,直接 API 提供其中的具体操作。 例如,一个研究类 Skill 可能会指示 agent:- 澄清研究问题。
- 调用特定的搜索或数据 API。
- 保留来源 URL 和获取时间。
- 用模型做综合。
- 标注缺乏支撑的结论和缺失的证据。
读取、写入和支付的边界
无论用哪种接口,都仍然需要对操作分类:- 读取: 获取信息,不改变外部系统。
- 写入: 创建、发送、发布、更新、删除、关注,或以其他方式改变外部状态。
- 支付: 产生计费的运行时采购,或发起一笔资金交易。
- 确认已连接的身份和授权。
- 需要确认时,展示操作目标和预期效果。
- 使用范围最小的权限和操作。
- 避免无上限或含义不清的重试。
- 核验外部执行结果和用量记录。
决策清单
通过这些问题来选择接口:- 这个任务是可复用的结果,还是产品特定的集成?
- 谁应该掌控 endpoint 的调用顺序和任务状态?
- 应用是否需要精确的参数和重试控制?
- 是否有多个 agent 客户端会复用同一套指令?
- 其中是否包含写入或支付操作?
- 这个工作流将如何测试、审查和更新?