本文主要阐述核心思路,从基础构建开始逐步深入。
在有限的窗口内,通过结构化编排让模型记住关键信息,同时避免'失忆'或性能下降。
1. 突破窗口限制
OpenAI Agents SDK "Session" + 自动修剪(Trimming)
- 使用 SDK 内置的 "Session" 对象管理上下文,而非手动拼接 "messages"。
- 设定 '系统提示词 + 最近 N 轮' 的滚动窗口策略。当 Token 接近极限(如 90% 容量)时,自动丢弃最早的用户/助手对话,但永远保留 System Prompt。N 的取值需保证至少能覆盖一个完整的业务步骤。
2. 固化关键约束(防篡改)
结构化系统提示词(Structured System Prompt)
- 约束先行(Constraint-First):在 System Prompt 开头明确'不可为'清单(如'禁止提供投资建议'、'禁止修改汇率基准')。
- 输出锁死(Schema Lock):强制输出为 JSON 或 XML 格式,并利用 OpenAI 的
response_format或 Claude 的structured_outputs进行语法级约束,防止模型自由发挥。 - 分层注入:将用户身份、API 密钥等'显式记忆'在每次会话开始时直接注入 System Prompt,不依赖模型回忆。
P0 级:基础生存(防崩溃与越界)
3. 优化信息密度(降本)
摘要压缩(Summarization) + 结构化状态(Structured State)
- 主动摘要:当对话轮数超过阈值(如 10 轮),调用轻量级模型(如 GPT-4o-mini)将历史对话压缩为'关键决策点'摘要,替换原始冗长记录。
- 状态对象:借鉴 ".mmr" (MyMories) 格式,将对话状态保存为结构化对象(如
{user_intent, resolved_issues, pending_tasks}),而非自然语言,极大节省 Token。 - 工具结果过滤:调用外部 API 后,仅将解析后的核心数据(如
{balance: 1000})放入上下文,丢弃冗长的 HTTP 响应体。
智能记忆管理——'摘要 + 滚动'
直接使用 LangGraph 的 SummarizationNode 或 Anthropic 的 Memory Tool 实现自动化。
- 近期记录:保留最近 3-5 轮原始对话(保证连贯性)。
- 远期记忆:将更早的历史压缩为摘要。
P1 级:性能优化
4. 状态恢复与回溯
版本化快照(DAG-based State)
- 快照机制:在关键决策点(如'用户确认交易'后),保存完整的上下文快照(Snapshot)至数据库,满足'留痕'要求,并标记版本号。
- DAG 状态管理:参考'上下文内存虚拟化(CMV)'理论,将状态视为有向无环图(DAG),支持回滚到任意历史版本。
P2 级:进阶风控
5. 多模态与工具编排
文件元数据 + 工具状态机
- 元数据先行:处理 PDF/表格时,先提取文件名、页数、表格结构等元数据放入上下文,而非直接塞入全文。
- 工具链状态:在 System Prompt 中显式定义工具调用顺序(SOP),并将当前步骤(Step)作为状态变量传递,防止模型在长流程中'迷路'。

