Skip to content

laozuzhen/claw-orchestrator

Repository files navigation

OpenClaw Orchestrator

OpenClaw Orchestrator 是一个围绕 OpenClaw 运行时构建的多 Agent 编排与协作界面。

它把三类能力收敛到一个服务里:

  • 工作流编排:用 DAG 把多个 Agent、审批、会议和分支逻辑串起来
  • 团队协作:管理 Agent、团队、知识、聊天、会议与执行日志
  • 可视化运行面板:在首页统一展示办公室场景、系统状态、活跃工作流和审批提醒

中文 | English

页面截图

首页 Dashboard

OpenClaw Orchestrator Dashboard(中文)

Agent 列表

OpenClaw Orchestrator Agents(中文)

Agent 配置

OpenClaw Orchestrator Agent Config(中文)

团队页

OpenClaw Orchestrator Teams(中文)

工作流页

OpenClaw Orchestrator Workflows(中文)

聊天页

OpenClaw Orchestrator Chat(中文)

聊天详情页

OpenClaw Orchestrator Chat Detail(中文)

当前能力

1. Agent 与团队

  • Agent 列表、详情、身份配置、规则、技能、模型配置
  • 团队列表与成员管理
  • 团队知识库管理
  • 团队会议与辩论执行

2. 工作流

  • 可视化编辑工作流
  • 已落地的节点类型包括:taskconditionapprovaljoin / parallelmeetingdebate
  • 支持执行、停止、查看执行历史、查看执行日志、导出执行日志
  • 支持工作流级与执行级 journal 持久化与导出
  • 支持定时调度与下一次运行时间计算
  • 支持人工审批与 Agent 审批
  • 审批驳回不是终止:会把审批意见拼接回原任务,并重跑最近的上游任务节点

3. 运行时与监控

  • 首页集成系统状态、Gateway 状态、活跃工作流、审批提醒和办公室场景
  • WebSocket 实时推送 + 快照轮询恢复
  • Gateway 启停 / 重启 API
  • Agent 状态采集与实时流
  • 服务启动时会自动清理“孤儿 running 执行”,避免旧残留把首页错误显示成执行中

4. 办公室场景

  • 首页包含总部大厅 / 办公室视图
  • 场景与真实 Agent 状态、审批提醒、聊天气泡和工作流信号联动
  • 这是首页的一部分,不是独立的监控页面

当前页面结构

前端主路由定义在 packages/web/src/App.tsx

  • /:首页 Dashboard(含办公室场景、状态面板、活跃工作流)
  • /agents:Agent 列表
  • /agents/:id:Agent 配置页
  • /teams:团队页
  • /teams/:id:当前会重定向回 /teams
  • /workflows:工作流编辑页
  • /chat/chat/:agentId:聊天页

说明:/monitor 当前会重定向到 /,不再作为独立主页面。

架构概览

后端

  • Python 3.10+
  • FastAPI
  • SQLite
  • WebSocket
  • 代码目录:server/openclaw_orchestrator

后端统一提供:

  • REST API
  • WebSocket 事件流
  • 静态前端托管
  • 工作流执行与调度
  • OpenClaw 桥接层

前端

  • React 18
  • TypeScript
  • Vite
  • Zustand
  • React Router
  • React Flow
  • 办公室场景组件(当前首页主实现为 React 场景,仓库内仍保留 PIXI runtime 代码)
  • 代码目录:packages/web

OpenClaw 集成方式

桥接层位于 server/openclaw_orchestrator/services/openclaw_bridge.py

当前实现的调用降级顺序:

  1. Gateway RPC
  2. Webhook HTTP
  3. JSONL 直写兜底

因此这个项目不是替代 OpenClaw,而是:

  • 复用 OpenClaw 的 Agent / session / 文件结构
  • 在其上增加编排、审批、团队和可视化层

仓库结构

openclaw-orchestrator/
├── README.md
├── README.en.md
├── package.json
├── docker-compose.yml
├── Dockerfile
├── scripts/
├── server/
│   ├── README.md
│   ├── pyproject.toml
│   ├── tests/
│   └── openclaw_orchestrator/
├── packages/
│   └── web/
│       ├── README.md
│       └── src/
└── extensions/
    └── openclaw-orchestrator/
        └── README.md

快速开始

方式一:本地开发

先安装前端依赖:

pnpm install

再安装后端:

cd server
pip install -e .[dev]
cd ..

启动前后端开发环境:

pnpm dev

如果需要在启动时同时拉起公网穿透,并在前端侧边栏显示可点击公网地址:

pnpm dev:public

默认会尝试执行 cloudflared tunnel --url http://localhost:5173,也就是 Cloudflare Quick Tunnel。

如果你已经配置了正式 Cloudflare Tunnel,可以设置:

ORCHESTRATOR_CLOUDFLARE_TUNNEL_TOKEN=你的 tunnel token
ORCHESTRATOR_CLOUDFLARE_PUBLIC_URL=https://你的固定域名

这时会改为执行 cloudflared tunnel --no-autoupdate run --token <TOKEN>

如果你仍然想完全自定义穿透命令,也可以继续设置环境变量 ORCHESTRATOR_TUNNEL_COMMAND

也可以分别启动:

pnpm dev:server
pnpm dev:web

默认地址:

  • 前端开发服务器:http://localhost:5173
  • 后端服务:http://127.0.0.1:3721
  • 健康检查:http://127.0.0.1:3721/api/health

方式二:只跑后端

cd server
pip install -e .
openclaw-orchestrator serve

方式三:Docker

仓库提供:

  • Dockerfile
  • docker-compose.yml

直接启动:

docker compose up -d

OpenClaw 插件桥接

扩展位于 extensions/openclaw-orchestrator

它当前主要桥接以下工具组:

  • Status:orchestrator_status
  • Monitor:orchestrator_monitor_statusesorchestrator_live_feed_snapshot
  • Team:团队查询与成员管理
  • Workflow:工作流查询、执行、停止、执行详情
  • Journal:工作流 / 执行日志读取与导出
  • Approval:待审批列表、审批通过 / 驳回

当前不再桥接的方向:

  • 网关生命周期工具的大部分控制项
  • Agent 聊天发送兜底工具
  • 知识库写入 / 搜索工具

安装插件:

pnpm plugin:test
pnpm plugin:install

默认是开发模式安装,会把当前仓库路径写入 OpenClaw 配置,便于本地调试。

测试与校验

后端测试:

cd server
pytest

插件测试:

pnpm plugin:test

当前文档边界

这份 README 只描述当前仓库里已经存在、且从代码入口可以确认的能力。

因此以下内容不再作为主文档承诺:

  • 独立 monitor 页面
  • 已删除或未接实的旧工作室 / 假交互描述
  • 已移除的插件工具组
  • 与当前代码不一致的旧节点清单

子模块文档

  • 后端:server/README.md
  • 前端:packages/web/README.md
  • OpenClaw 扩展:extensions/openclaw-orchestrator/README.md

License

MIT