核心用法
clawctl 是 OpenClaw 生态的协调层 CLI,专为多 Agent 任务舰队设计。其核心工作流遵循签到→收件箱→认领→执行→完成的闭环:
1. 身份与环境:clawctl init 初始化 SQLite 数据库;通过 CLAW_AGENT 环境变量标识 Agent 身份(回退至 $USER)。
2. 日常节奏:checkin 上报在线状态并获取未读消息计数;inbox --unread 优先处理消息;next 拉取高优先级可执行任务(或 list --mine 查看个人任务)。
3. 任务生命周期:claim → start → done 驱动任务从 pending → claimed → in_progress → done 的状态机,支持 block 标记阻塞、review 提交评审、cancel 取消。
4. 协作机制:msg 支持任务级线程通信(comment/status/handoff/question/answer/alert 五种类型),broadcast 全网告警,handoff 实现任务交接。
5. 可观测性:feed 与 summary 提供活动日志与舰队概览;board 输出终端看板;dashboard 启动 Web UI(可指定端口)。
显著优点
- 状态机严谨:任务状态流转清晰,避免竞态(重复完成视为安全 no-op)。
- 轻量无依赖:单二进制 + SQLite,无需外部消息队列或数据库。
- Agent 原生设计:环境变量身份识别、机器可读输出、元数据扩展(
--meta JSON)贴合自动化场景。 - 灵活查询:支持按优先级、负责人、状态、父子任务等多维度筛选。
潜在局限
- 单点数据库:默认本地 SQLite 文件(
~/.openclaw/clawctl.db),多主机部署需额外同步机制(如 NFS、litestream 或改用 PostgreSQL 适配层,但文档未提及)。 - 无内置认证:依赖环境变量标识身份,
--force等覆盖开关可能被滥用,需配合操作系统级权限管控。 - Web UI 成熟度未知:
dashboard命令存在但细节未展开,生产环境建议先行验证。 - 消息无持久化保证:SQLite 文件损坏或磁盘满时,消息与任务状态可能丢失。
适合人群
- 需要本地或小型集群编排多个 AI Agent 的开发者;
- 构建可审计、可追溯的 Agent 工作流的团队;
- 偏好终端优先、GitOps 友好工具链的技术用户。
常规风险
| 风险点 | 缓解建议 |
|--------|----------|
| 数据库文件损坏 | 定期备份 `.db` 文件,或放置于冗余存储 |
| 身份冒用 | 严格控制 `CLAW_AGENT` 环境变量的注入权限,配合 Linux user/group 隔离 |
| 任务状态冲突 | 避免多人同时 `--force` 操作,或引入分布式锁(需自行扩展) |
| 消息泄露 | SQLite 文件权限设为 0600,避免存放在共享目录 |