SuperAPI AI 工具集

remote-openclaw-deploy

部署与运维

查看项目

更新于 10-15 10:22

技能介绍

定位

这是一个远程 OpenClaw 通用部署 Skill。核心目标是用一个脚本,把任意定制化 Agent 项目部署到任意远程机器。它不是某个特定 Agent 项目专用,也不是 Mac 专用或飞书专用。任何 OpenClaw Agent 项目,只要按标准目录结构组织,即可通过一条命令完成部署。

使用场景

可用于为客户或团队部署定制化 Agent 团队;从本地开发环境推送到生产机器;多台机器批量部署同一套 Agent;项目更新后进行增量重部署。

核心理念

项目仓库位于本地,通过 tar/SSH 传输到远程机器。远程机器上的目录布局包括:~/projects/<name>/ 存放源码(可通过 git pull 更新);~/.openclaw/agents/ 存放 Agent 运行时配置;~/.openclaw/skills/ 存放 Skills;~/.openclaw/openclaw.json 用于自动注入 provider、channel 和 agent 配置。

项目目录结构(标准)

项目根目录包含 deploy.json 部署清单,用于声明 provider、channel、agent 与权限;agents/ 下按 agent 分目录,每个 agent 目录内包含 agent/ 子目录,其中有 agent.json、AGENTS.md、SOUL.md;skills/ 存放共享 skills(可选),每个 skill 含 SKILL.md;workspace/ 存放工作区文件(可选),如 AGENTS.md、SOUL.md、USER.md。

deploy.json 字段说明

deploy.json 是声明式部署清单,每个项目根目录放一个,脚本自动读取并注入远程 openclaw.json。主要字段包括:providers(模型供应商,不覆盖已有同名 provider)、agents(Agent 列表与模型,不覆盖已有同 id agent)、channels(渠道账号绑定,不覆盖已有账号,但补充缺失的 agent 路由)、tools(权限配置,直接覆盖)、workspace(默认工作区,支持 ${HOME} 与 ${PROJECT} 变量)、config_patches(任意 dot-path 补丁,精确设置到指定路径)。

安全原则是:已有配置不覆盖,避免破坏远程机器现有服务。

使用方法

基本部署命令形式为:./skills/remote-openclaw-deploy/scripts/deploy.sh <用户@主机> <项目路径> <SSH 密钥路径>。

如果项目没有 deploy.json,脚本只做四件事:传输 agents/、skills/、workspace/;设置 tools.profile=full、exec=full、elevated=true;设置 workspace 路径;重启 Gateway。此时 Provider、Channel 需手动配置。

更新部署时,本地改完代码并提交后重新部署即可,操作幂等,不会覆盖已有配置。

五阶段流程

阶段一环境探测:检查 SSH 连通性、OS/内存/磁盘、OpenClaw 版本、Gateway 状态,支持 macOS 与 Linux。阶段二传输文件:将 agents/ 传到 ~/.openclaw/agents/,skills/ 传到 ~/.openclaw/skills/,项目传到 ~/projects/,自动检测 HOME。阶段三配置注入:读取 deploy.json 并合并到 openclaw.json,涉及 provider、agent、channel、tools、workspace,依赖 Python3。阶段四重启 Gateway:优先 SIGUSR1 热重载,失败则回退到 gateway install/start。阶段五验证:检查配置错误、WS 连接数、Agent 列表、Channel 账号绑定。

常见问题与注意事项

资料中总结了一些实战坑点:飞书 account 若没有 agent 字段,所有消息会路由到 main,因此每个 account 必须显式指定 agent;workspace 放顶层会导致 Unknown key 并使 Gateway 崩溃,应使用 agents.defaults.workspace;agent.cwd 为已废弃的 Legacy key,应改用 agents.defaults.workspace;tools.elevated 必须写成对象 {"enabled": true},写布尔值会类型错误;tools.profile 只能取 minimal、coding、messaging、full 中的值;模型服务返回 503 时应切换 fallback;Tailscale 与 Clash fake-ip 环境下 SSH 连不上域名,应直接使用 100.x.x.x IP;避免硬编码 /Users/$USER,应用 $HOME 自动检测。

模板

提供 templates/deploy.json.template 作为 deploy.json 模板,复制到项目根目录修改即可。

前置条件

SSH 可达(推荐 Tailscale 组网);目标机已安装 OpenClaw;目标机有 Python3;本地有项目文件与 deploy.json。

FAQ

部署后 Agent 不回消息时,可排查 Channel account 是否有 agent 字段、模型是否 503、tools.profile 是否合适。若需支持 Telegram 或 Discord,可在 deploy.json 的 channels 中加入对应渠道配置,格式参照 OpenClaw 文档。多台机器部署同一项目时,循环运行脚本即可。回滚方式为在远程机器进入 ~/projects/<name> 后执行 git checkout <commit>,再重跑脚本。

限制

资料未提供脚本的具体源码内容、支持的 OpenClaw 版本范围、部署失败的完整错误码列表,以及除 macOS/Linux 外的平台支持情况,这些信息暂未提供。