Type: concept
Confidence: 0.80
Created: 2026-04-18
Updated: 2026-04-18
Tags: context-managementagent-patternralph-loopLLM能力

固定栈分配(Static Stack Allocation)

概述

固定栈分配是上下文策略之一,要求每次 Agent 迭代以完全相同的顺序和方式分配上下文栈,确保关键约束始终位于注意力最高的开头和结尾位置,避免"lost in the middle"问题导致 Agent 遗忘重要规则。

关键内容

  1. 核心原则:每次迭代,以完全相同的方式分配上下文栈。CLAUDE.md 的固定分配顺序为:
  2. [System Prompt] ← 总是第一个(~3k tokens)
  3. [Project conventions] ← 总是第二个(~2k tokens)
  4. [Core constraints] ← 总是第三个(~1k tokens)
  5. [File references] ← 总是最后(@prd.json @progress.txt @AGENTS.md

  6. 为什么顺序重要:LLM 对上下文开头和结尾的注意力高于中间部分("lost in the middle"问题)。注意力曲线呈 U 形——开头和结尾高,中间低。把最重要的约束放在最前面,确保 Agent 不会忘记它们。

  7. 工程实践:在 CLAUDE.md 中硬编码加载顺序,而非依赖 Agent 自主决定加载什么。这保证了每次迭代的一致性,避免了因上下文内容变化导致的注意力漂移。

  8. Context-Engineering 的关系:固定栈分配是 Context Engineering 中 Prompt 位置编排的具体实现。Context-Engineering 推荐的布局(Cached Prefix → Task contract → Working memory → Evidence → Counter evidence → User ask → Final answer rubric)与固定栈分配的原则一致——关键信息放两端,避免埋中间。

来源

相关