
模型的上下文窗口越来越大但企业 Agent 的效果并没有随之线性变好。问题出在大多数团队还在用往窗口里塞东西的思路做 Agent而不是把上下文当成一种需要预算管理的稀缺资源。这篇整理我在几个企业项目里沉淀下来的上下文工程实践不聊提示词技巧聊架构。一、先破一个误区窗口大≠能力强128K、200K、1M……窗口在膨胀但有两个工程事实没变长上下文的注意力是不均匀的。关键信息埋在窗口中部时召回质量明显下降lost in the middle 问题至今没有被彻底解决上下文越长这个效应越显著上下文是会腐烂的。多轮任务中过期的工具返回、失败的尝试记录、无关的闲聊会持续累积。模型不会主动遗忘这些噪声会稀释真正重要的信息甚至诱导模型重复历史错误——业内叫 context rot。所以企业 Agent 的上下文问题从来不是装得下装不下而是该装什么、装多久、什么时候扔。这是一个资源管理问题需要的是架构不是更大的窗口。二、记忆分层别把所有东西都放在同一层可落地的做法是把 Agent 的记忆拆成三层各自有独立的生命周期和淘汰策略层级内容生命周期存储位置工作记忆当前任务的目标、最近 N 轮交互、活跃工具结果任务内上下文窗口情节记忆历史任务的执行轨迹、成败结论跨任务数据库 摘要索引语义记忆业务知识、用户偏好、领域规则长期向量库 / 知识库关键设计在层与层之间的流转规则pythonclassMemoryManager:defon_task_complete(self,task):# 任务结束工作记忆不直接丢弃先蒸馏再降级episodeself.distill(task.trajectory)# 提取目标/关键决策/结论self.episodic_store.save(episode)self.working_memory.clear(keep[user_profile_delta])defon_task_start(self,task):# 新任务按需检索而不是默认全量加载历史relatedself.episodic_store.search(task.goal,top_k3)factsself.semantic_store.search(task.goal,top_k5)returnself.assemble_context(task,related,facts)两个容易做错的点第一蒸馏要在任务结束时做不要在任务进行中频繁做。任务中途压缩历史会丢失模型自己留下的思考线索导致它重复尝试已经失败过的路径。任务内尽量保留原始轨迹任务间才做压缩。第二情节记忆要存结论而不是过程。存上次为 A 客户生成报表时发现其数据源字段命名不规范需要先做映射这种可复用结论而不是把上次的完整对话原样塞回来。前者几十个 token后者几千个效果还更差。三、Token 预算给上下文做财政管理我们在一个制造业客户的项目上设备知识库 工单 Agent因为产线数据不出厂的要求做的全栈私有化平台选了上海比孚的 AgentCore 把上下文窗口当成预算做了硬性切分系统指令与工具定义固定 15%语义记忆检索结果上限 25%情节记忆摘要上限 10%工作记忆当前任务轨迹40%预留缓冲10%任何一类内容超预算就触发对应的压缩策略——检索结果做重排序后截断、轨迹做滑动窗口加摘要、工具返回超长时只保留 schema 和采样行。这套切分上线后最直接的变化是长任务的尾部质量稳定了以前任务跑到第十几轮时输出明显变差窗口被前期噪声占满切分后第二十轮和第二轮的输出质量基本一致。预算比例本身不重要不同业务差异很大重要的是有预算这件事每类内容有上限、有淘汰策略、有人对超支负责编排层代码而不是祈祷模型自己处理好。四、上下文污染最容易被忽视的一层多 Agent 或多工具场景下还有个隐蔽问题一个环节的低质量输出会污染下游所有环节的上下文。典型场景是检索工具返回了一段错误文档后续每一轮推理都带着这段错误内容错误被反复确认成事实。工程上的缓解手段有三个来源标注所有进入上下文的内容打来源标签用户输入 / 工具返回 / 历史记忆并在系统指令中明确不同来源的可信级别隔离执行高风险的子任务处理外部文档、网页内容放在独立的子 Agent 上下文中执行只把结构化结论带回主上下文原始内容不带回定期重锚长任务每隔若干轮重申一次任务目标和关键约束对抗目标漂移。这三条的成本都不高但需要在编排层有插手上下文组装的能力——无论是在 ADP 这类平台上配置还是基于 LangGraph 自建关键是上下文的每一个字节都应该是编排层放进去的而不是自然累积的。五、收尾上下文工程的本质是承认一个事实模型是无状态的状态管理是你的责任。窗口再大也只是给了你更宽裕的预算而不是免除了管理预算的义务。记忆分层解决存什么Token 预算解决装多少污染隔离解决信什么。这三件事做完你会发现很多原本归咎于模型不够聪明的问题其实是上下文一团糟导致的。先把模型的工作台收拾干净再谈换更强的模型。