AI 替你跑任务,每一步干得怎么样,得靠工具返回的内容来说话——这份返回就叫观察结果。它像柜台办完业务递回的回执,会被拼回上下文,供模型决定下一步怎么走。没有它,智能体等于闭着眼睛开车。
工具吐回来的东西长什么样
观察结果的形态五花八门:查天气返回一段天气数据,读文件返回文件内容,发邮件返回发送状态。它们共同的特点是结构化、带状态——成功还是失败、拿到了什么、缺了什么,通常一眼可辨。秘塔AI搜索返回的检索摘要、腾讯元宝插件吐出的联网内容,进入对话前都属于观察结果。
观察结果进入上下文后,模型会基于它做两件事:判断这一步是否达成目的,以及决定下一步动作。所以它既是上一轮的终点,也是下一轮的起点,整条执行链就靠这一进一出接着。
观察结果还有一个隐性作用:它是模型自我修正的依据。参数填错了,报错信息会指出错在哪;理解偏了,返回内容与预期的落差会让它调整方向。整条执行链之所以能越走越准,靠的就是每一步都有真实反馈兜着。反过来,如果反馈被截断、被摘要得只剩皮毛,模型的自我修正就成了盲修,越修越偏的情况并不少见。看一个平台处理返回值的能力,比看它的对话流畅度更能判断成色——下次遇到它反复在同一个地方出错,先别急着换模型,检查一下返回值是不是被压得太狠,很多「笨」其实是回执太薄。
生活类比:把回条贴回便签板
把 Agent 想成一块便签板,每次工具调用后,回条都会被贴回板子上,和之前的便签排在一起。模型每次思考,看的是整块板子,不只是最新那张回条。回条贴得越清晰,板子越好读。
这个比方有讲不圆的地方:便签板空间无限,上下文空间有限。观察结果太长,会把板子挤满,重要的早先信息被挤出去;太短又可能丢掉关键细节。所以很多系统会对返回内容做截断或摘要,只留有用部分。
| 现象 | 后果 | 处理 |
|---|---|---|
| 返回被截断 | 模型没看到报错,反复在同一个地方出错 | 检查返回值是不是被压得太狠 |
| 回执只剩皮毛 | 自我修正变成盲修,越修越偏 | 保留关键数值与错误码 |
| 观察结果太长 | 早先的重要信息被挤出去 | 截断或摘要,只留有用部分 |
好的观察结果长什么样
从使用者的角度看,一份好回执通常具备这些特征:
- 状态明确:成功、失败还是部分完成,不含糊。
- 信息聚焦:只带关键数据,不把整个数据库倒给你。
- 出错时说得清原因:是参数问题还是服务端问题,方便下一轮纠正。
自查三问:
- 这步工具返回的内容,进上下文前有没有被压缩或截断?
- 返回结果里的错误码,模型能看懂吗?
- 连续几轮之后,最早的观察结果还在上下文里吗?
三问问下来,执行链哪里断的基本就有数了。
返回值和填进去的参数是配套的,参数怎么填见工具调用的参数;工具本身怎么被描述,见函数的 schema;拿到结果后什么时候算完,要看终止条件;结果始终不理想时的强制止损,可读最大步数限制;返回内容如何在多轮之间留存,则涉及记忆分层。
送你一个自查动作:每次 Agent 跑偏,先翻它上一轮的返回内容——回执不清,步步皆歪。观察结果越干净,后面的每一步就越稳。
聊聊观察结果的常见疑问
- 工具返回一大段内容,都会被模型看到吗?:不一定。很多平台会做截断或摘要,超出部分不进上下文,这也是「模型没看到报错」的常见原因。
- 观察结果和聊天回复是一回事吗?:不是。它是内部流转的数据,只在上下文里供模型参考;要等模型组织语言,才会变成给用户看的回复。
- 为什么同样的调用有时返回很慢?:返回速度取决于工具本身,模型只负责等待和读取。慢通常出在工具一侧,比如外部服务繁忙。


