让多只 Agent 分工干活从零搭一套每天自动发飞书日报的工作流
接上篇|信息截至 2026 年 3 月|本篇读完你能搭出一个真正无人值守的日报系统
上篇我们把基础打好了:OpenClaw 跑起来了,核心配置文件知道怎么写,心跳和定时任务搞清楚了,技能也装好了。
这篇进阶。
一只 Agent 单打独斗能做很多事,但有些任务,单靠一只是不够的——信息量太大、步骤太多、还容易搞混。这时候就需要多只 Agent 分工。
我用一个完整案例来讲清楚:每天自动搜集行业信息,整理成日报,早上 7:30 准时推送到飞书群。全程无人值守,你睡觉它也在跑。
一、多智能体协作是什么,为什么需要它
打个比方。
你一个人把公司做到一定规模,会发现什么都自己干已经撑不住了。于是你开始分工:有人专门跑客户,有人专门管供应链,有人负责内部运营。你只负责统筹,不用亲自做每件具体的事。
多智能体协作是同一个逻辑。一个主 Agent 负责统筹,其他专职 Agent 各管一块,互相配合完成超出单只 Agent 能力范围的任务。
单 Agent vs 多 Agent
🦐 单只 Agent:适合步骤少、信息量小的任务。超过一定复杂度开始变慢、出错、记混。
🦐🦐🦐 多 Agent 分工:每只只做一件事,出错范围可控,并行能力强,复杂任务靠谱得多。
OpenClaw 里多 Agent 怎么通信
有两种方式,根据需求选:
方式一:sessions_spawn(按需召唤子 Agent)
主 Agent 在执行任务途中,召唤一个子 Agent 去做某件具体的事,等结果回来,继续往下走。适合单次任务流程。
方式二:独立 Agent + 消息总线(长期分工)
每只 Agent 有自己独立的 workspace 和心跳,通过共享文件夹或消息渠道(比如飞书群)交换信息。适合持续运行的分工体系,比如今天这个日报案例。
⚠️ 重要:Agent 之间的通信默认是关闭的。需要在 openclaw.json 里显式开启 agentToAgent,并指定哪些 Agent 可以互相通信:
// openclaw.json 里的配置 { "tools": { "agentToAgent": { "enabled": true,// 只允许必要的通信,不要全部开放 "allow": ["main", "researcher", "editor"] } } }
二、先把飞书接好:这一步很多人踩坑
飞书已经内置在 OpenClaw 的发行版里了,不需要单独装插件。但接入过程有几个细节容易搞错,提前说清楚。
Step 1:创建飞书自定义机器人应用
登录飞书开放平台(lark 用 open.larksuite.com),点"创建应用"→"自建应用"。
创建完成后记下:App ID 和 App Secret,后面要用。
Step 2:开启机器人功能,配置必要权限
在应用设置里开启"机器人"功能,然后在权限管理里添加以下权限:
{"scopes":
{"tenant": ["contact:contact.base:readonly", "docx:document:readonly", "im:chat:read", "im:chat:update", "im:message.group_at_msg:readonly", "im:message.p2p_msg:readonly", "im:message.pins:read", "im:message.pins:write_only", "im:message.reactions:read", "im:message.reactions:write_only", "im:message:readonly", "im:message:recall", "im:message:send_as_bot", "im:message:send_multi_users", "im:message:send_sys_msg", "im:message:update", "im:resource", "application:application:self_manage", "cardkit:card:write", "cardkit:card:read", "contact:user.basic_profile:readonly"], "user": ["contact:user.employee_id:readonly", "offline_access", "base:app:copy", "base:field:create", "base:field:delete", "base:field:read", "base:field:update", "base:record:create", "base:record:delete", "base:record:retrieve", "base:record:update", "base:table:create", "base:table:delete", "base:table:read", "base:table:update", "base:view:read", "base:view:write_only", "base:app:create", "base:app:update", "base:app:read", "sheets:spreadsheet.meta:read", "sheets:spreadsheet:read", "sheets:spreadsheet:create", "sheets:spreadsheet:write_only", "docs:document:export", "docs:document.media:upload", "board:whiteboard:node:create", "board:whiteboard:node:read", "calendar:calendar:read", "calendar:calendar.event:create", "calendar:calendar.event:delete", "calendar:calendar.event:read", "calendar:calendar.event:reply", "calendar:calendar.event:update", "calendar:calendar.free_busy:read"]}}
如果你还需要它写飞书文档或知识库,还要加:docs:document、wiki:wiki。权限申请后需要企业管理员审批,自建企业应用一般可以自己审。
Step 3:在 OpenClaw 里连接飞书
openclaw channels login
选择 Feishu,输入 App ID 和 App Secret,完成。
Step 4:获取发送目标的 ID
发消息需要知道目标群或个人的 ID(格式是 oc_xxxxxxxx)。最简单的方式是在目标群里 @ 机器人发一条消息,然后查 OpenClaw 日志:
openclaw logs --follow | grep "chat_id"
⚠️ 最常见的坑:任务显示成功但飞书没收到消息
通常是权限没开全。检查 im:message:send_as_bot 有没有在列表里,这条权限经常被漏掉。
三、完整案例:多 Agent 飞书自动日报
下面完整拆解一个我实际在跑的工作流。目标:
• 每天早上 7:30,自动搜集我关注的行业信息
• 整理成一份有结构的日报
• 推送到指定飞书群,我上班前能看到
整体架构:三只 Agent,各司其职
🦐 主 Agent(协调者)
负责整体流程调度和最终发送。由 Cron 定时触发,按顺序调用其他两只 Agent,汇总结果,发飞书。
🦐 信息员 Agent(研究者)
专门负责搜索和抓取。按预设关键词,在限定时间范围(过去 24 小时)内搜索多个信息源,去重过滤,输出原始素材列表。
🦐 编辑 Agent(内容整理)
接收原始素材,按固定模板提炼摘要,排好格式,输出可以直接发送的日报正文。
拆成三只的理由:信息员不需要关心格式,编辑不需要会搜索,主 Agent 只管调度。每只职责单一,出问题容易定位,模型可以用不同的(比如信息员用便宜的,编辑用质量好的),成本可控。
配置步骤
Step 1|创建三个 Agent
openclaw agents add researcher openclaw agents add editor# main 是默认存在的,不需要单独创建
Step 2|为每个 Agent 写 SOUL.md
每个 Agent 有自己的 workspace,在对应目录下创建 SOUL.md:
# ~/.openclaw/agents/researcher/workspace/SOUL.md 你是信息搜集专员。你的唯一职责是: 接收关键词和时间范围,搜索指定来源, 去掉重复和广告内容,返回一个原始信息列表。 规则: - 只返回原始列表,不要做任何总结或改写 - 每条包含:标题、一句话描述、来源链接 - 完成后立即回报,不要等待
Step 3|在主 Agent 的 USER.md 里写好日报配置
# 主 Agent 的 USER.md — 日报专项配置 ## 日报关键词 [填入你关注的关键词,比如:AI工具更新、OpenClaw、大模型发布] ## 信息来源(优先级排序) Google News、科技媒体RSS、相关行业网站 ## 日报格式 标题:📰 [日期] 今日信息摘要 每条格式:📌 [一句话摘要] | 来源 条目数:3-5条 长度:总字数不超过500字 ## 发送目标 飞书群 ID:[填入你的飞书群 oc_ 开头的 ID]
Step 4|主 Agent 的 SOUL.md 写好调度逻辑
# 主 Agent SOUL.md 中关于日报的部分 ## 日报流程 当收到"执行今日信息搜集"的指令时: 1. 读取 USER.md 里的关键词和信息来源 2. 调用 researcher agent,传入关键词和时间范围(过去24小时) 3. 等待 researcher 返回原始列表(超过8分钟无回应则重试一次) 4. 将原始列表传给 editor agent,要求按格式整理 5. 收到整理好的正文后,调飞书技能发送到指定群 6. 发送成功后,将今日已推送的条目标题存入 memory/[日期].md (防止明天重复推相同内容)
Step 5|设定 Cron 任务
openclaw cron add \ --name "飞书早间日报" \ --cron "30 7 * * 1-5" \# 周一到周五,7:30 触发 --tz "Asia/Shanghai" \ --session isolated \ --message "执行今日信息搜集,按流程整理发送日报。" \ --announce \ --channel feishu
确认设置:openclaw cron list,看到任务出现且状态为 enabled 就对了。
四、实际跑起来之前,先看这四个坑
坑 1:子 Agent 做完了,主 Agent 不知道
任务分下去了,子 Agent 悄悄做完,主 Agent 没收到回报,以为还在等,最后超时失败。
解法:在子 Agent 的 SOUL.md 里写死"完成后必须立即回报主 Agent";主 Agent 的调度逻辑里加超时检测(等超过 X 分钟重试一次)。
坑 2:搜出来的内容全是广告或旧新闻
关键词太宽了,或者没限定时间范围,导致搜出来一堆没价值的内容。
解法:关键词加限定词(比如"OpenClaw 发布"而不是"OpenClaw");在任务指令里明确写"只看过去24小时的内容";有条件的话加排除词(排除广告内容、排除付费墙导流)。通常需要几天调试才能稳定。
坑 3:记忆文件越来越大,开始记混
每天写入"今日已推内容",积累几个月后文件越来越大,Agent 开始漏看或记混历史记录。
解法:去重只保留最近 14 天的已推内容,更早的定期清理。在 AGENTS.md 里加:"更新去重记录时,自动删除 14 天前的条目。"
坑 4:Cron 任务日志正常但飞书没收到
最难排查的一种。任务执行日志显示成功,但飞书群里什么都没收到。
排查步骤:1) 检查飞书权限有没有 im:message:send_as_bot;2) 确认目标群 ID 格式正确(以 oc_ 开头);3) 确认机器人已被加入目标群(机器人没进群就发不出去);4) 看 OpenClaw 日志里有没有 feishu send error 字样。
五、这套系统跑起来要花多少钱
说清楚三件事:token 是什么、模型怎么计费、这套工作流实际花多少。
以下价格均截至 2026 年 3 月,以实际调用为准,不含任何优惠活动。
先搞清楚:什么是 token,怎么算钱
大模型 API 按 token 计费。Token 是模型处理文本的最小单位,不等于字数——粗略估算:
• 1 个英文单词 ≈ 1~1.3 个 token
• 1 个中文汉字 ≈ 1.5~2 个 token(中文比英文更"贵")
• 500 个汉字的文章 ≈ 750~1000 tokens
• 1 条日报正文(约 300 字)≈ 450~600 tokens
计费分两块:你发给模型的内容(输入 tokens)和模型回复你的内容(输出 tokens),输出通常比输入贵 3~8 倍。
⚠️ 一个容易被忽视的细节
每次调用 API,你发过去的不只是你当次输入的文字——还包括 Agent 的所有上下文:SOUL.md、USER.md、MEMORY.md、对话历史……这些也全部计入输入 tokens。上下文越长,每次调用越贵。Heartbeat 每30分钟触发一次,每次都要带上全部上下文,这是 OpenClaw 最大的隐性成本。
主流模型 API 价格(截至 2026 年 3 月)
汇率参考:1 USD ≈ 7.2 CNY(2026 年 3 月),API 按美元结算时折算为人民币仅供参考。
实际消耗拆解:钱都花在哪
以"三只虾 + 飞书日报 + 常规 Heartbeat"这套配置为例,按工作日运行,模型用 DeepSeek V3.2 做信息员、Claude Haiku 4.5 做编辑(比 Sonnet 便宜 5 倍)。
📰 每次日报任务(每工作日 1 次)
信息员(DeepSeek):上下文 + 搜索结果约 12,000 输入 tokens,摘要约 2,000 输出 tokens
→ 费用:12M×¥2 + 2M×¥8 = ¥0.024+¥0.016 = 约 ¥0.04/次(千分之4)
编辑(Claude Haiku):素材 + 模板约 5,000 输入 tokens,日报正文约 600 输出 tokens
→ 费用:5M×¥7 + 0.6M×¥36 = ¥0.035+¥0.022 = 约 ¥0.06/次
每月 22 个工作日日报合计:约 ¥2.2
🫀 Heartbeat 持续消耗(每 30 分钟 1 次 × 24 小时 = 每天 48 次)
每次带入:SOUL.md + USER.md + MEMORY.md + 近期对话历史 ≈ 6,000~10,000 tokens
每次输出:正常时仅 30~50 tokens(HEARTBEAT_OK);有事时约 200 tokens
→ 每天:48次 × 8,000 tokens = 约 384,000 tokens 输入;约 2,400 tokens 输出
用 DeepSeek V3.2:¥2 × 0.384 + ¥8 × 0.0024 = ¥0.768+¥0.019 = 约 ¥0.79/天
每月 Heartbeat 合计:约 ¥24(这是最大的隐性支出!)
📝 其他日常对话和临时任务(估算)
每天和 Agent 聊几次、发几条指令:约 10,000~20,000 tokens,每月约 ¥6~12
月度费用汇总
💡 三个实际有效的省钱方法
1. Heartbeat 用便宜模型:Heartbeat 大部分时候什么事都没有,用 DeepSeek 或 Kimi 即可,不需要动用 Claude Sonnet。
2. 控制 MEMORY.md 的大小:文件越大,每次 Heartbeat 带入的 tokens 越多。建议每月清理一次,只保留真正有用的长期背景,控制在 2000 tokens 以内。
3. 避免 Heartbeat 频率过短:默认 30 分钟已经足够。改成 15 分钟,成本直接翻倍,但价值不会翻倍。
⚠️ 关于国内云服务器的续费问题
腾讯云和阿里云的优惠价通常是新用户专享,到期续费价格会高出 2~4 倍。如果打算长期用,建议一次性买 3 年优惠套餐(腾讯云目前有提供),或者用海外 VPS(Hetzner 续费不涨价)。
六、这套方案适合谁,不适合谁
✅ 搭了你会觉得值
• 每天需要了解某个行业或主题的动态,靠自己刷效率低
• 有一个团队需要统一接收信息摘要
• 有明确的关键词,知道自己想看什么
• 愿意花 1-2 个周末配置,换来之后长期省时间
❌ 先别急着搭
• 还没想好自己到底想每天看什么信息,关键词都不知道怎么定
• 对命令行操作有明显抵触,不愿意花时间学一点点基础
• 只是觉得"这个东西看起来很厉害",但还没有具体的使用场景
搭这套系统最难的不是配置——
是想清楚你每天在哪件事上浪费了时间、但它又非做不可。
想清楚了,三只虾就是你的三个员工,你只负责看结果。
💬 你最想用这套方案追踪哪个领域的信息呢? 评论区可以一起讨论关键词和信息源的配置思路。
夜猫子弦月 | 白天写代码,晚上写文章,偶尔弹古琴MeowClaw Lab 出品
夜雨聆风