<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DAG on CAO ZUOHUA</title><link>https://caozuohua.github.io/tags/dag/</link><description>Recent content in DAG on CAO ZUOHUA</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 08 Oct 2026 21:25:00 +0800</lastBuildDate><atom:link href="https://caozuohua.github.io/tags/dag/index.xml" rel="self" type="application/rss+xml"/><item><title>给本地 Agent 造一块看板（三）：任务图派——把「下一个任务」变成一次查询</title><link>https://caozuohua.github.io/posts/2026-10-08-agent-kanban-02-task-graph/</link><pubDate>Thu, 08 Oct 2026 21:25:00 +0800</pubDate><guid>https://caozuohua.github.io/posts/2026-10-08-agent-kanban-02-task-graph/</guid><description>&lt;h1 id="给本地-agent-造一块看板三任务图派把下一个任务变成一次查询"&gt;给本地 Agent 造一块看板（三）：任务图派——把「下一个任务」变成一次查询&lt;/h1&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;本系列共八篇，用同一套七层能力框架（C1–C7）横向解剖开源任务看板。&#10;本篇覆盖 &lt;code&gt;steveyegge/beads&lt;/code&gt;、&lt;code&gt;eyaltoledano/claude-task-master&lt;/code&gt;、&lt;code&gt;bmad-code-org/BMAD-METHOD&lt;/code&gt;。&#10;元数据于 2026-10-08 经 GitHub API 一手核验。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="一这一派放弃了看板"&gt;一、这一派放弃了看板&lt;/h2&gt;&#10;&lt;p&gt;上一篇的文件系统派，本质是「把看板换个存储介质」。任务图派的野心更大：&lt;strong&gt;它认为看板这个隐喻本身就是错的。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;看板的说法是&amp;quot;一张张卡片，从左边流到右边&amp;quot;。这个隐喻隐含了一个假设：&lt;strong&gt;任务之间是独立的&lt;/strong&gt;。它默认你拿起最左边那张卡就能做，不需要等谁。&lt;/p&gt;&#10;&lt;p&gt;真实的多 agent 场景里，这个假设经常不成立。&amp;ldquo;写部署文档&amp;quot;要等&amp;quot;接口定稿&amp;rdquo;，&amp;ldquo;跑基准测试&amp;quot;要等&amp;quot;数据集清洗完&amp;rdquo;。如果看板不知道这些依赖，那么 agent 取任务时就只能按创建顺序或一个优先级数字去猜——&lt;strong&gt;它随时可能取到一个&amp;quot;前置条件还没满足&amp;quot;的任务，然后在那里空转、报错，或者更糟：基于不存在的产物瞎编。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;任务图派的回答是：&lt;strong&gt;别猜，把它算出来。&lt;/strong&gt; 把依赖显式建成图，然后提供一个查询，直接返回&amp;quot;当前真正可以开工&amp;quot;的那批任务。&lt;/p&gt;&#10;&lt;div class="mermaid"&gt;&#10;graph LR&#10; T1[&amp;#34;T1 接口定稿 ✅&amp;#34;] --&amp;gt; T2[&amp;#34;T2 实现服务端&amp;#34;]&#10; T1 --&amp;gt; T3[&amp;#34;T3 写部署文档&amp;#34;]&#10; T2 --&amp;gt; T4[&amp;#34;T4 跑基准测试&amp;#34;]&#10; T2 --&amp;gt; T5[&amp;#34;T5 前端联调&amp;#34;]&#10; style T1 fill:#d1e7dd&#10; style T3 fill:#fff3cd&#10; style T4 fill:#f8d7da&#10;&lt;/div&gt;&#10;&lt;script type="module"&gt;&#10; import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';&#10; mermaid.initialize({&#10; startOnLoad: true,&#10; theme: 'neutral',&#10; securityLevel: 'strict',&#10; flowchart: { curve: 'basis' }&#10; });&#10;&lt;/script&gt;&#10;&lt;p&gt;在上图里，绿色的 T1 已完成；黄色 T3 虽然前置已满足但依赖另一条链；红色的 T4 被 T2 阻塞。&lt;strong&gt;问题&amp;quot;我现在该做哪个&amp;quot;的答案，就是所有&amp;quot;前置全部完成&amp;quot;的节点集合——术语叫就绪集（ready set）。&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>