跳转到内容

输入关键词开始搜索

    LLM 工具调用(Tool Use)

    概念更新 2026-08-05置信度 high#概念#智能体#工具#基础

    让模型选择并生成结构化调用,由受控运行时执行外部函数,再把结果作为观察返回模型的机制。

    LLM 本身只能根据输入生成输出。Tool Use 为模型提供一组外部能力:搜索网页、查询数据库、读取文件、运行代码、发送消息或调用另一个 Agent。模型不直接执行这些动作,而是生成符合 schema 的调用请求,运行时负责校验、授权、执行和返回结果。

    一个工具通常包含:

    • 稳定且可区分的名称。
    • 描述“什么时候用、什么时候不要用”的说明。
    • 参数类型、必填项、枚举和约束。
    • 明确的返回结构与错误语义。
    • 权限、幂等性、可逆性和成本信息。

    Function Calling 常指单个 API 的结构化调用;Tool Use 是更广的能力与运行时设计。

    工具让模型突破参数权重和对话上下文:

    • 获取最新或私有数据。
    • 执行精确计算、检索和代码验证。
    • 与文件、数据库、浏览器和业务系统交互。
    • 将复杂能力封装为可测试模块。
    • 让环境结果成为 Agent 的 ground truth。

    但工具也是 Agent 风险的主要入口。读错文件可能泄露隐私,写错数据库可能破坏状态,发送或支付动作可能产生不可逆后果。

    运行时把可用工具及 schema 提供给模型。MCP 等协议可以标准化发现和传输,但协议不能替代工具自身的权限和质量。

    模型判断是否需要工具、选择哪个工具,并生成参数。相似名称、重叠能力和模糊描述会显著增加误选。

    运行时必须验证类型、范围、路径、目标对象和授权。不要把模型生成的字符串直接拼入 shell、SQL 或网络请求。

    可按风险分层:

    • 低风险:只读、可缓存、无敏感数据。
    • 中风险:修改可回滚状态、有限账号权限。
    • 高风险:发送、删除、支付、发布、权限变更或跨组织动作。

    高风险工具应要求预览、确认、审批或完全禁用。

    工具返回结构化成功结果或错误。结果应包含必要来源、状态和下一步信息;不能只返回模糊的“失败了”。

    记录工具版本、调用参数的安全摘要、耗时、结果状态、重试和权限决定。评估至少覆盖工具选择准确率和参数正确率。

    早期 MRKL 把 LLM 当作路由器连接符号与神经模块,Toolformer 等工作探索模型何时插入 API 调用。随后 function calling 让调用结构化,Agent 框架提供 registry、runner 和 tracing,MCP 等协议进一步标准化工具发现与通信。

    演进重点已经从“能不能调用函数”转向“接口是否容易被模型正确使用、权限是否最小、错误是否可恢复、行为是否可评估”。

    “工具描述只是给人看的文档”

    Section titled ““工具描述只是给人看的文档””

    工具描述本身就是 Agent-computer interface。模型是否会选对工具,很大程度取决于名称、参数和边界说明。

    Schema 只保证形状,不保证目标合法、权限足够或动作可逆。仍需业务授权和输入验证。

    MCP 解决互操作,不为第三方服务器背书。接入前仍需审计来源、权限、网络、数据和执行范围。

    过多相似工具会增加选择负担。工具集应按任务最小化,并通过清晰分类或路由降低混淆。

    固定函数调用仍可能只是 workflow。Agent 还需要围绕目标根据 observation 动态控制后续步骤。

    过短错误无法支持恢复。应提供错误类型、可重试性和安全的修复提示,同时避免泄露敏感内部信息。

    • ReAct(推理与行动):Tool Use 提供 Action 接口;ReAct 规定如何用 Observation 驱动下一轮。
    • 与 API:API 是服务接口,工具是面向模型重新设计过的可调用能力。
    • 与 plugin:Plugin 是封装和分发形式,Tool 是运行时能力。
    • 与 MCP:MCP 是连接模型应用与工具/资源的协议;Tool Use 是模型选择和执行外部能力的通用机制。
    • 与 RAG:RAG 是常见数据工具或 workflow;Tool Use 还包括动作和委派。