多智能体沙箱与工具配置

概述 多智能体设置中的每个智能体现在可以拥有自己的: 沙箱配置(agents.list[].sandbox 覆盖 agents.defaults.sandbox) 工具限制(tools.allow / tools.deny,以及 agents.list[].tools) 这允许你运行具有不同安全配置文件的多个智能体: 具有完全访问权限的个人助手 具有受限工具的家庭/工作智能体 在沙箱中运行的面向公众的智能体 setupCommand 属于 sandbox.docker 下(全局或按智能体),在容器创建时运行一次。 认证是按智能体的:每个智能体从其自己的 agentDir 认证存储读取: ~/.openclaw/agents/<agentId>/agent/auth-profiles.json 凭证不会在智能体之间共享。切勿在智能体之间重用 agentDir。 如果你想共享凭证,请将 auth-profiles.json 复制到其他智能体的 agentDir 中。 有关沙箱隔离在运行时的行为,请参见沙箱隔离。 有关调试"为什么这被阻止了?",请参见沙箱 vs 工具策略 vs 提权 和 openclaw sandbox explain。 配置示例 示例 1:个人 + 受限家庭智能体 { "agents": { "list": [ { "id": "main", "default": true, "name": "Personal Assistant", "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } }, { "id": "family", "name": "Family Bot", "workspace": "~/.openclaw/workspace-family", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch", "process", "browser"] } } ] }, "bindings": [ { "agentId": "family", "match": { "provider": "whatsapp", "accountId": "*", "peer": { "kind": "group", "id": "[email protected]" } } } ] } 结果: ...

多 Gateway 网关(同一主机)

大多数设置应该使用单个 Gateway 网关,因为一个 Gateway 网关可以处理多个消息连接和智能体。如果你需要更强的隔离或冗余(例如,救援机器人),请使用隔离的配置文件/端口运行多个 Gateway 网关。 隔离检查清单(必需) OPENCLAW_CONFIG_PATH — 每个实例的配置文件 OPENCLAW_STATE_DIR — 每个实例的会话、凭证、缓存 agents.defaults.workspace — 每个实例的工作区根目录 gateway.port(或 --port)— 每个实例唯一 派生端口(浏览器/画布)不得重叠 如果这些是共享的,你将遇到配置竞争和端口冲突。 推荐:配置文件(--profile) 配置文件自动限定 OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH 范围并为服务名称添加后缀。 # main openclaw --profile main setup openclaw --profile main gateway --port 18789 # rescue openclaw --profile rescue setup openclaw --profile rescue gateway --port 19001 按配置文件的服务: openclaw --profile main gateway install openclaw --profile rescue gateway install 救援机器人指南 在同一主机上运行第二个 Gateway 网关,使用独立的: 配置文件/配置 状态目录 工作区 基础端口(加上派生端口) 这使救援机器人与主机器人隔离,以便在主机器人宕机时可以调试或应用配置更改。 ...

在线状态

OpenClaw"在线状态"是以下内容的轻量级、尽力而为的视图: Gateway 网关本身,以及 连接到 Gateway 网关的客户端(mac 应用、WebChat、CLI 等) 在线状态主要用于渲染 macOS 应用的实例标签页,并为运维人员提供快速可见性。 在线状态字段(显示的内容) 在线状态条目是具有以下字段的结构化对象: instanceId(可选但强烈推荐):稳定的客户端身份(通常是 connect.client.instanceId) host:人类友好的主机名 ip:尽力而为的 IP 地址 version:客户端版本字符串 deviceFamily / modelIdentifier:硬件提示 mode:ui、webchat、cli、backend、probe、test、node,… lastInputSeconds:“自上次用户输入以来的秒数”(如果已知) reason:self、connect、node-connected、periodic,… ts:最后更新时间戳(自纪元以来的毫秒数) 生产者(在线状态来源) 在线状态条目由多个来源生成并合并。 1)Gateway 网关自身条目 Gateway 网关始终在启动时植入一个"self"条目,这样即使在任何客户端连接之前,UI 也能显示 Gateway 网关主机。 2)WebSocket 连接 每个 WS 客户端都以 connect 请求开始。在成功握手后,Gateway 网关为该连接更新插入一个在线状态条目。 为什么一次性 CLI 命令不会显示 CLI 经常为短暂的一次性命令进行连接。为避免实例列表被刷屏,client.mode === "cli" 不会被转换为在线状态条目。 3)system-event 信标 客户端可以通过 system-event 方法发送更丰富的周期性信标。mac 应用使用此方法报告主机名、IP 和 lastInputSeconds。 4)节点连接(role: node) 当节点通过 Gateway 网关 WebSocket 以 role: node 连接时,Gateway 网关为该节点更新插入一个在线状态条目(与其他 WS 客户端流程相同)。 ...

在 Raspberry Pi 上运行 OpenClaw

目标 在 Raspberry Pi 上运行持久、常驻的 OpenClaw Gateway 网关,一次性成本约 $35-80(无月费)。 适用于: 24/7 个人 AI 助手 家庭自动化中心 低功耗、随时可用的 Telegram/WhatsApp 机器人 硬件要求 Pi 型号 内存 是否可用? 说明 Pi 5 4GB/8GB ✅ 最佳 最快,推荐 Pi 4 4GB ✅ 良好 大多数用户的最佳选择 Pi 4 2GB ✅ 可以 可用,添加交换空间 Pi 4 1GB ⚠️ 紧张 使用交换空间可行,最小配置 Pi 3B+ 1GB ⚠️ 慢 可用但较慢 Pi Zero 2 W 512MB ❌ 不推荐 最低配置: 1GB 内存,1 核,500MB 磁盘 推荐: 2GB+ 内存,64 位系统,16GB+ SD 卡(或 USB SSD) ...

在 Oracle Cloud(OCI)上运行 OpenClaw

目标 在 Oracle Cloud 的 Always Free ARM 层上运行持久化的 OpenClaw Gateway 网关。 Oracle 的免费层非常适合 OpenClaw(特别是如果你已经有 OCI 账户),但有一些权衡: ARM 架构(大多数东西都能工作,但某些二进制文件可能仅支持 x86) 容量和注册可能比较麻烦 成本比较(2026) 提供商 方案 配置 价格/月 说明 Oracle Cloud Always Free ARM 最多 4 OCPU,24GB RAM $0 ARM,容量有限 Hetzner CX22 2 vCPU,4GB RAM ~ $4 最便宜的付费选项 DigitalOcean Basic 1 vCPU,1GB RAM $6 易用的 UI,文档完善 Vultr Cloud Compute 1 vCPU,1GB RAM $6 多个地区 Linode Nanode 1 vCPU,1GB RAM $5 现为 Akamai 的一部分 先决条件 Oracle Cloud 账户(注册)——如果遇到问题请参阅社区注册指南 Tailscale 账户(在 tailscale.com 免费) 约 30 分钟 1) 创建 OCI 实例 登录 Oracle Cloud Console 导航到 Compute → Instances → Create Instance 配置: Name: openclaw Image: Ubuntu 24.04 (aarch64) Shape: VM.Standard.A1.Flex(Ampere ARM) OCPUs: 2(或最多 4) Memory: 12 GB(或最多 24 GB) Boot volume: 50 GB(最多 200 GB 免费) SSH key: 添加你的公钥 点击 Create 记录公网 IP 地址 提示: 如果实例创建失败并显示"Out of capacity",尝试不同的可用性域或稍后重试。免费层容量有限。 ...

在 macOS 虚拟机上运行 OpenClaw(沙箱隔离)

推荐默认方案(大多数用户) 小型 Linux VPS 用于永久在线的 Gateway 网关,成本低。参见 VPS 托管。 专用硬件(Mac mini 或 Linux 机器)如果你想要完全控制和住宅 IP 用于浏览器自动化。许多网站会屏蔽数据中心 IP,所以本地浏览通常效果更好。 混合方案: 将 Gateway 网关保持在廉价 VPS 上,当你需要浏览器/UI 自动化时,将你的 Mac 作为节点连接。参见节点和 Gateway 网关远程。 当你特别需要 macOS 独有功能(iMessage/BlueBubbles)或想要与日常 Mac 严格隔离时,使用 macOS VM。 macOS VM 选项 在你的 Apple Silicon Mac 上运行本地 VM(Lume) 使用 Lume 在你现有的 Apple Silicon Mac 上的沙箱 macOS VM 中运行 OpenClaw。 这为你提供: 隔离的完整 macOS 环境(你的主机保持干净) 通过 BlueBubbles 支持 iMessage(在 Linux/Windows 上不可能) 通过克隆 VM 即时重置 无需额外硬件或云成本 托管 Mac 提供商(云) 如果你想要云端的 macOS,托管 Mac 提供商也可以: ...

在 Hetzner 上运行 OpenClaw(Docker,生产 VPS 指南)

目标 使用 Docker 在 Hetzner VPS 上运行持久的 OpenClaw Gateway 网关,带持久状态、内置二进制文件和安全的重启行为。 如果你想要"约 $5 实现 OpenClaw 24/7",这是最简单可靠的设置。 Hetzner 定价会变化;选择最小的 Debian/Ubuntu VPS,如果遇到 OOM 再扩容。 我们在做什么(简单说明)? 租用一台小型 Linux 服务器(Hetzner VPS) 安装 Docker(隔离的应用运行时) 在 Docker 中启动 OpenClaw Gateway 网关 在主机上持久化 ~/.openclaw + ~/.openclaw/workspace(重启/重建后保留) 通过 SSH 隧道从你的笔记本电脑访问控制 UI Gateway 网关可以通过以下方式访问: 从你的笔记本电脑进行 SSH 端口转发 如果你自己管理防火墙和令牌,可以直接暴露端口 本指南假设在 Hetzner 上使用 Ubuntu 或 Debian。 如果你使用其他 Linux VPS,请相应地映射软件包。 通用 Docker 流程请参见 Docker。 快速路径(有经验的运维人员) 配置 Hetzner VPS 安装 Docker 克隆 OpenClaw 仓库 创建持久化主机目录 配置 .env 和 docker-compose.yml 将所需二进制文件烘焙到镜像中 docker compose up -d 验证持久化和 Gateway 网关访问 你需要什么 具有 root 访问权限的 Hetzner VPS 从你的笔记本电脑进行 SSH 访问 基本熟悉 SSH + 复制/粘贴 约 20 分钟 Docker 和 Docker Compose 模型认证凭证 可选的提供商凭证 WhatsApp 二维码 Telegram 机器人令牌 Gmail OAuth 1) 配置 VPS 在 Hetzner 中创建一个 Ubuntu 或 Debian VPS。 ...

在 GCP Compute Engine 上运行 OpenClaw(Docker,生产 VPS 指南)

目标 使用 Docker 在 GCP Compute Engine VM 上运行持久化的 OpenClaw Gateway 网关,具有持久状态、内置二进制文件和安全的重启行为。 如果你想要"OpenClaw 24/7 大约 $5-12/月",这是在 Google Cloud 上的可靠设置。 价格因机器类型和区域而异;选择适合你工作负载的最小 VM,如果遇到 OOM 则扩容。 我们在做什么(简单说明)? 创建 GCP 项目并启用计费 创建 Compute Engine VM 安装 Docker(隔离的应用运行时) 在 Docker 中启动 OpenClaw Gateway 网关 在主机上持久化 ~/.openclaw + ~/.openclaw/workspace(重启/重建后仍保留) 通过 SSH 隧道从你的笔记本电脑访问控制 UI Gateway 网关可以通过以下方式访问: 从你的笔记本电脑进行 SSH 端口转发 如果你自己管理防火墙和令牌,可以直接暴露端口 本指南使用 GCP Compute Engine 上的 Debian。 Ubuntu 也可以;请相应地映射软件包。 有关通用 Docker 流程,请参阅 Docker。 快速路径(有经验的运维人员) 创建 GCP 项目 + 启用 Compute Engine API 创建 Compute Engine VM(e2-small,Debian 12,20GB) SSH 进入 VM 安装 Docker 克隆 OpenClaw 仓库 创建持久化主机目录 配置 .env 和 docker-compose.yml 内置所需二进制文件、构建并启动 你需要什么 GCP 账户(e2-micro 符合免费层条件) 已安装 gcloud CLI(或使用 Cloud Console) 从你的笔记本电脑 SSH 访问 对 SSH + 复制/粘贴有基本了解 约 20-30 分钟 Docker 和 Docker Compose 模型认证凭证 可选的提供商凭证 WhatsApp QR Telegram bot token Gmail OAuth 1) 安装 gcloud CLI(或使用 Console) 选项 A:gcloud CLI(推荐用于自动化) ...

在 DigitalOcean 上运行 OpenClaw

目标 以 $6/月(或使用预留定价 $4/月)在 DigitalOcean 上运行持久的 OpenClaw Gateway 网关。 如果你想要 $0/月的选项且不介意 ARM + 特定提供商的设置,请参阅 Oracle Cloud 指南。 成本比较(2026) 提供商 方案 配置 价格/月 备注 Oracle Cloud Always Free ARM 最高 4 OCPU、24GB RAM $0 ARM,容量有限 / 注册有坑 Hetzner CX22 2 vCPU、4GB RAM €3.79 (~$4) 最便宜的付费选项 DigitalOcean Basic 1 vCPU、1GB RAM $6 界面简单,文档完善 Vultr Cloud Compute 1 vCPU、1GB RAM $6 多地区可选 Linode Nanode 1 vCPU、1GB RAM $5 现为 Akamai 旗下 选择提供商: DigitalOcean:最简单的用户体验 + 可预测的设置(本指南) Hetzner:性价比高(参见 Hetzner 指南) Oracle Cloud:可以 $0/月,但更麻烦且仅限 ARM(参见 Oracle 指南) 前提条件 DigitalOcean 账户(注册可获 $200 免费额度) SSH 密钥对(或愿意使用密码认证) 约 20 分钟 1) 创建 Droplet 登录 DigitalOcean 点击 Create → Droplets 选择: Region: 离你(或你的用户)最近的地区 Image: Ubuntu 24.04 LTS Size: Basic → Regular → $6/mo(1 vCPU、1GB RAM、25GB SSD) Authentication: SSH 密钥(推荐)或密码 点击 Create Droplet 记下 IP 地址 2) 通过 SSH 连接 ssh root@YOUR_DROPLET_IP 3) 安装 OpenClaw # Update system apt update && apt upgrade -y # Install Node.js 22 curl -fsSL https://deb.nodesource.com/setup_22.x | bash - apt install -y nodejs # Install OpenClaw curl -fsSL https://openclaw.ai/install.sh | bash # Verify openclaw --version 4) 运行新手引导 openclaw onboard --install-daemon 向导将引导你完成: ...

图像与媒体支持 — 2025-12-05

WhatsApp 渠道通过 Baileys Web 运行。本文档记录了发送、Gateway 网关和智能体回复的当前媒体处理规则。 目标 通过 openclaw message send --media 发送带可选标题的媒体。 允许来自网页收件箱的自动回复在文本旁边包含媒体。 保持每种类型的限制合理且可预测。 CLI 接口 openclaw message send --media <path-or-url> [--message <caption>] --media 可选;标题可以为空以进行纯媒体发送。 --dry-run 打印解析后的负载;--json 输出 { channel, to, messageId, mediaUrl, caption }。 WhatsApp Web 渠道行为 输入:本地文件路径或 HTTP(S) URL。 流程:加载到 Buffer,检测媒体类型,并构建正确的负载: 图像: 调整大小并重新压缩为 JPEG(最大边 2048px),目标为 agents.defaults.mediaMaxMb(默认 5 MB),上限 6 MB。 音频/语音/视频: 直通最大 16 MB;音频作为语音消息发送(ptt: true)。 文档: 其他任何内容,最大 100 MB,可用时保留文件名。 WhatsApp GIF 风格播放:发送带 gifPlayback: true 的 MP4(CLI:--gif-playback),使移动客户端内联循环播放。 MIME 检测优先使用魔数字节,然后是头信息,最后是文件扩展名。 标题来自 --message 或 reply.text;允许空标题。 日志:非详细模式显示 ↩️/✅;详细模式包含大小和源路径/URL。 自动回复管道 getReplyFromConfig 返回 { text?, mediaUrl?, mediaUrls? }。 当存在媒体时,网页发送器使用与 openclaw message send 相同的管道解析本地路径或 URL。 如果提供多个媒体条目,则按顺序发送。 入站媒体到命令(Pi) 当入站网页消息包含媒体时,OpenClaw 下载到临时文件并暴露模板变量: {{MediaUrl}} 入站媒体的伪 URL。 {{MediaPath}} 运行命令前写入的本地临时路径。 当启用每会话 Docker 沙箱时,入站媒体被复制到沙箱工作区,MediaPath/MediaUrl 被重写为相对路径如 media/inbound/<filename>。 媒体理解(如果通过 tools.media.* 或共享的 tools.media.models 配置)在模板化之前运行,可以将 [Image]、[Audio] 和 [Video] 块插入 Body。 音频设置 {{Transcript}} 并使用转录进行命令解析,因此斜杠命令仍然有效。 视频和图像描述保留任何标题文本用于命令解析。 默认情况下只处理第一个匹配的图像/音频/视频附件;设置 tools.media.<cap>.attachments 以处理多个附件。 限制与错误 出站发送上限(WhatsApp 网页发送) ...