我把 AI workflow 搞成七位一體,然後放棄了 MCP
三個月前我還在想怎麼把 Claude 用到極致,現在我每天在做的事是設計一個多智能體的工作組織。從 1 個 AI 到 7 個,再從 MCP 換成最土的 File I/O——AI workflow 的真正瓶頸從來不在模型,而在協作協議。
大概三個月前我還在想「怎麼把 Claude 用到極致」。
現在我每天實際在做的事已經變了——不是用 AI,而是在設計一個多智能體的工作組織。我的日常 workflow 已經從一個 AI 演化到七個,我自己內部叫它「七位一體」。
這趟路踩過幾個很明確的坑,走到後面我才發現一件事:AI workflow 的真正瓶頸從來不在模型,而在協作協議。
從一個 AI 到七個
最早的版本很簡單:一個 Claude 負責所有事情。寫 code、review code、做決策、整理筆記,全都它。
問題很快就出現:當你讓同一個 agent 既是執行者又是審查者,它會自我合理化。它會說「這個改動沒問題」,因為那是它自己寫的。
所以我開始拆角色:
- 規劃者(拍架構)
- 執行者(寫 code)
- 審查者(挑錯)
- 反對者(故意唱反調、毒舌那種)
- 分析者(做技術比較和 research)
- 本地腦(跑隱私資料、背景批次)
- 人類(也就是我,最終 ratify)
加到第四個角色「反對者」之後,我發現產出的問題變少了——因為衝突被設計進系統裡,不用再靠我一個人去抓問題。
這件事跟「prompt engineering」差很遠。它比較像組織設計:你不是在調整一個員工,而是在安排一個團隊的分工和制衡。
然後我撞到一面牆:複雜度
七位一體聽起來很帥,但很快我就發現三件事:
- Context 切換成本暴增——每個 agent 都要重新 orient 一次
- Latency 變長——每一步都要等
- 每一步都「形式正確但效率下降」——走完流程比問題本身還累
這時候我發現自己花在「管 agent」的時間,開始比「解決問題」的時間還多。這是很明確的警訊。
我原本以為 MCP 會救我
MCP(Model Context Protocol)是現在業界最潮的 agent 溝通協議。理論上它很優雅——統一的 tool binding、session 管理、權限控制,全部包得漂漂亮亮。
我照著做了一陣子,然後放棄了。
原因不是 MCP 本身有 bug,而是它抽象太厚:
- 一壞掉,你要同時懷疑 transport、schema、tool binding、權限、context 五件事
- 中間狀態看不見——理論上有傳,但你不知道實際傳了什麼
- 失敗模式不夠笨——好系統要壞也要壞得很蠢,讓人類能直接修
MCP 壞掉的時候常常是「一團霧」。你看著它,它看著你,大家都不知道為什麼。
我改用了最土的方法:CLI + File I/O
Agent 之間改走檔案溝通。每個 agent 都有自己的 inbox 和 outbox:
~/Documents/agent-council/
{agent}-briefing.md ← 我寫給它的任務
{agent}-answer.md ← 它的回應
Claude 寫 briefing → 我執行 CLI 或手動貼 → Claude 讀 answer 綜合判斷。
這聽起來很原始。實際跑起來的感受完全相反——它比 MCP 穩很多。
為什麼?因為 file-based 有四個 MCP 很難給你的特質:
可追溯。 每一步都落地成檔案,不是聊天紀錄裡的一坨糨糊。
可重跑。 某個 agent 爆了,直接重跑那一步,不用整段重來。
可插拔。 今天 Claude 做 reviewer,明天換 Gemini,只要吃同一份檔案格式就能接上。
可治理。 approve/reject gate、retry、timeout、風險分級、人工覆核點,全部都能直接加在檔案協議上。
解決了 concurrency 之後,下一關是一致性
剛開始兩三個 agent 同時寫檔案會撞車,我用 atomic rename + lock 檔解掉了。過了那關之後,下一關立刻冒出來:一致性與可恢復性。
具體來說有四個問題你要回答:
- Immutability——你是 overwrite 還是 append?如果是 overwrite,之後 debug 會是地獄
- Single Source of Truth——status 只能有一份,其他全部是 artifact
- 崩潰後復原——如果某個 agent 寫到一半掛掉,誰會接手?怎麼判斷卡住?
- 冪等性——同一個任務被執行兩次會不會壞掉?
這四件事一寫下來,我忽然理解了:我不是在寫 script,我是在做一個 file-based 的 workflow engine。
檔名變成路由層
後來我又補了一步。一開始檔案只有類型,後來我開始把更多資訊塞進檔名:
[timestamp]__[repo]__[to]__[type]__[task_id].md
- 交付對象放進檔名——誰該接、誰該看一眼就知道
- repo 名放進檔名——多專案並行時不會串線
- 時間戳——新舊順序、重跑痕跡一目了然
- review 和 answer 分開——批判不是交付,審查不是答案
最後一點很關鍵。很多 AI workflow 死掉,就是死在 review 和 answer 混在一起——看起來很忙,其實不可控。
真正的轉折點
走到這裡,我忽然意識到一件事:
我花最多時間的不是「選哪個模型」,也不是「調 prompt」,而是在想:
- 任務怎麼交接?
- 狀態怎麼保存?
- 失敗怎麼恢復?
這三件事定好了,模型換誰都能跑。
這才是硬實力。不是 MCP 那種看起來很潮但一摔就散的東西。
給還在 AI workflow 路上的人
如果你現在也在往多 agent 的方向走,我的建議只有一句:
不要再加 agent 了。去寫一份讓這些 agent 不會互相踩死的憲法。
至少要包含:
- 任務 lifecycle(state machine)
- 檔案結構與命名規則
- schema 定義
- lock / concurrency 規則
- retry / timeout 規則
- human override 點
這份東西寫完,你的系統才會從「能跑」變成「能擴」。
結論
三個月前我覺得自己是 AI 工具的重度使用者。現在我比較像是在設計一個非常小的組織——只是這個組織的成員剛好是一群模型。
我真正學到的事:
MCP 比較像展示架。CLI + File I/O 比較像工地。而真正蓋出東西的,通常不是展示架。
「七位一體」只是我內部的暱稱,重點從來不是「七」。重點是從「會用 AI」跨進「會讓 AI 合作但不失控」這一層。
下一步我會把整套檔案協議正式化成一份 spec 丟出來。如果你在做類似的事,歡迎交換筆記。