OpenClaw的具体配置示例
OpenClaw 的多 Agent 配置核心在于“隔离”与“协作”。通过为每个 Agent 分配独立的工作区(Workspace)、沙箱环境(Sandbox)和工具权限(Tools),并结合全局的通信规则,可以构建出安全且高效的多智能体系统。
以下是基于 OpenClaw 架构整理的三类具体配置示例,涵盖基础多角色分工、安全沙箱隔离以及 Agent 间通信授权。
一、基础多角色分工配置模板
此配置适用于构建一个标准的“主管-执行”团队,例如内容创作或代码开发场景。配置定义了三个不同角色的 Agent,并明确了它们的模型偏好和基础工作区。
{ "agents": { "defaults": { "workspace": "~/.openclaw/workspace-default", "model": { "primary": "bailian/qwen-max" } }, "list": [ { "id": "leader", "name": "任务调度员", "workspace": "~/.openclaw/workspace-leader", "model": { "primary": "bailian/qwen-max" }, "subagents": { "allowAgents": [ "*" ] } }, { "id": "writer", "name": "文案专家", "workspace": "~/.openclaw/workspace-writer", "model": { "primary": "bailian/qwen-plus" }, "subagents": { "allowAgents": [] } }, { "id": "coder", "name": "开发工程师", "workspace": "~/.openclaw/workspace-coder", "model": { "primary": "bailian/qwen-coder" }, "subagents": { "allowAgents": [] } } ] } }配置解析:
-
allowAgents: ["*"]:赋予leader调度所有其他 Agent 的权限,适合作为总控节点。 -
allowAgents: []:限制writer和coder仅能独立执行任务,防止执行层 Agent 随意调用其他资源,符合最小权限原则。 - 独立 Workspace:每个 Agent 拥有独立的文件夹,确保记忆(MEMORY.md)、人格(SOUL.md)和技能(TOOLS.md)互不干扰。
二、安全沙箱与工具权限隔离配置
对于需要执行文件系统操作或代码运行的 Agent,必须配置沙箱(Sandbox)以防止误删文件或越权访问。以下示例展示了如何为“办公 Agent”开启严格沙箱,而“个人 Agent”保持宽松。
{ "agents": { "list": [ { "id": "personal", "workspace": "~/.openclaw/workspace-personal", "sandbox": { "mode": "off" } }, { "id": "work", "workspace": "~/.openclaw/workspace-work", "sandbox": { "mode": "all", "scope": "shared", "workspaceRoot": "/tmp/work-sandboxes" }, "tools": { "allow": [ "read", "write", "apply_patch", "exec" ], "deny": [ "browser", "gateway", "discord" ] } } ] } }配置解析:
-
sandbox.mode: "all":对workAgent 启用全量沙箱隔离,所有文件操作被限制在/tmp/work-sandboxes目录下,保障主机文件系统安全。 -
tools.deny:明确禁止workAgent 访问浏览器或外部通讯工具(如 Discord),防止数据泄露或非工作相关的网络请求。 -
sandbox.mode: "off":personalAgent 关闭沙箱,适合处理本地个人文件,但需注意用户自行管控风险。
三、Agent 间通信与协作授权配置
OpenClaw 默认情况下 Agent 之间是隔离的。若要实现“主管分发任务、子 Agent 汇报结果”的闭环,必须显式开启agentToAgent通信权限。
{ "tools": { "agentToAgent": { "enabled": true, "allow": [ "leader", "writer", "coder", "reviewer" ] } }, "agents": { "defaults": { "heartbeat": { "prompt": "Check in?" } } } }配置解析:
-
agentToAgent.enabled: true:全局开启 Agent 间的“内部电话线”,允许它们通过sessions_send等工具交换信息。 -
allow白名单:仅列出需要参与协作的 Agent ID。未在此列表中的 Agent 无法接收或发送跨 Agent 消息,确保通信链路可控。 -
heartbeat:配置心跳检测,当 Agent 空闲时自动响应状态,便于主管 Agent 监控任务进度和 Agent 存活状态。
四、配套工作区文件规范
除了openclaw.json主配置文件,每个 Agent 的独立工作区(Workspace)内还需包含以下核心文件,以定义其具体行为:
表格
| 文件名 | 作用说明 | 示例内容片段 |
|---|---|---|
| SOUL.md | 定义 Agent 的人格、语气和核心行为准则 | “你是一个严谨的代码审查员,只关注逻辑漏洞,不修改风格。” |
| AGENTS.md | 定义协作流程,说明如何将任务分派给其他 Agent | “若遇到前端问题,请调用coderAgent;若需文案优化,调用writer。” |
| TOOLS.md | 描述该 Agent 可使用的专属技能或外部 API | “使用git-commit技能前,必须先运行unit-test。” |
| MEMORY.md | 存储长期记忆和用户偏好,避免重复询问 | “用户偏好使用 Python 3.12,代码注释要求中文。” |
配置生效与验证
完成配置后,建议执行以下命令验证状态:
- 验证配置语法:
openclaw config get agents - 查看 Agent 列表及绑定关系:
openclaw agents list --bindings - 测试通信:向
leaderAgent 发送指令,观察其是否能成功调用writer或coder并返回整合结果。
通过上述配置,你可以构建一个既具备专业分工又拥有严格安全边界的多 Agent 系统,有效解决单一 Agent 上下文污染和权限失控的问题。
