如一Agent异步整理架构解析,算换分离如何解决同步压缩的三宗罪

如一Agent提出“算换分离”设计,将摘要生成与上下文切换解耦,避免传统同步压缩导致的卡顿、冷启动与脆弱性问题。文章结合Claude Code、Letta等实践案例,梳理异步整理的五大核心设计律,揭示...

人工智能

在大型语言模型驱动的Agent系统中,上下文长度限制始终是制约对话连续性与响应效率的关键瓶颈。当会话持续增长,系统必须对历史进行压缩——但如何压缩,却直接影响用户体验与系统稳定性。近期,如一Agent团队在其架构系列解读中聚焦“异步整理”机制,指出传统同步压缩存在结构性缺陷,并提出“算换分离”作为根本解法。

文章配图

所谓同步压缩,即在模型调用边界实时执行摘要生成与上下文截断。这一做法看似直接,实则埋下三重隐患:其一为“堵”,摘要生成需完整LLM调用,耗时5~10秒,期间整个推理循环冻结;其二为“冷”,每次压缩都需重新prefill全部上下文,部分节省的token被摘要自身消耗;其三为“急”,压缩仅在超阈值时触发,失败即重试或熔断,恰在最需压缩时最易失效。这三者共同源于一个错误绑定:将“算”(生成摘要、选定切点)与“换”(切换投影)强行置于同一时间点与决策路径。

上图清晰呈现了如一Agent提出的异步整理架构逻辑:监控模块持续追踪Usage(当前上下文占用率),当达到阈值(如≥0.8)且处于安全点(如最后一个assistant回复无tool call),系统转入“后台预压缩”阶段——此时“算”已在后台异步执行,而“换”仅在run/turn边界瞬时完成。若新输入到来,则立即abort后台任务,确保响应优先级;若压缩成功,则以轻量swap方式替换上下文投影,避免重复计算。

该设计并非空中楼阁,已有多个工程实践提供佐证。其中,Claude Code的SessionMemory机制是目前最成熟的生产级实现。其源码明确标注“without interrupting the main conversation flow”,通过fork子代理定期抽取会话要点,实现真正的“算异步、换同步”。具体包含四层保障:一是设置双重安全门——仅当工具链闭合且token增量过阈值时才启动后台抽取;二是压缩时优先使用已生成memory直接切换,全量摘要仅作fallback,大幅降低同步开销;三是后台fork复用主线程前缀缓存,但要求cache-key参数严格一致,否则缓存失效;四是设置连败3次即熔断的“烧钱闸门”,遥测数据显示曾有单会话连败3272次,日均浪费25万次API调用。

此外,Claude Code还利用用户空闲窗口提升资源效率:终端失焦5分钟后,后台自动生成awaySummary,用户返回即终止——将“用户离线”转化为免费算力窗口,体现对异步时机的精细把控。

学术界方面,Letta(前MemGPT)提出的sleep-time compute理念与之高度同构:Agent在空闲期执行记忆巩固,包括碎片合并、权重重算、高层摘要生成与索引重建。其核心主张同样是将计算密集型记忆维护移出在线路径。但Letta也坦承,该方案仍属研究原型,开启后token开销显著上升——异步化并非免费午餐,而是将延迟成本转为预算成本,需配合严格的成本纪律。

另一条路径来自平台侧:Codex的Remote V2将压缩能力封装为服务端原生API,客户端无需参与计算逻辑,仅信任平台输出。这种“压缩即平台能力”的定位,虽难以被自建runtime复用,却为架构分层提供了清晰范式。

相比之下,OpenHands的condenser模块仍采用同步管道设计,在loop内直接执行截断与摘要,无任何异步机制。将其列为对照组并非否定其价值,而是强调:异步并非技术必然选择,而是系统在真实负载压力下被迫演进的结果。

综合四类方案,可提炼出异步整理的五条通用设计律:

  • 算换分离:计算(摘要生成)可随时后台运行,切换(投影更新)仅发生在run/turn安全边界;
  • 安全点触发:仅在工具链闭合、历史静态且增量达阈值时启动,避免无效计算;
  • 预计算可失效:后台任务需支持锚定进度、stale判定、串行化及新输入即时中断;
  • 缓存经济学:后台调用应共享主前缀缓存,否则节省的延迟将被冷启动prefill抵消;
  • 烧钱闸门:设置连败熔断、并发限制与空闲窗口约束,防止异步任务失控引发资源浪费。
  • 值得注意的是,第4条“缓存经济学”隐含一个关键权衡:异步虽解除了阻塞,却对缓存一致性提出更高要求。若后台fork与主线程缓存key不一致(如maxOutputTokens配置差异),则prefill将完全失效——这意味着异步不是简单加个线程即可,而需重构缓存协议与状态同步机制。

    从行业演进看,Agent记忆管理正经历从“被动压缩”到“主动整理”的范式转移。早期方案多依赖阈值触发的同步操作,用户感知为不可预测的卡顿;而新一代架构则将记忆视为可调度的后台服务,通过安全点识别、增量预计算与资源熔断,实现“无感压缩”。这不仅提升了交互流畅度,也为长周期任务、多轮协作等复杂场景铺平道路。

    然而,异步化亦非万能解药。Letta的警告值得警惕:空闲算力≠免费算力,账期后置可能带来隐性成本激增。尤其在多租户云环境中,若缺乏配额控制与成本追踪,后台任务可能悄然吞噬大量GPU资源。

    当前,主流开源Agent框架(如LlamaIndex、LangChain)尚未全面采纳异步整理机制,多数仍沿用同步condenser或简单截断策略。但随着对话长度需求持续增长(如法律咨询、代码审查等场景动辄数千token),以及用户对响应实时性要求提高,算换分离架构有望成为下一代Agent runtime的标准组件。

    如一Agent此次对异步整理的系统性拆解,不仅厘清了技术实现路径,更揭示了一个深层事实:在LLM应用层,性能优化已不再局限于模型本身,而日益依赖于系统级的调度与资源编排能力。当“怎么算”与“何时换”被解耦,Agent才真正具备了持续对话的韧性与可扩展性。