Technical Guide
07. Tools 原理:Agent 为什么需要工具
理解 Tool 的边界:模型负责判断和组织,Tool 负责执行动作;好工具要有清晰输入、输出和失败处理。
Tool 是 Agent 的手
模型会推理,但不能自己访问网页、读文件、执行命令或调用外部 API。
Tool 解决的就是这个问题:把一个确定动作暴露给 Agent。
Tool 和 prompt 不一样
prompt 是告诉模型怎么想。
Tool 是让模型能做一件事。
例如:
搜索网页
读取文件
展示图片
调用 MCP 工具
创建子 Agent
这些都不是靠 prompt 能可靠完成的。
好 Tool 的标准
一个好工具要清楚三件事:
输入是什么
输出是什么
失败时怎么表现
如果输入很随意,Agent 很容易乱传参数。
如果输出太长,模型会被噪声淹没。
如果失败信息不清楚,后续排错会很痛苦。
DeerFlow 里的工具位置
相关目录:
backend/packages/harness/deerflow/tools/
backend/packages/harness/deerflow/tools/builtins/
你能看到 clarification、task、tool_search、view_image、present_file、setup_agent、invoke_acp_agent 等内置工具。
这些工具覆盖了 Agent 执行中的基础动作:澄清、分派、查找工具、查看图片、展示文件、设置 Agent 等。
Tool 和 Skill 的区别
这两个很容易混。
Tool:一次具体动作
Skill:一套工作方法和约束
比如“抓取网页正文”是 Tool。
“写一篇有证据链的研究报告”更像 Skill。
这一篇你要记住
Agent 的能力不是来自模型本身,而是来自模型能安全、稳定地调用哪些工具。
下一篇看工具是怎么注册和调用的。