跳到主要内容

6 篇博文 含有标签「agent-design」

查看所有标签

无法说出"等一下"的智能体

· 阅读需 10 分钟
Tian Pan
Software Engineer

随便挑一个过去两年里搭建的生产级智能体,清点它在某一轮里实际能做的事。清单很短:发起一次工具调用、给出最终答案,或向用户提一个澄清问题。这就是整个动作词汇表。注意一下缺了什么。没有动词表达"我想在决定之前多花点时间";没有动词表达"我足够不确定,所以希望暂停并重新考虑,而不立刻承诺";没有动词表达"我想在采取任何行动之前先在这件事上多停留一会儿"。智能体在字面意义上无法说出"等一下"。语法里压根没有这个词。

这并不是表面打磨的问题,而是结构性的问题。一旦智能体的全部输出都是动作,任何内部状态都必须经由一个动作来表达。犹豫变成多余的工具调用,怀疑变成自信的承诺。只设计了动作动词的团队,实际上发布了一个唯一的语言就是"做事"的智能体——然后又奇怪它怎么从来不像在思考。

你的智能体没有营业时间的概念

· 阅读需 10 分钟
Tian Pan
Software Engineer

一家中型 SaaS 公司的支持智能体正确处理了一起计费纠纷。它读取了工单,检查了客户账户,发现了重复收费,执行了退款,并发送了一封礼貌的确认邮件。每一步都是正确的。唯一的问题是时间戳:客户所在时区的凌晨 3:14。客户在睡梦中醒来看到退款通知,以为自己的信用卡被盗刷了,在公司有人醒来解释之前,就向银行提交了欺诈申诉。

在那个工作流中,没有任何环节是传统意义上的 Bug。智能体没有产生幻觉,没有选错账户,也没有算错退款金额。它只是完全不知道凌晨 3 点是一个告知别人资金变动的糟糕时间。这个模型读过的人类睡眠习惯相关文本比世界上任何人都多,但它的行为表现仍然像是在对待一个随时待命的服务端点,只要你调用它,它就是清醒的。

当你的智能体意见相左:并行AI系统的冲突解决模式

· 阅读需 11 分钟
Tian Pan
Software Engineer

这是多智能体系统设计在架构评审中很少被提及的一个令人不安的事实:当你让两个智能体处理同一任务时,它们在20%到40%的情况下不会就答案达成一致,具体比例取决于任务类型。大多数系统的应对方式是静默地选择其中一个答案。日志中只显示最终决策,中间的分歧消失无踪。一切看起来运转正常,直到下游出现故障——而你要花费三到五倍的时间来调试,因为你搞不清楚哪个智能体出错了,甚至根本不知道它们曾经存在过分歧。

智能体之间的分歧不是一个可以稍后处理的边缘情况。随着并行智能体拓扑逐渐成为标准架构模式,冲突解决从脚注升级为一级可靠性纪律。

“完成!”不是返回码:为什么智能体完成需要结构化信号

· 阅读需 11 分钟
Tian Pan
Software Engineer

Agent 以“全部搞定——如果需要任何修改请告诉我!”结束它的回合,而你的编排器必须决定是将工单标记为已解决、启动下一次交接,还是重试。这句话不是一个返回码。它只是一个训练出来的、为了在聊天结束时听起来很贴心的礼貌语,而它下游的每一行自动化代码都继承了这种模糊性。那些将此视为解析问题的团队会编写捕获 \b(done|complete|finished)\b 的正则并收工。而那些在生产环境中运行 Agent 的团队最终会明白,完成是一个事件,而不是一种情绪。

失败模式通常是双峰且枯燥的。要么是 Agent 在未完成时宣布完成——过早终止——而编排器愉快地在一个半成品产物上推进工作流。要么是 Agent 确实完成了,但表述方式与检测器不匹配(“我已经落地了更改,尽管边界情况的测试仍然不稳定”),编排器于是发起重试,导致重复工作、产生重复的副作用,有时甚至会推翻成功的第一次尝试。这两种模式都会静默地退化。在有人阅读 Trace 并注意到 Agent 说了“我想这些就是全部了”而计费系统将其视为一次提交(commit)之前,任何仪表盘都不会显示异常。

解决方法不是更智能的解析。而是给 Agent 一个结构化的终止方式——一个具有枚举状态、原因代码和你的流水线可以路由的句柄(handle)的“完成工具(done-tool)”——并将编排器改为等待该事件,而不是监听聊天流。

意图鸿沟:当你的 LLM 完美回答了错误的问题

· 阅读需 11 分钟
Tian Pan
Software Engineer

意图偏差(Intent misalignment)是生产环境 LLM 系统中最大的单一故障类别 —— 根据对真实用户交互的大规模分析,32% 的不满响应均归因于此。这既不是幻觉,也不是拒绝回答,更不是格式错误。它是指模型正确地回答了问题,却完全偏离了用户的实际需求。

这就是意图鸿沟(intent gap):即用户“所说”与“所想”之间的距离。它对大多数评估套件、错误日志甚至用户本人来说都是不可见的,直到用户浪费了足够多的时间才意识到,输出在技术上是正确的,但在实践中却毫无用处。

例程与交接:每个可靠多智能体系统背后的两个基本原语

· 阅读需 9 分钟
Tian Pan
Software Engineer

大多数多智能体系统的失败,不是因为模型出了问题,而是因为"管道"存在漏洞。智能体在任务执行中途丢失上下文,将任务移交给错误的专家,或者因为不知道如何退出而陷入无限循环。根本原因几乎总是相同的:系统设计只关注每个智能体能做什么,却没有清晰定义工作如何在它们之间流转

两个原语可以解决大部分问题:例程(routines)和交接(handoffs)。它们看似简单,但把它们做对,是一个能演示的系统和一个能上线的系统之间的关键区别。