Просмотр исходного кода

docs: clarify transformContext does not accumulate injected content

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fanghanjun 6 месяцев назад
Родитель
Сommit
be7830afbe
1 измененных файлов с 14 добавлено и 0 удалено
  1. 14 0
      docs/superpowers/specs/2026-04-17-agent-context-management-design.md

+ 14 - 0
docs/superpowers/specs/2026-04-17-agent-context-management-design.md

@@ -66,6 +66,20 @@ pi-agent 默认的 `convertToLlm` 只保留 user/assistant/toolResult 三种 rol
 
 写作过程中 agent 可能通过 `write_truth_file` 工具更新真相文件。每次 LLM 调用前重读,保证 context 里的真相文件永远是最新版本。本地文件读取延迟可忽略。
 
+**为什么不会重复累积:**
+
+`transformContext` 返回的新数组只用于当次 LLM 调用,不会写回 Agent 内部的 messages 历史。pi-agent 的 `agent-loop.js` 里的执行顺序是:
+
+```
+原始 messages(Agent 内部持久的)
+  → transformContext 返回新数组(含注入的真相文件)
+  → convertToLlm 转换
+  → 发给 LLM
+  → 新数组用完丢弃,原始 messages 不受影响
+```
+
+所以每次 LLM 调用时 context 里只有一份真相文件,不会随对话轮次累积成多份。
+
 ### 2. Context 占用比例 UI
 
 **数据获取:**