跳转到主要内容

上下文管理

Myrm 上下文管理确保 Agent 在 200+ 轮对话中不丢信息,并通过智能压缩与缓存优化控制成本。

架构概览

每条消息在到达 LLM 前经多阶段流水线:
用户消息 → 过滤 → Cache TTL 剪枝 → 压缩 → 摘要 → 缓存优化 → LLM

压缩流水线

第 1 层:即时过滤

大工具输出(文件内容、搜索结果等)立即截断,仅保留最相关部分。零 API 成本。

第 2 层:Cache TTL 剪枝

过期缓存内容自动清除,避免陈旧数据占用上下文窗口。

第 3 层:优先级感知压缩

消息分三档优先级:
优先级处理
Critical永不压缩(用户指令、活跃错误)
Important最后压缩(近期工具结果、关键决策)
Standard优先压缩(较早对话轮次)
按序应用三策略:Dedup(去重)→ Truncate(缩短冗长输出)→ Remove(丢弃低价值轮次)。

第 4 层:结构化摘要

仅压缩不足时,LLM 生成 11 字段结构化摘要(用户目标、活跃任务、错误、决策等)替换压缩历史。

第 5 层:缓存优化

注入提供商特定缓存标记(Anthropic cache_control、Qwen 前缀缓存)以最大化后续请求的 Prompt 缓存命中。

可逆压缩

不同于永久丢弃压缩内容的竞品,Myrm 压缩可逆
  • 工具输出卸载到 .context/ 存储,非删除
  • 归档检查点在压缩前捕获完整状态
  • 可按需恢复内容
Agent 压缩后仍可「回看」早期细节。

Prompt Cache 优化

Prompt 缓存命中时输入 Token 成本最高可降 90%。

设计原则

  1. 静/动分离 — 系统提示词冻结(可缓存);动态内容进用户消息
  2. 4 层稳定前缀 — 系统提示词 → 工具 → 工作区规则 → 首条用户消息形成稳定前缀
  3. 缓存断裂检测cache_break_detector 主动监控失效并报告原因
  4. 仅追加策略 — 历史消息就地不改,保持前缀稳定

保护特性

特性说明
Hot Cache Bypass缓存已热时跳过不必要压缩以保留命中
Anti-Thrashing检测并跳过重复低收益压缩周期
90% 安全网上下文利用率 90% 时紧急压缩防 OOM
Cache-TTL Archive过期缓存条目归档(非删除)可恢复

思考内容管理

使用推理/思考模型(DeepSeek、MiMo、Kimi、Anthropic Claude)时,ThinkingBlockCleaner 自动管理 reasoning_contentthinking_blocks 防上下文膨胀:
  • Anthropic — 移除 reasoning_content(与 thinking_blocks 冗余);保留 thinking_blocks
  • DeepSeek/MiMo/Kimi — 选择性移除末条用户消息之前的历史 reasoning_contenttool_calls 的消息(API 要求)。当前轮推理始终保留
  • 模型切换 — 会话中从非思考模型切到思考模型时,自动为历史 assistant 消息回填空 reasoning_content 防 400 错误
典型 20 轮 DeepSeek 会话可省约 8,000–20,000 推理 Token(约 50% 推理开销)。

极端场景防爆

大规模上下文与多模态自主任务下,Myrm 采用 4 层防护:

1. 网关卫生(Token 阻断)

请求进 Harness 前,控制平面网关扫描载荷。超大恶意或畸形载荷(>120K tokens)即时 400 Bad Request,防 LLM 节点 OOM 与系统 halt。

2. 辅助比例护盾(优雅降级)

主模型(如 200K 窗口)接近上限时用辅助模型压缩。若辅助模型过小(如 8K),传 100K tokens 会致命崩溃并丢历史。Myrm 动态检查比例;过小时静默降级用主模型摘要并警告,会话仍存活。

3. 智能媒体剥离

视觉模型自主操作(如 Computer Use)会大量追加截图。Myrm 实现滑动视觉证据窗口,仅保留最近 2 条含媒体消息用于视觉推理,剥离更早历史中的大 Base64 图,大幅降 Token 膨胀且保持视觉能力。

4. 尾部预算比例

非任意截断消息,而是为主模型最大上下文预留专用 Token 预算(如 20%)给最近对话尾部,确保当前工作记忆与活跃工具结果不被挤出,保证任务连续性。

会话笔记

Agent 可在会话中创建结构化笔记 — 零 API 成本持久于上下文(无需 LLM 调用),是完整压缩的轻量替代。

动态阈值

压缩阈值随上下文利用率自适应:
利用率动作
40%开始监控,准备压缩
50%轻压缩(去重、截断)
70%全压缩(优先级移除)
90%紧急压缩(安全网)

辅助模型防护

用小 LLM 做摘要时,Myrm 动态检测辅助模型上下文窗口并在发送前截断消息,防小模型压缩时崩溃 — 任意输入规模均可优雅处理。

后台任务的极致降噪与 Token 优化

Myrm 对后台辅助任务(如自动生成会话标题)的 Token 消耗进行了极致优化:
  • O(1) 截断与结构化剥离:精准剥离代码块、URL 链接、HTML 标签等对生成标题毫无帮助的“高 Token 密度”结构,只保留核心自然语言。
  • 0 Token 拦截机制:如果经过降噪后文本为空(例如用户只发了一段代码),系统会直接触发本地兜底文案(如 Snippet),实现 0 Token 消耗,彻底避免无效的 API 调用。