AI 简明手册
Agent 与 Harness 基础 · Agent 工程工具调用的秘密

工具调用的秘密

定义

工具调用并不是模型真的执行代码或访问 API,而是模型输出一段结构化文字,如 JSON,由应用框架解析后执行相应操作,再把结果追加回上下文,让模型继续生成回答。

说明

典型流程是:先在 System Prompt 中告知模型有哪些工具及其描述;用户提出请求后,模型输出一个包含函数名和参数的结构化对象;框架解析这个对象,调用真正的函数或 API;返回结果以工具结果的形式追加到消息列表;模型根据新信息继续生成最终回答。

模型始终只是在预测文字。它可能输出类似调用函数的 JSON,但不会执行任何代码。执行发生在模型外部的应用代码和运行环境中。理解这一点有助于设计权限:模型只声明意图,真正的操作由系统完成。

这种模式使应用可以在模型不直接接触敏感操作的情况下,仍让模型参与决策和控制参数。最终是否执行、如何执行,取决于框架代码。安全性设计也应在这一层加入校验和权限控制。

边界与误区

  • 模型输出 JSON 就是执行工具了吗: 不是。模型只是生成了想要调用哪个函数、带什么参数的文本。应用代码解析这段 JSON 后才会调用真实函数。模型本身无法访问数据库、文件系统或外部 API。

  • 工具结果如何回传给模型: 框架把执行结果按约定格式追加到消息列表,通常作为工具结果或用户消息的一部分,模型看到结果后继续生成下一段文字或最终答案。这样模型才能根据真实执行情况调整输出。

  • 为什么权限校验要放在框架层而不是模型层: 因为模型只输出意图,不应直接拥有执行能力。框架可以在执行前检查用户身份、操作范围、频率限制和工具白名单,避免模型被注入攻击或误判后直接触发危险操作。