🍑 OpenClaw 每日新玩法 | 2026-03-28
📌 本期主题:多 Agent 协作系统 - 让 AI 员工 24/7 自主工作
💡 一句话亮点:构建 Builder-Orchestrator-Executor 框架,实现多 Agent 自主协作,无需人工干预即可完成复杂任务
🎯 这个玩法是什么?
核心功能:通过任务看板(Kanban)+ 守护进程(Daemon)+ Cron 调度,实现多个 AI Agent 之间的自主任务分配和协作。适用场景:
- 需要多个 AI 角色配合的复杂工作流
- 24/7 不间断的自动化任务
- 需要人工审批的关键节点
- 跨平台内容发布和运营
- 节省时间:从人工协调 2 小时/天 → 全自动 0 分钟
- 任务完成率:从 60% → 95%+
- 响应速度:从分钟级 → 秒级触发
🤔 为什么需要这个玩法?
痛点场景
❌ 之前的麻烦做法:- 需要在不同 Agent 之间手动复制粘贴信息
- 每个任务都要人工触发和监控
- 任务状态不透明,不知道进展如何
- 多个 Agent 之间无法自主沟通
- 手动分配任务:15 分钟/次
- 进度跟踪:30 分钟/天
- 结果汇总:20 分钟/天
- 总计:65 分钟/天
- 任务遗漏
- 信息传递错误
- 状态不同步
解决方案
✅ OpenClaw 如何自动化:# 多 Agent 协作架构
架构模式:Builder-Orchestrator-Executor
角色分工:
Builder(构建者):
- 负责任务规划和设计
- 生成详细 SOP
- 创建任务工单
Orchestrator(协调者):
- 监听任务看板
- 分配任务给 Executor
- 监控进度和状态
Executor(执行者):
- 执行具体任务
- 返回执行结果
- 更新任务状态
- 从 5 个人工步骤 → 0 个(全自动)
- 从 65 分钟/天 → 0 分钟
- 无需学习复杂的 Agent 通信协议
- 无需编写调度代码
- 开箱即用的任务看板
🛠️ 实现步骤
前置条件
kanban-board、daemon-scheduler详细步骤
步骤 1:创建任务看板数据库
-- 任务表
CREATE TABLE tasks (
id UUID PRIMARY KEY,
title TEXT NOT NULL,
description TEXT,
status TEXT DEFAULT 'todo', -- todo, needs_input, doing, done
assigned_to TEXT,
payload JSONB,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- 任务状态变更日志
CREATE TABLE task_history (
id UUID PRIMARY KEY,
task_id UUID REFERENCES tasks(id),
old_status TEXT,
new_status TEXT,
changed_by TEXT,
changed_at TIMESTAMP DEFAULT NOW()
);
步骤 2:配置守护进程(Daemon)
# daemon_worker.py
import time
import json
from supabase import create_client
class TaskWorker:
def __init__(self):
self.supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
self.poll_interval = 60 # 60 秒轮询一次
def poll_tasks(self):
"""轮询待处理任务"""
response = self.supabase.table('tasks')\
.select('*')\
.eq('status', 'needs_input')\
.execute()
return response.data
def dispatch_task(self, task):
"""分发任务给 Agent"""
# 通过 sessions_spawn 唤醒 Agent
payload = task['payload']
# 执行任务...
def run(self):
"""主循环"""
while True:
tasks = self.poll_tasks()
for task in tasks:
self.dispatch_task(task)
time.sleep(self.poll_interval)
if __name__ == '__main__':
worker = TaskWorker()
worker.run()
步骤 3:配置 Cron 调度任务
# 编辑 crontab
crontab -e
# 添加每日摘要任务(每天早上 8 点)
0 8 * * * cd /root/.openclaw/operation && python3 scripts/daily_digest.py
# 添加每 3 小时学习任务
0 */3 * * * cd /root/.openclaw/operation && python3 scripts/autonomous_brain.py
步骤 4:配置 Agent 通信
// hooks/handler.js - Agent 启动时加载上下文
module.exports = async function(session) {
// 1. 加载 Agent 身份
const identity = await loadIdentity();
// 2. 检测待处理任务
const pendingTasks = await checkPendingTasks();
// 3. 设置在线状态
await setOnlineStatus(true);
// 4. 如果有任务,立即处理
if (pendingTasks.length > 0) {
await processTasks(pendingTasks);
}
};
步骤 5:实现任务流转
任务状态流转图:
todo → needs_input → doing → done
↑ ↓ ↓
└─────────┴───────────┘
(失败重试)
状态说明:
- todo: 待处理(Worker 不自动 pickup)
- needs_input: 待输入(Worker 自动 pickup)
- doing: 执行中
- done: 已完成
代码/配置
完整示例:多 Agent 协作工作流# 工作流配置
name: 内容发布工作流
version: 1.0
agents:
- id: builder
name: 内容策划 Agent
role: builder
triggers:
- event: new_topic
action: create_content_plan
- id: writer
name: 内容创作 Agent
role: executor
triggers:
- task_type: content_plan
action: write_article
- id: publisher
name: 发布 Agent
role: executor
triggers:
- task_type: article_ready
action: publish_to_platforms
workflow:
1. builder 创建内容计划 → 任务看板
2. writer 领取任务 → 撰写文章 → 任务看板
3. publisher 领取任务 → 发布到多平台 → 完成
💡 进阶技巧
技巧 1:Agent 议会(Council)
让多个 Agent 讨论并给出统一意见:
# council_discussion.py
async def run_council(topic, agents):
"""Agent 议会讨论"""
opinions = []
# 每个 Agent 独立发表意见
for agent in agents:
opinion = await agent.analyze(topic)
opinions.append(opinion)
# 汇总意见
consensus = synthesize_opinions(opinions)
return consensus
技巧 2:夜间自主构建(Overnight Builds)
设置 Agent 在夜间自主完成任务:
# 夜间构建任务
0 2 * * * cd /root/.openclaw/operation && python3 overnight_build.py \
--task "构建新功能的原型" \
--agent "builder" \
--timeout 28800 # 8 小时
技巧 3:任务优先级队列
根据优先级自动排序任务:
# 优先级定义
PRIORITY_LEVELS = {
'critical': 1, # 立即处理
'high': 2, # 1 小时内
'normal': 3, # 24 小时内
'low': 4 # 有空时处理
}
# 按优先级排序
tasks.sort(key=lambda t: t['priority'])
⚠️ 注意事项
坑点 1:Cron 任务超时
问题:复杂任务在 Cron 中超时失败解决方案:
# ❌ 错误做法:直接在 Cron 中运行复杂任务
@cron.schedule('0 8 * * *')
def daily_digest():
generate_report() # 可能运行 30 分钟
# ✅ 正确做法:Spawn 子 Agent 独立运行
@cron.schedule('0 8 * * *')
def daily_digest():
spawn_subagent(task='generate_report')
# Cron 立即返回,不等待
坑点 2:Agent 离线
问题:Agent 不在线,任务无法执行解决方案:
- 配置 Heartbeat 机制(每 3-5 分钟上线一次)
- 使用持久化任务队列(Supabase)
- 配置失败重试(最多 3 次)
坑点 3:任务重复执行
问题:多个 Worker 同时处理同一任务解决方案:
# 使用数据库锁
def claim_task(task_id):
result = supabase.rpc('claim_task', {'p_task_id': task_id}).execute()
return result.success # 只有第一个 Worker 能成功
安全提示
- ⚠️ 不要将 Agent 私钥硬编码在代码中
- ⚠️ 使用环境变量存储敏感信息
- ⚠️ 配置任务执行权限(哪些任务需要人工审批)
- ⚠️ 定期备份任务数据库
🚀 延伸玩法
玩法 1:AI SDR(销售开发代表)
自动执行外联邮件任务:
工作流:
1. 从 LinkedIn 抓取潜在客户
2. AI 撰写个性化邮件
3. 人工审批邮件内容
4. 自动发送邮件
5. 跟踪打开率和回复率
玩法 2:内容工厂
批量生产内容:
工作流:
1. 监控热点话题(RSS/Twitter)
2. 自动生成选题
3. 分配给 Writer Agent
4. 撰写文章
5. 发布到多平台(CSDN、公众号、知乎)
6. 收集数据反馈
玩法 3:代码开发流水线
自动化代码开发:
工作流:
1. 接收需求(Issue/PR)
2. Builder Agent 设计方案
3. Coder Agent 编写代码
4. Reviewer Agent 代码审查
5. Tester Agent 运行测试
6. Deployer Agent 部署上线
组合技:完整自动化业务
线索获取 → 客户跟进 → 方案制定 →
合同签订 → 交付执行 → 售后支持
全流程 AI 化,人工只负责关键审批!
📌 关键代码片段
1. 任务分发器
// dispatcher.js
async function dispatchTask(task) {
// 1. 更新任务状态
await supabase.table('tasks')
.update({ status: 'doing' })
.eq('id', task.id);
// 2. 唤醒对应 Agent
const agent = getAgentForTask(task.type);
await sessions_spawn({
agentId: agent,
task: task.payload,
mode: 'run'
});
// 3. 记录日志
await logTaskAction(task.id, 'dispatched', agent);
}
2. 任务完成回调
// task_complete.js
async function onTaskComplete(taskId, result) {
// 1. 更新任务状态
await supabase.table('tasks')
.update({
status: 'done',
payload: { ...result }
})
.eq('id', taskId);
// 2. 检查是否有后续任务
const nextTasks = await findDependentTasks(taskId);
for (const next of nextTasks) {
await dispatchTask(next);
}
// 3. 发送通知
await notifyCompletion(taskId, result);
}
3. 每日摘要生成
# daily_digest.py
async def generate_daily_digest():
"""生成每日工作摘要"""
# 1. 收集今日任务
tasks = await get_today_tasks()
# 2. 收集会议记录
meetings = await get_today_meetings()
# 3. 收集邮件活动
emails = await get_email_stats()
# 4. AI 生成摘要
digest = await llm_summarize({
'tasks': tasks,
'meetings': meetings,
'emails': emails
})
# 5. 发送邮件
await send_email(
to='user@company.com',
subject='每日工作摘要',
body=digest
)
🎓 学习资源
官方文档:- OpenClaw Cron 调度:https://docs.openclaw.ai/cron
- Agent 通信协议:https://docs.openclaw.ai/a2a
- 任务看板技能:https://clawhub.com/skills/kanban-board
- 10 个 Agent 24/7 运行:https://x.com/boniteja/status/xxx
- Ultron 代理团队管理投资流程:https://x.com/jason/status/xxx
记住:
真正的自动化不是让 Agent 做简单任务,而是让它们自主协作完成复杂工作流。你的角色从执行者转变为监督者和决策者。
夜雨聆风