Session 03
Context / Workspace
上下文不是聊天历史。对 agent 来说,context 包括系统规则、项目文件、workspace、session history、工具结果、技能说明、外部资料和用户偏好。
1. 训练目标
本页要练会:能解释三个项目如何把“当前任务需要知道的东西”放进模型输入,并区分 workspace、memory、session 和 instruction。
主要依据:Claude memory docs / OpenClaw context / OpenClaw workspace。
2. 三项目对照
| 维度 | Claude Code | OpenClaw | Hermes Agent |
|---|---|---|---|
| 项目上下文 | CLAUDE.md、auto memory、repo 文件、IDE/terminal/session context。 | workspace files、AGENTS/SOUL/USER、history、tool results、attachments。 | context files、project files、memory files、tool outputs、provider context。 |
| 边界 | Claude Code 把 memory 当 context,不是硬权限;硬控制用 hooks/permissions。 | OpenClaw workspace 是 agent 的 home,私有且可被看作 memory。 | Hermes 把 terminal backend、memory provider 和 context files 组合进任务。 |
| 风险 | CLAUDE.md 过长或冲突、auto memory 误学、repo 上下文过载。 | workspace 泄露、channel 注入、skills/context 过量。 | 长期文件记忆和外部 memory provider 污染。 |
3. 组件机制
| 机制 | 解释 |
|---|---|
| Instruction layer | 系统规则、项目规范、技能规则、用户当前请求之间有优先级和冲突处理。 |
| Workspace layer | agent 可读写的工作目录,不只是文件夹,也是持久上下文和权限边界。 |
| Session layer | 当前对话的历史、工具结果和 routing state,服务本次任务连续性。 |
| Context budget | 模型窗口有限,必须裁剪、摘要、检索或 pin 住关键状态。 |
4. 失败模式
| 失败模式 | 为什么危险 |
|---|---|
| 上下文污染 | 把不可信网页、工具输出或用户 prompt 当作系统规则。 |
| 上下文过载 | 把所有历史和文件都塞入,导致模型忽略关键约束。 |
| 软规则误用 | 把 CLAUDE.md / AGENTS.md 当强制权限系统,实际上模型仍可能偏离。 |
5. 架构练习
- 给一个 coding repo,列出哪些放 CLAUDE.md,哪些放 skill,哪些不该进 context。
- 解释 OpenClaw workspace 为什么要私有化。
- 设计一个 context packing 策略,避免工具结果污染下一步推理。
6. 知识展开
上面的卡片是索引,点击后跳到对应的详细解释。阅读时不要只记名词,要同时记住组件边界、为什么需要它、三个项目怎么体现,以及你能用什么问题自检。
Working context
当前模型调用真正看见的输入窗口,包含指令、历史、检索片段、文件摘要和工具结果。
Workspace isolation
不同 agent 或不同任务拥有隔离工作区,避免文件、状态和凭据互相污染。
Context retrieval
按任务需要从文件、搜索、记忆、历史或外部系统取上下文。
Instruction layering
系统规则、项目规则、用户任务、技能说明和工具约束的层级关系。
Workspace artifacts
任务过程中产生的文件、日志、截图、报告、patch、测试结果等中间产物。
Detailed Concepts
| 概念 | 是什么 | 为什么重要 | 项目对照 | 自检问题 |
|---|---|---|---|---|
| Working context | 当前模型调用真正看见的输入窗口,包含指令、历史、检索片段、文件摘要和工具结果。 | working context 是短期推理材料,不应被当成长期记忆或权限配置。 | Claude Code 通过 repo/CLAUDE.md/工具结果进入;OpenClaw 文档拆分 context;Hermes 结合 files、memory 和工具输出。 | 能否把当前任务必须看见的信息列成优先级? |
| Workspace isolation | 不同 agent 或不同任务拥有隔离工作区,避免文件、状态和凭据互相污染。 | 多 agent 和高风险工具必须靠隔离降低副作用。 | OpenClaw 的 per-agent workspace/agentDir 是典型样本;Claude Code 通常依赖当前 repo;Hermes 依赖本地 backend 和配置边界。 | 如果两个 agent 同时改文件,冲突怎么发现? |
| Context retrieval | 按任务需要从文件、搜索、记忆、历史或外部系统取上下文。 | 召回太少会漏事实,召回太多会稀释注意力并引入污染。 | Claude Code 更贴近代码库检索;OpenClaw 强调 attachments/files/tool results;Hermes 可接 memory provider 和文件工具。 | 是否有 relevance、source、freshness 和权限过滤? |
| Instruction layering | 系统规则、项目规则、用户任务、技能说明和工具约束的层级关系。 | 层级不清会导致用户提示覆盖安全规则,或项目规则被普通上下文稀释。 | Claude Code 的 CLAUDE.md/skills/hooks 体现分层;OpenClaw 有 bootstrap/context;Hermes 有 configuration 和 custom instructions。 | 哪些规则靠提示表达,哪些必须靠代码强制? |
| Workspace artifacts | 任务过程中产生的文件、日志、截图、报告、patch、测试结果等中间产物。 | artifact 是 agent 可复盘和可交付的证据,不只是临时文件。 | 三类系统都需要 artifact 管理,只是 Claude Code 更偏代码变更,OpenClaw 偏 session/workspace,Hermes 偏本地 automation。 | 产物是否有来源、版本和清理策略? |