AI Agent这个词去年火得一塌糊涂,各种"自主智能体"的demo满天飞。但真正把Agent产品化的人都知道,坑太多了——模型瞎编工具调用、任务做着做着就跑偏了、多次交互后上下文崩坏……每一个都是能让你半夜惊醒的噩梦。

智谱在Agent这块,走得算比较稳的。他们的AutoGLM平台,我断断续续关注了大半年,有些设计和取舍挺值得聊聊。

Agent的核心挑战是什么?是模型既要理解复杂任务,又要在执行过程中保持一致性。说起来简单,做起来就是另一回事了。

智谱解决这个问题的方式,是在模型层面做了专门的Agent对齐训练。普通的对话模型,它追求的是"这一轮回答得好不好"。但在Agent场景里,模型需要追求的是"整个任务有没有完成"。这两个目标之间差别巨大。

我观察到一个很有意思的现象。用普通模型做Agent,你让它"帮我搜集关于人工智能的最新新闻,整理成报告",它可能第一轮搜得很好,第二轮开始搜偏了,到第三轮可能已经开始搜"人工智能的电影"了。但智谱的模型在任务追踪上明显更稳定,它会维护一个内部的任务状态,时刻记得"我是要写报告,不是随便浏览"。

这背后是他们在训练时引入了大量的多步任务数据,并且设计了特殊的奖励机制——不是奖励回答得好,而是奖励任务完成得好。

另一个让我印象深刻的是工具调用的稳定性。Agent的执行能力很大程度取决于模型能不能正确地选择和使用工具。我见过太多Agent在调用API时传错参数、用了不存在的函数、或者完全忘记了自己有哪些工具可用。

智谱在这方面做了两件事。一是定义了一套标准化的工具描述格式,让模型更容易理解每个工具的能力边界。二是在训练时混合了大量的工具调用样本,让模型学会在什么情况下该用什么工具,以及工具调用失败后该怎么处理。

第二点尤其重要。真实场景中,工具调用失败是常态——API超时、返回格式不对、权限不够……什么情况都有。如果模型遇到失败就卡住,那Agent就完全没法用。智谱的模型在错误恢复上表现得不错,会尝试换一种方式调用,或者用其他工具替代,实在不行还会向用户求助。

当然,Agent这块还没有完美的方案。智谱也面临一些所有Agent框架都有的问题。比如上下文长度的问题——复杂任务执行几十步后,前面的信息很容易丢失。他们用了一些记忆压缩和摘要的技术来缓解,但还没根本解决。另外,模型的幻觉问题在Agent场景里会被放大,因为一旦编造了一个工具调用的结果,后续的步骤就全乱套了。

整体来说,智谱在Agent上的策略是把问题拆开,一个模块一个模块地优化,而不是搞一个花里胡哨的框架然后指望模型自己搞定一切。这个务实的态度,在一个人人都想"一步到位"的领域里,还挺难得的。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐