60 秒回答模板

Agent 系统中的 skill,我会理解成一组可被 Agent 稳定调用的能力模块,不只是一个 prompt。一个 skill 至少要定义适用意图、输入输出 schema、执行步骤、可调用工具、权限边界、失败处理和评测用例。设计时先从高频任务抽象能力边界,比如搜索资料、生成报告、操作系统、调用业务 API;再把自然语言触发条件、必要参数、工具调用顺序和结果格式写清楚。实现上可以把 skill 注册到 Agent 的能力表中,调度器根据用户意图和上下文选择 skill,skill 内部再调用具体工具或子流程。工程重点是可控:参数要校验,工具要隔离,高风险动作要确认,执行过程要可观测,版本变更要有回归测试。这样 skill 才能复用、评估和迭代,而不是堆一堆临时 prompt。

考点 skill registry、planner
难度 真实面经题
回答目标 设计 Agent skill 能力封装

深入解析

01

skill 是能力包,不是单句提示词

好的 skill 把一类任务封装成可复用能力,包括什么时候触发、需要什么输入、允许调用哪些工具、如何组织步骤、输出什么结构、失败时怎么办。它的目标是降低 Agent 每次从零规划的不确定性。

02

边界来自高频任务和稳定流程

不是所有动作都应该做成 skill。适合封装的是高频、流程相对稳定、可评估、需要多个工具配合的任务。边界太大,skill 会变成黑盒大杂烩;边界太小,调度成本高且复用价值低。

03

契约要写清输入输出和触发条件

每个 skill 应有名称、描述、适用场景、不适用场景、输入参数 schema、输出格式、依赖工具和权限要求。触发描述要帮助 Agent 选择正确 skill;输入输出 schema 要帮助系统做校验和后续编排。

04

实现上要接入调度和工具层

Agent 可以先做意图识别或规划,选择一个或多个 skill。skill 内部可以包含 prompt 模板、步骤计划、工具调用和结果整理。具体工具执行仍要经过统一工具层,保证权限、超时、重试、审计和沙箱策略一致。

05

权限和安全是 skill 设计的一部分

skill 可能读文件、查数据、发请求或执行写操作,所以必须声明权限范围。高风险 skill 要有确认、沙箱、最小权限和敏感信息过滤。不能因为 skill 是内部能力,就绕过工具层安全控制。

06

用测试和版本保证可迭代

skill 应配套测试样例和评估指标,比如触发准确率、任务成功率、工具调用成功率、输出格式合规率和失败恢复率。版本升级时要跑回归,记录变更点和兼容性,避免一个 skill 改动影响整套 Agent。

易错点

  • 把 skill 说成 prompt 模板,忽略工具、权限、执行和评估。
  • 边界设计过大,把多个不相关任务塞进一个 skill。
  • 没有输入输出 schema,导致 Agent 难以稳定选择和编排。
  • 绕过统一工具层,缺少权限、超时、审计和沙箱控制。
  • 没有测试样例和版本管理,改一个 skill 可能影响大量任务。
  • 混淆 skill 和 tool,无法说明能力封装与具体执行接口的关系。

面试官追问

skill 和 tool 有什么区别?

tool 是具体可执行接口,比如查库或调用 API;skill 是围绕任务目标组织的一套能力流程,可能包含 prompt、步骤和多个 tool。

什么任务适合做成 skill?

高频、流程稳定、可复用、可评估、通常需要多步或多工具协作的任务适合封装成 skill。一次性开放问题不一定适合。

如何避免 skill 触发错误?

要写清适用和不适用场景,设计输入 schema,结合意图识别、置信度阈值和回退机制,并用真实样例评估触发准确率。

skill 执行失败怎么办?

按失败类型处理:参数缺失就追问,工具超时就降级或重试,权限不足就提示授权,高风险失败要停止并保留审计。

skill 如何做版本管理?

每次修改 prompt、工具依赖、输入输出 schema 或权限都应记录版本,跑回归样例,必要时灰度发布并保留回滚能力。