openclaw workboard 是内置
Workboard 插件 的终端入口。它允许操作员列出卡片、创建卡片、查看单张卡片,并让正在运行的 Gateway 将已就绪的工作调度到子代理 worker 运行中。
在使用该命令前先启用插件:
用法
list
| Flag | 作用 |
|---|---|
--board <id> | 将结果限制在一个 board 命名空间内 |
--status <status> | 将结果限制在一个 Workboard 状态内 |
--json | 以机器可读 JSON 输出完整卡片列表 |
create
| Flag | 作用 |
|---|---|
--notes <text> | 初始卡片备注 |
--status <status> | 初始状态,默认 todo |
--priority <priority> | 优先级,默认 normal |
--agent <id> | 将卡片分配给某个 agent 或 owner id |
--board <id> | 将卡片存储到某个 board 命名空间 |
--labels <items> | 以逗号分隔的标签 |
--json | 以机器可读 JSON 输出创建的卡片 |
create 会直接写入 Workboard SQLite 状态。该卡片会立即在 Control UI 的 Workboard 标签页以及 Workboard 工具中可见。
show
dispatch
dispatch 会先调用正在运行的 Gateway RPC 方法
workboard.cards.dispatch。该路径使用与仪表盘 dispatch 操作相同的 subagent 运行时,因此已就绪的卡片会变成带有关联会话键的、受任务追踪的 worker 运行。分配了 agent 的卡片会使用 agent 作用域的 subagent 会话键;未分配的卡片会保留未加作用域的 subagent 键,从而保留 Gateway 配置的默认 agent。
dispatch 循环:
- 将依赖已就绪的子卡推进为
ready。 - 阻止已过期的 claim 或已超时的 worker 运行。
- 在已就绪卡片上记录 dispatch 元数据。
- 选取一小批未被 claim 的已就绪卡片。
- 为每张被选中的卡片向 dispatcher 或已分配 agent 发起 claim。
- 使用受限的卡片上下文和卡片 claim token 启动一个 subagent worker 运行。
- 在卡片上存储 worker run id、session key、当 Gateway 任务账本报告时的任务关联、执行状态以及 worker 日志。
--url 或 --token 目标的失败,会直接上报。
文本输出会报告 worker 启动结果:
started 和 startFailures;仅数据回退会包含 gatewayUnavailable: true。claim token 在卡片 JSON 输出中会被脱敏。
在仪表盘中,相同的 dispatch 结果会以简短摘要展示,因此操作员无需打开卡片详情就能看到有多少卡片被启动、推进、阻止、重新领取或失败。
斜杠命令一致性
支持命令的通道可以使用对应的斜杠命令:/workboard list 和 /workboard show 是面向授权命令发送者的读取命令。/workboard create 和 /workboard dispatch 会修改 board 状态,在聊天界面上需要 owner 身份,或者需要具备 operator.write 或 operator.admin 的 Gateway 客户端。
权限
CLI dispatch 路径会以operator.read 和 operator.write 作用域调用 Gateway RPC。只读的 Gateway token 可以通过读取方法检查 Workboard 数据,但不能创建卡片或调度 worker。
本地 list、create 和 show 命令操作的是当前 profile 使用的本地 OpenClaw 状态目录。需要不同状态根目录时,请在顶层 openclaw 命令上使用 --dev 或 --profile <name>。
故障排查
没有显示卡片
确认插件已在相同的 profile 和状态根目录下启用:--dev 或 --profile 设置。
Dispatch 显示仅为数据模式
启动或重启 Gateway:openclaw workboard dispatch。仅数据回退对本地状态清理很有用,但 worker 运行需要一个在线的 Gateway。
Dispatch 没有启动任何内容
检查是否至少有一张没有活跃 claim 的ready 卡片:
done,通过 Workboard 工具释放陈旧 claim,或者在活跃 worker 完成后再次运行 dispatch。