最近有开发者开源了一套 OpenClaw 优化方案,核心思路非常清晰:把工作区当成「路由层」来重新设计,而不是把它当成「知识库」来堆砌。

路由层思维:只放指针,不放内容

什么叫「路由层」?你可以类比网络里的路由器——路由器本身不存储数据,它只负责告诉数据往哪里走。同样的道理,OpenClaw 每轮注入的那几个核心文件,不应该塞满具体的知识内容,而应该只保留最精简的指令和索引信息。

具体做法是把 SOUL.md、AGENTS.md、MEMORY.md、TOOLS.md 这些文件的总量压缩到 8KB 以下。你没看错,所有每轮注入的文件加起来不超过 8KB。那原来那些长篇大论的上下文、历史记忆、详细指令放到哪里去了?

vault/ 目录:你的长期知识库

答案是 vault/ 目录。把所有真正的长期信息——详细的系统提示词、历史对话摘要、领域知识文档——统统丢进 vault/ 里。这个目录不会被每轮注入,所以不占用宝贵的上下文窗口。

但放进去不用,那不等于没有吗?这就引出了方案里最关键的一环。

本地向量检索:用 Ollama 按需捞取

通过 Ollama 搭建本地向量检索,当 Agent 在处理某个任务时,根据当前对话的语义去 vault/ 里检索最相关的片段,动态注入到上下文中。这样做的好处是三重的:

  • 上下文窗口利用率大幅提升——每轮只加载真正相关的信息,而不是把所有东西一股脑塞进去
  • 响应速度更快——更少的 token 输入意味着更快的推理速度
  • 回答质量反而更高——噪音少了,模型能更精准地聚焦在当前任务上

这本质上就是一个轻量级的 RAG(检索增强生成)架构,只不过是专门为 OpenClaw 的工作区机制量身定制的。

实操要点

如果你想动手改造自己的 OpenClaw 工作区,建议分三步走:

  1. 审计现有文件——先看看你的 SOUL.md 等文件到底有多大,哪些内容是每轮都必须的,哪些只是偶尔用到
  2. 拆分到 vault/——把偶尔用到的内容迁移到 vault/ 目录,按主题分文件存放,方便后续检索
  3. 接入 Ollama 向量检索——用 Ollama 对 vault/ 里的文档做 embedding,实现语义级别的按需加载

这个方案的思路其实可以推广到所有基于文件系统做上下文管理的 AI Agent 框架。当你的 Agent 开始变慢或者"变笨"的时候,不妨反过来想:是不是给它的信息太多了,而不是太少了?