概述
安裝
內容詳情
替代品
什麼是Task Graph MCP Server?
Task Graph MCP Server是一個專門為AI智能體設計的任務協調和工作流管理系統。它通過結構化的工作流程幫助多個AI智能體協同完成複雜任務,避免常見的協調問題,如上下文丟失、步驟跳過和工作衝突。如何使用Task Graph MCP Server?
使用Task Graph非常簡單:1) 安裝MCP服務器,2) 配置到您的AI客戶端(如Claude Code),3) 智能體連接並開始協作。系統提供預置的工作流模板(如solo、swarm、relay等),智能體可以自動獲取任務、協調文件訪問並跟蹤進度。適用場景
Task Graph特別適合以下場景: - 多智能體協作開發項目 - 複雜任務分解和執行 - 需要質量保證的自動化流程 - 團隊工作流管理和協調 - 實驗性AI工作流編排主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"task-graph": {
"command": "task-graph-mcp"
}
}
}
{
"mcpServers": {
"task-graph": {
"command": "task-graph-mcp",
"args": []
}
}
}🚀 任務圖MCP服務器
真正有效的代理任務工作流。
當你讓AI代理處理複雜任務時,問題往往接踵而至。代理會丟失上下文、跳過步驟、忘記協調。任務圖(Task Graph)通過結構化工作流解決了這些問題:通過階段引導工作、使用提示進行自動指導、設置關卡確保質量,併為多代理場景提供協調原語 —— 這一切都通過模型上下文協議(Model Context Protocol)實現。
🚀 快速開始
# 安裝
cargo install task-graph-mcp
# 添加到你的MCP客戶端(如Claude Code等)
{
"mcpServers": {
"task-graph": {
"command": "task-graph-mcp"
}
}
}
# 代理工作流(如果省略worker_id,將自動生成)
connect(workflow="swarm", tags=["code"]) → "bright-lunar-swift-fox"
list_tasks(ready=true, agent="bright-lunar-swift-fox") → 可認領的工作
claim(worker_id="bright-lunar-swift-fox", task="add-auth") → 你已認領該任務
update(..., phase="implement") → 進入實現階段
thinking(agent="bright-lunar-swift-fox", thought="Adding JWT...") → 其他代理可見
update(worker_id="bright-lunar-swift-fox", task="add-auth",
status="completed",
attachments=[{type:"commit", content:"abc123"}]) → 任務完成
✨ 主要特性
為何選擇任務圖?
問題所在:你有需要結構化執行的複雜任務。可能是單個代理按階段工作,也可能是多個代理並行協調。如果沒有合適的工作流,代理會迷失方向、跳過步驟,導致結果不一致。
你將獲得:
- 結構化工作流 —— 階段(探索、實現、審查、測試)引導代理完成工作。過渡提示在每個步驟提供自動指導。
- 質量關卡 —— 要求測試通過、代碼提交或審查完成後才能進行過渡。自動執行你的標準。
- 即用型拓撲結構 —— 為單人工作、並行群體、專家接力或分層委派預構建的工作流。立即開始,後續自定義。
- 可配置工作流 —— 定義你自己的狀態、階段、提示和關卡。匹配你的流程,而非我們的。
- 多代理協調 —— 諮詢文件鎖、有向無環圖(DAG)依賴關係、原子聲明。不再有衝突或重複工作。
- 令牌高效 —— 專為大語言模型(LLM)上下文限制設計。緊湊查詢、最少往返次數、結構化輸出。
- 內置核算功能 —— 跟蹤每個任務的令牌使用量、成本和時間。確切瞭解你的代理花費情況。
- 零基礎設施 —— 使用WAL模式的SQLite。無需運行數據庫服務器。只需指定一個文件。
特性詳情
| 特性 | 描述 |
|---|---|
| 任務層次結構 | 具有父子關係的無限嵌套 |
| DAG依賴關係 | 帶有循環檢測的類型化邊(阻塞、跟隨、包含) |
| 階段 | 對工作類型進行分類(探索、實現、審查、測試、部署) |
| 工作流 | 命名的工作流拓撲結構(單人、群體、接力、分層) |
| 過渡提示 | 狀態/階段更改時的自動代理指導 |
| 關卡 | 狀態/階段過渡的退出要求 |
| 原子聲明 | 帶有限制和基於標籤路由的嚴格鎖定 |
| 文件協調 | 帶有原因和更改輪詢的諮詢鎖 |
| 成本跟蹤 | 每個任務的令牌使用量和美元成本 |
| 時間跟蹤 | 從狀態轉換自動累積時間 |
| 即時狀態 | 其他代理可見的即時“當前思考” |
| 全文搜索 | 基於FTS5的跨任務和附件搜索 |
| 附件 | 內聯內容、文件引用或媒體存儲 |
| 代理反饋 | 帶有分類反饋的代理間通信(取決於配置) |
| 動態覆蓋 | 通過添加/刪除覆蓋工具進行運行時工作流自定義 |
📦 安裝指南
從crates.io安裝(推薦)
cargo install task-graph-mcp
預構建二進制文件
從GitHub Releases下載適合你平臺的最新版本:
| 平臺 | 下載鏈接 |
|---|---|
| Linux (x64) | task-graph-mcp-x86_64-unknown-linux-gnu.tar.gz |
| macOS (Intel) | task-graph-mcp-x86_64-apple-darwin.tar.gz |
| macOS (Apple Silicon) | task-graph-mcp-aarch64-apple-darwin.tar.gz |
| Windows (x64) | task-graph-mcp-x86_64-pc-windows-msvc.zip |
解壓並將二進制文件放置在你的PATH路徑中。
從源代碼安裝
git clone https://github.com/Oortonaut/task-graph-mcp.git
cd task-graph-mcp
cargo build --release
二進制文件將位於 target/release/task-graph-mcp。
💻 使用示例
作為MCP服務器
添加到你的MCP客戶端配置中:
{
"mcpServers": {
"task-graph": {
"command": "task-graph-mcp",
"args": []
}
}
}
CLI選項
task-graph-mcp [OPTIONS]
選項:
-c, --config <FILE> 配置文件的路徑
-d, --database <FILE> 數據庫文件的路徑(覆蓋配置)
-v, --verbose 啟用詳細日誌記錄
-h, --help 打印幫助信息
-V, --version 打印版本信息
📚 詳細文檔
配置
完整參考:請參閱 docs/CONFIGURATION.md 以獲取包括工作流、提示、關卡、角色和標籤的完整配置文檔。
創建 .task-graph/config.yaml:
server:
db_path: .task-graph/tasks.db
media_dir: .task-graph/media # 文件附件的目錄
skills_dir: .task-graph/skills # 自定義技能覆蓋
stale_timeout_seconds: 900
default_format: json # 或 markdown
paths:
style: relative # 或 project_prefixed
auto_advance:
enabled: false # 自動推進未阻塞的任務
target_state: ready # 目標狀態(需要在狀態配置中自定義狀態)
狀態配置
任務狀態是可配置的。默認狀態為:pending(待處理)、working(進行中)、completed(已完成)、failed(失敗)、cancelled(已取消)。
要添加 ready 狀態以實現自動推進:
states:
initial: pending
disconnect_state: pending # 所有者斷開連接時任務的狀態(必須是無時間限制的狀態)
blocking_states: [pending, working]
definitions:
pending:
exits: [ready, working, cancelled]
ready:
exits: [working, cancelled]
working:
exits: [completed, failed, pending]
timed: true # 此狀態下的時間計入 time_actual_ms
completed:
exits: []
failed:
exits: [pending]
cancelled:
exits: []
auto_advance:
enabled: true
target_state: ready
請參閱 SCHEMA.md 以獲取狀態定義的完整文檔。
依賴關係配置
依賴類型定義了任務之間的關係。默認類型為:blocks(阻塞)、follows(跟隨)、contains(包含)、duplicate(重複)、see-also(另見)、relates-to(相關)。
dependencies:
definitions:
blocks:
display: horizontal # 同級關係
blocks: start # 阻塞對依賴任務的認領
follows:
display: horizontal
blocks: start
contains:
display: vertical # 父子關係
blocks: completion # 阻塞父任務的完成
duplicate:
display: horizontal
blocks: none # 僅作信息參考
see-also:
display: horizontal
blocks: none
relates-to:
display: horizontal
blocks: none
| 屬性 | 值 | 描述 |
|---|---|---|
display |
horizontal, vertical |
視覺關係(同級 vs 父子) |
blocks |
none, start, completion |
依賴關係阻塞的內容 |
附件配置
預配置的附件鍵提供默認的MIME類型和模式,減少附加常見內容類型時的樣板代碼。
attachments:
unknown_key: warn # allow | warn (默認) | reject
definitions:
commit:
mime: text/git.hash
mode: append
checkin:
mime: text/p4.changelist
mode: append
meta:
mime: application/json
mode: replace
note:
mime: text/plain
mode: append
| 屬性 | 值 | 描述 |
|---|---|---|
unknown_key |
allow, warn, reject |
未定義附件鍵的行為 |
definitions.<key>.mime |
MIME類型字符串 | 此鍵的默認MIME類型 |
definitions.<key>.mode |
append, replace |
默認模式(append保留現有內容,replace覆蓋現有內容) |
內置默認值:
| 鍵 | MIME類型 | 模式 | 使用場景 |
|---|---|---|---|
commit |
text/git.hash | append | Git提交哈希 |
checkin |
text/p4.changelist | append | Perforce變更列表 |
changelist |
text/plain | append | 更改的文件 |
meta |
application/json | replace | 結構化元數據 |
note |
text/plain | append | 通用筆記 |
log |
text/plain | append | 日誌輸出 |
error |
text/plain | append | 錯誤消息 |
output |
text/plain | append | 命令/工具輸出 |
diff |
text/x-diff | append | 補丁和差異 |
plan |
text/markdown | replace | 計劃和規範 |
result |
application/json | replace | 結構化結果 |
context |
text/plain | replace | 當前上下文/狀態 |
使用方法:
# 從配置中自動填充MIME和模式:
attach(task="123", name="commit", content="abc1234")
# → mime=text/git.hash, mode=append
attach(task="123", name="meta", content='{"v":1}')
# → mime=application/json, mode=replace (覆蓋現有元數據)
# 顯式值覆蓋默認值:
attach(task="123", name="commit", mime="text/plain", content="override")
環境變量:
TASK_GRAPH_CONFIG_PATH:配置文件的路徑(優先於.task-graph/config.yaml)TASK_GRAPH_DB_PATH:數據庫文件路徑(如果沒有配置文件,則作為後備)TASK_GRAPH_MEDIA_DIR:文件附件的媒體目錄(如果沒有配置文件,則作為後備)TASK_GRAPH_LOG_DIR:日誌目錄路徑(如果沒有配置文件,則作為後備)
MCP工具
工作者管理
| 工具 | 描述 |
|---|---|
connect(worker_id?, tags?, workflow?, force?, db_path?, media_dir?, log_dir?, config_path?, overlays?: str[]) |
註冊一個工作者。可選的 workflow 選擇命名的工作流(單人、群體、接力、分層)。返回 worker_id 和活動的 paths。 |
disconnect(worker_id: worker_str, final_status?: status_str = "pending") |
註銷工作者並釋放所有聲明/鎖。 |
list_agents(tags?: str[], file?: filename, task?: task_str, depth?: int, stale_timeout?: int) |
列出符合過濾條件的已連接工作者。 |
cleanup_stale(timeout?: int, final_status?: status_str) |
清除過期的工作者並釋放他們的聲明。 |
add_overlay(worker_id: str, overlay: str) |
為已連接的工作者添加動態工作流覆蓋。 |
remove_overlay(worker_id: str, overlay: str) |
從已連接的工作者中移除工作流覆蓋。 |
任務CRUD
| 工具 | 描述 |
|---|---|
create(description: str, id?: task_str, parent?: task_str, priority?: int = 5, points?: int, time_estimate_ms?: int, tags?: str[]) |
創建一個任務。優先級範圍為0 - 10(越高越重要)。 |
create_tree(tree, parent?, child_type?, sibling_type?) |
創建嵌套任務樹。child_type(默認:"contains")用於父→子依賴關係,sibling_type 用於兄弟依賴關係。 |
get(task: task_str) |
通過ID獲取任務及其附件元數據和計數。 |
list_tasks(status?: status_str[], ready?: bool, blocked?: bool, claimed?: bool, owner?: worker_str, parent?: task_str, recursive?: bool, agent?: worker_str, tags_any?: str[], tags_all?: str[], sort_by?: str, sort_order?: str, limit?: int, offset?: int) |
使用過濾器查詢任務。使用 ready=true 獲取可認領的任務。 |
update(worker_id: worker_str, task: task_str, status?: status_str, phase?: str, assignee?: worker_str, title?: str, description?: str, priority?: int, points?: int, tags?: str[], needed_tags?: str[], wanted_tags?: str[], time_estimate_ms?: int, reason?: str, force?: bool, attachments?: object[]) |
更新任務。狀態/階段更改會自動管理所有權並觸發提示。包含 attachments 以記錄提交/變更列表。 |
delete(worker_id: worker_str, task: task_str, cascade?: bool, reason?: str, obliterate?: bool, force?: bool) |
刪除任務。默認軟刪除;obliterate=true 為永久刪除。 |
scan(task: task_str, before?: int, after?: int, above?: int, below?: int) |
向多個方向掃描任務圖。深度:0 = 無,N = 層級,-1 = 全部。 |
search(query: str, limit?: int = 20, include_attachments?: bool, status_filter?: status_str) |
FTS5搜索。支持短語、前綴*、AND/OR/NOT、title:word。 |
rename(worker_id: worker_str, task: task_str, new_id: task_str) |
原子性地重命名所有引用表中的任務ID。 |
任務認領
| 工具 | 描述 |
|---|---|
claim(worker_id: worker_str, task: task_str, force?: bool) |
認領一個任務。如果依賴關係不滿足、達到限制或缺少標籤,則認領失敗。使用 force 可以強制認領。 |
注意:通過 update(status="pending") 釋放任務。通過 update(status="completed") 完成任務。狀態更改會自動管理所有權。
依賴關係
| 工具 | 描述 |
|---|---|
link(from: task_str|task_str[], to: task_str|task_str[], type?: dep_str = "blocks") |
創建依賴關係。類型:blocks、follows、contains、duplicate、see-also、relates-to。 |
unlink(from: task_str|"*", to: task_str|"*", type?: dep_str) |
移除依賴關係。使用 * 作為通配符。 |
relink(prev_from: task_str[], prev_to: task_str[], from: task_str[], to: task_str[], type?: dep_str = "contains") |
原子性地移動依賴關係(先移除再創建)。 |
跟蹤
| 工具 | 描述 |
|---|---|
thinking(worker_id: worker_str, thought: str, tasks?: task_str[]) |
廣播即時狀態。其他工作者可見。刷新心跳。 |
task_history(task: task_str, states?: status_str[]) |
獲取帶有時間跟蹤的狀態轉換歷史記錄。 |
project_history(from?: datetime_str, to?: datetime_str, states?: status_str[], limit?: int = 100) |
帶有日期範圍過濾器的項目級歷史記錄。 |
log_metrics(worker_id: worker_str, task: task_str, cost_usd?: float, values?: int[8]) |
記錄指標(聚合)。 |
get_metrics(task: task_str|task_str[]) |
獲取任務的指標。 |
give_feedback(message: str, category?: str, sentiment?: str, agent_id?: str, tool_name?: str, task_id?: str) |
記錄關於工具、工作流或用戶體驗的反饋。默認啟用;超過大小限制(默認:1MB)時拒絕寫入。 |
list_feedback() |
讀取反饋的markdown文件。 |
文件協調
| 工具 | 描述 |
|---|---|
mark_file(worker_id: worker_str, file: filename|filename[], task?: task_str, reason?: str) |
標記文件以表明意圖。諮詢性,非阻塞。 |
unmark_file(worker_id: worker_str, file?: filename|filename[]|"*", task?: task_str, reason?: str) |
移除標記。使用 * 表示所有文件。 |
list_marks(files?: filename[], worker_id?: worker_str, task?: task_str) |
獲取當前的文件標記。 |
mark_updates(worker_id: worker_str) |
輪詢自上次調用以來的標記更改。 |
附件
| 工具 | 描述 |
|---|---|
attach(task: task_str|task_str[], name: str, content?: str, mime?: mime_str, file?: filename, store_as_file?: bool, mode?: str) |
添加附件。使用 file 進行引用,store_as_file 進行媒體存儲。 |
attachments(task: task_str, name?: str, mime?: mime_str) |
獲取附件元數據。名稱支持通配符模式。 |
detach(worker_id: worker_str, task: task_str, name: str, delete_file?: bool) |
按名稱刪除附件。 |
高級功能
| 工具 | 描述 |
|---|---|
check_gates(task: task_str) |
在狀態/階段過渡前檢查關卡要求。返回未滿足的關卡及其通過/警告/失敗狀態。 |
get_advisory(topic?: str, task?: task_str, worker_id?: worker_str) |
獲取治理諮詢指導。不指定主題:列出所有主題。指定主題:返回帶有模板擴展的完整諮詢內容。 |
query(sql: str, params?: str[], limit?: int = 100, format?: str) |
執行只讀SQL。僅支持SELECT語句。需要權限。 |
get_schema(table?: str, include_sql?: bool) |
獲取數據庫模式。返回表名、列、類型和外鍵。 |
get_prompts(status?: str, phase?: str, task?: task_str, worker_id?: worker_str) |
獲取工作流提示。不指定參數:列出觸發器。指定狀態/階段:返回該過渡的擴展提示。 |
list_workflows() |
列出可用的工作流配置(單人、群體、接力、分層等)。 |
list_skills() |
列出可用的捆綁技能及其描述。 |
get_skill(name: str) |
獲取捆綁技能的完整內容。 |
MCP資源
| URI | 描述 |
|---|---|
query://tasks/all |
帶有依賴關係的完整任務圖 |
query://tasks/ready |
可認領的任務 |
query://tasks/blocked |
被依賴關係阻塞的任務 |
query://tasks/claimed |
所有已認領的任務 |
query://tasks/agent/{id} |
由某個代理擁有的任務 |
query://tasks/tree/{id} |
帶有所有子任務的任務 |
query://files/marks |
所有文件標記 |
query://agents/all |
已註冊的代理 |
query://stats/summary |
彙總統計信息 |
config://current |
一次性返回所有配置 |
config://states |
任務狀態定義 |
config://phases |
階段定義 |
config://dependencies |
依賴類型定義 |
config://tags |
標籤定義 |
docs://index |
列出所有可用的文檔文件 |
docs://search/{query} |
跨文檔的全文搜索 |
docs://skills/list |
列出可用的技能 |
docs://skills/{name} |
獲取特定技能的內容 |
docs://workflows/list |
列出可用的工作流 |
docs://workflows/{name} |
獲取工作流詳細信息 |
docs://overlays/list |
列出可用的覆蓋層 |
docs://overlays/{name} |
獲取覆蓋層詳細信息 |
docs://{path} |
特定文檔文件的內容 |
任務樹結構
使用 create_tree 創建分層任務:
{
"tree": {
"title": "Implement auth",
"children": [
{ "title": "Design schema" },
{ "title": "Write migrations" },
{ "title": "Implement endpoints", "children": [
{ "title": "Login endpoint" },
{ "title": "Logout endpoint" },
{ "title": "Refresh endpoint" }
]},
{ "title": "Write tests" }
]
},
"sibling_type": "follows"
}
樹節點字段
| 字段 | 描述 |
|---|---|
title |
任務標題(新任務必需) |
description |
任務描述 |
id |
自定義任務ID(如果省略,將生成UUID7) |
ref |
通過ID引用現有任務(設置後忽略其他字段) |
priority |
優先級範圍為0 - 10(默認5) |
points |
故事點 / 複雜度估計 |
time_estimate_ms |
估計持續時間(毫秒) |
tags |
任務的分類標籤 |
needed_tags |
代理必須擁有所有這些標籤才能認領(AND) |
wanted_tags |
代理必須至少擁有其中一個標籤才能認領(OR) |
children |
嵌套子節點 |
頂級參數
| 參數 | 默認值 | 描述 |
|---|---|---|
tree |
必需 | 任務樹的根節點 |
parent |
null | 將樹的根節點附加到現有的父任務 |
child_type |
"contains" | 從父任務到子任務的依賴類型 |
sibling_type |
null | 兄弟任務之間的依賴類型("follows" 表示順序,null 表示並行) |
引用現有任務
使用 ref 將現有任務集成到樹結構中:
{
"tree": {
"title": "Sprint 5",
"children": [
{ "title": "New feature" },
{ "ref": "existing-task-id" },
{ "title": "Another task" }
]
},
"sibling_type": "follows"
}
基於標籤的親和性
工作者在連接時通過標籤聲明其能力。任務可以要求特定的標籤來控制哪些工作者可以認領它們。
示例標籤類別:
- 模型能力:
image-in(圖像輸入)、audio-out(音頻輸出)、video-in(視頻輸入)、code(代碼)、bulk(批量) - 訪問級別:
prod-access(生產環境訪問)、admin(管理員)、external(外部) - 專業領域:
rust、python、frontend(前端)、database(數據庫)
注意:像協調員/審查員/部署員這樣的角色使用階段來表示會更好。
任務要求:
needed_tags(AND):代理必須擁有所有這些標籤。wanted_tags(OR):代理必須至少擁有其中一個標籤。
{
"title": "Analyze screenshot and generate code",
"needed_tags": ["image-in", "code"],
"wanted_tags": ["bulk"]
}
{
"title": "Deploy to production",
"phase": "deploy",
"needed_tags": ["prod-access"],
"wanted_tags": ["aws", "gcp"]
}
工作流和階段
階段
任務可以有一個 phase 來對正在執行的工作類型進行分類:
{
"title": "Add authentication",
"phase": "implement"
}
內置階段:explore(探索)、implement(實現)、review(審查)、test(測試)、security(安全)、deploy(部署)、triage(分類)、diagnose(診斷)、design(設計)、plan(計劃)、doc(文檔)、integrate(集成)、monitor(監控)、optimize(優化)
階段支持:
- 過渡提示 —— 進入/退出階段時的自動指導
- 關卡 —— 階段過渡前必須滿足的要求
- 基於角色的路由 —— 在接力工作流中,專家負責特定階段
命名工作流
預構建的工作流拓撲結構針對不同的協調模式進行了優化:
| 工作流 | 描述 | 適用場景 |
|---|---|---|
solo |
單個代理,完全自主 | 簡單任務、原型開發 |
swarm |
並行的通用代理,拉取式 | 高吞吐量、獨立任務 |
relay |
順序的專家代理,交接式 | 複雜任務、領域專業知識 |
hierarchical |
領導/工作者委派 | 大型項目、團隊協調 |
push |
推式任務分配拓撲 | 集中式分配、負載均衡 |
kanban |
帶有在製品限制的看板式任務管理 | 持續流、可視化跟蹤 |
sprint |
限時迭代計劃 | Scrum團隊、固定節奏 |
在連接時選擇工作流:
connect(worker_id="agent-1", workflow="swarm")
每個工作流都提供定製的提示和協調指導。請參閱 WORKFLOW_TOPOLOGIES.md 以獲取詳細模式。
過渡提示
當狀態或階段更改時,代理會收到自動指導:
# workflows.yaml
states:
working:
prompts:
enter: |
你現在正在處理此任務。
從 {{current_status}} 你可以過渡到:{{valid_exits}}
exit: |
在離開之前:
- [ ] 附加結果
- [ ] 記錄成本
提示支持模板變量:{{current_status}}、{{valid_exits}}、{{current_phase}}、{{valid_phases}}
關卡
關卡是狀態或階段過渡前必須滿足的要求:
gates:
status:working:
- type: gate/tests
enforcement: warn
description: "測試必須通過"
通過附加證據來滿足關卡要求:
attach(task="123", type="gate/tests", content="All tests passing")
執行級別:allow(諮詢性)、warn(除非 force=true 否則阻塞)、reject(硬阻塞)
文件協調
代理可以使用帶有更改跟蹤的諮詢標記來協調文件編輯:
工作者A: connect() -> "worker-a"
工作者A: mark_file("worker-a", "src/main.rs", "refactoring")
工作者B: connect() -> "worker-b"
工作者B: mark_updates("worker-b") -> 看到工作者A的標記
工作者A: unmark_file("worker-a", "src/main.rs", "ready for review")
工作者B: mark_updates("worker-b") -> 看到標記移除及原因
工作者B: mark_file("worker-b", "src/main.rs", "adding tests")
架構
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 代理A │ │ 代理B │ │ 代理C │
│ (Claude) │ │ (GPT-4) │ │ (工作者) │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ stdio │ stdio │ stdio
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ task-graph │ │ task-graph │ │ task-graph │
│ MCP │ │ MCP │ │ MCP │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────┐
│ SQLite + WAL │
│ .task-graph/ │
│ tasks.db │
└─────────────────┘
- 傳輸方式:標準輸入輸出(Stdio) —— 每個工作者生成自己的服務器進程
- 數據庫:使用WAL模式的SQLite,支持跨進程併發訪問
- 部署方式:單二進制文件,無外部依賴,可離線工作
與其他方案對比
| 任務圖 | 線性任務列表 | 自定義數據庫 | |
|---|---|---|---|
| 工作流階段 | ✓ 內置提示 | ✗ 手動跟蹤 | 自定義實現 |
| 質量關卡 | ✓ 可配置執行 | ✗ | 自定義實現 |
| 多代理安全 | ✓ 原子聲明、文件鎖 | ✗ 存在競態條件 | 可能需要自定義實現 |
| 依賴跟蹤 | ✓ 帶有循環檢測的DAG | ✗ 手動排序 | 自定義實現 |
| MCP原生支持 | ✓ 一流支持 | ✗ 需要包裝器 | ✗ 需要包裝器 |
| 令牌核算 | ✓ 內置功能 | ✗ | 自定義實現 |
| 所需設置 | 無 | 無 | 數據庫服務器 |
文檔
| 文檔 | 描述 |
|---|---|
| CONFIGURATION.md | 完整的配置參考(config.yaml、工作流、提示、關卡、標籤) |
| SCHEMA.md | 數據庫模式和狀態機文檔 |
| DESIGN.md | 架構和設計決策 |
| WORKFLOW_TOPOLOGIES.md | 多代理工作流模式(單人、群體、接力、分層) |
| EXPORT_IMPORT.md | 數據導出和導入功能 |
| PROCESSES.md | 發佈流程、變更日誌維護 |
| GATES.md | 工作流關卡條件和執行 |
| METRICS.md | 實驗指標定義和SQL示例 |
📄 許可證
本項目採用Apache 2.0許可證。
專為需要結構化工作流和可靠協調的AI代理而構建。
替代品









