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