你从未构建过的智能体反馈闭环
每天,你的智能体(Agent)都会把失败案例打包成“礼物”发还给你。一名用户点击了“踩”。另一名用户读完答案后一言不发,直接关掉了标签页。第三名用户将同一个问题改写了三次,直到智能体终于答对。每一个都是带标签的失败案例 —— 真实的输入、真实的上下文、系统失误的真实时刻 —— 由那些最希望系统运行正常的人免费提供给你。
大多数团队都会把这些信息全部丢掉。并非故意为之。点击“踩”只是增加了仪表盘上的一个计数;放弃使用表现为留存图表中的一次下滑;改写问题看起来就像普通的日常使用。没有任何东西能将信号及其产生的上下文一并捕捉,因此也就无法进行回放、分选(Triage)或转化为测试用例。你所拥有的最丰富的评估数据源正擦肩而过,而团队却还在继续手动编写合成的评估(Eval)案例。
这就是你从未构建的智能体反馈循环。它不是你忘记购买的某种工具,而是一条流水线 —— 从用户信号,到分选后的失败案例,再到新的评估案例 —— 它之所以未能建立,与技术本身关系不大。
没有 Trace 的“踩”只是数字,而非教训
从最常见的错误开始:只收集反馈,不收集上下文。
添加一个“踩”按钮很容易。它会在某处写入一行数据:timestamp, user_id, rating: -1。一周下来,你会得到一个数字 —— “满意度降至 71%”。这个数字告诉你出了问题,但它没告诉你哪里出了问题,也没提供任何可操作的建议。
相比之下,如果一个“踩”附带了完整的决策上下文:精确的用户输入、对话历史、系统提示词版本、模型版本、检索到的文档、调用的工具及其返回结果,以及用户拒绝的最终输出。那就不再是一个数字。那是一个可复现的失败案例。你可以打开它,查看发生了什么,提出假设,修复它,并且 —— 至关重要的一点 —— 将其保留为测试用例,确保同样的失败不再发生。
这两种产物之间的区别,就是反馈循环存在与否的区别。没有 Trace 的评分只是情绪。绑定到 Trace 的评分才是数据。大多数生产系统收集的是前者,却以为自己拥有后者。
修复方法是结构性的,且必须在反馈到来之前就位。每一次智能体运行都应该生成一个 Trace —— 一个记录了智能体看到的所有输入和采取的所有步骤的结构化记录。反馈信号无论何时产生,都通过 ID 关联到该 Trace。当用户点击“踩”时,你记录的不是一个观点,而是标记了一个特定的、可回放的执行过程供审查。先构建 Trace,按钮是最简单的部分。
