如果你亲手搭建过任何基于大模型(LLM)的智能代理,无论是编程助手、网页浏览器还是研究机器人,你很可能目睹过一个令人沮丧的现象:任务跑得越久,它似乎变得越笨。刚开始时,它的表现堪称犀利,但在进行几十次工具调用后,它开始在原地兜圈子,忘记了你三轮对话前设定的约束,或者反复尝试某个早已被证明失败的动作,白白烧掉你的算力预算。
面对这种退化,人们近乎本能地想到一个解决方案:把上下文窗口搞大一点。然而,复旦大学近期发布的一篇关于“通用代理”的论文,却直言这种直觉完全走错了方向,并用一组难以忽视的数据作为支撑。
![]()
该研究的核心论断是,问题真正的症结不在于你能塞进多少上下文,而在于任一给定时刻,这些上下文中有多少内容真正与决策相关。把更多词元堆进窗口毫无益处,如果它们绝大部分都是噪声。论文具体指出了三种导致失败的机制:首先是位置偏差带来的“中间迷失”效应,即长上下文中被埋藏在中间位置的信息,远比开头或结尾的部分更难被模型准确检索。其次是主动干扰,那些无关内容并非惰性地原地不动,它们会竞相争夺并稀释模型有限的注意力资源,使其偏离真正关键的证据。最后是有效上下文的缩水现象,一个模型实际可用的上下文长度,远比其标称的窗口大小要短得多。在实践中,百万词元级别的上下文,有相当一部分在生成过程中根本无法被功能性地访问。
雪上加霜的是,大多数现有的代理框架将每项任务都视为无状态操作。那些诸如“这个工具有个怪癖,遇到边界情况会报错”或者“这位用户只想要CSV格式的输出,绝对不要JSON”之类通过试错得来的宝贵知识,在会话结束的瞬间便烟消云散。即便少数框架具备记忆功能,它们存储的也往往是未经提炼的原始日志,而非抽象的教训。这造成的局面是:每项新任务所需的词元开销不断攀升,但代理的真实能力却止步不前。
针对这一困境,复旦提出的系统构建在一个刻意收窄的工具集之上。相比某些对标产品动辄拥有数十个工具工厂,它只保留了9种原子化工具,包括文件读写与修补、代码执行、网页扫描与操作、检查点记忆、向用户询问等。其设计原则在于,每一个工具都代表一项不可再分、彼此间零重叠的能力,由此直接消除了在功能相近的工具之间进行选择的决策成本。
更值得关注的,是其提出的四层记忆分层架构。最轻量的一层是指标层,它由紧凑的指针和关键词映射构成,始终保持在加载状态,设计上追求极简,可以将其理解为一张目录,代理在决定捞取哪段完整信息时,先查阅这张目录。第二层是事实层,用于存放稳定且经过验证的知识,一项信息只有在跨任务场景下被证明可重复使用后,才会被准入此层。第三层是标准作业程序层,专门收录可复用的流程,包括工作流模板、常见失败案例及其对应的恢复策略。最底层是原始档案库,保存着完整的会话日志,仅用于事后审计,而绝不会被注入到在线执行的上下文之中。新信息在向事实层或标准作业程序层晋升时,必须遵循论文中称为“无执行”的规则,意在确保从噪声中提取信号的稳定性。
这种设计思路,从根本上将解决问题的重心,从无脑扩充上下文窗口的路径依赖,转移到了如何持续将初始交互信号蒸馏为长期决策知识的方向上。它试图让代理不再仅仅是一个运行在单次任务里的有限状态机器,而是能够在多次任务中通过积累和调用结构化经验,对抗性能随时间衰减的趋势。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.