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 的能力不是来自模型本身,而是来自模型能安全、稳定地调用哪些工具。

下一篇看工具是怎么注册和调用的。