Filesystem 组件
代理的关系部分指向配置;磁盘上的部分则位于安装根目录下。该布局按作用域组织,而非单一的扁平树状结构:实例级状态、跨代理共享资源以及各代理的私有数据各自拥有独立的顶级目录。
<install>/
├── data/ — instance-wide state (not per-agent)
│ ├── sessions/ — chat session stores
│ │ └── sessions.db, acp-sessions.db
│ ├── state/ — runtime state
│ │ └── costs.jsonl, runtime-trace.jsonl
│ ├── devices.db — paired-device metadata
│ └── memory/ — shared instance memory
│ └── brain.db, audit.db, response_cache.db,
│ MEMORY_SNAPSHOT.md, archive/
├── shared/ — resources agents draw on in common
│ └── skills/<bundle>/ — skill bundles
│ └── SKILL.md, scripts/, references/, assets/
└── agents/ — per-agent private data
└── <alias>/
└── workspace/ — the agent's jailed filesystem sandbox
└── memory/
└── brain.db
这三个根映射到三个作用域:
data/存放属于整个安装的状态,而不是某个单独 agent 的:chatsessions/、运行时state/(成本跟踪等)、devices.db中的配对设备元数据,以及data/memory/下的共享实例 memory。有效的 gateway bearer tokens 仍属于 config 状态;devices.db使配对设备可见且可管理。shared/存放各 agent 共用的资源,主要是位于shared/skills/<bundle>/下的技能包。agents/<alias>/包含某个 agent 的所有私有内容。默认情况下,agent 的工作区为<install>/agents/<alias>/workspace/,agent 读取或写入的所有内容都保留在其中。agent 的身份来源是相对于此工作区解析的。除非你显式授予跨 agent 访问权限,否则 agent 会被 隔离 在其自己的工作区内。
工作区
工作区是代理的文件系统沙箱。以下字段根据架构生成:
access
跨代理工作区允许列表。空映射表示不授予任何同级访问权限。
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.workspace.access 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.workspace.access 字段。
zeroclaw config
zeroclaw config set agents.<alias>.workspace.access <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__workspace__access=
path
可选的显式工作区路径。None = 从 <install>/agents/<alias>/workspace/ 推导。
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.workspace.path 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.workspace.path 字段。
zeroclaw config
zeroclaw config set agents.<alias>.workspace.path <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__workspace__path=
read_memory_from
跨智能体记忆允许列表。空列表仅允许访问本地记忆。
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.workspace.read_memory_from 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.workspace.read_memory_from 字段。
zeroclaw config
zeroclaw config set agents.<alias>.workspace.read_memory_from <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__workspace__read_memory_from=
unrestricted_filesystem
应急通道:设为 true 时,agent 可以在主机文件系统允许的任何位置进行读写操作。默认关闭;开启此选项的操作可被审计。
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.workspace.unrestricted_filesystem 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.workspace.unrestricted_filesystem 字段。
zeroclaw config
zeroclaw config set agents.<alias>.workspace.unrestricted_filesystem <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__workspace__unrestricted_filesystem=
有两点值得说明:
access是用于跨代理文件系统共享的入站允许列表。为空表示隔离(仅限自身工作区);每个条目为指定的同级代理授予对该代理工作区的读取或写入权限。unrestricted_filesystem是应急开关:当设置为true时,代理可以访问主机文件系统允许的任何内容。它默认处于关闭状态,开启此选项的操作可被审计。
内存
每个代理在其工作区下保留自己的内存存储(agents/<alias>/workspace/memory/),与 data/memory/ 中的共享实例内存分开。后端按每个代理进行选择:
backend
此代理使用的后端类型。新代理默认为 Sqlite;一旦代理拥有磁盘数据,该值将被锁定。
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.memory.backend 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.memory.backend 字段。
zeroclaw config
zeroclaw config set agents.<alias>.memory.backend <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__memory__backend=
后端对新 agent 默认使用 SQLite,而一旦 agent 已写入磁盘数据,该值就会被锁定,因此你不能在现有内存之下悄悄替换后端。跨 agent 内存共享通过 workspace 的 read_memory_from 允许列表显式开启。关于 memory model 本身,请参见 Runtime internals。关于跨系统状态映射,请参见 Runtime state and persistence。
身份
代理的身份(其个性)按代理单独获取:
aieos_inline
内联 AIEOS JSON(文件路径的替代方式)
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.identity.aieos_inline 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.identity.aieos_inline 字段。
zeroclaw config
zeroclaw config set agents.<alias>.identity.aieos_inline <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__identity__aieos_inline=
aieos_path
AIEOS JSON 文件的路径(相对于工作区)
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.identity.aieos_path 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.identity.aieos_path 字段。
zeroclaw config
zeroclaw config set agents.<alias>.identity.aieos_path <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__identity__aieos_path=
format
身份格式:“openclaw”(默认)或“aieos”
将它放置在任何表面上:
网关仪表板
打开 /config/agents 并设置 agents.<alias>.identity.format 字段。
zerocode
在 Config 窗格中,设置 agents.<alias>.identity.format 字段。
zeroclaw config
zeroclaw config set agents.<alias>.identity.format <value>
环境变量
导出此覆盖配置(POSIX shell;可放入 ~/.bashrc、~/.zshrc、.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:
export ZEROCLAW_agents__<alias>__identity__format=
format 用于选择如何加载身份。默认方式读取项目的 personality 文件;备选方式加载 AIEOS JSON 定义,可以来自相对于工作区的路径,也可以是内联定义。