1M 额度爆炸、256K 频繁丢三落四:我们为什么要给长任务 Agent 建立”上下文稳态”?
- URL: https://mp.weixin.qq.com/s/AfgXUw3afTHeGmXzzBKG4g
- Date Saved: 2026-07-30
- Source: WeChat (把酒聊AI 公众号)
- Tags: ai-engineering
- Repo: https://github.com/slicenferqin/san
Summary
深度技术文章,讨论长任务 Agent 的”上下文稳态”(Context Steady State)架构设计。基于 San Agent 项目(omp fork)的实践总结。
核心问题
长时间运行的 Agent(代码编写、深度调研、数据分析)在数百次工具调用、多次上下文压缩后,会丢失关键信息。三个悖论:
- 1M 窗口悖论:能装下 ≠ 适合一直装。400K 后注意力分散、降智、走捷径
- 256K 窗口悖论:压缩续命但逐次失真,压缩3-4次后开始丢重要约束(有损变换的复利放大)
- 长 Agent Turn 悖论:上下文涨到100%+但 auto compact 迟迟不触发
四层通用数据架构
将”系统记得”与”模型此刻看见”解耦,分为四层管理。
七个核心控制机制
- 黄金工作窗口:240K 为默认基准,保留 20-25% Reserve,跨阈值后锁存进入稳态模式
- TurnDigest + Checkpoint:结构化状态记录(意图/动作/决策/产物/证据/风险/下一步),Append-only 账本
- Continuation Authority:摘要只能讲历史,不能定义当前 Goal。用户 Entry 是唯一权威
- Segment 是维护边界不是压缩按钮:15分钟或固定 Token 增量仅写 Checkpoint,不触发压缩
- Mid-run 有界恢复:遇硬压力才执行 compact→coverage rebuild→replan→replay,用 maintenanceId 防抖动
- Tool Progress Guard:按证据增量判断进展,识别”忙碌但无新证据”的死循环
- Probe 观测:独立 Sidecar 记录 Token 使用率、缓存读写比、前缀指纹、循环收敛状态
基准收益(2026年7月测试)
- -80.9% 活跃上下文:L5 超长任务(180步/1080次工具调用)从 355K Token → 68K Token
- -68.3% Prompt Tokens
- -47.5% 估算成本
真实事故复盘
一次会话中 Segment 错误绑定为强物理压缩 → 摘要从外部日志吸收不相关任务升级为 Goal → Agent 连续 981 次无效工具执行 → 消耗超 1.83M Token。修复方案:
- Segment 只写 Checkpoint,真实容量压力才物理压缩
- 用户 Journal Entry 是唯一 Goal 权威(摘要降权)
- 基于动作+证据指纹识别跨步骤循环
- 用户新输入无条件最高优先级抢占
核心观点
“更大的上下文窗口最好的用途是提供弹性,而不是鼓励堆积。真正决定 Agent 任务上限的,不是一次能塞多少 Token,而是系统 Harness 能否在每次历史增长、压缩、纠正和恢复后,让 Agent 回到高可信的稳态。”