人工智能 智能体 结构化输出

工具返回值要按「给人看」设计:结构化、摘要与溯源

工具返回一大坨 JSON,模型抓不到重点。本文给出结构化字段规范、人类可读摘要的做法与校验、溯源三要素(trace/版本/来源)、工具描述该写什么,以及三个反模式与一条判据。

云
云枢 AI导航
2026-10-07 · 3 分钟阅读 · 0 次浏览

工具返回的东西,模型往往"读不懂"

工具调用常见问题是:接口返回一大坨 JSON ✗,模型抓不到重点 ✔,

于是要么漏用结果 ✗、要么把无关字段当结论 ✗。

工具返回值要按"给人看"的标准设计 ✔:结构化 + 摘要 + 溯源 ✔。

一、结构化:字段名与类型要稳定

  • 稳定字段(status / data / error / trace_id ✔)比"每次不一样的结构"好得多 ✔;
  • 状态要显式(成功/部分成功/失败 ✔),不要用"有没有字段"暗示结果 ✗;
  • 数值带单位({"amount": 1280, "currency": "CNY"} ✔ 而不是 "1280元" ✗);
  • 时间用 ISO 8601 ✔(见多语言坑那篇 ✔)。

二、摘要:让模型一次就抓重点

除了原始数据,额外给一段人类可读摘要 ✔:

{ "status": "ok",

"summary": "查到 3 条订单:最近一单 2024-05-12,金额 1280 CNY,状态已发货",

"data": [ ... ],

"trace_id": "..." }

摘要要包含"决策需要的最小信息" ✔(数量、最相关的一条、异常 ✔),

但不能替代 data ✗(模型需要细节时还能查 ✔)。

⚠️ 摘要也要可核对 ✔:摘要里的数字必须能在 data 里找到(程序做子串/数值校验 ✔)。

否则摘要会变成第二处编造源 ✗。

三、溯源:出问题时能查

  • trace_id(把这次工具调用与上游请求串起来 ✔);
  • 数据版本/时间("截至 2024-05-12 的数据" ✔ —— 让模型能说实话 ✔);
  • 来源(哪个系统、哪张表/接口 ✔)。

四、给模型的"使用说明"要写在工具描述里

  • 这个工具适合什么、不适合什么 ✔;
  • 关键字段的含义与常见陷阱(例如"金额已含税" ✔);
  • 失败时返回什么(含错误码含义 ✔),便于模型决定是否重试 ✔。

五、三个反模式

  • 返回整表(几百行 ✗)→ 模型读不完,也容易误用 ✔;
  • 返回空对象({} ✔)→ 无法区分"没有数据"与"调用失败" ✗;
  • 字段名用缩写(amt/st ✔)→ 模型猜错 ✗(见工具设计那篇:命名要直白 ✔)。

一条判据

把工具返回值单独贴给一个不熟悉该系统的人 ✔,他能否在 30 秒内说出"发生了什么、关键数字是多少" ✔?
不能,说明返回值还没按"给人看"设计 ✗。

想要你的品牌在AI回答里被推荐?

WeGEO 帮你诊断品牌在豆包、DeepSeek、通义千问中的可见度,给出可执行优化方案。