Baton

July 10, 2026 · View on GitHub

English | 繁體中文

Baton — Dispatch less. Deliver more.

Dispatch less. Deliver more.|少派一點,交付更多。

一套 AI 派工治理 skill,協助 Agent 判斷:該不該派、工作怎麼切、平行到什麼程度,以及如何把結果可靠地收回來。

GitHub stars GitHub forks MIT License

安裝 Baton · 執行 smoke tests · Benchmark protocol · 信任與安全 · 版本紀錄

多開 Agent,不一定比較快。

多個 subagents 經常重複閱讀相同的文件與程式碼,只為了完成一小部分不同工作。結果是 token 重複消耗、檔案互相衝突、驗證被跑很多次,最後主 Agent 還要花更多成本整合。

Baton 讓 AI 在派工前先判斷:這件事真的值得委派嗎?哪些工作能安全平行?哪些 context 應該共用?誰負責寫入、驗證與最終決策?

它不是讓 AI 派更多 Agent,而是讓每次派工都有理由。

技術上,Baton 在 subagents、workflows、agent teams、worktrees 與程式碼智能工具之上,加上一層 dispatch control plane,引導 AI 選擇能可靠交付的最小執行結構,再管理 context 邊界、artifact ownership、停止條件、集中驗證與最終合成。

它不是另一套 swarm framework,而是避免 AI 把「開更多 Agent」當成所有大型任務預設答案的判斷層。

如果你的 Agent 已經會開 workers,卻還不擅長判斷何時、在哪裡、該派多少,歡迎 Star。如果你希望加入自己的平台限制、review gates、ownership 規則或 workflow adapters,歡迎 Fork

有使用與沒使用,差距會有多大?

沒有一個誠實、適用所有任務的固定倍數。差距可能是:

  • 原本任務就切得很好,所以改善幅度很小;
  • 避免數個不必要的 Agent 冷啟動與重複驗證;
  • 避免 shared files 被平行覆寫;
  • 避免 schema retry 與 rate-limit 形成連鎖失敗;
  • 甚至是「成功完成」與「燒完 token 卻得不到可信結果」的差別。

Anthropic 公開的 multi-agent 研究提供了一個重要邊界:多 Agent 在高度可平行的研究任務上可能顯著優於單 Agent,但 token 使用量可達一般聊天互動的約 15 倍;高度共享 context 或 Agent 之間存在大量依賴的任務,則不是理想場景。

這包 skill 的目的,就是保護這筆昂貴的協作投資。

可以把一次 Agent 任務的總成本理解成:

真正必要的工作
+ 重複重建 context
+ 協調與 handoff
+ 重複驗證
+ 衝突與重工
+ 失敗 retry
+ synthesis debt

它無法消除真正必要的工作,但會盡可能減少後六項成本;當後六項成本可能超過派工收益時,它會要求 AI 不要使用多 Agent。

三種代表性差距

以下是操作模型,不是假裝精準的 benchmark:

情境沒有派工治理使用這包 skill實際差距
已知位置的單檔小修investigator → builder → verifier,各自重建 context主 Agent 直接修改並執行 focused check避免冷啟動、handoff 與多餘 review
多 surface 重構Builders 各自探索架構,並同時修改 shared types、registries 或 lockfiles先收斂 shared contract,再給每個 artifact 單一 owner,最後統一跑 gate常是乾淨平行與衝突重工的差別
大量同質 audit/migration任務數直接變成 Agent 數,格式錯誤與 rate limit 放大 retrysmall slice → bounded batches → failure threshold → centralized synthesis常是可控制 workflow 與不可信昂貴輸出的差別

如何量測真實差距?

用相同任務做 before/after,比較:

  1. 總 token 或模型成本;
  2. 得到「已驗證結果」的牆鐘時間,而不是第一份輸出的時間;
  3. shared sources 被重複閱讀的次數;
  4. overlapping writes、merge conflicts 與被撤銷的修改;
  5. 重複執行的 repo-wide gates,以及被靜默丟失的 failed/partial results。

合理預期是:

  • 小型或高度耦合任務會使用更少 Agent,大幅降低協調成本;
  • 真正獨立的工作仍保留平行速度,但減少重複 context 與驗證;
  • 高風險 workflow 最大價值可能是避免失敗,而不是讓成功任務只快一點;
  • 如果原本的 Agent 已經能做出同樣成熟的判斷,差距應該很小,但規則會變得可見、可審查、可攜帶。

**Benchmark 狀態:**第一份可重現 protocol 已公開,但 paired trials 尚未執行。在保存 raw evidence 之前,Baton 不宣稱已量測的節省比例。詳見 benchmarks/

它解決的問題

多數 Agent 平台擅長回答:

我要如何同時執行多個 Agent?

真正困難的營運問題是:

這個任務真的需要多 Agent 嗎?如果需要,最小且可靠的設計是什麼?

缺少明確派工政策時,AI 很容易:

  • 把五分鐘的小修改派給三個 Agent;
  • 讓每個 worker 重讀相同架構;
  • 平行修改 shared contracts、registries 或相同檔案;
  • 將尚未驗證的 prompt 或嚴格 schema 一次放大到大量任務;
  • 讓每個 worker 各跑一次昂貴 build 或 live test;
  • 把 worker 自述的結果直接視為已驗證事實;
  • 在 synthesis 時靜默丟失失敗或部分完成的結果;
  • 整合已經跟不上產出,卻繼續增加 Agent。

它如何改變 AI 的行為

使用者需求


Dispatch brake
    ├── 成果是否明確?
    ├── 主 Agent 自己做是否更便宜?
    ├── 工作軌是否真正獨立?
    ├── 每個寫入 artifact 是否有單一 owner?
    └── 誰負責整合與驗證?


選擇最小有效 primitive
    ├── main agent
    ├── one worker
    ├── bounded parallel workers
    ├── batch / workflow
    ├── collaborative team
    ├── isolated workspace
    └── shared-workspace builders


Context pack → ownership → briefs → 受監控執行


主 Agent synthesis → 集中驗證 → 誠實分級證據
沒有這包 skill使用這包 skill
「任務很大,多開幾個 Agent。」「哪些部分真的獨立到值得派工?」
每個 worker 自己重建專案理解共用結論只整理一次,workers 只讀最小必要內容
用模糊角色名稱切工作按來源、artifact 與 ownership 切分
平行程度跟著項目數增加平行程度取決於獨立性與整合能力
每個 builder 各跑一次全部驗證局部檢查留在局部,昂貴 gate 集中執行
把所有回報串接後交差主 Agent 裁決矛盾並列出 coverage gaps
失敗後繼續用相同方式 retry同因失敗會改變設計或退回直接執行

和現有方案有什麼不同?

Agent 生態已經有很好的執行能力:

  • OpenAI Agents SDK 提供 manager-style agents、handoffs 與 code orchestration;
  • LangChain/LangGraph 提供 subagents、routers、handoffs、skills 與 graph workflows;
  • AutoGen 提供 concurrent、sequential、group chat、debate 與 reflection patterns;
  • CrewAI Flows 提供 stateful、event-driven control flow;
  • Claude Code 與 Ultracode-style workflows 能執行複雜 batches 與 pipelines。

這些工具主要提供 execution primitives。Baton 位於它們上方:

問題Orchestration frameworks這包 skill
執行 agents、routes、graphs、flows核心能力使用現有能力
判斷派工是否划算通常交給應用端核心責任
fan-out 前評估 context overlap部分支援強制判斷
分配單一 artifact owner通常交給應用端寫入任務必備
按成本集中驗證通常交給應用端明確政策
把 integration backlog 當停止訊號依 runtime 而定全域 invariant
保留 failed、partial 與少數異見依實作而定明確回報規則
派工失敗時乾淨退回直接執行依應用端而定強制出口

它不和 Agent runtime 競爭,而是改善 AI 使用 runtime 前後的決策。

核心運作方式

1. 先踩 dispatch brake

fan-out 前必須回答:成果是什麼、為什麼派工比直做更好、哪些工作真正獨立、誰擁有可寫 artifacts、誰負責合成與驗證。缺少答案時,先澄清、scout、收斂 shared contract 或設計 ownership。

2. 選擇最小有效 primitive

任務形狀建議 primitive
小任務、最終判斷、synthesisMain agent
有界探索或獨立驗證One worker
少量低重疊角度或 surfacesBounded parallel workers
大量重複同質項目Batch 或 workflow
Workers 必須互相挑戰或協調Collaborative team
競爭方案或重疊修改Isolated workspace/branch
共用未提交狀態、寫入互斥Shared-workspace builders

3. 明確管理 context 與 ownership

多個 workers 共用背景時,先建立精簡 context pack,只放結論、限制、已排除方向與最小閱讀集。寫入任務則建立 ownership map,包含 allowed、forbidden 與 secondary writes,例如 indexes、generated files、config 與 lockfiles。

4. 分離產出與驗證

Workers 產出局部修改或發現;主 Agent 檢查 ownership、抽驗證據、裁決矛盾,最後集中執行 integration-wide verification。結果分成:

  • verified
  • consistent but not independently rechecked
  • reasoned but unverified
  • needs human testing

5. 有意識地停止

每個 delegated phase 都必須在達成目標、預算用盡、連續無進展、同因失敗、ownership 失效,或整合成本超過剩餘收益時停止。

可選能力 adapters

核心 skill 不綁平台,只在相關時載入 adapter。

Claude Code/Ultracode Workflow

Ultracode adapter 要求先確認當前能力、先跑 representative small slice、使用 bounded batches、phase boundaries 與 stop conditions,並誠實處理 partial results。它尤其能避免 AI 把「開 Ultracode」誤解成「最大化 fan-out」。

CodeGraph

CodeGraph adapter 在三個階段提供 repository graph 證據:建立有界 task context、改善 dependency impact 與 ownership map、根據實際 changed files 選擇 affected tests。CodeGraph 改善證據,但不取代 source verification 與 ownership 判斷。

安裝

由 Agent 規劃並等待批准

建議讓 Agent 讀取固定版本的 runbook,先顯示完整計畫,取得批准後才寫入:

Read https://raw.githubusercontent.com/cablate/baton/v0.1.1/install/AGENT-INSTALL.md
and prepare a plan to install Baton as $baton-dispatch.

Inspect my current skill directories first. Do not overwrite existing files.
Show the source, destination, changed files, non-changes, and verification steps.
Wait for my approval before writing anything.

Runbook 可重複執行,不會覆寫已修改或無關的同名目錄,而且只安裝一個 baton-dispatch skill 目錄。安裝前可先檢查 安裝 manifest信任邊界

手動安裝

將固定版本 clone 到 Agent harness 使用的 skills 目錄:

git clone --branch v0.1.1 --depth 1 https://github.com/cablate/baton.git baton-dispatch

再依目前使用產品的文件,把資料夾放置或連結到能探索 SKILL.md 的個人或專案 skills 目錄。不同產品的探索路徑可能不同,因此不在這裡綁死特定版本路徑。

真正給 AI 載入的入口是 SKILL.md;README 是給人閱讀,不是 runtime 必讀內容。

安裝後,如果產品只在啟動時探索 skill,請開啟新 session,再執行 三個 smoke tests。更新前先讀 CHANGELOG.md,再用新 tag 重跑 runbook。移除則依照 UNINSTALL.md

使用方式

使用 $baton-dispatch 判斷這次 migration 應該由主 Agent
直接做、派 workers、開 workflow,還是使用 isolated branches。請列出
ownership、驗證、synthesis 與停止條件。
開啟 Ultracode 前,先使用 $baton-dispatch 設計派工。
先跑 small slice,再決定是否放大。
使用 $baton-dispatch 搭配 CodeGraph evidence,切分這次
repo refactor,避免 overlapping writes。

研究基礎

設計原則

  • 派工是有成本的決策,不是努力程度的表演。
  • 平行化真正獨立的工作,而不是看起來可以拆的工作。
  • 共享結論,不要大量複製探索過程。
  • 平行寫入之前,先確定 artifact ownership。
  • 驗證本身就是 orchestration 設計的一部分。
  • 主 Agent 必須擁有 synthesis 與 truth claims。
  • 能乾淨退回直接執行,是重要能力。

授權

MIT © 2026 CabLate,詳見 LICENSE