<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Orchestrator on Kalend's Blog</title><link>https://blog.kalend.top/tags/orchestrator/</link><description>Recent content in Orchestrator on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Tue, 04 Aug 2026 08:00:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/orchestrator/index.xml" rel="self" type="application/rss+xml"/><item><title>Swarm智能体集群：从单Agent到多Agent并行，架构该怎么演进</title><link>https://blog.kalend.top/2026/08/04/2026-08-04-swarm-multi-agent-architecture.html/</link><pubDate>Tue, 04 Aug 2026 08:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/08/04/2026-08-04-swarm-multi-agent-architecture.html/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;一个Agent写代码，一个Agent审代码，一个Agent部署——三个Agent协作16分钟干完的活，单Agent干了1个半小时还没搞定。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="先说结论"&gt;先说结论
&lt;/h2&gt;&lt;p&gt;单Agent有天花板：上下文塞太多信息注意力就散，规则越多遵守概率越低，复杂任务拆不开就是死路一条。&lt;/p&gt;
&lt;p&gt;2026年主流三种多Agent架构：&lt;strong&gt;Orchestrator-Executor&lt;/strong&gt;（可控但有瓶颈）、&lt;strong&gt;Swarm&lt;/strong&gt;（大规模并行但难调试）、&lt;strong&gt;Pipeline&lt;/strong&gt;（质量可控但延迟高）。没有&amp;quot;最强架构&amp;quot;，只有&amp;quot;最适合你的场景&amp;quot;。&lt;/p&gt;
&lt;h2 id="为什么单agent不够用"&gt;为什么单Agent不够用
&lt;/h2&gt;&lt;p&gt;三个硬伤：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;上下文有限&lt;/strong&gt;：128K token听起来很大，塞进代码库、文档、历史对话后，模型注意力被稀释，输出质量肉眼可见地下降&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指令遵从衰减&lt;/strong&gt;：ICML 2026南京大学研究发现，规则超过7条后，每增加1条遵从率下降约8%。你让一个Agent同时负责写代码、跑测试、审安全、部署——它大概率漏掉其中两件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单次推理有极限&lt;/strong&gt;：一个推理链拉太长，中间步骤出错后面全崩&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这跟软件工程的演进一模一样——单体应用扛不住业务复杂度，自然走向微服务拆分。Agent也一样。&lt;/p&gt;
&lt;h2 id="三种多agent架构模式"&gt;三种多Agent架构模式
&lt;/h2&gt;&lt;h3 id="模式一orchestrator-executor编排者-执行者"&gt;模式一：Orchestrator-Executor（编排者-执行者）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;核心思路&lt;/strong&gt;：一个主Agent当&amp;quot;项目经理&amp;quot;，拆任务、分配任务、验收结果。N个子Agent当&amp;quot;执行者&amp;quot;，各干各的。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌─────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ Orchestrator │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ (拆任务/分配) │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └──────┬──────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌───────┼───────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ▼ ▼ ▼
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [Worker A] [Worker B] [Worker C]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;代表框架&lt;/strong&gt;：Hermes Kanban、Google ADK、LangGraph&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：可控、可追踪、有依赖管理。任务之间可以用&lt;code&gt;parents&lt;/code&gt;字段声明依赖关系，上游没完成下游自动阻塞。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;致命缺陷&lt;/strong&gt;：Orchestrator是单点瓶颈。ICML 2026那篇论文的核心发现——&lt;strong&gt;失败往往来自Orchestrator失控，而非Executor不会干活&lt;/strong&gt;。主Agent认知过载后，要么拆错任务，要么分配错Worker，要么遗漏依赖关系。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;：有明确流程的生产任务。比如内容Pipeline（写→审→构建→发布），每个步骤清晰可定义。&lt;/p&gt;
&lt;h3 id="模式二swarm群体智能"&gt;模式二：Swarm（群体智能）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;核心思路&lt;/strong&gt;：没有中心调度器。Agent之间自主协商、动态分工，像蜂群一样涌现集体智能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代表实现&lt;/strong&gt;：Kimi K3 Swarm模式、OpenAI Swarm框架&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键数据&lt;/strong&gt;：Kimi K2.6（K3的前身）实测中，300个子Agent并行执行，完成4000个协作步骤。这不是PPT概念，是已经跑通的大规模并行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;支持大规模并行，不需要等Orchestrator分配&lt;/li&gt;
&lt;li&gt;容错性强——挂掉几个Agent，剩下的自动补位&lt;/li&gt;
&lt;li&gt;适合探索性任务，不确定最优路径时让Agent群去试&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;缺点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;调试困难，300个Agent同时跑，出了问题你都不知道谁先出错&lt;/li&gt;
&lt;li&gt;结果一致性差，同样的输入跑两次可能输出完全不同&lt;/li&gt;
&lt;li&gt;需要底层平台原生支持（Kimi K3内置，其他平台需要额外封装）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;：大规模搜索、探索性研究、需要&amp;quot;广撒网&amp;quot;的任务。&lt;/p&gt;
&lt;h3 id="模式三pipeline流水线"&gt;模式三：Pipeline（流水线）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;核心思路&lt;/strong&gt;：严格串行，上游输出就是下游输入。每个Agent只干一件事，干完传给下一个。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[Writer] → [Reviewer] → [Builder] → [Deployer]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;代表场景&lt;/strong&gt;：内容生产Pipeline、CI/CD Agent链&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可预测：每一步输入输出明确，质量可逐环节把关&lt;/li&gt;
&lt;li&gt;简单可靠：不需要复杂的协调逻辑&lt;/li&gt;
&lt;li&gt;易于调试：哪个环节出问题一目了然&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;缺点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;延迟高：串行执行，5步Pipeline每步3分钟就是15分钟&lt;/li&gt;
&lt;li&gt;不灵活：中间某步卡住，整条链停摆&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;：有严格质量要求的有序流程。最典型的就是&amp;quot;写→审→发布&amp;quot;。&lt;/p&gt;
&lt;h2 id="主流框架横评"&gt;主流框架横评
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;框架&lt;/th&gt;
					&lt;th&gt;架构风格&lt;/th&gt;
					&lt;th&gt;适用场景&lt;/th&gt;
					&lt;th&gt;GitHub Stars&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CrewAI&lt;/td&gt;
					&lt;td&gt;角色扮演+团队协作&lt;/td&gt;
					&lt;td&gt;业务流程自动化&lt;/td&gt;
					&lt;td&gt;55k+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AutoGen&lt;/td&gt;
					&lt;td&gt;自由对话+群聊模式&lt;/td&gt;
					&lt;td&gt;研究探索&lt;/td&gt;
					&lt;td&gt;60k+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;LangGraph&lt;/td&gt;
					&lt;td&gt;状态机+图结构&lt;/td&gt;
					&lt;td&gt;精确控制流&lt;/td&gt;
					&lt;td&gt;40k+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenAI Swarm&lt;/td&gt;
					&lt;td&gt;轻量调度&lt;/td&gt;
					&lt;td&gt;快速原型&lt;/td&gt;
					&lt;td&gt;实验性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Google ADK&lt;/td&gt;
					&lt;td&gt;Agent开发工具包&lt;/td&gt;
					&lt;td&gt;生产级部署&lt;/td&gt;
					&lt;td&gt;官方&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;选型决策树&lt;/strong&gt;（不用纠结，三步走）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;任务可控性要求高吗？&lt;/strong&gt;（生产环境、有明确流程）→ Orchestrator-Executor（LangGraph或Google ADK）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要大规模并行吗？&lt;/strong&gt;（搜索、探索、不确定最优路径）→ Swarm（Kimi K3 Swarm或OpenAI Swarm）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要质量可控吗？&lt;/strong&gt;（内容生产、CI/CD）→ Pipeline（任意框架都能实现）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;CrewAI适合快速搭原型（角色定义直观），AutoGen适合研究场景（自由对话模式灵活但生产不可控），LangGraph适合需要精确状态管理的复杂流程。&lt;/p&gt;
&lt;h2 id="实战经验从15小时到16分钟"&gt;实战经验：从1.5小时到16分钟
&lt;/h2&gt;&lt;p&gt;我实际跑通了一个7步内容Pipeline：写稿→审校→构建→再审→发布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;踩过的坑&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Orchestrator认知过载&lt;/strong&gt;：主Agent同时管理7个Worker的状态，第3步开始就开始分配错任务。解决：限制主Agent只做拆任务和验收，不介入执行细节&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Worker崩溃无恢复&lt;/strong&gt;：某个Worker超时后，整条Pipeline卡死。解决：设置超时自动回收（reclaim），超时后任务重新排队分配给新Worker&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件丢失&lt;/strong&gt;：上游Worker写完文件后被回收，文件还在临时目录。解决：用持久化工作目录，Worker回收不影响产出物&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;关键优化&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用&lt;code&gt;parents&lt;/code&gt;依赖链替代自然语言描述流程——依赖关系是结构化的，不是&amp;quot;你等他做完再开始&amp;quot;&lt;/li&gt;
&lt;li&gt;并行无依赖的步骤（审校和封面生成可以同时跑）&lt;/li&gt;
&lt;li&gt;从1.5小时→16分钟，核心就是&amp;quot;能并行的别串行&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="选型建议"&gt;选型建议
&lt;/h2&gt;&lt;p&gt;三种模式不是&amp;quot;选最强&amp;quot;，而是&amp;quot;选最适合&amp;quot;。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;场景&lt;/th&gt;
					&lt;th&gt;推荐模式&lt;/th&gt;
					&lt;th&gt;原因&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;内容生产（写→审→发）&lt;/td&gt;
					&lt;td&gt;Pipeline&lt;/td&gt;
					&lt;td&gt;质量可控，每步可验收&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;代码开发（需求→设计→编码→测试）&lt;/td&gt;
					&lt;td&gt;Orchestrator&lt;/td&gt;
					&lt;td&gt;任务可拆解，有依赖关系&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;大规模搜索/研究&lt;/td&gt;
					&lt;td&gt;Swarm&lt;/td&gt;
					&lt;td&gt;不确定最优路径，需要并行探索&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;客服/问答&lt;/td&gt;
					&lt;td&gt;Orchestrator&lt;/td&gt;
					&lt;td&gt;路由+执行，职责清晰&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据处理/ETL&lt;/td&gt;
					&lt;td&gt;Pipeline&lt;/td&gt;
					&lt;td&gt;步骤固定，质量要求高&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;未来趋势&lt;/strong&gt;：模型能力的差距在缩小，&amp;ldquo;单模型能做什么&amp;quot;的天花板已经够高了。下一步的竞争焦点是&amp;quot;多个模型怎么协同&amp;rdquo;——架构设计会比模型选型更重要。&lt;/p&gt;
&lt;p&gt;说白了，2026年的多Agent不是&amp;quot;用哪个模型&amp;quot;的问题，而是&amp;quot;怎么让一群模型高效干活&amp;quot;的问题。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;varkm，写于2026年8月&lt;/em&gt;&lt;/p&gt;</description></item><item><title>AI自动化流水线：用 Cron + Agent 打造无人值守的内容工厂</title><link>https://blog.kalend.top/2026/06/16/2026-06-16-ai-content-factory.html/</link><pubDate>Tue, 16 Jun 2026 08:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/06/16/2026-06-16-ai-content-factory.html/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;作者：varkm&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;先给结论：内容创作不需要你每天坐在电脑前写2-3小时。用定时调度 + 多Agent协作框架，可以把单篇文章的人工介入时间压缩到15-20分钟——选个题、过一遍终审，剩下的全交给自动化。&lt;/p&gt;
&lt;p&gt;这不是理论推演，是我自己跑了三十多篇文章后总结的完整方案。从选题到发布，七个Agent角色自动接力，质量有reviewer把关，crash能自动恢复。下面从架构到踩坑，完整拆给你看。&lt;/p&gt;
&lt;h2 id="一从手动到自动一篇稿子到底有多烦"&gt;一、从手动到自动：一篇稿子到底有多烦
&lt;/h2&gt;&lt;p&gt;手动发一篇稿子，流程是这样的：&lt;/p&gt;
&lt;p&gt;选题 → 搜索资料 → 写初稿 → 自查事实 → 排版 → 互相审核 → 上传平台 → 发布&lt;/p&gt;
&lt;p&gt;每一步都要你亲自盯着。写初稿1小时，排版30分钟，审校来回改又是30分钟——还没有算上搜索资料的时间。一天一篇，大半个下午就没了。更难受的是，这些步骤大部分是机械重复的：格式转换、上传、构建，每次都一样，但每次都得手动做。&lt;/p&gt;
&lt;p&gt;AI Agent能解决一部分问题——让它帮你写初稿、做调研。但单个Agent有上限：context会被压缩，中间产物容易丢，质量没法保证。你以为写完了一篇好文章，结果排版后发现格式全乱了。&lt;/p&gt;
&lt;p&gt;真正的解法是把整个流程拆成流水线，每个环节一个专职Agent，用定时任务触发，用看板系统串联。这就是&amp;quot;内容工厂&amp;quot;的核心思路：&lt;strong&gt;不是让一个Agent干所有事，而是让一群Agent各司其职，自动接力。&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方式&lt;/th&gt;
					&lt;th&gt;单篇耗时&lt;/th&gt;
					&lt;th&gt;质量风险&lt;/th&gt;
					&lt;th&gt;可扩展性&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;纯手动&lt;/td&gt;
					&lt;td&gt;2-3小时&lt;/td&gt;
					&lt;td&gt;取决于个人状态&lt;/td&gt;
					&lt;td&gt;每天最多1-2篇&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;单Agent辅助&lt;/td&gt;
					&lt;td&gt;1-1.5小时&lt;/td&gt;
					&lt;td&gt;中途产物易丢失&lt;/td&gt;
					&lt;td&gt;并发受限&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;多Agent流水线&lt;/td&gt;
					&lt;td&gt;15-20分钟&lt;/td&gt;
					&lt;td&gt;reviewer门禁把关&lt;/td&gt;
					&lt;td&gt;可同时跑多条线&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="二架构设计四个组件撑起一座工厂"&gt;二、架构设计：四个组件撑起一座工厂
&lt;/h2&gt;&lt;p&gt;整套架构只有四个核心组件，职责分明：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;定时调度器（Cron）&lt;/strong&gt;：按时间表触发任务，支持三种模式——cron表达式（每天8:30）、一次性定时（2026-06-20T09:00）、间隔触发（每2小时）。它是整个工厂的&amp;quot;开工铃&amp;quot;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;编排器（Orchestrator）&lt;/strong&gt;：收到触发后，把一个选题拆成多个子任务，分配给不同Agent。它不干活，只负责拆活、排队、传递产物。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Worker Agent池&lt;/strong&gt;：每个Agent只干一件事。写稿的只写稿，审校的只审校，构建的只构建。职责越单一，出错率越低。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;质量门禁（Reviewer）&lt;/strong&gt;：贯穿流水线始终。任何产物发布前必须过reviewer审核，不通过就阻断下游，打回重做。&lt;/p&gt;
&lt;p&gt;数据流长这样：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;定时触发 → 编排器创建任务链
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌─── 写作Agent ──→ 初稿(Markdown)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ┌─ Reviewer审核 ──┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ↓ ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ 博客构建Agent 公众号排版Agent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ↓ ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ 格式Review 格式Review
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ↓ ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ └──→ 部署Agent ←───┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └────────────── 双渠道发布完成
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;为什么用看板（Kanban）做任务管理，而不是代码里直接串函数调用？三个原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;持久化&lt;/strong&gt;：任务状态存在数据库里。Agent进程crash了，任务不会丢，重新调度就行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;依赖链&lt;/strong&gt;：用&lt;code&gt;parents&lt;/code&gt;字段声明依赖关系，父任务完成前子任务自动等待，不需要你手动写轮询逻辑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可观测&lt;/strong&gt;：每个任务有完整的状态流转记录——什么时候创建、谁在做、结果如何，全都能追溯。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="三cron定时调度实战三种模式覆盖所有场景"&gt;三、Cron定时调度实战：三种模式覆盖所有场景
&lt;/h2&gt;&lt;p&gt;定时调度器支持三种触发模式，对应不同的自动化场景：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;模式&lt;/th&gt;
					&lt;th&gt;格式示例&lt;/th&gt;
					&lt;th&gt;适用场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;cron表达式&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0 9 * * *&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每天早上9点生成日报&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;一次性定时&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;2026-06-20T09:00:00&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;某个活动前发预热稿&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;间隔触发&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;every 2h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;每2小时巡检一次系统状态&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;创建一个定时任务的基本配置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 每天早上8:30自动触发选题→写稿pipeline&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;schedule&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;30 8 * * *&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# cron表达式&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;daily-content-pipeline&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;deliver&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;local&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 结果只存本地，不打扰主会话&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 今天的热点技术话题调研。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 从搜索趋势中选一个适合深度解读的选题，
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 生成选题报告保存到 ~/output/today-topic.json。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 不要直接写文章，只做选题。&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里有个关键设计原则：&lt;strong&gt;cron只负责触发，不要在cron里塞完整流程。&lt;/strong&gt; 我最初图省事，把选题、写稿、审核全塞进一个cron任务的prompt里。结果context太长，中间某个步骤出了bug，整个流程就断了，而且无法复用。&lt;/p&gt;
&lt;p&gt;正确做法是分层：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 第1层：cron每天触发选题&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;schedule&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;30 8 * * *&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;调研今日技术热点，选题保存到JSON&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 第2层：选题完成后，编排器读取JSON&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 拆分成写作→审校→发布整条链&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 这层不是cron，是编排器的自动响应&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;另外两个实用配置项：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;隔离会话（sessionTarget）&lt;/strong&gt;：自动化任务一定要用隔离会话，不要污染主会话。主会话是你日常对话的地方，如果定时任务的结果全往里灌，很快就会被噪音淹没。隔离会话意味着每次触发都是干净的上下文，不携带历史包袱。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;no_agent模式&lt;/strong&gt;：有些定时任务不需要AI参与。比如监控某个API返回值的变化——用脚本直接检查就行，不需要启动Agent会话。这种模式只跑脚本，有变化才发通知，没变化就安静，省token又干净。&lt;/p&gt;
&lt;h2 id="四多agent-pipeline实战七个角色一条龙"&gt;四、多Agent Pipeline实战：七个角色一条龙
&lt;/h2&gt;&lt;p&gt;这是整篇文章最核心的部分。完整的文章发布pipeline有七个步骤，六个Agent角色：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;步骤&lt;/th&gt;
					&lt;th&gt;角色&lt;/th&gt;
					&lt;th&gt;职责&lt;/th&gt;
					&lt;th&gt;依赖&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;T1&lt;/td&gt;
					&lt;td&gt;写作Agent&lt;/td&gt;
					&lt;td&gt;写初稿+公众号通稿&lt;/td&gt;
					&lt;td&gt;无&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;T2&lt;/td&gt;
					&lt;td&gt;审校Agent&lt;/td&gt;
					&lt;td&gt;审内容（事实/脱敏/AI味）&lt;/td&gt;
					&lt;td&gt;T1&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;T3&lt;/td&gt;
					&lt;td&gt;博客构建Agent&lt;/td&gt;
					&lt;td&gt;通稿→Markdown→构建&lt;/td&gt;
					&lt;td&gt;T2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;T4&lt;/td&gt;
					&lt;td&gt;公众号排版Agent&lt;/td&gt;
					&lt;td&gt;通稿→HTML+封面→上传草稿&lt;/td&gt;
					&lt;td&gt;T2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;T5&lt;/td&gt;
					&lt;td&gt;格式审核A&lt;/td&gt;
					&lt;td&gt;审博客构建结果&lt;/td&gt;
					&lt;td&gt;T3&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;T6&lt;/td&gt;
					&lt;td&gt;格式审核B&lt;/td&gt;
					&lt;td&gt;审公众号排版结果&lt;/td&gt;
					&lt;td&gt;T4&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;T7&lt;/td&gt;
					&lt;td&gt;部署Agent&lt;/td&gt;
					&lt;td&gt;部署到线上&lt;/td&gt;
					&lt;td&gt;T5+T6&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;创建一条完整pipeline，编排器的配置长这样：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 编排器：创建任务链时预声明所有依赖关系&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;writer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;content-writer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 选题：{{topic}}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 字数：2500-3500
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 输出：~/output/{{slug}}.md&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reviewer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reviewer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;writer] &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# ← writer完成后才启动&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 审校 ~/output/{{slug}}.md
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; checklist: 事实核查/PII脱敏/AI味检测&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;blog-builder&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;blog-builder&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;reviewer] &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# ← 审校通过才构建&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 将通稿转为博客Markdown
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; hugo build 并验证页面数&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;mp-creator&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;mp-creator&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;reviewer] &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# ← 与blog-builder并行！&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 通稿转公众号HTML
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; 生成封面，上传草稿&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;blog-review&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reviewer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;blog-builder]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;mp-review&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;reviewer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;mp-creator]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deployer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;assignee&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deployer&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;parents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;blog-review, mp-review] &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# ← 双审核通过才上线&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;注意看T3和T4：它们的parent都是reviewer（T2），这意味着&lt;strong&gt;审校通过后，博客构建和公众号排版同时启动&lt;/strong&gt;，不需要等一个做完再做另一个。这就是fan-out并行——同一条稿子，两个渠道同时加工。&lt;/p&gt;
&lt;p&gt;而T7部署Agent的parents同时依赖blog-review和mp-review。只有两个渠道都通过了终审，才会触发部署。这是&amp;quot;双保险&amp;quot;设计：确保博客上线之前，两个渠道的格式都已经过了独立审核。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;parents依赖链的运作机制&lt;/strong&gt;：每个子任务创建时处于&amp;quot;等待&amp;quot;状态，只有当所有parent任务都标记为&amp;quot;完成&amp;quot;后，才会自动变成&amp;quot;就绪&amp;quot;状态，等待调度器分配执行。如果某个parent被reviewer打回（标记为blocked），所有下游子任务都会被冻结——不会出现&amp;quot;文章还没审完就发布上线&amp;quot;的情况。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;reviewer作为质量门禁的打回机制&lt;/strong&gt;：reviewer发现问题时不应该直接标记任务完成，而应该标记为blocked，附上具体问题和修改建议。这样下游任务永远不会启动。被blocked的任务修复后会重新进入流程。这个机制确保了自动化不会牺牲质量——没有人工&amp;quot;放行&amp;quot;，有问题的内容走不到发布环节。&lt;/p&gt;
&lt;h2 id="五踩坑实录四个血泪教训"&gt;五、踩坑实录：四个血泪教训
&lt;/h2&gt;&lt;p&gt;理论看着很美，实操全是坑。以下每一条都是我亲身踩过的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑1：写作Agent不会自动触发下游pipeline。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我最初的想法很天真：写完稿子，Agent自然会去创建审校任务、构建任务……结果写完就写完了，下游什么都没发生。&lt;/p&gt;
&lt;p&gt;原因很简单：单个Agent不知道自己在pipeline里的位置。它的任务是&amp;quot;写一篇文章&amp;quot;，写完就done了。如果你不在编排阶段就把整条链创建好，下游任务根本不存在。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：必须由编排器预先创建所有任务（包括依赖关系），而不是指望写作Agent自己往后串。写作Agent只管写，编排器管串联。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑2：cron任务里塞了完整流程，一崩全崩。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;有一阵子我想偷懒，把选题→调研→写稿→排版全塞进一个cron任务。跑了三天就出事：某个步骤的API超时，后面的流程全卡住了。更麻烦的是，这种&amp;quot;巨石型&amp;quot;任务出bug后几乎没法调试——你得从一大坨日志里找到是哪个环节挂的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：cron只做最轻的一层——触发选题。后面的写作、审校、发布全交给编排器拆分的专职Agent。每一层独立，crash了只影响自己这一步，重启就好。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑3：context压缩导致中间产物丢失。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;多Agent协作时，信息传递是个大问题。写作Agent把调研数据、大纲、参考链接都放在context里，但传给审校Agent时context被压缩了——参考链接没了，审校Agent不知道原始数据来源，没法做事实核查。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：所有中间产物必须立即持久化到文件，而不是存在context里。写作Agent写完稿子存到&lt;code&gt;~/output/xxx.md&lt;/code&gt;，task的metadata里记录文件路径。下游Agent从文件读取，不依赖context传递。把context当临时工作台，把文件系统当持久存储。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑4：reviewer只查格式不查内容完整性。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我的reviewer一开始配置得太粗放——只检查格式（日期格式对不对、标签有没有、代码块有没有标语言），不检查内容。结果有篇文章少了整个&amp;quot;踩坑&amp;quot;章节就过了审。因为格式上一切正常，reviewer找不到问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：task body里必须写死文章大纲（每章标题+预计字数）。reviewer对照大纲逐章检查——该有的章节在不在、核心论点有没有展开。格式检查可以自动化，但内容完整性检查必须靠结构化大纲来约束。&lt;/p&gt;
&lt;h2 id="六效果与思考"&gt;六、效果与思考
&lt;/h2&gt;&lt;p&gt;跑通这套pipeline后，我的实际体感是这样的：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;效率&lt;/strong&gt;：从每篇2-3小时压缩到15-20分钟人工介入。我每天早上看一眼选题报告，选一个顺眼的，说&amp;quot;就这个&amp;quot;，然后该干嘛干嘛。等我中午回来，稿子已经写完、审完、排好版了，我只需要过一遍终审。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;质量保障&lt;/strong&gt;：reviewer机制确保自动化不等于粗制滥造。每一篇稿子都要过两轮审核——内容审核和格式审核。有事实错误、有AI味、有PII泄露的稿件根本走不到发布环节。三十多篇文章下来，没出过质量事故。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;但也有局限&lt;/strong&gt;。选题仍然需要人工判断——自动化能做的是&amp;quot;搜热点&amp;quot;，但&amp;quot;这个热点值不值得写&amp;quot;还是得人来拍板。追热点话题也一样，突发新闻的时效性需要人工决策，自动pipeline的反应周期还是太慢。&lt;/p&gt;
&lt;p&gt;这套方案的真正价值不在于&amp;quot;全自动&amp;quot;，而在于&amp;quot;标准化&amp;quot;。把重复劳动交给机器，把判断决策留给人。你不再是流水线上的工人，而是工厂的质检员和调度员。&lt;/p&gt;
&lt;p&gt;未来我打算加入两个能力：一是基于搜索趋势的自动选题（减少人工选题频率），二是竞品内容自动分析（写之前先看看别人怎么写的，找差异化角度）。但这两件事的前提都是先把基础设施跑稳——地基不牢，加再多自动化也只是加速出错。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;关注 varkm，一起学习，一起成长。&lt;/p&gt;</description></item></channel></rss>