news 2026/6/6 19:54:27

Workspace:文件系统、项目上下文和执行边界

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Workspace:文件系统、项目上下文和执行边界

很多人第一次接触 OpenClaw 的 workspace,会把它理解成“Agent 的项目目录”。

这个说法没错,但太浅。

Workspace 同时承担三种角色:

默认工作目录 上下文来源 长期记忆和本地约定的承载地

但还有一个非常重要的边界:

workspace 本身不是硬沙箱

如果你只记住“workspace 是目录”,你会低估它对 Agent 行为的影响。

如果你误以为“workspace 天然安全隔离”,你会高估它的安全能力。

这篇文章把这两个误区一起拆掉。

先说结论:Workspace 是上下文边界,不等于安全边界

OpenClaw 官方文档明确说明:workspace 是默认 cwd,不是硬沙箱。工具会把相对路径解析到 workspace 下,但如果没有启用 sandbox,绝对路径仍可能访问宿主机其他位置。

这句话是理解 workspace 的关键。

可以这样画:

Workspace 负责: 默认 cwd 启动文件 Agent 指令 用户信息 工具约定 记忆文件 Canvas 文件 不直接负责: 阻止所有宿主文件访问 多租户隔离 命令审批 浏览器权限 网络边界

所以 workspace 更像“Agent 的家”和“项目上下文根目录”。

真正的安全边界还要靠 sandbox、exec approvals、tool policy、Gateway auth、OS 权限等一起完成。

默认位置和 profile

OpenClaw 的默认 workspace 通常是:

~/.openclaw/workspace

如果设置了非 default 的OPENCLAW_PROFILE,默认位置会变成:

~/.openclaw/workspace-

也可以在配置里覆盖:

{ agents: { defaults: { workspace: "~/.openclaw/workspace" } } }

这解释了为什么同一台机器上可能出现多个 workspace。

但官方文档也提醒:保留多个 workspace 目录可能导致 auth 或状态漂移,因为同一时间只有一个 workspace 是活跃的。

如果你看到 Agent “好像忘了规则”,第一反应不应该是模型变笨。

先检查:

当前 profile 是什么? active workspace 是哪个? AGENTS.md 是否在这个 workspace 里? 配置指向了哪个路径?

Workspace 文件图谱

OpenClaw workspace 不是空目录。

它有一组约定文件。

常见文件包括:

AGENTS.md Agent 操作规则和使用记忆的方式 SOUL.md persona、语气和边界 USER.md 用户是谁、如何称呼用户 IDENTITY.md Agent 名字、风格、身份信息 TOOLS.md 本地工具约定和使用习惯 HEARTBEAT.md heartbeat run 的轻量 checklist BOOT.md Gateway restart 后的启动检查 BOOTSTRAP.md 第一次初始化 ritual memory/YYYY-MM-DD.md 每日记忆日志 MEMORY.md 可选的长期记忆摘要 skills/ workspace 级别技能 canvas/ Canvas UI 文件

这些文件不是装饰。

它们会影响 Agent 如何理解你、如何执行任务、如何使用工具、如何保持长期上下文。

Workspace 如何进入上下文

Agent 不会把整个 workspace 一股脑塞进模型。

更合理的方式是:

启动时加载关键 bootstrap 文件 根据任务读取相关文件 必要时检索 memory 工具执行时以 workspace 为默认 cwd 把结果写回 transcript 或 workspace

这背后的原则是:

常驻上下文要短 任务相关上下文要准 长期记忆要可检索

例如:

AGENTS.md 适合放长期操作原则 TOOLS.md 适合放本机工具命令和路径约定 memory/YYYY-MM-DD.md 适合放当天变化 项目文件 需要时再读取

如果你把大量日志、长文档、历史聊天都塞进AGENTS.md,Agent 每次启动都会背负巨大上下文负担。

这是 workspace 设计中最常见的问题之一。

Workspace 与工具执行

工具执行时,workspace 通常是默认 cwd。

这带来一个好处:

相对路径稳定

例如 Agent 调用:

rg "TODO" .

它知道.大概率是当前 workspace,而不是系统某个随机目录。

但这不等于安全隔离。

如果没有启用 sandbox,绝对路径仍可能指向 workspace 外:

/Users/me/Desktop /etc /tmp

所以你要把“路径组织”和“权限隔离”分开看。

Workspace 负责组织。

Sandbox 和 approvals 负责限制。

Sandbox 启用后,workspace 语义会变化

官方 workspace 文档提到:当 sandboxing 启用且workspaceAccess不是"rw"时,工具会在~/.openclaw/sandboxes下的 sandbox workspace 中运行,而不是宿主 workspace。

这意味着:

未启用 sandbox workspace 是宿主机上的默认 cwd 启用 sandbox 工具可能在隔离副本或 sandbox workspace 中运行

用户容易困惑的是:

为什么 Agent 明明改了文件,我宿主目录没看到? 为什么 shell 看到的路径和我本机不一样? 为什么浏览器或命令的环境变了?

答案往往和 sandbox mode、workspaceAccess、挂载策略有关。

什么不应该放进 workspace

官方文档列出了一些不应该提交进 workspace repo 的内容,例如:

~/.openclaw/openclaw.json 模型 auth profiles credentials session transcripts managed skills per-agent Codex runtime account/config/thread state

这些属于运行状态、密钥、凭证或内部状态。

它们不是课程项目、不是可公开资料,也不应该随便进 git。

一个稳妥原则:

可解释 Agent 行为的规则可以放 workspace 能恢复用户上下文的私有记忆可以放私有 repo 密钥、token、凭证、session 内部状态不要放项目仓库

Workspace skills 的优先级

Workspace 下的skills/很重要。

官方文档说明,workspace-specific skills 是该 workspace 的最高优先级 skill location。当名称冲突时,它会覆盖 project、personal、managed、bundled 等其他来源。

这意味着:

workspace 可以定义非常本地化的能力

比如你的公司内部有特定部署命令:

skills/deploy-company-service/

这个 skill 可以只在当前 workspace 生效。

但这也意味着你要小心命名冲突。

如果 workspace skill 和 bundled skill 同名,它可能改变 Agent 在这个 workspace 里的行为。

一个真实场景

你把 OpenClaw 用作个人运维助手。

Workspace 里有:

AGENTS.md 永远先读 runbook,危险命令先解释 TOOLS.md 日志目录、kubectl context、常用脚本路径 memory/2026-05-28.md 今天迁移了 billing service skills/deploy-check/ 公司内部部署检查流程

你说:

检查 billing service 昨天发布后有没有异常。

Agent 会从 workspace 得到很多隐含信息:

应该如何行动 哪些工具可用 日志在哪里 今天有什么背景 哪些操作需要谨慎

但它是否能执行 shell、能否访问宿主路径、是否需要 approval,仍由工具策略和 sandbox 决定。

这就是 workspace 的正确位置。

常见误解

误解一:Workspace 就是项目源码目录

不只是。

它可以包含项目文件,也包含 Agent 指令、用户信息、记忆、工具约定、workspace skills 和 Canvas 文件。

误解二:Workspace 是安全沙箱

不是。

官方文档明确说 workspace 是默认 cwd,不是硬沙箱。需要隔离时应配置 sandbox。

误解三:把所有东西写进 AGENTS.md 会更聪明

不会。

过大的常驻上下文会浪费 token,稀释重点,增加模型误读概率。

误解四:多个 workspace 可以随便混用

不建议。

多个活跃路径容易导致配置、认证、记忆和状态漂移。

最后总结

Workspace 是 OpenClaw 的上下文根目录和默认执行位置。

它承载 Agent 指令、用户信息、工具约定、记忆、skills 和 Canvas 文件,也为工具提供默认 cwd。

但它不是硬安全边界。

一句话总结:

Workspace 负责让 Agent 知道“我在哪、该按什么规则做事”;sandbox 和 approvals 才负责限制“我能碰什么”。

本节作业

  1. 检查你的 workspace 里有哪些 bootstrap 文件。
  2. 用自己的话解释 workspace 和 sandbox 的区别。
  3. 设计一个合理的TOOLS.md,只放本机工具约定,不放大段日志。
  4. 思考:为什么多个 workspace 会导致状态漂移?
  5. 列出哪些文件不应该提交到 workspace 私有 repo。

下一节预告

下一节讲:

权限模型:Shell、Browser、文件读写的安全边界

我们会把 Gateway auth、operator trust、exec approvals、browser isolation、sandbox 和 workspaceAccess 放在一张图里讲清楚。

参考资料

  • OpenClaw Docs:Agent workspace
  • OpenClaw Docs:Sandboxing
  • OpenClaw Docs:Security
  • OpenClaw Docs:Exec approvals

原文链接:Workspace:文件系统、项目上下文和执行边界 | Harries Blog™

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 19:51:27

Python遗传算法实战:N皇后问题高效求解与工程优化

1. 项目概述:从Matlab到Python的N皇后遗传算法实战复现你有没有试过用遗传算法解一个100100棋盘上的N皇后问题?不是理论推演,不是伪代码演示,而是真刀真枪地跑通、调参、看到那个“100-Queen solution”图片在终端里跳出来——棋盘…

作者头像 李华
网站建设 2026/6/6 19:48:50

3分钟快速制作专业MDX词典:AutoMdxBuilder完全指南

3分钟快速制作专业MDX词典:AutoMdxBuilder完全指南 【免费下载链接】AutoMdxBuilder Automatically make mdx dictionaries 项目地址: https://gitcode.com/gh_mirrors/au/AutoMdxBuilder 还在为复杂的词典制作流程而烦恼吗?想要快速将PDF、图片或…

作者头像 李华
网站建设 2026/6/6 19:39:31

AT91SAM9260 Nor Flash Bootstrap移植实战:从零适配启动引导程序

1. 项目背景与挑战:当官方不再支持时最近在做一个基于AT91SAM9260的老项目,遇到了一个挺典型的嵌入式开发困境:芯片原厂和开发板供应商的技术支持断档。我们公司从百特买了一块AT91SAM9260的开发板,板子上预留了Nor Flash的焊盘&a…

作者头像 李华
网站建设 2026/6/6 19:38:38

Awoo Installer:轻松搞定Switch游戏安装的终极方案

Awoo Installer:轻松搞定Switch游戏安装的终极方案 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 对于拥有破解版Nintendo Switch的玩…

作者头像 李华