Type: concept
Confidence: 0.85
Created: 2026-04-18
Updated: 2026-04-18
Tags: ai-toolscontext-managementralph-loopagent-patternLLM能力

上下文策略(Context Strategies)

概述

上下文策略是一组针对 LLM Agent 上下文窗口管理的系统化方法,将上下文视为需要 malloc/free 的内存资源,通过固定栈分配子 Agent 卸载观察遮蔽、规范文件外置、预算管理和干净状态协议六大策略,避免 Agent 进入性能退化的 Dumb Zone

关键内容

  1. 核心隐喻:上下文的 malloc/free 问题:每次工具调用(read_file、run_tests 等)都向上下文追加内容(malloc),但没有对应的释放操作(free)。一个典型的工具调用链会迅速消耗上下文:系统提示 ~5k tokens + 多次文件读取各 ~1.5-2k tokens + 多次测试输出各 ~3k tokens → 上下文快速达到 65% 以上,进入 Dumb ZoneRalph Loop 的根本解法是在进入 Dumb Zone 之前主动退出,让外循环重启新实例。

  2. 六大策略体系

  3. 固定栈分配:每次迭代以完全相同的方式分配上下文栈,确保关键约束始终位于注意力最高的开头和结尾位置,避免"lost in the middle"问题
  4. 子 Agent 卸载:将消耗大量 tokens 但只需结论的操作(测试套件 ~50k → ~100 tokens、编译 ~20k → ~50 tokens)卸载给子 Agent,主 Agent 保持精简
  5. 观察遮蔽:当上下文接近限制时,保留最近 N 轮对话,将旧消息替换为摘要占位符;Ralph 的立场是不适合"每 Story 一迭代"模式,但子任务间可用
  6. 规范文件 vs 上下文内容:任何需要跨会话持久化的信息必须在文件里(AGENTS.md、progress.txt),不能只在上下文里
  7. 上下文预算管理:在编写 CLAUDE.md 时估算各部分 token 消耗,确保总量在安全范围内(理想情况下 ≤52.5% 的 200k 窗口)
  8. Clean State Protocol:每次迭代结束前验证 git 状态、构建、测试、prd.json 语法、progress.txt 更新,确保不把破损状态传递给下一个 Agent

  9. 不同模型的上下文策略差异Claude 3.5 Sonnet/Opus(200k tokens)每迭代目标完成 1 Story,Dumb Zone 估计 >120k tokens;GPT-4o(128k tokens)Dumb Zone >80k tokens;Gemini 1.5 Pro(1M tokens)可完成 2-3 Stories,但 Ralph 仍推荐每迭代 1 Story 以保持小粒度的清晰 git commit 和低失败恢复成本。

  10. Lost in the Middle 问题的工程应对:LLM 对上下文开头和结尾的注意力高于中间部分。上下文策略要求把最重要的约束(系统提示、项目约定、核心约束)放在最前面,文件引用放在最后,避免将重要信息埋在中间。

来源

相关