Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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 的:chat sessions/、运行时 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 map · default {}

跨代理工作区允许列表。空映射表示不授予任何同级访问权限。

将它放置在任何表面上:

网关仪表板

打开 /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 string? · default

可选的显式工作区路径。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 AgentAlias[] · default []

跨智能体记忆允许列表。空列表仅允许访问本地记忆。

将它放置在任何表面上:

网关仪表板

打开 /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 bool · default false

应急通道:设为 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 MemoryBackendKind · default "sqlite"

此代理使用的后端类型。新代理默认为 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 string? · default null

内联 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 string? · default null

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 string · default "openclaw"

身份格式:“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 定义,可以来自相对于工作区的路径,也可以是内联定义。