Tool 与 Skill 有什么区别?
未标记
考查重点:可调用接口与任务方法的分工。Tool通常是可调用的函数或服务接口;Skill把某类任务的方法、指令和资源封装成可复用流程,可在执行时组合多个Tool
本题目录
参考答案
核心回答
Tool 是 Agent 可以调用的执行接口,说明“能做什么动作、接收什么参数、返回什么结果”;Skill 是一类任务的可复用方法包,说明“什么时候做、按什么步骤和标准做”,可以包含指令、参考资料、模板和脚本。
例如 read_file 和 run_tests 是工具;“代码审查”技能规定先理解改动,再检查相关调用链和测试,最后输出有证据的问题。Agent 根据技能说明调用这些工具。一个技能可以用多个工具,也可以只指导文本判断;它并不按工具数量定义。
两者的接口和运行方式
| 比较项 | Tool | Skill |
|---|---|---|
| 对外表达 | 名称、描述、参数及结果契约 | 触发描述、任务指令、可选资源 |
| 一次使用 | 调用接口并取得执行结果 | 加载说明后,由 Agent 继续完成任务 |
| 主要复用对象 | 可执行能力 | 方法、领域知识和交付标准 |
| 典型问题 | 参数非法、执行失败、结果未知 | 未触发、误触发、步骤或规则不适用 |
工具不一定只做一个非常细小的动作,也能封装复杂业务流程;技能也不一定包含脚本。区分依据是它向 Agent 提供执行接口,还是提供完成任务的方法,不能只看文件大小或流程长短。
放到代码审查任务里
Agent 先发现代码审查技能,读取 SKILL.md 中的检查顺序。需要理解代码时调用读文件工具;需要验证时调用已有测试入口;再把工具观察和代码位置组织成问题说明。
其中脚本仍需要宿主的命令执行或其他工具启动。脚本放在技能目录中,不表示模型会自动执行,更不表示它拥有额外权限。文件读取工具、脚本依赖和执行范围都要由宿主提供。
AgentScope 的技能集成示例特别要求 Agent 具备文本读取或命令工具;Deep Agents 则明确区分技能摘要发现、读取完整说明和按需访问资源。由此可见,技能加载和业务动作是相连但不同的步骤。
怎样决定该新增哪一个
缺少“查询订单”的实际能力,应实现工具及其权限、错误处理;已有订单工具,但经常漏查退款或套错统计口径,可以沉淀相应技能。需要跨客户端统一发现和调用工具时,再考虑通过 MCP 暴露工具。Skill 本身不要求依赖 MCP,本地函数或命令工具同样能配合使用。
追问
Skill 本身算不算一个工具?
有些宿主提供“加载技能”的工具入口,因此选择技能可能表现为一次工具调用;加载得到的是方法与上下文,后续业务执行仍靠相应工具。入口的实现形式不抹掉两者的职责差异。
把一个复杂 Tool 拆成 Skill 加多个 Tool 一定更好吗?
不一定。业务路径固定、要求原子性或严格校验时,封装在工具内部更合适;需要模型根据中间观察选择后续动作时,可以让技能提供方法,再由 Agent 组合工具。拆分会增加调用成本和错误处理责任。
对应教程
- 第 27 章:Skills 技能与 AI 编程工具实践:回看目录结构、渐进式加载、触发测试及代码审查示例。
参考资料
- 国内:JavaGuide:Agent Skills 是什么?和 Prompt、MCP 到底差在哪?:采用技能不直接提供工具能力的划分,解释方法包与可调用接口的差异。
- 国内:Datawhale:如何写出好的 Skill:采用可选脚本与参考资料的分工,说明技能不以脚本或工具数量定义。
- 国内:AgentScope:Agent Skill:采用技能集成需要读取或命令工具的要求,说明加载说明和执行动作是两个步骤。
- 国内:小林:MCP 和 Agent Skill 的区别是什么?:借鉴代码审查场景,将技能流程和读文件、运行检查的工具串成具体例子。
- 国外:Anthropic:Equipping agents for the real world with Agent Skills:采用技能可以携带确定性代码的机制,说明脚本仍须在可执行环境中运行。
- 国外:LangChain:Deep Agents Skills:核对技能发现、加载与资源使用的阶段,以及技能可以跨 Agent 复用的方法属性。



