REV4A — OpenClaw 的多代理电线板
一个命令为您的OpenClaw代理车队部署管理仪表板. 0外部数据库. 只有Node.js + Docker. (英语).
现场演示 : —— 说
* 特性
- 多集装箱代理管理 在一个孤立的多克容器中创建、监控和管理OpenClaw代理
- 代理创建向导 ——选择模板(阿特拉斯,普罗米修斯,阿尔古斯),选择LLM模型,在秒内部署代理
- 提供者同步 — 一次添加 API 密钥, 用一击将其推到所有代理容器
- 模型配置 ——从"特工"页面上的细节面板中,改变每个特工的主要型号和倒置. 提供商:OpenAI,Anthropic,Google,DeepSeek,Groq,Kimi,GLM,Quen,外加OpenRouter作为聚合器.
- 模型细节 ——每个模型行打开一个模式,其描述,价格和提供者,架构和参数计数(专家组合,上下文,视觉编码器,精度,磁盘上的权重),推理模式,能力,有来源和许可证的基准. 数字来自Hugging Face上的模型卡 加上引用一个来源的被整理的条目;没有估计
- 共享网关符 - 统治所有特工的标志 从仪表板管理,同步到所有容器
- 实时事件流 实时会话分类、代理产卵、成本报告
- 工作空间浏览器 – 从仪表板上浏览,预览并编辑代理文件(Markdown,高亮代码,JSON,CSV表格,PDF,图像,音频和视频)进行直播
- 提供者代理 — OpenAI 兼容聊天补全代理通过共享密钥金库进行路由
- 系统保健 ——运行时间会话,守护进程心跳和运行失败, cron 工作以及代理人员今天花费的,并附有建议
- 系统 ——主机的CPU,内存,互换和存储,现在和超过1h / 24h / 7d / 30d(每30 s,保留30 s);每个代理机和容器消耗什么(CPU,内存,存储,流程-每个容器的图表)和多克在磁盘上持有什么;最近对机器及其容器的提示,加上花和循环的提醒(一个会议经过其模型上下文窗口,花费一天,远远超过代理机通常的一天,一个失败的回转循环,钱留下一个供应商账户,Rev4a没有计数;警报,只有可调用)
- 每个代理商的内存限制 ——可选,从不强制:设定它用于其资源部分(应用活性)中的代理,当创建一个时,或者默认只预装配置页面上的新代理. 用法显示为对它不利,一个外出谋杀出现在最近的警报下,系统页面警告当内存高而运行的代理无限制时
- 订阅 ——将 ChatGPT Plus 或 Pro (Codex) 账户连接到一个带有设备代码的代理商,或者通过一个有指引的登录符(实验:Rev4a 安装 Claude 代码,打开Anthropic 的页面并取您粘贴的代码) 连接到一个 ChatGPT Plus 或 Pro (Codex) 的代理商,然后在代理商的 MODEL 部分中选择Rev4a 代理商模式旁边的订阅模式,之前的模型预填为倒置; 登录符留在代理商内部
- 费用 ——每名代理花费多少,由自己的OpenClaw定价,价格为Rev4a同步(包括缓冲率,DeepSeek off-pak应用):按日,代理,型号和会话,电话无法定价
- 代理服务器的代理计量 ——通过Rev4a提供者代理的每通电话,每通电话都是按代理商自己的代号计数和当时有效的价格计算的;成本页将其设定在每通代理商记录的旁边,并给代理商所见到的更明显的代理人留下了标记
- 更新屏幕 ——在Rev4a自我更新的同时,每个打开的标签都显示相和日志,服务器拒绝更改(读取和代理代理继续工作),直到新版本解答
- PWA 准备 - 安装手机进行移动监测
快速启动
在一个Ubuntu VPS上,首先安装Node.js 22并安装建设工具. Rev4a 不安装
节点.js. 这些命令将 Rev4a 作为 root 运行,其数据在 /root/.config/rev4a。 。 。 .
使用 sudo 或作为根.
# Node.js 22, build tools and the current npm package (it provides the rev4a command).
# Each step runs only if the previous one succeeded.
sudo apt-get update \
&& sudo apt-get install -y curl build-essential \
&& curl -fsSL https://deb.nodesource.com/setup_22.x -o /tmp/nodesource_setup.sh \
&& sudo bash /tmp/nodesource_setup.sh \
&& sudo apt-get install -y nodejs \
&& sudo npm i -g @flame0510/project-aether
# Then, once the install above finished without errors, start everything:
sudo rev4a serve
Npm安装了本地模块并构建了仪表板. 一开始,
rev4a serve 创建 /root/.config/rev4a/.env,在 Linux 上缺失时安装 Docker
当作为根运行时,创建 rev4a-network,并启动所有服务.
等待仪表板 在左舷3740和 [SETUP] 要显示代码 .
纯 HTTP 或 HTTPS : 建议通过倒置代用HTTPS. 如果你使用简单的
HTTP 通过 IP, 停止前景服务器 缩写+C设置
REV4A_FORCE_INSECURE_COOKIE=1 内 ~/.config/rev4a/.env (root的文件在本指南中),
,然后在打开仪表板前重新启动;否则在向导后登录循环:
printf '\nREV4A_FORCE_INSECURE_COOKIE=1\n' | sudo tee -a /root/.config/rev4a/.env
sudo rev4a serve
打开 http://<server>:3740 (替换) <server> 用您的 VPS IP, 或您的 HTTPS
仪表板地址 输入 设置代码 由当前打印 rev4a serve, (中文(简体) ),
选择您的仪表盘密码,并完成向导。 每个代码都有变化
启动直到密码存在; 配置的安装不打印或需要它.
礛 作为服务运行 所以它开始 脚. CONNECT.md (英语) 拥有完整的VPS指南,包括: 系统单位和日志.
# Custom port:
sudo rev4a serve --port 8080
# Or via the environment:
sudo env PORT=8080 rev4a serve
生产安装 : 见
CONNECT.md用于在VPS上系统部署.集装箱部署: 暂停。 词根
Dockerfile(Docker-in-Docker包装: 仪表板本身)是一条实验路径,目前尚未被建造或出版—— 详情见文件。 使用上方的 git- clone 安装 .
先决条件
| 依赖性 | 最低 | 页:1 |
|---|---|---|
| 节点.js | 22个 | 需要用于仪表板服务器 |
| 构建工具 | make, (中文(简体) ), g++, (中文(简体) ), python3 | 本地模块( E)better-sqlite3, (中文(简体) ), node-pty) 在Linux上编译. 安装 build-essential 在Debian/Ubuntu上;Ubuntu 24.04已经包括 python3 |
| 夹克 | 24岁以上 | 用于创建代理容器;安装于 rev4a serve 如果在 Linux 上作为 root 运行时丢失 |
| 无 | 10岁以上 | 和节点一起来 |
就是这样. 没有PostgreSQL,没有Redis,没有外部服务.
发展
贡献者可以在安装上述先决条件后从git克隆中工作:
git clone https://github.com/Flame0510/rev4a.git
cd rev4a
npm install
npm run dev
开发服务器使用端口3720. 直接 Next.js 开始(npm run dev) 打印
在第一个设置请求中,该终端的设置代码.
环境变量
rev4a serve 生成 ~/.config/rev4a/.env 首先带着秘密逃跑
已填入 —— 你通常从来不用手放这些 。 见
.env.实例 详细参考.
| 变量 | 默认 | 需求 | 说明 |
|---|---|---|---|
PORT | 3740 | 没有 | Dashboard HTTP 端口 |
TERMINAL_WS_PORT | 3741 | 没有 | 容器终端服务器的循环端口(浏览器使用仪表板端口) |
REV4A_PASSWORD | —— 说 | 对 | Dashboard 登录密码( 通过设置向导设置) |
REV4A_FORCE_INSECURE_COOKIE | —— 说 | 没有 | 设定为 1 由 IP 为 plain HTTP 设置以避免登录回路; 在更改后重新启动 。 偏好通过反向代理的 HTTPS |
REV4A_TOKEN | 自动生成 | 对 | API 路线和代理电话的接听符 |
REV4A_JWT_SECRET | 自动生成 | 对 | Auth 饼干的秘密 |
REV4A_API_KEY | 自动生成 | 没有 | 网关提供者端点的 API 密钥 |
GATEWAY_TOKEN | 自动生成 | 没有 | 交给代理集装箱的共享令牌 |
REV4A_DATA_DIR | ~/.config/rev4a | 没有 | 所有持久性数据的根 |
REV4A_DB | <data dir>/data/events.db | 没有 | SQLite 数据库路径 |
REV4A_DEV_ORIGINS | —— 说 | 没有 | 允许到达的额外逗号分隔主机名或 IP next dev (例如局域网地址,没有计划或港口);对生产建设没有影响 |
REV4A_ALLOWED_ORIGINS | —— 说 | 没有 | 当一个反向代理重写时, Cookie- 认证 API 的额外可信浏览器来源 Host. 逗号分离出完全起源,例如:. https://rev4a.example.com;没有通配符. 更改后重新启动Rev4a |
REV4A_SKIP_POSTINSTALL_BUILD | —— 说 | 没有 | 1 在CI中是这样 npm ci 跳过后安装 next build;工作流程作为单独的步骤来构建. CI以外,一个失败的安装后建设失败了安装. 任何非空值跳过它, 0 包含 |
REV4A_AGENT_IMAGE_REGISTRY | ghcr.io/flame0510/rev4a/openclaw-agent-base | 没有 | 记录库代理图像来自 <repository>:<OpenClaw version>A级 localhost 在普通HTTP上达到注册 |
REV4A_TRUSTED_PROXIES | —— 说 | 没有 | 以逗号分隔的IP或CIDR(例如. 192.0.2.10· ; 127.0.0.1,::1 在同一个主机上的代理),其反向代理 X-Forwarded-For 命名登录锁的客户端。 取消设置: 无 X-Forwarded-For 属于信任。 列出代理服务器自己的地址, 被绑住, 而不是在 rev4a-network 与代理人 |
REV4A_TIMEZONE | 服务器自己的区域 | 没有 | 默认仪表板时区(IANA名等). Europe/Rome),仅在无保存于 配置 > 时区; 无效名称被忽略 |
REV4A_DOCKER_WAIT_SECONDS | 90 | 没有 | 多长时间 rev4a serve 在启动时等待 Docker 守护进程, 然后再启动它 。 装入600; 0 检查一次;负值或非数值表示90。 从进程环境而不是从 .env 文件 |
登录锁定 : 从第6个错误密码在一个小时内,仪表板锁定客户端地址(30 s,翻一番可达15分钟)。 在反向代理后面,代理必须发送真正的客户端 X-Forwarded-For 其地址必须在 REV4A_TRUSTED_PROXIES (单位:千美元)127.0.0.1 用于同一主机上的代理;没有它,每个访客共享一个登录-喉咙密钥.
SEC-21最新说明: 更新后, 每个浏览器必须登录一次 。 浏览器
会话 cookie 现在带一个按键密码指纹; cookie from earlier labes
拒绝。 一旦密码更改生效,所有 cookie 都会为上一个版本发行
密码被 API 认证、 受保护的页面和终端 WebSocket 拒绝
升级。 在配置中保存的密码在重新启动Rev4a后生效 。 7天时间
饼干一生,饼干旗和 REV4A_TOKEN 持枪者的访问没有改变。 没有存储
数据、配置文件或代理批量被迁移或删除.
SEC-22 最新说明: 网关密钥保存在前面拒绝 ASCII 控制字符
修饰. 已关闭的上位键旧有畸形 .
代理例外返回 Gateway error: the upstream request failed (502个)和
只记录出错名称/代码,不保存证书以获取出错消息.
通过 stdin 输入的命令现在拒绝超出其合并 stdout/ stderr 输出
限制(默认为1 MiB),而不是在没有约束的情况下收集。 集装箱
重建保留特定的 IPv4/ IPv6 发布地址和 UDP; 普通通配符
出版物仍制作一张地图。 配置、 初始密码设置和共享环境执行
.env 模式 0600; 启动还以更广泛的权限修复旧文件
记录一次修复。 未使用者 remove-auth-profile.js 维护助手
已删除。 不需要数据库、供应商金库或代理量迁移;
旧的代理和回滚仍然兼容。 地址限制已经丢失
在早期的再创建中,无法从由此产生的多克检查中推断出.
SEC-18 最新说明: 校对:Soup
403 { "error": "Cross-site request refused" },包括兄弟姐妹子域和其他端口.
请求浏览器标记 Sec-Fetch-Site: same-origin 被接受(每个当前浏览器)
发送它, 它停留在一个反向代理, 包括nginx。 否则浏览器
Origin 主机和端口必须匹配 Host (大小写不敏感).
明确和隐含的默认端口匹配(HTTP:80,HTTPS:443),使用Origin's scheme.
只针对一个旧浏览器, 不在重写代理服务器后获取元数据 Host设置 REV4A_ALLOWED_ORIGINS 给仪表板的公众
源并重新启动 Rev4a;只列出您控制的源。 没有 Origin,请求标记
Sec-Fetch-Site: cross-site 或者说 same-site 被拒绝; same-origin, (中文(简体) ), none 缺席
元数据仍然有效. Origin: null 被拒绝。 请求: Authorization 标题
和 GET/HEAD/OPTIONS 保持他们现有的行为; 使用 Bearer 密钥的代理继续工作.
未使用的网关提供者 OAuth 设备流程端点被移除 。 活跃
订阅页面上的chatGPT连接没有改变。 没有存储数据或
证书被迁移或删除.
SEC-14最新说明: 现在需要操作员的设置代码.
环境编辑需要没有 CR、 LF 或 NUL 的字符串值( 清除存储)
非空配置值去除其转让; 不变的空转让中止).
装入器设置不再读取 .env: 开始时
rev4a serve 评论 NODE_OPTIONS, (中文(简体) ), NODE_REPL_EXTERNAL_MODULE, (中文(简体) ), LD_PRELOAD, (中文(简体) ),
LD_LIBRARY_PATH 财务报告和审定财务报表 DYLD_* 线条 .env (下册为: .env 自己为建筑
和服务器,所以仅仅在发射器中忽略它们是不够的),并登录密钥
名字,永远不要值。 在外壳或系统环境中设置此类选项 。 行修后出发相问下. js属于自己 .env 装载器(@next/env,在单独的过程中),它会从包根中加载到哪个键:如果装入器键仍然以一个形式存在,则行修无法遵循(例如,键及其键) = ),Rev4a拒绝启动并用文件登录密钥名称来修正(如果检查本身无法运行,它会登录一个警告并启动,依赖于线路修复和运行) server.js 删除加载键后加载). 数值的写法使 Next.js 和 Rev4a 准确读取它们:一个值与 #,引导或后导空格或引号为单引号;一个包含 $ 以 400 拒绝(以后的js 扩展) $VAR 数字 .env 它的加载值,甚至单引出,它的服务器会覆盖发射器通过的东西,所以密码是: $ 将在重新启动后更改; 已经输入的值 .env 无法表示的(一个单一的引号与领先/连续的空格结合), # 或主引号; 引出值末尾的回击; Unicode 行分隔符.
从操作员外壳或系统环境继承的装入器设置得到保存,
包括 NODE_OPTIONS=--max-old-space-size=4096键
达到儿童进程。 设置代码是只运行时间 : 配置从不返回或
持续 REV4A_SETUP_CODE,而发射器忽略它在 .env环境
在缺失文件以外的读出错误上写入中止; 保留已存在的点形密钥
保存其他密钥时有效。 现有密码和所储存的数据不变.
BUG-14最新说明: 配置只保存已编辑的值和补丁 .env 已经到位,
保存其他密钥(包括 GATEWAY_TOKEN 财务报告和审定财务报表 PORT页:1
还有秩序 从进程环境显示的值除非经过编辑,否则不会被保存.
未改变的值( 也是空的) 保持字节不变, 且不变
Get-to-PUT 往返不会写入文件. Rev4a 编辑 .env 仅当每行为空白、注释或一行时自动 KEY=value (引出的价值在同一行上关闭)。 含有多行或未终止引用值的文件, 下一行的值, 结尾后文本( 包括内置注释等) REV4A_TOKEN="t" # comment)),或者在同种引文(包括收尾引文)前的回击在工具之间模糊不清:从Config编辑然后回答 409 并写出任何内容( 手工编辑文件) , 运行时密钥的启动修补会用日志行跳过 。 未更改的值,包括被继承的多行值,从不编辑.
REV4A_SERVER_PID, (中文(简体) ), REV4A_STARTED_AT, (中文(简体) ), REV4A_RUNNING_VERSION, (中文(简体) ),
REV4A_TERMINAL_SECRET 财务报告和审定财务报表 REV4A_SETUP_CODE 永远无法通过配置返回
在保存中默默被忽略,包括从更古老的开放标签中忽略. 启动时, rev4a serve
自动去除这五个运行时唯一的密钥的现有任务
.env,仅记录姓名;第二次通行证不会作进一步更改。 继承
这些密钥的复制件(包括来自系统 EnvironmentFile已经
此外,在设定每点新值之前,从基子环境中清除.
以前被删除的密钥和注释无法自动还原 。 没有数据库, 提供者
需要修改密钥文件或代理文件体积; 旧代理和回滚仍然保留
与结果兼容 .env。 。 。 .
FIX-133 最新说明: 现在配置编辑替换已编辑的密钥的最后一项任务
并删除先前的重复;清除存储的非空值将删除其所有任务.
配置和运行时的密钥清理仅在普通文件检查后在物理线路上操作
上,保留无关的设置。 含糊不清的引文被拒绝 明显恢复
指令旁边 保存重新启动( R)。以前删除的设置无法重建.
自动加载器维修也承认单独的CR分离器, KEY: value 财务报告和审定财务报表
export KEY= 窗体,保留原始行尾;它评论匹配行,甚至在内部
引用多行值, 而运行时间清理跳过非平面文件 。 再运行一次
它没有进一步的改变。 部分技能提升现在报告跳过文件 。 控制 UI
链接从 ::1 编号 : [::1] 使用情况 localhost 因此, IPv6 仅限出版物仍可访问, 而
使用单独的 cookie 主机; 较老的代理机保留了符号链接倒置. CLI 图像
命令和 git 更新通过字面参数和检查路径,没有外壳.
不需要数据库、提供者密钥文件或代理文件量迁移, 也无需新建启动
添加了对所存储数据的扫描,更古老的发行版仍然可以在回滚时读取由此产生的文件.
建筑
┌──────────────────────────────────────────────────┐
│ REV4A Dashboard │
│ Next.js 16 · SQLite · no external dependencies │
└──┬───────┬───────┬───────┬───────┬───────────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Agent Agent Agent Gateway Provider
#1 #2 #3 Vault Proxy
┌──────┐┌──────┐┌──────┐┌──────┐┌────────────┐
│Docker││Docker││Docker││Shared││OpenAI-comp.│
│Open- ││Open- ││Open- ││Token ││chat proxy │
│Claw ││Claw ││Claw ││Store ││with key │
│Agent ││Agent ││Agent ││ ││vault │
└──────┘└──────┘└──────┘└──────┘└────────────┘
关键设计决定:
- 每个特工都跑在 孤立的多克容器 拥有自己的 OpenClaw 实例
- 集装箱状态为平时;持续的数据存在共享量
- 提供者 API 密钥存储一次
data/provider-keys.json并按要求同步 - 没有 PostgreSQL , 没有 Redis —— 整个仪表板使用 SQLite 通过
better-sqlite3 - 在所有容器中共享网关标志,并由UI管理
文档
| 文档 | 它包含什么 |
|---|---|
| 一般事务人员(其他职等) | 入库点和缴款规则 |
| 文件/REV4A.md | App页面、导航、代理管理、网关UI |
| 文献/档案 | 系统结构和组件布局 |
| 文献/档案 | 前端结构和设计决定 |
| 医生/集装箱-终端 | 终端 WebSocket 执行 |
| 文件/文件编号 | 设计标志和视觉标准 |
| 文件/数据/API-Refence.md | 所有包含请求/响应实例的 API 端点 |
| 文献/发展/全球网络 | 提供者同步和代理模型配置 |
| 文件/文件/文件 | 提供者登录、密钥管理、代理细节 |
| 文件/文件/数据库 | SQLite 计划和存储纸条 |
| 文件/文件/文件 | 工作空间文件探索器和编辑器 |
| 警卫 | 如何私下报告脆弱性,支持的版本 |
代理模板
| 模板 | 作用 | 说明 |
|---|---|---|
| Atlas | 开发者铅 | 编码、软件架构、PR审查、代码审查 |
| 普罗米修斯 | 技术领导/总理 | 客户项目、最后期限、特雷洛、交付品 |
| 参数 | 行动铅 | 基础设施监测、备份、克龙、警报 |
模板是简单的Markdown文件(SOUL.md、AGENTS.md、IDENTITY.md等),即
定义代理人的个性和规则。 他们进入 /root/.openclaw/workspace/
在容器创建时间.
比较
| REV4A 电话 | 克莱维克斯 | 纳诺克劳 | 梅塔克莱夫 | |
|---|---|---|---|---|
| 盘子 | QQ 完整网络用户界面 | QQ 完整网络用户界面 | 只谈 | 只谈 |
| 集装箱隔离 | 每名代理 | 每名代理 | 每名代理 | 每名代理 |
| 代理运行时间 | 打开Claw | 专有 | 克劳德代码 | 克劳德代码 |
| 数据库 | SQLite (零设置) | PostgreSQL + 红外线 | SQL 点 | SQL 点 |
| 外部服务 | 无 | PostgreSQL + 红外线 | 无 | 无 |
| 安装 | npm 全局软件包 | 插头作曲 | 点击脚本 | npm 安装 |
许可证
麻省理工学院——见 自由主义。 。 。 .