上下文组装:文件、历史消息、指令和工具 schema
很多 Agent 问题其实不是“模型不聪明”而是上下文组装出了问题。模型只会基于它当前看到的内容行动。OpenClaw 的 context 文档给了一个清晰定义Context 是一次 run 中 OpenClaw 发送给模型的所有内容。先说结论上下文不是记忆而是当前窗口Context 包括System prompt Conversation history Tool calls and results Attachments Compaction summaries Injected workspace files Tool schemasMemory 可以存在磁盘上之后再被检索。Context 是本次请求进入模型窗口的内容。System Prompt每次 run 重新构建OpenClaw 的 system prompt 由系统拥有并在每次 run 重新构建通常包含工具列表 skills 列表 workspace 位置 时间和 runtime metadata Project Context 注入文件它不是用户随便追加的一段文本而是运行时把多个来源整理后的结果。Project Contextworkspace 文件注入默认会注入一组 workspace bootstrap 文件例如AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md BOOTSTRAP.md大文件会被截断。/context list会显示 raw size、injected size 和是否 truncated。所以写这些文件时要克制规则写清楚 路径写准确 不要塞大段日志 不要把历史聊天当常驻上下文Tools有两种上下文成本工具会产生两类成本工具列表文本 出现在 system prompt 中帮助模型知道有哪些能力 工具 JSON schema 发送给模型以便正确调用工具很多人只看聊天历史却忽略 tool schemas。工具越多schema 可能越大模型还没开始思考就已经消耗了一部分窗口。History、Compaction、Pruning会话历史会进入上下文但不能无限增长。OpenClaw 通过compaction 把旧历史总结成压缩条目 pruning 从当前 prompt 中移除老旧工具结果但不改写磁盘 transcript来保持窗口可用。这也是为什么“它以前知道现在忘了”不一定是 bug可能是信息没有进入当前 context。如何检查上下文常用命令/status /context list /context detail /context map /usage tokens /compact排查时看system prompt 多大 哪些 workspace 文件被注入 是否有文件被截断 工具 schema 占多少 历史消息占多少 上下文是否接近窗口上限常见误解误解一memory 等于 context不是。memory 是可存储可检索的信息context 是当前发送给模型的窗口。误解二把文件全塞进去更好不一定。无关信息会稀释重点。误解三工具越多越强工具多也意味着 schema 成本更高、误调用概率更高。最后总结上下文工程决定模型“看见什么”。一句话总结Agent 行为 模型能力 当前上下文 工具可用性 权限边界。本节作业对一个 session 运行/context detail。找出最大的三个上下文贡献者。检查TOOLS.md是否过长。手动执行一次/compact观察窗口变化。下一节预告下一节讲工具调用协议模型如何决定调用哪个工具。参考资料OpenClaw DocsContextOpenClaw DocsContext engineOpenClaw DocsSystem promptOpenClaw DocsCompactionOpenClaw DocsSession pruning原文链接上下文组装文件、历史消息、指令和工具 schema | Harries Blog™