1. 为什么单Agent跑不动内容流水线:多Agent系统选题到发布全链路拆解
很多人第一次接触 AI 内容生产,都是从“一个对话框 + 一段提示词”开始的。你给它一个热点,它给你一篇稿子,看起来很美。但真跑起来你会发现三个致命问题:第一,它不会自己找热点,你得手动喂;第二,它写完就完了,配图、排版、发布全靠你;第三,也是最要命的,它今天写得像科技博主,明天写得像情感电台,风格完全不受控。
我试过用单个 Agent 硬扛整条链路,结果是每天花在“纠正它”上的时间,比自己写还多。后来才想明白一件事:内容生产本质上是一条流水线,而流水线上的每个工位,需要的技能是不一样的。找热点需要的是“广撒网 + 抗干扰”,写稿需要的是“风格稳定 + 结构清晰”,审核需要的是“挑刺 + 事实核查”,发布需要的是“多平台适配 + 定时执行”。你让一个模型同时干这四件事,它必然顾此失彼。
这就是多 Agent 系统要解决的问题。所谓多 Agent 系统,说白了就是把一个复杂任务拆成若干个子任务,每个子任务交给一个专门的 Agent 去负责,Agent 之间通过文件、消息或者工作流引擎传递结果。它和“一个模型反复调用”最大的区别在于:每个 Agent 有自己的身份设定、自己的工具权限、自己的输出格式,彼此之间是松耦合的。一个 Agent 挂了,不会导致整条线崩掉;一个 Agent 的输出格式变了,只要接口约定不变,下游照样能跑。
放到内容工厂这个场景里,一条完整的链路至少包含五个环节:选题、生成、审核、配图、发布。对应到 Agent 角色,就是猎犬 Agent(监控热点)、主编 Agent(选题决策)、创作 Agent(文案生成)、品控 Agent(风格与事实审核)、运营 Agent(多平台分发)。这五个角色串起来,才构成一个能 7x24 小时运转的流量机。
适合谁来搭这套东西?三类人最合适。第一类是个人博主,一个人运营两三个平台,想用自动化把日更压力降下来;第二类是矩阵号玩家,手里有十几个账号,需要批量生产差异化内容;第三类是做垂直领域知识付费的,需要持续输出专业内容来引流。如果你只是想偶尔生成一篇稿子,那单 Agent 够用了,没必要上多 Agent。但如果你要的是“稳定、可预期、规模化”的交付,多 Agent 是绕不过去的。
下面我会从环境准备开始,一步步带你把这套系统搭起来。技术栈上,Agent 调度用 OpenClaw,浏览器自动化用 Playwright,模型调用统一走 TaoToken 的 API 网关,这样你可以在一个 Key 下切换不同模型,不用为每个 Agent 单独配一套鉴权。整套东西跑在一台 2 核 4G 的轻量服务器上就够,成本可控。
2. TaoToken 前置准备:多Agent系统统一模型网关与 API Key 配置
多 Agent 系统有一个容易被忽略的坑:每个 Agent 可能要用不同的模型。猎犬 Agent 需要快速抓取和摘要,用便宜的快模型就行;创作 Agent 需要文笔和风格控制,得用能力更强的模型;品控 Agent 需要判断和比对,对推理能力有要求。如果你每个模型都去单独申请 Key、单独配环境变量,管理成本会非常高,而且一旦某个平台的额度用完,整条线就卡住了。
TaoToken 在这里扮演的角色是统一网关。你只需要一个 API Key,就可以在同一个接口下调用不同厂商的模型,Agent 配置里改一下 model 字段就能切换。这对多 Agent 系统特别友好,因为你可以让每个 Agent 用最适合它的模型,而不用关心底层是哪家。
先拿 Key。访问 https://taotoken.net/api-keys ,登录后创建一个新的 API Key。建议给内容工厂单独建一个 Key,命名成content-factory,方便后续做用量统计和权限隔离。创建完把 Key 复制下来,格式类似sk-xxxxxxxx,只显示一次,丢了就得重建。
拿到 Key 之后,先做一次最小验证,确认网关通。用 curl 发一个最简单的对话请求:
curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的Key" \ -d '{ "model": "gpt-4o-mini", "messages": [{"role": "user", "content": "回复两个字:通了"}], "max_tokens": 20 }'如果返回的 JSON 里choices[0].message.content是“通了”,说明网关和 Key 都没问题。这一步很重要,因为后面所有 Agent 都依赖这个接口,如果这里不通,后面配再多也是白搭。
接下来配置环境变量。在服务器上编辑~/.bashrc或者直接写一个.env文件,把 Key 存进去:
export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api/v1"然后source ~/.bashrc让它生效。注意不要把 Key 硬编码在 Agent 的配置文件里,尤其是如果你打算把配置传到 Git 仓库,硬编码等于泄露。用环境变量引用是最基本的习惯。
模型选型上,给你一个参考对照。猎犬 Agent 做热点抓取和摘要,用gpt-4o-mini或者qwen-turbo这类快模型,成本低、响应快;主编 Agent 做选题判断,用gpt-4o或者claude-3-5-sonnet,需要一定的分析能力;创作 Agent 是核心,建议用claude-3-5-sonnet或者deepseek-chat,文笔和指令遵循都比较好;品控 Agent 用gpt-4o做事实核查和风格比对。这些模型在 TaoToken 的模型列表里都能找到,具体可用型号以 https://taotoken.net/doc 上的文档为准。
有一点要提醒:不同模型的计费方式不一样,有的按 token 计费,有的按次。在正式跑流水线之前,先用小额度测试一轮,估算一下每天的成本。一般来说,一条完整的内容生产链路(抓取 + 选题 + 生成 + 审核)消耗的 token 量在几千到一万左右,具体取决于你的 Prompt 长度和输出长度。心里有个数,后面做定时任务的时候才不会失控。
3. 可复制配置:OpenClaw 多Agent角色定义与任务编排模板
这一节是整篇文章的核心,我会把每个 Agent 的配置文件和任务编排模板都给你,你复制过去改改就能用。OpenClaw 的 Agent 配置采用 TOML 格式,每个 Agent 一个独立文件,放在~/.openclaw/agents/目录下。
先建目录结构:
mkdir -p ~/.openclaw/agents mkdir -p ~/.openclaw/workspace/{intel,content,review,publish}然后是猎犬 Agent 的配置,文件路径~/.openclaw/agents/hound.toml:
[agent] name = "hound" display_name = "猎犬" model = "gpt-4o-mini" workspace = "~/.openclaw/workspace/intel" [agent.identity] role = "情报哨兵" description = "7x24小时监控全网热点,清洗噪音,输出结构化热点列表" [agent.tools] enabled = ["browser", "file_write", "http_request"] [agent.output] format = "json" path = "~/.openclaw/workspace/intel/hot_topics.json" [agent.schedule] cron = "0 * * * *" task = "抓取微博、知乎、36氪热榜,清洗广告和推荐阅读,只保留标题、热度值、链接"主编 Agent 的配置,路径~/.openclaw/agents/editor.toml:
[agent] name = "editor" display_name = "主编" model = "gpt-4o" workspace = "~/.openclaw/workspace/intel" [agent.identity] role = "策略大脑" description = "基于热点列表和深度简报,做选题决策和角度策划" [agent.tools] enabled = ["file_read", "file_write"] [agent.input] sources = [ "~/.openclaw/workspace/intel/hot_topics.json", "~/.openclaw/workspace/intel/daily_brief.md" ] [agent.output] format = "markdown" path = "~/.openclaw/workspace/intel/topics_today.md" [agent.schedule] cron = "45 7,13,19 * * *" task = "从热点列表中选出3个最有传播潜力的选题,每个选题给出2个切入角度和标题建议"创作 Agent 的配置,路径~/.openclaw/agents/creator.toml:
[agent] name = "creator" display_name = "创作者" model = "claude-3-5-sonnet" workspace = "~/.openclaw/workspace/content" [agent.identity] role = "内容生产者" description = "按选题和风格模板生成多规格文案" [agent.tools] enabled = ["file_read", "file_write", "http_request"] [agent.input] sources = ["~/.openclaw/workspace/intel/topics_today.md"] [agent.style] dna_path = "~/.openclaw/workspace/content/style_dna.md" consistency_threshold = 0.8 [agent.output] format = "markdown" path = "~/.openclaw/workspace/content/draft_{timestamp}.md" [agent.schedule] cron = "0 8,14,20 * * *" task = "根据今日选题生成一篇1500字文章,开头有钩子,中间3个核心观点,结尾引导互动"品控 Agent 的配置,路径~/.openclaw/agents/reviewer.toml:
[agent] name = "reviewer" display_name = "品控" model = "gpt-4o" workspace = "~/.openclaw/workspace/review" [agent.identity] role = "质量守门人" description = "风格一致性评分、事实核查、幻觉检测" [agent.tools] enabled = ["file_read", "file_write", "http_request"] [agent.input] sources = ["~/.openclaw/workspace/content/draft_*.md"] [agent.review] style_check = true fact_check = true threshold = 0.8 on_fail = "notify" [agent.output] format = "json" path = "~/.openclaw/workspace/review/report_{timestamp}.json"运营 Agent 的配置,路径~/.openclaw/agents/publisher.toml:
[agent] name = "publisher" display_name = "运营" model = "gpt-4o-mini" workspace = "~/.openclaw/workspace/publish" [agent.identity] role = "分发执行者" description = "多平台适配、定时发布、数据回流" [agent.tools] enabled = ["file_read", "http_request"] [agent.platforms] channels = ["wechat", "zhihu", "xiaohongshu"] [agent.schedule] cron = "30 8,14,20 * * *" task = "读取审核通过的内容,按各平台格式适配后发布,记录发布结果"配置写完之后,用openclaw agents list验证一下,应该能看到五个 Agent 都在列表里。如果某个 Agent 没出现,检查 TOML 文件路径和语法,OpenClaw 对格式比较严格,少一个引号都会报错。
任务编排上,OpenClaw 支持两种方式:一种是每个 Agent 独立 cron,靠文件传递结果;另一种是用工作流引擎串起来。我建议先用独立 cron,简单、好排查。等跑顺了再考虑工作流。cron 的时间要错开,猎犬每小时跑一次,主编在整点后 45 分跑,创作在整点跑,品控在创作后 15 分钟跑,发布在品控后 15 分钟跑。这样形成一条时间上的流水线,前一个环节的输出刚好是后一个环节的输入。
4. 验证请求与成功结果:从单Agent到多Agent协作的跑通动作
配置写完不代表能跑。多 Agent 系统最容易出问题的地方,就是“每个 Agent 单独看都正常,串起来就断”。所以验证要分两步走:先单 Agent 验证,再全链路验证。
单 Agent 验证,从猎犬开始。手动触发一次:
openclaw agent run hound --task "抓取今日知乎热榜前10条"跑完之后检查~/.openclaw/workspace/intel/hot_topics.json,应该能看到一个 JSON 数组,每条包含title、heat、url三个字段。如果文件是空的,或者格式不对,先看日志:
openclaw agent logs hound --tail 50常见问题是浏览器自动化被反爬拦截,或者选择器写错了。Playwright 默认的 User-Agent 容易被识别,可以在配置里加一个user_agent字段,模拟真实浏览器。
猎犬通了之后,手动跑主编:
openclaw agent run editor --task "基于 hot_topics.json 做今日选题"检查topics_today.md,应该能看到 3 个选题,每个选题下面有角度和标题建议。如果主编说“没有输入”,说明它读不到猎犬的输出,检查两个 Agent 的 workspace 路径是否一致,以及文件权限。
创作 Agent 的验证稍微复杂一点,因为它依赖风格 DNA。先建一个style_dna.md,写清楚你的风格要求,比如:
# 风格 DNA ## 语气 - 轻松但不轻浮,像朋友聊天 - 多用短句,少用长难句 - 专业术语要解释,不堆砌 ## 结构 - 开头 200 字内必须有钩子 - 中间分 3 个核心观点,每个观点配一个案例 - 结尾引导评论,不用“综上所述” ## 禁忌 - 不用 emoji - 不用“随着...的发展” - 不写空洞的总结然后手动触发创作:
openclaw agent run creator --task "根据 topics_today.md 生成第一篇"跑完检查content/draft_*.md,看文章是否符合风格 DNA 的要求。如果风格漂移,调整style_dna.md里的描述,越具体越好。
品控 Agent 的验证,重点是看它能不能正确打分。手动跑:
openclaw agent run reviewer --task "审核最新的 draft"检查review/report_*.json,应该包含style_score、fact_issues、passed三个字段。如果style_score低于 0.8,passed应该是 false,并且触发通知。
全链路验证,把所有 Agent 的 cron 临时改成每 5 分钟跑一次,观察一轮完整流程。你可以用一个简单的监控脚本看每个环节的输出时间戳:
watch -n 30 'ls -lt ~/.openclaw/workspace/intel/ ~/.openclaw/workspace/content/ ~/.openclaw/workspace/review/'如果看到hot_topics.json更新后,topics_today.md在 5 分钟内更新,draft_*.md再更新,report_*.json最后更新,说明链路通了。任何一环卡住,就去查那个 Agent 的日志。
成功跑通一轮之后,你会看到这样的结果:猎犬每小时产出热点列表,主编每天三次产出选题,创作每天三次产出草稿,品控自动打分,运营自动发布。整个过程你只需要在品控触发通知的时候看一眼,确认没问题就放行。这就是 7x24 小时内容工厂的基本形态。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth 报错对照
多 Agent 系统跑起来之后,报错是常态。这一节我把最常见的几类错误和排查方法列出来,你遇到的时候可以直接对照。
401 Unauthorized。这个最直接,就是 Key 不对或者没传。检查三件事:第一,TAOTOKEN_API_KEY环境变量有没有生效,用echo $TAOTOKEN_API_KEY确认;第二,请求头里Authorization字段格式对不对,必须是Bearer sk-xxx,中间有一个空格;第三,Key 有没有过期或者被禁用,去 https://taotoken.net/api-keys 看一眼状态。如果是在 Docker 或者 systemd 里跑,环境变量可能没传进去,需要在 service 文件里显式声明。
local proxy failed。这个报错通常出现在 Agent 尝试访问外部网络的时候。OpenClaw 的浏览器工具默认走系统网络,如果你的服务器网络环境有特殊配置,可能会拦截。排查方法:先用curl -I https://taotoken.net/api/v1/models确认服务器本身能出网,然后在 OpenClaw 配置里检查http_request工具的超时设置,默认 30 秒,网络慢的时候容易超时。把超时调到 60 秒试试。
reading choices 报错。这个一般出现在解析模型返回的时候,报错信息类似cannot read property 'choices' of undefined。原因是模型返回的 JSON 结构和你预期的不一样。常见情况有两种:一是模型返回了错误信息而不是正常结果,比如额度不足、模型不存在;二是流式返回和非流式返回混用了。排查方法:在 Agent 配置里把stream设为 false,先确保非流式能跑通。然后在代码里加一层判断,如果response.choices不存在,打印完整的response看看到底返回了什么。
OAuth 相关报错。如果你用的是 Claude Code 或者某些需要 OAuth 授权的工具,可能会遇到OAuth token expired或者invalid_grant。这类报错和 API Key 是两套体系,OAuth 走的是授权码流程,token 有有效期。排查方法:检查你的 OAuth 配置里的client_id、client_secret、refresh_token是否完整,然后手动触发一次刷新。如果用的是 Claude Code 的 Anthropic 接入方式,确认 Base URL 指向的是https://taotoken.net/api,而不是其他地址。
除了这四类,还有一个高频问题是“Agent 跑完了但没输出”。这种情况先看 workspace 目录的写权限,ls -ld ~/.openclaw/workspace/*,确认当前用户有写权限。然后看 Agent 的 output 配置,path 是不是写错了,format 是不是和实际输出匹配。有时候 Agent 输出了 markdown,但配置里写的是 json,解析就会失败。
最后提醒一点:多 Agent 系统的报错往往有传导性。猎犬挂了,主编就没输入,创作就没选题,整条线看起来都在报错,但根因只有一个。排查的时候从最上游开始,先确认猎犬正常,再往下查。不要一上来就盯着创作 Agent 的报错看,那样容易绕远路。
6. 长期运行与扩展:把内容工厂变成真正的流量机
跑通一轮不难,难的是让它稳定跑一个月。这一节聊几个长期运行的关键点,以及后续怎么扩展。
第一是成本控制。多 Agent 系统每天消耗的 token 量不小,尤其是创作 Agent 用强模型的时候。建议在 TaoToken 的 console 里设置每日额度上限,超过就暂停,避免意外跑飞。另外,猎犬 Agent 的抓取频率可以按需调整,不是每个领域都需要每小时抓一次,有些领域每天抓三次就够了。
第二是风格 DNA 的迭代。风格一致性评分不是设一次就完事,你需要定期看品控的报告,把评分低的文章拿出来分析,看是哪个维度出了问题,然后更新style_dna.md。这是一个持续调优的过程,跑得越久,风格越稳。
第三是扩展新的 Agent 角色。五个 Agent 是基础配置,你还可以加数据 Agent(分析发布后的阅读、点赞、评论数据,回流给主编做选题参考)、视频 Agent(把图文内容转成短视频脚本)、私域 Agent(把公域流量引导到私域)。每加一个 Agent,整条线的能力就强一分。
第四是人工介入的节点设计。全自动不等于完全无人,最佳比例是 AI 完成 80% 的基础工作,人工把控 20% 的关键节点。关键节点包括:选题方向确认、敏感内容审核、品牌调性把控。品控 Agent 触发通知的时候,你花两分钟看一眼,确认没问题就放行,有问题就打回重做。这个介入频率是可以接受的。
如果你想把内容工厂的能力复用到其他场景,比如电商详情页生成、知识库问答、客服自动回复,核心思路是一样的:拆解任务、定义角色、编排流程、验证闭环。多 Agent 系统的价值不在于某个 Agent 有多强,而在于它们能协同完成单个 Agent 做不到的事。
整套系统跑顺之后,你每天花在内容生产上的时间会从几个小时降到十几分钟。剩下的时间,你可以用来做更有价值的事:思考方向、研究受众、优化策略。这才是内容工厂真正的意义——不是替代你,而是把你从重复劳动里解放出来。
如果你在搭建过程中遇到配置问题,可以去 https://taotoken.net/doc 查接入文档,里面有各模型的详细参数和示例。需要调试模型效果的话,https://taotoken.net/models 可以直接对话测试,不用写代码就能验证 Prompt 效果。长期跑编码类 Agent 的话,https://taotoken.net/coding-plan 有专门的套餐,比按量计费划算。