文章作者、来源:学术头条
当前长程(Long-horizon)Agent 的性能从根本上受限于上下文,面临着“上下文爆炸”与“跨任务经验难以沉淀”等问题。
具体表现在,工具描述、检索记忆、原始环境反馈等在多步交互中不断累加,把决策真正需要的信息挤出有效注意力之外;同时,每一次任务的成功路径在会话结束后被遗忘,相似任务到来时仍需要从零探索。最终导致,Token 消耗随任务数线性增长,能力却停滞不前。
为应对这些挑战,A3 实验室(Advantage AI Agent Lab)团队提出了GenericAgent(GA),一个围绕“上下文信息密度最大化”单一原则而构建的通用自进化 LLM Agent 系统。
论文链接:https://arxiv.org/pdf/2604.17091
据论文描述,在任务完成率、工具使用效率、记忆有效性、自进化能力和网页浏览等维度上,GA 的性能在超过主流 Agent 系统的同时,所消耗 token 数和交互轮数也更少,且能够随时间持续进化。
例如,在 Lifelong AgentBench 上,GA 用 222k 输入 token(仅为 Claude Code 的 27.7%、OpenClaw 的 15.5%)便拿到了 100% 完成率;在 9 轮重复执行的 GitHub 研究任务上,token 消耗下降了 89.6%,调用次数也从 32 次收敛到了 5 次。
在任务完成率、工具使用效率、记忆有效性、自进化能力和网页浏览等维度上,GA 的性能在超过主流 Agent 系统的同时,所消耗 token 数和交互轮数也更少,且能够随时间持续进化。
他们发现,主要的结构性张力出现在前两者之间:包含更多潜在相关信息会提升完整性、削弱简洁性。即便上下文窗口无限,这一张力也不会消失。
据论文描述,研究团队把上下文质量拆解为完整性(Completeness)、简洁性(Conciseness)和作为约束的自然性(Naturalness)。
其中,完整性要求当前决策所需信息显式存在于上下文中,避免模型依赖隐式假设或幻觉推断;简洁性要求剔除无关与冗余内容,让注意力集中在决策关键信号上;自然性则约束表示形式,过度压缩或人造编码会让模型更难解析。
围绕这一原则,他们基于“极简原子工具集”、“分层按需记忆”、“自进化”和“上下文截断与压缩”构建了 GA。
图|GA 整体架构。GA 遵循统一的 Agent 循环,基于当前任务与相关记忆构建执行上下文,生成输出或工具调用,并通过结构化反馈更新系统。
GA 的 9 个原子工具分布在 5 个能力域:file_read、file_patch、file_write 用于文件读写与精确编辑;code_run 在受控运行时中执行 Python 或 Bash;web_scan、web_execute_js 负责网页检视与浏览器操作;update_working_checkpoint、start_long_term_update 维护短期上下文与长期记忆蒸馏;ask_user 处理人在回路决策。
作为对照,Claude Code 在源码层暴露 53 个工具,OpenClaw 暴露 18 个工具工厂,运行时还会再注入插件。
研究团队认为,工具增多会在两个层面带来代价:Prompt 层面,每个新工具扩大 schema 与说明,挤占有效上下文预算;策略层面,行动空间扩大、工具选择歧义增加,让规划更脆弱。
工具最小化的选择基于原子性(每个工具对应不可再拆的基本能力)与组合泛化(复杂行为通过原子工具序列实现)这两个条件。
理论上仅 code_run 一个工具就能模拟其余 8 个,剩余工具不是为了扩展能力,而是作为快捷方式降低决策成本。
同时,每个工具内部也做了进一步优化:file_patch 强制 old_content 唯一匹配,零匹配或多匹配快速失败;web_scan 内置布局分析算法,克隆 DOM、计算每个元素可见性、移除被覆盖或隐藏的元素,token 消耗较原始 DOM 降低一个数量级。
GA 把记忆划分为 3 种功能形态,即工作记忆、常驻记忆与长期记忆,并在实现层定义 L1 索引层、L2 事实层、L3 SOP 层、L4 原始会话归档层四个具体层级。其中,L1 是常驻部分,L2 与 L3 共同构成长期记忆,L4 负责持久化与可追溯性。
一个关键设计是,L1 只记录“某类知识存在”,不记录其内容。新条目仅在出现真正新的类别时才加入,整体描述长度逼近知识集合的范畴结构所对应的 Kolmogorov 复杂度。LLM 自身充当解码器,一旦推断出某能力或事实存在,就用工具调用把完整内容从更深层取回。这使得 L2 与 L3 可以无限增长,而 L1 始终保持紧凑。
此外,研究团队还引入了 meta-memory 元记忆层,定义整体记忆地图、核心规则与更新边界,防止任意写入、历史误读与跨任务泄漏。完整 meta-SOP 内容按需通过文件读取加载,不是默认预置。长期沉淀采用触发式提交而非即时写入:信息先进入验证阶段,确认有效与可复用后,才以小步增量写入 L2 或 L3,并相应更新 L1 索引。
GA 把工具层与知识层分离,工具接口对所有任务保持稳定,所有任务相关能力都存为 SOP 文件与可复用脚本,Agent 可以用自身工具读取、创建、修改这些资产。这种分离让新任务学习不会干扰既有技能。在多轮会话中,真实反馈会逐步精炼 SOP,常见子任务自然演化为稳定可复用脚本,知识从纯文本指令升级为可执行代码。
GA 在 L4 保存原始动作轨迹,但不会自动提升到 L2 或 L3。可复用 SOP 仅在显式整合步骤中产生,触发时机为里程碑事件,子目标达成或系统错误恢复。整合阶段严格遵循“No Execution, No Memory”规则,只保留经成功工具执行验证过的内容,猜测、临时中间状态、失败决策分支会被系统性丢弃。
为避免陷入错误重复循环,GA 引入了三级失败升级:先基于报错做局部小修;持续失败则放弃当前路径,切换策略或寻找缺失信息;自动尝试全部失败后暂停并请求人工介入。
许多 Agent 框架依赖 1M token 的扩展窗口,假定上下文越长推理越好。GA 持相反的观点,当前模型的“无幻觉上下文长度”(hallucination-free context length)约比标称值小一个数量级。GA 将预算定在 30k token 以内,把投入放在压缩而非扩张。具体由四个阶段构成:
阶段一(工具输出截断):每个工具返回值进入消息历史前先按字符阈值裁剪,code_run 限 10000 字符,web_scan 文本模式 10000 字符,超过则保留首尾各 L/2、中段以省略号代替。
阶段二(标签级压缩):每约 5 轮触发一次,重复的工作记忆块被替换为占位符;reasoning 与 tool 标签内容被截断为约 800 字符的首尾窗口;最近 10 条消息豁免压缩,约 80% 的轮次能命中 prompt cache。
阶段三(消息驱逐):当总历史长度超出字符预算时,先按更严格规则重跑“阶段二”压缩,再按 FIFO 删除最旧消息,直到历史规模降至总预算 60% 以下。
阶段四(工作记忆锚点):每次工具调用后,自动在下一条用户消息附加最近 20 轮的单行摘要、当前轮次号与 Agent 维护的 key_info 块,阶段三驱逐后,这段锚点成为长期记忆的唯一来源。
GA 的核心代码约为 3300 行,中央 Agent Loop 则仅只有 92 行;而 OpenClaw 有约 53 万行代码,是 GA 的 160 多倍。
Agent 以自托管 CLI 程序对外暴露,命令行不是内部平台的封装层,而是系统的原生执行界面。这种极简极简架构自然涌现出了多项能力。
进一步,两者结合催生出了“自主探索能力”,派发器从用户变为 Agent 自身。GA 维护一棵持久化技能树(skill tree),按 breadth、depth、utility、innovation 四个维度对候选任务打分,并基于实际使用情况通过反思机制自动调权。
研究团队在 5 个维度上对 GA 进行了系统评估。
研究团队在 SOP-Bench、Lifelong AgentBench、RealFin-benchmark 上对比了GA、Claude Code、OpenClaw 和 Codex。
结果显示,基于 Claude Sonnet 4.6 时,GA 在前两个 benchmark 上实现了 100% 完成率,达到甚至超过 SOTA 基线。
其中,GA 在 Lifelong AgentBench 上的输入 token 仅 222k,远低于 Claude Code 的 800k 和 OpenClaw 的 1.43M;GA 在 RealFin-benchmark 上取得了 65% 综合准确率,超过了 Claude Code(Opus 60%、Sonnet 55%)、Codex(60%)、OpenClaw(35%)。
表|主要 Agent 基准测试与 RealFin 基准测试中的任务完成率与 token 效率
在 5 个长程复杂任务上,GA 与 Claude Code 均实现了 100% 的成功率,但总 token 消仅为 Claude Code 的 35.1%;而且请求数从 32.6 降到了 11.0,工具调用从 22.6 降到了 12.8。
表|长程复杂任务结果
研究团队还在 SOP-Bench dangerous_goods 子集上做了记忆消融实验。结果显示,GA 在 No-Memory 下的任务成功率为 13.87%,在Full-Memory(记忆规模为 575 token)下为 52.44%,仅用 165 token,在 Condensed Memory 下即达到 66.48%,与使用 288 token 的 Redundant-Memory 分数相同。
表|SOP-Bench dangerous_goods 记忆消融实验
在 LoCoMo 长期事实记忆评测上,GA 在 Multi-Hop、Temporal、Open-Domain、Single-Hop 四个类别全部取得 SOTA F1 与 BLEU-1 分数,多跳上 F1 达 43.33,超过 Mem0(39.32)与 A-MEM(29.03),且不依赖任何 embedding 模型或向量数据库。
表|LoCoMo 长期事实记忆评测
在装入相同 20 个技能并大量使用后,仅发送一句“Hello”,GA 完整 prompt 长度仅为2298 token,而 Claude Code、Codex、OpenClaw 分别为 22821、23932、43321。
以 LangChain GitHub 研究任务作为纵向追踪目标,GA 在 9 轮内从 7m30s、32 次 LLM 调用、222203 token 收敛到 1m38s、5 次调用、23010 token,时间下降 78.2%、调用下降 84.4%、token 下降 89.6%,第 6-9 轮稳定在 23k±1k token 区间。输入 token 从 15581 降到 1323,cache-read 从 183375 降到 19034,主要节省来自调用次数坍缩而非单次响应缩短。
表|在 LangChain GitHub 研究任务上的 9 轮演化轨迹
另外,在 8 个基准任务上,后续 GA 执行所消耗的 token 数均少于首次执行,平均下降 79.3%,每个任务呈现“冷启动-快速收敛”模式:首轮承担 SOP 适配成本,第二、三轮直接复用稳定下降;长程状态转移任务(Category D)节省多达 92.0%。OpenClaw 在三次重复中无收敛趋势,B2 任务 token 在 1370k、2330k、2130k 间反复重探索。
表|GA 与 OpenClaw 在多次重复运行中的跨任务 token 收敛情况
在 WebCanvas(12 项任务)、BrowseComp-ZH(10 项任务)、Custom Tasks(22 项任务)上的对比评测中,GA 的得分(0.834、0.60、0.577)均超过 OpenClaw(0.722、0.20、0.50),但 token 消耗仅为 OpenClaw 的 1/4-1/3。
表|3 项基准测试的网页浏览评估结果
当然,GA 目前依然存在一些局限性。
例如,30 轮执行上限使得高度复杂的研究任务可能横跨多个会话,会话间连续性目前只通过书面报告与任务列表注释维持;基于反思的权重调整仍是初步设计,尚未在多样化真实工作流上积累足以验证有效性的长期数据;记录错误与偏好的自我改进日志当前依赖人工策展;合并冗余类别、淘汰过时工具、重组拓扑等技能树高级管理依然完全手工。
研究团队表示,极简架构是 Agent 自主进化的必要前置。当核心代码从数十万行降到几千行,Agent 才有能力读懂并修改自身。从技能整合到自主探索再到架构自更新是 Agent 进化的三个递进维度,但完整路径的验证仍有待研究。
整体上,GenericAgent把“让 Agent 在更长上下文中思考”这一主流路径反过来,把窗口压缩到了 30k token,把工具收敛到了 9 个,把经验沉淀为了可执行代码。
在当前 token 成本与延迟成为大规模部署核心约束的现状下,这种以信息密度而非容量为目标的系统设计,可能比单纯堆栈更长上下文窗口更值得关注。


