我们都知道 Prompt Engineering但随着 AI Agent 越来越复杂一个更底层的问题浮出水面当 Agent 要完成一个跨越几十轮对话的长任务时它的记忆是怎么管理的本文通过解析 OpenClaw带你看清楚上下文工程这件事的真实面貌——它解决什么问题、怎么解决、以及背后有哪些值得借鉴的设计思路。一个被忽视的问题大多数人接触 AI 开发第一件事是学 Prompt Engineering——怎么写系统提示词怎么给 few-shot 示例怎么用 Chain-of-Thought 引导模型推理。这些技巧确实有用但它们都有一个隐含前提对话是短的任务是一次性的。现实中的 AI Agent 不是这样工作的。一个真正有用的 Agent往往需要在一次会话里完成几十步操作读文件、调接口、写代码、修 bug、再测试……每一步都会产生新的信息这些信息又会影响下一步的决策。随着任务推进上下文窗口里积累的内容越来越多最终必然面临一个问题放不下了怎么办这就是上下文工程要解决的核心问题。它不是怎么写一条好指令而是在整个任务生命周期里动态地管理什么信息应该在场、什么不应该在场。Prompt Engineering vs 上下文工程本质区别在哪两者的差异可以从四个维度来看时间维度Prompt Engineering 作用于单次请求写好了就不变上下文工程贯穿整个会话生命周期随着任务进展持续调整。核心问题Prompt Engineering 解决的是如何表达意图让模型理解你想要什么上下文工程解决的是如何管理信息的进出让模型在任何时刻都能看到恰当的信息。操作对象Prompt Engineering 操作的是文本措辞上下文工程操作的是上下文窗口的内容结构——哪些内容放进来哪些移出去哪些压缩哪些保护。主要挑战Prompt Engineering 的挑战是模型理解上下文工程的挑战是窗口容量有限、信息有时效性、重要性难以量化。打个比方Prompt Engineering 是怎么跟人说话上下文工程是开会前该把哪些材料放在桌上、哪些锁进抽屉。前者是表达技巧后者是信息管理。Prompt Engineering vs 上下文工程上下文窗口像极了 RAM理解上下文工程有一个很好的类比计算机的 RAM 空间管理。两者面对的是同一类问题有限空间里的信息调度。RAM 有固定大小上下文窗口有 token 上限RAM 需要决定哪些数据在线在内存里、哪些离线在磁盘上上下文也需要决定哪些信息放进窗口、哪些卸载到外部存储RAM 有缓存、换页、LRU 淘汰等机制上下文工程也有类似的压缩、裁剪、按需加载机制。但两者有一个根本差异让上下文工程比 RAM 管理难得多RAM 的换页是无损的。数据完整保存到磁盘需要时原样取回一个 bit 都不会丢。而上下文的换页——也就是 Compaction压缩——是有损的。历史对话被 LLM 摘要压缩细节不可逆地丢失。你没法把一段被压缩的对话历史还原回去就像你没法从一篇摘要里还原出原文。还有另一个差异RAM 里的数据是精确的二进制重要性可以精确量化比如访问频率。上下文里的内容是语义性的这段工具调用结果重不重要本身就是个模糊问题没有精确答案只能靠启发式规则来判断。这两个差异决定了上下文工程必须在保留信息和释放空间之间做出有损的权衡而且这个权衡没有标准答案。RAM vs 上下文窗口OpenClaw 的上下文长什么样搞清楚概念之后来看 OpenClaw 的具体实现。每次向 LLM 发起请求完整的上下文由两大部分组成。第一部分系统提示词System Prompt系统提示词每次运行时动态构建包含十几个功能区块按顺序拼接在一起•Tooling当前可用工具列表按策略过滤owner-only 工具对非 owner 不可见•Safety安全约束•Skills技能列表仅主 Agent子 Agent 不注入•Memory Recall记忆检索指引告诉 Agent 如何查询历史信息•Workspace当前工作目录•Sandbox沙箱信息启用时•User Identity用户身份•Messaging消息路由规则•Project Context项目上下文文件AGENTS.md、SOUL.md 等从磁盘读取后注入•Silent Replies / Heartbeats / Runtime运行时控制信息系统提示词有三种模式full主 Agent包含所有区块、minimal子 Agent只保留核心区块、none仅一行身份声明。这个分层设计让不同角色的 Agent 只拿到自己需要的信息避免浪费 token。第二部分对话历史Conversation History从持久化的 session 文件JSONL 格式加载包含三种角色的消息用户消息user、助手回复assistant、工具调用结果toolResult。这些消息不是直接加载就用而是要经过一条预处理流水线repair修复损坏结构→ sanitize清洗非法内容→ validate校验格式→ limit轮次限制。两者的分工很清晰系统提示词负责知识注入每次重建始终最新对话历史负责状态延续持久化但可压缩。这种分离是 OpenClaw 上下文设计的核心思想。OpenClaw 上下文两层结构什么内容该放进上下文这是上下文工程最核心的决策问题。OpenClaw 的策略可以归纳为几条原则能放系统提示词的不放对话历史。工具列表、技能列表、项目配置文件都放在系统提示词里每次重建。这样它们不会随着对话轮次重复累积也不会被 Compaction 压缩掉。大文件截断注入提示按需读取。项目配置文件Bootstrap Files有大小限制默认 20,000 字符。超出时按70% 头部 20% 尾部的比例截断中间插入截断标记并在提示词里告诉 Agent完整内容请用read工具读取。这是一种摘要在场全文按需的策略。记忆文件完全不主动注入。MEMORY.md 不会出现在上下文里系统提示词只告诉 Agent如需查询历史信息请调用memory_search工具。只有 Agent 真正需要某段记忆时才会触发检索消耗 token。这是典型的懒加载思维——不是把所有可能有用的东西都塞进来而是需要时再取。工具调用结果标记为可裁剪。大型工具输出文件读取、搜索结果等放在对话历史里但标记为可裁剪在上下文压力大时优先被压缩或清除。上下文内容放置决策上下文快满了怎么办三道防线当对话越来越长上下文窗口终将面临压力。OpenClaw 设计了三道防线从轻到重依次触发每一道都比上一道更激进但也更有破坏性。第一道实时裁剪Pruning这是内存中的操作不修改任何持久化文件每次 LLM 调用前执行。当上下文用量超过 70%softTrimRatio时触发软裁剪对标记为可裁剪的工具结果做头尾截断保留开头和结尾各若干字符中间插入省略标记。模型还能看到工具结果的大致内容只是细节被省略了。当用量超过 85%hardClearRatio时触发硬清除直接把工具结果替换为占位符[tool result cleared]。模型知道这里曾经有个工具调用但内容已经不可见了。裁剪有两个保护区绝对不会被触碰一是 Bootstrap 保护区Agent 启动阶段读取配置文件的那段历史二是近期保护区最近 N 条 assistant 消息之后的内容。保护近期内容是因为它们对当前任务最相关保护启动阶段是因为那里包含 Agent 理解任务的基础信息。第二道上下文压缩Compaction当裁剪已经不够用或者用户主动执行/compact命令时触发 Compaction。这是一个有损的持久化操作会修改 session 文件。压缩流程分三步首先按 token 预算分块丢弃最早的若干块只保留最近的历史然后对丢弃的消息分段每段调用 LLM 生成摘要如果某段消息超过上下文窗口的 50%会跳过这段只摘要其他部分最后把各段摘要合并成一条总摘要作为新的第一条 user 消息写回 session 文件替换掉原来的历史。压缩期间isCompacting()返回true新消息的入队会被拒绝防止并发写入导致数据损坏。压缩完成后系统重置所有累积的状态重新发起 LLM 请求。第三道溢出自动重试如果 LLM API 直接返回上下文超长错误request_too_large、context length exceeded等OpenClaw 会自动触发 Compaction 并重试最多重试 3 次。如果 Compaction 本身也失败比如历史消息本身就超大无法压缩才最终报错放弃。这三道防线的设计逻辑是优先用代价最小的方案只有在不够用时才升级到更激进的手段。裁剪是可逆的只影响当次请求Compaction 是不可逆的永久修改历史所以裁剪在前Compaction 在后。三道防线从轻到重的升级流程Pruning 裁剪区域与保护区上下文坏掉了怎么办除了容量问题上下文还会因为各种原因失效——内容本身没问题但结构或格式导致 API 请求失败。OpenClaw 识别并处理五类失效场景。角色顺序错误是最常见的。LLM API 要求消息角色必须交替出现user → assistant → user → …如果 Agent 在执行工具调用时被中断session 文件里可能出现连续的 user 消息或者 tool_use 后没有对应的 tool_result。OpenClaw 在每次运行前会检测并修复通过repairToolUseResultPairing()插入合成的 error tool_result 来补全配对通过sessionManager.branch()或resetLeaf()移除孤立的 trailing user 消息。工具调用输入缺失也是流式中断时的常见问题——tool_use block 存在但没有input字段流式传输被中断时可能发生。repairToolCallInputs()会直接删除这些不完整的 block防止 API 返回 400 错误。模型上下文窗口过小如果所选模型的上下文窗口小于硬性最低要求16,000 tokensevaluateContextWindowGuard()会在运行前拦截抛出FailoverError触发模型降级或直接报错而不是让请求发出去再失败。Session 文件损坏进程崩溃、磁盘错误等可能导致 JSONL 文件有无法解析的行。repairSessionFileIfNeeded()在每次运行前检查发现问题时备份原文件写入清洗版本。这些修复逻辑的共同特点是在请求发出之前就处理好而不是等 API 报错再补救。防御在前容错在后。五类上下文失效场景与修复方式中断了也不怕自动恢复Agent 在执行长任务时随时可能被中断——用户取消、网络超时、进程崩溃。OpenClaw 的中断恢复机制设计得相当完整。中断时系统会为所有未完成的 tool_use 插入合成的 error tool_result确保 session 文件里的 tool_use/tool_result 始终配对。被中断的 assistant 消息会标记stopReason: aborted修复逻辑会跳过这类消息不为其创建合成 tool_result避免 API 400 错误。恢复不需要任何显式命令。每条消息实时追加写入 JSONL session 文件下次运行时经过 repair → sanitize → validate 流水线后重新加载文件锁session.jsonl.lock防止并发写入导致数据损坏。从用户角度看就是重新发一条消息Agent 接着上次的进度继续。超时中断有一个额外处理超时被视为潜在的 rate limit会触发 auth profile 轮换下次请求换一个账号重试。缓存让重复的 token 不重复计算上下文工程不只是管理放什么还包括让已有的内容更高效。OpenClaw 在缓存层面做了几处优化。Session Manager 预热缓存prewarmSessionFile()在 session 文件被实际使用前提前加载到内存减少首次访问延迟。trackSessionManagerAccess()记录访问时间支持 LRU 淘汰策略长时间未访问的 session 会从内存缓存中移除。Prompt CacheAnthropic Cache TTL当配置contextPruning.mode cache-ttl时OpenClaw 会在每次请求前向 session 追加一条带时间戳的 user 消息利用 Anthropic 的 prompt caching 机制让系统提示词和历史消息在 TTL 内命中缓存减少重复计算的 token 费用。对于系统提示词这种每次内容基本不变的部分缓存命中率很高成本节省相当可观。Cache Trace调试追踪createCacheTrace()可以在各个阶段session 加载、sanitize、limit、prompt 前后记录消息快照用于分析缓存命中情况和上下文变化帮助诊断性能问题。上下文工程如何控制注意力管理放什么只是上下文工程的一半另一半是放进来的内容模型会怎么看它LLM 对上下文的注意力分布不是均匀的。研究表明模型对上下文的两端——开头和结尾——注意力最强而中间段的内容容易被遗忘这个现象被称为Lost in the Middle。对于一个长达几十轮的 Agent 会话这意味着同样是放进上下文放在哪里效果差别很大。OpenClaw 的设计在多个层面隐含地利用了这一点。位置即优先级把最重要的内容放在注意力最强的位置。系统提示词在上下文的最前面Safety 约束、工具定义、核心指令都在这里——这是首因效应最强的区域。最新的对话轮次自然在末尾近因效应最强。而 Pruning 的保护区设计保护最近 N 条 assistant 消息之后的内容本质上就是在保护高注意力区域确保当前任务最相关的信息不被裁掉。信息密度控制裁掉低密度内容保留高密度内容。Soft Trim 和 Hard Clear 优先裁剪的是工具结果而不是 user/assistant 的对话轮次。这背后有一个判断工具结果往往是大段的原始数据文件内容、搜索结果信息密度低而对话轮次包含推理过程和决策信息密度高。在有限的窗口里裁掉低密度内容等于提升了整体的有效注意力——模型读到的每一个 token 都更有价值。Compaction 是注意力蒸馏不只是压缩。把几十轮历史对话压缩成一段摘要不只是节省 token更是把散落在大量细节里的关键信息提炼到一段紧凑的文本里。模型读摘要时注意力集中在提炼后的要点上而不是被大量原始细节稀释。从注意力的角度看Compaction 是在主动提升历史信息的信噪比。记忆的按需检索让相关信息出现在注意力最强的位置。记忆文件不主动注入系统提示词而是让 Agent 调用memory_search检索。这意味着相关记忆只在真正需要时才出现在上下文里而且出现的位置是最新的 toolResult 消息——也就是末尾的高注意力区域。相比把整个 MEMORY.md 塞在系统提示词的中间段这种方式让记忆内容出现在模型更看得见的地方同时也避免了无关记忆稀释注意力。子 Agent 的最小化系统提示词减少注意力噪声。子 Agent 使用minimal模式的系统提示词只保留 Tooling、Workspace、Runtime 等核心区块去掉 Skills、Memory Recall 等主 Agent 才需要的内容。更短的系统提示词意味着更少的背景噪声模型的注意力可以更集中在当前子任务上。这些设计加在一起构成了一套隐式的注意力管理策略重要的内容放在注意力强的位置低价值内容优先裁剪历史信息通过摘要提升密度按需检索让相关内容在需要时出现在最显眼的地方。没有一行代码直接写着控制注意力但每一个设计决策都在朝这个方向优化。LLM 注意力分布与上下文控制策略四条值得借鉴的设计思路回顾 OpenClaw 的上下文工程有几个设计思路值得提炼不只适用于 OpenClaw任何需要管理长上下文的 AI 应用都可以参考。分离知识和状态。系统提示词承载知识每次重建始终最新对话历史承载状态持久化可压缩。两者不混用各司其职。这个分离让知识更新不影响历史状态历史压缩不影响知识完整性。按需加载而非全量注入。记忆文件不主动注入由 Agent 按需检索大文件截断后注入并提示读取完整版工具结果标记为可裁剪。核心思想是不要把可能有用的东西都塞进来而是在真正需要时再取。这在 token 成本和信息密度之间找到了更好的平衡。多级降级而非单点失败。软裁剪 → 硬清除 → Compaction → 溢出重试每一级都比上一级更激进但也更有破坏性。系统总是先尝试代价最小的方案只有在不够用时才升级。这种渐进式降级比一刀切的处理方式更优雅也更能保留有用信息。防御性设计修复在请求之前。中断时主动修复上下文结构每次运行前检查文件完整性把可能出错的情况都提前考虑进去而不是等 API 报错再补救。这让系统在面对各种异常情况时更加健壮。上下文工程四条核心设计原则上下文工程是 AI Agent 工程化落地中一个容易被忽视但至关重要的环节。它不像模型能力那样直观也不像 Prompt 技巧那样容易展示但它决定了 Agent 在长任务中能否保持稳定、高效、不失忆。OpenClaw 的这套设计提供了一个相当完整的参考答案。普通人如何抓住AI大模型的风口领取方式在文末为什么要学习大模型目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 大模型作为其中的重要组成部分 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 为各行各业带来了革命性的改变和机遇 。目前开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景其中应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。随着AI大模型技术的迅速发展相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业人工智能大潮已来不加入就可能被淘汰。如果你是技术人尤其是互联网从业者现在就开始学习AI大模型技术真的是给你的人生一个重要建议最后只要你真心想学习AI大模型技术这份精心整理的学习资料我愿意无偿分享给你但是想学技术去乱搞的人别来找我在当前这个人工智能高速发展的时代AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料能够帮助更多有志于AI领域的朋友入门并深入学习。真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】大模型全套学习资料展示自我们与MoPaaS魔泊云合作以来我们不断打磨课程体系与技术内容在细节上精益求精同时在技术层面也新增了许多前沿且实用的内容力求为大家带来更系统、更实战、更落地的大模型学习体验。希望这份系统、实用的大模型学习路径能够帮助你从零入门进阶到实战真正掌握AI时代的核心技能01教学内容从零到精通完整闭环【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块内容比传统教材更贴近企业实战大量真实项目案例带你亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事‌02适学人群应届毕业生‌无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型‌非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界‌。业务赋能突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型‌。vx扫描下方二维码即可【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】本教程比较珍贵仅限大家自行学习不要传播更严禁商用03入门到进阶学习路线图大模型学习路线图整体分为5个大的阶段04视频和书籍PDF合集从0到掌握主流大模型技术视频教程涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向新手必备的大模型学习PDF书单来了全是硬核知识帮你少走弯路不吹牛真有用05行业报告白皮书合集收集70报告与白皮书了解行业最新动态0690份面试题/经验AI大模型岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要07 deepseek部署包技巧大全由于篇幅有限只展示部分资料并且还在持续更新中…真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】