Star-Office-UI-Node 实战:从 0 到 1 接入 OpenClaw 的多 Agent 看板

项目地址先放这里,避免读到最后还找链接:

项目预览图(可直接放掘金正文):


多 Agent 协作里,最难排障的一件事不是模型能力,而是状态不可见。你知道任务在跑,但不知道谁卡住、谁离线、谁正在执行关键步骤。Star-Office-UI-Node 的目标很明确:把这个"黑盒协作"变成"实时可观察"。

这个项目是 Star-Office-UI 的 Node.js 复刻版,后端由 Flask 改为 Express,接口行为尽量兼容原版,方便 OpenClaw/龙虾/自研 Agent 低成本接入。

核心能力不是 UI,而是这条生命周期协议:

join-agent -> agent-push -> leave-agent

1. 本地启动

bash 复制代码
cd /Users/hfy/wm-code/Star-Office-UI-Node
pnpm install
pnpm start

默认地址:http://127.0.0.1:18791

端口占用时:PORT=18792 pnpm start

健康检查:

bash 复制代码
curl -s http://127.0.0.1:18791/health

2. API 速览(接入必须知道)

  • GET /health:服务健康
  • GET /status:主 Agent 状态
  • POST /set_state:设置主 Agent 状态
  • GET /agents:访客 Agent 列表
  • POST /join-agent:访客加入
  • POST /agent-push:状态心跳
  • POST /leave-agent:访客离开

状态枚举:idle / writing / researching / executing / syncing / error

兼容映射:busy -> writingrun/exec -> executingsearch -> researching

3. OpenClaw 对接步骤(可直接照抄)

Step 1:启动后 join,一次拿到 agentId

bash 复制代码
curl -s -X POST http://127.0.0.1:18791/join-agent \
  -H "Content-Type: application/json" \
  -d '{
    "name": "openclaw-agent-01",
    "joinKey": "ocj_starteam02",
    "state": "idle",
    "detail": "just joined"
  }'

返回里的 agentId 必须缓存(内存或本地文件)。

Step 2:每 10~30 秒推送状态

bash 复制代码
curl -s -X POST http://127.0.0.1:18791/agent-push \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "agent_xxx",
    "joinKey": "ocj_starteam02",
    "name": "openclaw-agent-01",
    "state": "executing",
    "detail": "running task #A-129"
  }'

Step 3:进程退出时 leave

bash 复制代码
curl -s -X POST http://127.0.0.1:18791/leave-agent \
  -H "Content-Type: application/json" \
  -d '{"agentId":"agent_xxx"}'

4. 我给的生产建议(别跳过)

  1. agent-push 增加 timeout + retry + exponential backoff。
  2. 收到 403/404 说明会话失效:停止 push,重新 join。
  3. detail 字段标准化:任务ID | 阶段 | 动作,后续诊断会轻松很多。
  4. SIGINT/SIGTERM 强制调用 leave,避免"幽灵在线"。

5. 结论

Star-Office-UI-Node 的价值不在"像素风界面",而在它把多 Agent 状态协议沉淀成了一个可快速部署、可直接接入、可持续扩展的协作层。

如果你已经在并行跑 Agent,这类状态看板建议尽早上,不然团队越大,状态黑盒带来的沟通和排障成本越高。

相关推荐
NiceCloud喜云7 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
Are_You_Okkk_7 小时前
基于MonkeyCode解析AI研发新模式,根治开发低效痛点
大数据·人工智能·开源·ai编程
wordbaby7 小时前
React Native + RNOH:跨页面数据回传的最佳实践与避坑指南
前端·react native
丷丩7 小时前
MapLibre GL JS第22课:查看本地GeoJSON
前端·javascript·map·mapbox·maplibre gl js
Front思8 小时前
AI前端工程师需要具备能力+
前端·人工智能·ai
ZC跨境爬虫10 小时前
跟着 MDN 学CSS day_29:(掌握文本与字体样式的核心艺术)
前端·css·ui·html·tensorflow
李子琪。11 小时前
网络空间安全深度实战:CSRF 漏洞原理剖析与基于 Token 的纵深防御体系构建(全栈实验报告)
前端·安全·csrf
冰暮流星11 小时前
javascript之history对象介绍
前端·笔记
IT_陈寒12 小时前
Vite热更新失灵?你可能漏了这个配置
前端·人工智能·后端
丷丩12 小时前
MapLibre GL JS第19课:实时更新要素
前端·javascript·gis·map·mapbox·maplibre gl js