8.2
深览指数
科技Bestblogs·青稞AI··AI 生成

到底什么是 Context?万字长文谈 Pi Agent context 管理

本文以 Pi Agent 为例,深入拆解了 AI Agent 中 Context 的本质、构成、动态增长与预算控制机制。核心贡献在于将 Context 明确定义为‘由 Harness 组装、随执行动态演进的信息环境’,而非简单的对话历史。文章系统阐述了静态前缀(System Prompt / Tool Definitions)与动态后置(User / Assistant / Tool Messages)的 KV Cache 友好结构,并详细介绍了长程任务中 Context 的预算管理、Failover 处理以及 Compaction(压缩重建)的九点关键细节。适合 AI 工程师、Agent 开发者及对 Agent 系统架构有深入了解需求的读者。原文 ↗

核心观点
  • Context 是 Agent 运行时由 Harness 动态组装的信息环境,它决定了模型决策所依赖的即时信息,而非静态的 Prompt 。
  • Compaction(压缩)的本质是对 Context 表示进行降维与重建,将高成本的原始消息转换为低成本的摘要表示,同时保留完成任务所需的关键状态。
  1. 01Context 由 System Prompt(相对静态前缀)、Tool Definitions(相对静态前缀)、User Messages、Assistant Messages、Tool Results 五部分组成,遵循前缀稳定、动态后置、标准消息结构三条 KV Cache 友好原则。
  2. 02Pi Agent 通过 AgentSession(管理会话配置)与 AgentSessionRuntime(管理 Session 生命周期)分层解决会话与运行环境(cwd)的一致性问题,切换 Session 需重建 Services。
  3. 03长程任务中,工具输出采用三步预算策略:预算内全量保留、超出预算只留预览、完整输出落盘供按需读取,受行数与字节数双重限制。
  4. 04Failover 分两层:Provider 层重发同一次调用请求,Session 层则回滚失败消息后重建 Model Input,后者涉及 Context 的重建。
  5. 05Compaction 的九个细节包括:按 token 预算选切点且不能切断 Tool Result;对切断执行过程补 split-turn 摘要;通过 previous summary 增量合并多轮摘要;摘要自身有独立预算;生成 task continuation state 而非闲聊总结;程序扫描 Tool Call 保留文件操作等确定性事实;摘要不走 Agent Loop;真正重建 messages 数组;Compaction 记录持久化。
  6. 06agent_end 仅结束本轮 Run 对 Context 的更新,而非清空 Context;历史沉淀到 Session State,成为下一轮起点。
反方 / 局限
  • 文章对 Context 管理的讨论高度聚焦于 Pi Agent 的实现,其提出的‘最优’策略(如预算选择、压缩触发时机)可能依赖特定 Agent 框架或模型能力,在其他架构(如 ReAct、Plan-and-Execute 模式)下的泛化性未经论证。
6 分钟 · 5 卡片 · 15 资料
读原文 →

概念锚点

前置背景

平行视角

未来推演

延伸追问