适合:同时使用OpenClaw和WorkBuddy(VS Code分支)的用户 | 2026年7月
同时用两个AI助手的人可能都遇到过这个问题:两个AI各自为政,你让它们各干各的,结果经常重复劳动、互相不知道对方做了什么、交付的东西也不匹配。
其实,只要解决一个问题就够了:谁指挥,谁执行?
把两个AI的职责分开:
角色 | AI | 职责 |
|---|---|---|
大脑(规划者) | QClaw(丘) | 理解需求 → 拆解任务 → 判断质量 → 整合结果 |
手(执行者) | WorkBuddy(沃) | 搜集资料 → 生成文档 → 写代码 → 输出结果 |
简单说:你告诉QClaw想做什么,QClaw来指挥WorkBuddy干活,你只做最终决策。
让两个AI协作,只需要三样东西:
你的协作目录/
├── inbox/ # 给WorkBuddy的任务清单
├── outbox/ # WorkBuddy交付的结果
├── shared/ # 双方共享的状态
└── questions/ # WorkBuddy提问,等QClaw回答实际目录结构截图:

上图展示了 OpenClaw-WorkBuddy-Tasks 主目录,包含 inbox、outbox、shared、questions、answers、context 等子目录,以及 chat、ppt_output 等工作目录。
举例——写一篇小说:
你告诉QClaw:“帮我构思一本都市悬疑小说的框架”
QClaw分析后,下发TASK给WorkBuddy:
📄
inbox/TASK-001_小说框架_20260716.md“请搜集近3年豆瓣评分8分以上的都市悬疑小说,总结它们的开头写法,写一份1万字的小说框架”
WorkBuddy完成后写入:
📄
outbox/RESULT_001_小说框架_20260716.md
QClaw审核后通知你验收。
inbox 目录截图:

上图展示了 inbox 目录中的 13个TASK任务文件,包括:
TASK-001_test_handover.md - 初次握手测试TASK-003_dry_cleaning_industry_research_20260416.md - 干洗行业调研TASK-006_衣专佳299元招商方案_20260418.md - 招商方案TASK-011_私域文案系列第一批_20260421.md - 私域文案URGENT_TASK011_20260422.md - 紧急任务每个TASK文件都是Markdown格式,包含详细的任务描述、交付标准和优先级。
outbox 目录截图:

上图展示了 outbox 目录中的 31个交付文件,包括:
RESULT_001_20260416.md 到 RESULT_014_xxx.md - 任务结果报告yizhuanjia_xxx.html - 生成的网页文件make_confirm_card.js - 自动化脚本每个RESULT文件都对应一个TASK,方便追溯和审核。

两个AI和人,三方在同一空间讨论,不用每个人反复交代背景。
两个AI通过共享文件知道彼此在做什么:
# shared/workbuddy_status.md
## 当前任务
TASK-001 小说框架 ████████░░ 80%
## 待回答问题
- 主角职业背景怎么设定?
- 是否需要多线叙事?你的需求:“帮我想一个记账小程序,界面简洁,能统计每月支出”
QClaw的工作:
inbox/TASK-002_记账小程序设计.mdWorkBuddy的工作:
outbox/RESULT_002_记账小程序设计.md你的需求:“我想做一个网页版的贪吃蛇游戏,界面要好看一点”
QClaw的工作:
WorkBuddy的工作:
index.html 到指定目录你的需求:“我想写一个都市悬疑小说,主人公是一个心理医生”
QClaw的工作:
WorkBuddy的工作(每个TASK):
如果你也想实现类似的协作环境,只需要一个WebSocket服务器:
代码截图:
MEDIA:C:\Users\Administrator.qclaw\workspace\screenshot_code.png
上图展示了代码编辑器界面,背景中可以看到文件资源管理器窗口显示 outbox 目录的内容。
javascript复制
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 3847 });
// 消息广播给所有客户端
wss.on('connection', (ws) => {
ws.on('message', (data) => {
const msg = JSON.parse(data);
if (msg.type === 'message') {
// 消息持久化 + 广播
saveMessage(msg);
broadcast(msg);
}
});
});
function broadcast(data) {
wss.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
client.send(JSON.stringify(data));
}
});
}QClaw本身不能直接连WebSocket,但可以通过HTTP API发消息:
// QClaw调用的发送函数
const http = require('http');
function sendToChat(text) {
const data = JSON.stringify({
from: '丘',
content: text
});
const req = http.request({
hostname: '127.0.0.1', port: 3847,
path: '/api/send', method: 'POST',
headers: { 'Content-Type': 'application/json' }
});
req.write(data);
req.end();
}WorkBuddy(VS Code分支)可以运行Node.js脚本直连WebSocket:
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:3847');
ws.on('open', () => {
ws.send(JSON.stringify({ type: 'join', name: 'WorkBuddy' }));
});
ws.on('message', (data) => {
const msg = JSON.parse(data);
if (msg.type === 'message') {
// 收到消息,自动回复或处理任务
handleMessage(msg);
}
});不要同时给两个AI下同样的任务。正确的流程是:你 → QClaw → WorkBuddy → QClaw审核 → 你确认
口头交代任务,两个人/AI的理解经常不一样。把需求写成文件,执行者照着做,理解偏差的概率大大降低。
文件是冷冰冰的,聊天室让两个AI和人在同一个空间,有问题随时问,有进展随时同步。
组件 | 说明 | 费用 |
|---|---|---|
Node.js | 运行聊天室服务器 | 免费 |
WebSocket | 实时通信 | 免费 |
共享文件夹 | inbox/outbox/状态文件 | 免费(本地) |
QClaw | OpenClaw内置 | 免费 |
WorkBuddy | VS Code分支 | 免费 |
全程本地运行,不需要云服务器。
这套方案的核心不是技术,而是**「让一个AI负责思考,让另一个AI负责执行」**的工作方式。
通过文件流转(inbox/outbox)确保任务不丢失,通过聊天室实现实时沟通,通过状态文件保持信息同步,两个AI就能高效协作,帮你完成复杂的项目。
本文涉及的代码和截图均为实际运行系统的真实记录。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。