跳到正文

AI Know · 技术研究笔记

工具调用协议是 Agent 的接口契约,决定扩展性

权限边界要把最小授权做进运行时,而非仅靠提示词;评测与运行时日志必须同源,否则无法归因;长尾输入和延迟是生产环境最大隐性成本

听书 00:00 / --:--
00

三分钟读懂

先看结论,再决定是否深读

  1. 工具调用协议是 Agent 的接口契约,决定扩展性
  2. 权限边界要把最小授权做进运行时,而非仅靠提示词
  3. 评测与运行时日志必须同源,否则无法归因
  4. 长尾输入和延迟是生产环境最大隐性成本
  5. 工程化核心:协议稳定、权限可审计、日志可回放
01 / DEEP DIVE

核心原理

Agent 从演示走向生产,最难的不是模型能力,而是工具链的工程化。一个能调用搜索、数据库、代码执行、内部 API 的 Agent,本质上是一个分布式系统:它有输入解析、有远程调用、有权限控制、有失败重试、有可观测性要求。区别在于,它的“调用方”是概率模型,而不是确定性程序。

这就带来三个结构性难题。第一,工具调用协议如何设计,才能让模型稳定地产出可解析、可校验的调用意图。第二,权限边界如何划定,才能既让 Agent 完成任务,又不让它越权访问敏感资源。第三,运行时日志与评测如何打通,才能在出错时回答“是模型选错了工具,还是工具本身失败了”。

02 / DETAILS

技术细节

输入侧:工具描述与参数约束。 模型看到的不是函数签名,而是自然语言描述加 JSON Schema。描述质量直接影响工具选择准确率。实践中,工具名要动词化且唯一,参数要区分必填与可选,枚举值要穷举,避免模型自由发挥。输入侧还要做一层预校验:类型检查、范围检查、敏感字段拦截。很多越权调用不是模型恶意,而是参数没约束好,模型填了一个不该填的 ID。

推理/执行侧:调用编排与权限校验。 模型输出工具调用意图后,执行层要做三件事:解析并校验参数、按调用者身份做权限判定、执行并捕获异常。权限判定不能只放在提示词里,必须落在工具网关。常见做法是给每个工具标注所需 scope,Agent 运行时携带用户身份,网关按 scope 放行。执行侧还要处理超时、重试和幂等,否则一次网络抖动可能导致重复下单或重复写库。

输出/评测侧:结果回灌与日志埋点。 工具返回结果要截断、脱敏、结构化后再回灌给模型,否则长结果会挤爆上下文。评测侧要记录完整轨迹:模型输入、工具选择、参数、权限判定结果、工具输出、最终回答。没有这条轨迹,评测只能看最终答案对错,无法定位是选错工具、传错参数,还是工具本身超时。运行时日志应支持按 trace ID 回放,这是 Agent 调试的刚需。

03 / IMPLEMENTATION

工程实践

建议一:把工具注册做成声明式配置。 用统一 schema 描述工具名、参数、权限 scope、超时和重试策略,代码从配置生成,避免工具定义散落在提示词和业务代码里。工具变更走评审,防止描述漂移导致模型选择率下降。

建议二:在工具网关做权限与幂等,而不是在 Agent 内部。 网关统一做身份透传、scope 校验、限流、幂等键和审计日志。Agent 只负责决策,不负责安全。这样即使模型被诱导,越权调用也会在网关被拦截并记录。

建议三:评测集与运行时日志共用同一套 trace 格式。 离线评测用回放轨迹,线上问题用同一格式归因。每周从线上日志采样失败案例,补充进评测集,形成“线上发现问题、离线复现、修复后回归”的闭环。

05 / FAILURE MODES

风险边界

风险 表现 缓解
成本 工具调用次数失控、长上下文回灌 设调用预算、结果截断、缓存
幻觉 模型编造不存在的工具或参数 Schema 校验、工具白名单
越权调用 参数注入、身份伪造 网关 scope 校验、审计日志
长尾输入 异常格式导致解析失败 预校验、降级策略、人工兜底
延迟 串行工具调用拖慢响应 并行调用、超时熔断、异步任务

Agent 工具链的工程化,本质是把概率模型的输出,接入确定性系统的约束。协议稳、权限严、日志全,三件事做到位,Agent 才敢上生产。

完整信源

事实从哪里来