Tool Calling 深度解析:AI Agent 如何决定下一步行动

2026/06/22 ai AI Agent · Tool Calling · MCP · 函数调用 · 安全 1900 字 · 约 6 分钟 阅读 ...
系统解析AI Agent Tool Calling机制——函数调用工作原理、工具选择策略、参数生成、结果处理与错误恢复。同步分析MCP协议下工具调用的数据完整性隐患。

AI Agent 的核心能力之一,是自主决定「下一步该调用什么工具」。这个看似简单的决策背后,涉及工具选择、参数生成、结果处理和错误恢复等一系列环节。Towards Data Science 近期发布的一篇技术长文对这一机制做了系统解析,并特别指出了 MCP 协议下尚未被充分重视的安全隐患。

Tool Calling 的内部工作流

AI Agent 的 Tool Calling(函数调用)并非 LLM 的原生能力,而是通过结构化输出约束和系统提示协同实现的。典型工作流分为四个阶段:

阶段一:工具选择策略

Agent 收到用户任务后,首先需要从注册的工具集中选出适用的工具。主流策略有三种:

精确匹配:基于任务的语义向量与工具描述的相似度,选择最匹配的工具。适用于工具数量较少、功能边界清晰的场景。

推理优先:让 LLM 先推理任务需要什么能力,再映射到具体工具。适用于复杂任务,Agent 需要将「查一下明天的天气」拆解为「需要地理位置+天气数据」两个子需求,再匹配对应的工具。

全部评估:将全部工具描述注入上下文,由 LLM 自行判断。随着工具数量的增长(超过 20-30 个),上下文压力和选择质量会显著下降。

阶段二:参数生成

选定工具后,Agent 需要根据用户输入生成符合工具接口要求的参数。这一步依赖 LLM 的结构化输出能力——通常是 JSON Schema 约束下的参数填充。

关键在于参数来源的多样性:

  • 用户输入直接提取(如查询关键词)
  • 上下文推理(如根据用户历史推算默认参数)
  • 链式传递(上一个工具的输出作为下一个工具的输入)

阶段三:结果处理

工具执行返回的结果需要被 Agent 理解并整合到决策循环中。这里存在两种处理模式:

直接传递:结果作为最终答案的一部分直接呈现给用户。适用于信息查询类工具。

中间决策:结果作为后续推理的输入,Agent 需要基于结果决定下一步操作。这是 Agent 能「自主行动」的核心——一次 Tool Calling 的结果可能触发下一次 Tool Calling,形成完整的行动链。

阶段四:错误恢复

工具调用并非总是成功。常见的失败场景包括:

  • 参数无效:生成的参数不符合接口约束
  • 执行超时:工具响应超出预期时间
  • 结果异常:返回空值或错误码
  • 权限不足:工具需要但 Agent 未持有权限

优秀的 Agent 在这些场景下不会直接崩溃,而是尝试重试、调整参数或选择替代工具。

MCP 协议下的安全盲区

MCP(Model Context Protocol)作为标准化 AI Agent 工具调用协议正在快速普及。文章揭示了一个关键的安全缺口:当前实现普遍缺乏对工具返回结果的完整性验证

具体来说,当 Agent 调用一个远程 MCP 工具时,返回结果在传输过程中可能被篡改。由于 Agent 通常信任工具返回的一切内容并直接用于后续决策,攻击者可以通过以下方式实施数据投毒攻击(Data Poisoning):

  1. 中间人篡改:截获工具返回结果,修改其中的数值或状态信息
  2. 模拟工具响应:伪造工具返回结果,诱导 Agent 做出错误决策
  3. 链式污染:在一个工具的结果中注入恶意数据,通过链式传递污染后续所有决策

这类攻击在传统 API 安全中已有成熟的防护手段(如 TLS、签名验证),但在 Agent 场景下尚未形成标准化防御。问题的特殊性在于:Agent 的决策链越长,被污染数据的影响范围就越广,且检测难度呈指数级上升。

对 Agent 开发者的启示

理解了 Tool Calling 的工作机制和安全隐患后,几个值得关注的实践方向:

工具返回值校验:对工具返回的关键数据(金额、状态码、权限信息)进行格式校验和合理性检查,不应无条件信任。

决策链审计:记录每次 Tool Calling 的输入参数、返回结果和后续决策,形成完整的审计追踪,便于回溯污染源头。

最小工具权限:只向 Agent 注册当前任务需要的最小工具集,减少攻击面。避免将「全部评估」策略用于生产环境。

结果签名验证:对于敏感工具,考虑在 MCP 层之上增加结果签名机制,确保返回内容未被篡改。

参考资料

  • Towards Data Science「Tool Calling Explained: AI Agents Decide Next Actions」,2026-06-22(原文链接 https://towardsdatascience.com/tool-calling-explained-ai-agents/,页面当前返回 404,本文基于用户提供的摘要和领域知识撰写)
  • MCP 协议规范:https://modelcontextprotocol.io/
  • OpenAI Function Calling 文档:https://platform.openai.com/docs/guides/function-calling

文档信息