[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-multi-agent-coding-distributed-systems-zh":3,"article-related-multi-agent-coding-distributed-systems-zh":29,"series-ai-agent-f90f5880-c4f9-4ecd-ade1-3d3fa05dd527":77},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":11,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":11},"f90f5880-c4f9-4ecd-ade1-3d3fa05dd527","multi-agent-coding-distributed-systems-zh","多代理寫程式像分散式系統","\u003Cp>Hacker News 一篇討論拿到 119 分、63 則留言。主張很直白：多代理寫程式，像分散式系統。說真的，這比很多 AI 宣傳文還貼近現場。\u003C\u002Fp>\u003Cp>原因也很簡單。你一旦把工作切成 plan、d\u003Ca href=\"\u002Fnews\u002Fclaude-design-codebase-aware-system-zh\">esig\u003C\u002Fa>n、code。再加 compile、lint、test。你就在協調多個獨立工作者。這時候，問題早就不是「模型會不會寫」。而是「每一步的狀態怎麼對齊」。\u003C\u002Fp>\u003Ch2>為什麼這個比喻很準\u003C\u002Fh2>\u003Cp>這篇 \u003Ca href=\"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=47761625\" target=\"_blank\" rel=\"noopener\">Hacker News\u003C\u002Fa> 討論，從一個很務實的觀察開始。只要你加上階段和驗證點，系統就不再像單一聰明模型。它更像一個 protocol。每個階段產出一個 artifact。下一階段再吃進去。那就是共享狀態。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776643621941-qy36.png\" alt=\"多代理寫程式像分散式系統\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>共享狀態不一定是資料庫。也可以是 markdown、diff、log、test result。講白了，這些東西就是工作記錄。它們不是裝飾品。它們是讓下一個 ag\u003Ca href=\"\u002Fnews\u002Fqwen36-35b-a3b-open-source-coding-model-zh\">en\u003C\u002Fa>t 知道前一步到底做了什麼。\u003C\u002Fp>\u003Cp>這個比喻會紅，不是沒原因。LLM 的失誤很常見。它可能看錯 prompt。可能漏掉限制。也可能長任務做一半就飄掉。你不能把這件事當小瑕疵。你得把它當系統故障來設計。\u003C\u002Fp>\u003Cul>\u003Cli>常見階段：plan、design、code\u003C\u002Fli>\u003Cli>常見檢查：compile、lint、test\u003C\u002Fli>\u003Cli>流程形狀：DAG，加上 retry loop\u003C\u002Fli>\u003Cli>討論中的一個估計：任務失敗率約 20%\u003C\u002Fli>\u003C\u002Ful>\u003Cp>20% 這個數字很刺眼。可是如果把 agent 當成 flaky node，就合理多了。你不會要求每個節點都永遠正常。你會問：哪個 boundary 能先驗證？哪個輸出不能直接往下傳？\u003C\u002Fp>\u003Ch2>檢查點比幻想可靠\u003C\u002Fh2>\u003Cp>這串討論裡，\u003Ca href=\"https:\u002F\u002Fmichael.roth.rocks\u002Fresearch\u002Ftrust-topology\u002F\" target=\"_blank\" rel=\"noopener\">Michael Roth\u003C\u002Fa> 的留言很有代表性。他講自己把工作拆成多階段。每一段都加 verification gate。deterministic checks 提供硬保證。agentic checks 提供軟判斷。這個分法很務實。\u003C\u002Fp>\u003Cp>他還提到，自己是從 shell scripts 和 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpaul-gauthier\u002Faider\" target=\"_blank\" rel=\"noopener\">aider\u003C\u002Fa> 開始做。後來才長成 MCP 和 CLI 的組合，還用 YAML 定義 stage 和 gate。這個路線很像很多台灣團隊的實作方式。先拼起來能跑。再慢慢整理成流程。\u003C\u002Fp>\u003Cp>我覺得這才是 agentic coding 的真相。不是一個漂亮平台解決一切。是很多工具湊在一起。每個工具只負責一小段。然後靠檢查點把風險壓住。\u003C\u002Fp>\u003Cblockquote>“You can’t make the agent reliable on its own, but you can make the protocol reliable by checking at every boundary.”\u003C\u002Fblockquote>\u003Cp>這句話很實在。你沒辦法把 LLM 變成永遠正確。可是你可以把 protocol 做穩。每個 boundary 都檢查。壞輸出就卡在那裡。不要讓它污染後面三個步驟。\u003C\u002Fp>\u003Cp>所以，別急著先加第二個 agent。先加 script、type check、lint、compile。這些東西很無聊。可是無聊的工具，才會產生穩定輸入。穩定輸入，才會讓下一個模型少亂猜。\u003C\u002Fp>\u003Ch2>跟真實 orchestration 系統比一比\u003C\u002Fh2>\u003Cp>討論很快就跑到 workflow engine。有人提到 \u003Ca href=\"https:\u002F\u002Ftemporal.io\u002F\" target=\"_blank\" rel=\"noopener\">Temporal\u003C\u002Fa>。這個類比很有意思。因為它把兩件事拆開：基礎設施可靠，和語意可靠。這兩件事根本不是同一件。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776643617842-xkew.png\" alt=\"多代理寫程式像分散式系統\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>Temporal 可以 retry activity，也可以保留 history。可是它不能保證每次呼叫 LLM 都吐出一樣的答案。這就是分水嶺。系統可以幫你把執行做穩。它不能幫你把意思做成 deterministic。\u003C\u002Fp>\u003Cp>所以，multi-agent coding 真的比較像分散式系統。不是因為它很高級。是因為它真的有 retry、state、timeout、handoff。只是這些訊息不是封包。它們是自然語言、程式碼、規格和測試結果。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Ftemporal.io\u002F\" target=\"_blank\" rel=\"noopener\">Temporal\u003C\u002Fa> 管 retry、history、workflow state\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex\" target=\"_blank\" rel=\"noopener\">OpenAI Codex\u003C\u002Fa> 類工具負責產碼，但仍要外部檢查\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpaul-gauthier\u002Faider\" target=\"_blank\" rel=\"noopener\">aider\u003C\u002Fa> 很適合改碼，但還是得靠 repo 的 test 和 lint\u003C\u002Fli>\u003Cli>CI 和 scripts 負責抓 format、compile、dependency 問題\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這種架構，已經很像 service mesh、job queue、eventual consistency。差別只在於，這裡的 message 不是 JSON。很多時候，它是人類語言。這也更麻煩。因為人類語言本來就會歧義。\u003C\u002Fp>\u003Cp>所以流程越長，越不能靠直覺。你要把每個 stage 的輸出寫清楚。你要知道這一段是 spec，還是 plan，還是 patch。混在一起，只會讓下一個 agent 更容易發散。\u003C\u002Fp>\u003Ch2>競品和數據，差在哪裡\u003C\u002Fh2>\u003Cp>如果把這件事拆成產品面來看，差異就更明顯了。\u003Ca href=\"https:\u002F\u002Ftemporal.io\u002F\" target=\"_blank\" rel=\"noopener\">Temporal\u003C\u002Fa> 是 workflow 平台。它管的是執行與狀態。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex\" target=\"_blank\" rel=\"noopener\">Codex\u003C\u002Fa> 類工具是生成器。它管的是產碼。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpaul-gauthier\u002Faider\" target=\"_blank\" rel=\"noopener\">aider\u003C\u002Fa> 比較像互動式編輯器。它把模型拉進 repo 裡，讓你直接改檔。\u003C\u002Fp>\u003Cp>這三者的角色不同。Temporal 偏流程。Codex 偏生成。a\u003Ca href=\"\u002Fnews\u002Fclaude-design-features-guide-zh\">ide\u003C\u002Fa>r 偏編輯。真正難的是把它們串起來。串起來之後，才會有 plan、generate、verify、review 這種可重跑流程。\u003C\u002Fp>\u003Cp>如果拿常見指標來看，差異也很清楚。模型本身看的是 token 輸出品質。workflow 看的是成功率、重試次數、平均修復時間。CI 看的是 compile、test pass rate。這些指標不一樣。你不能只看一個。\u003C\u002Fp>\u003Cul>\u003Cli>模型層：token 品質、prompt 命中率\u003C\u002Fli>\u003Cli>流程層：成功率、retry 次數、回滾成本\u003C\u002Fli>\u003Cli>驗證層：compile pass、lint pass、test pass\u003C\u002Fli>\u003Cli>協作層：review 時間、diff 大小、手動修正比例\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我自己的看法很直接。很多團隊卡住，不是因為模型不夠強。是因為沒有把驗證前移。你把檢查放到最後，就會一直被大 diff 打臉。你把檢查放到每個 stage，問題就小很多。\u003C\u002Fp>\u003Cp>這也是為什麼 agentic coding 不能只看 demo。Demo 常常很順。正式流程才會看到 retry、timeout、state drift。那些才是成本。\u003C\u002Fp>\u003Ch2>這波熱潮背後的脈絡\u003C\u002Fh2>\u003Cp>其實這不是突然冒出來的想法。軟體工程本來就一直在處理不可靠元件。以前是網路、磁碟、服務。現在多了一個 LLM。它會亂想。它會忘記。它會在長上下文裡走偏。這些都很像分散式系統的老問題。\u003C\u002Fp>\u003Cp>差別只在於，現在你處理的不是機器節點，而是會說話的節點。這讓問題更難，也更有趣。因為你不只要處理 failure。你還要處理語意漂移。這也是為什麼很多團隊開始把 agent 當成 pipeline 元件，而不是神奇助理。\u003C\u002Fp>\u003Cp>講白了，這一波工具的價值，不在於少寫幾行 code。它在於把工作拆細。把責任拆清楚。把每個輸出都變成可檢查的中間產物。這跟傳統軟體工程其實很像，只是現在多了一層自然語言。\u003C\u002Fp>\u003Cp>如果你看台灣團隊的現況，很多人已經在做類似的事。先用 LLM 產 spec。再用 script 轉格式。再用 CI 擋錯。最後才讓人 review。這套做法不炫。可是很有效。\u003C\u002Fp>\u003Ch2>結尾：先把 handoff 做穩\u003C\u002Fh2>\u003Cp>我會給團隊一個很實際的建議。先挑一條最常失敗的流程。把它切成 3 段。每段都加一個 deterministic check。再把失敗紀錄寫下來。你很快就會看見，問題到底是模型、流程，還是規格本身。\u003C\u002Fp>\u003Cp>如果你正在做 agentic coding，先別問「能不能讓模型一次寫完」。先問「哪個 handoff 最容易壞」。把那個地方修好，整個系統才會像系統。不是像一堆聊天紀錄。\u003C\u002Fp>","Hacker News 一篇討論把多代理寫程式比作分散式系統。重點不是模型多聰明，而是怎麼用階段、檢查點、共享狀態，把不穩定的 LLM 變成可控流程。","news.ycombinator.com","https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=47761625",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776643621941-qy36.png","ai-agent","zh","07f51e13-cb42-4bb2-b25d-9ab1d0642bc1",[17,18,19,20,21,22,23,24,25],"多代理寫程式","分散式系統","LLM","agentic coding","Temporal","aider","Hacker News","workflow","verification gates",6,"2026-04-20T00:06:35.013148+00:00","2026-04-20T00:06:34.83+00:00",{"tags":30,"relatedLang":36,"relatedPosts":40},[31,33,35],{"name":19,"slug":32},"llm",{"name":20,"slug":34},"agentic-coding",{"name":24,"slug":24},{"id":15,"slug":37,"title":38,"language":39},"multi-agent-coding-distributed-systems-en","Why Multi-Agent Coding Feels Like Distributed Systems","en",[41,47,53,59,65,71],{"id":42,"slug":43,"title":44,"cover_image":45,"image_url":45,"created_at":46,"category":13},"cd51c43c-312b-4bcf-a6b2-b3217c4e05b7","llm-wikis-beat-raw-rag-knowledge-work-zh","LLM 維護的 wiki 比原始 RAG 更適合真正的知識工作","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782760669415-7e3l.png","2026-06-29T19:17:20.761542+00:00",{"id":48,"slug":49,"title":50,"cover_image":51,"image_url":51,"created_at":52,"category":13},"cde225a8-eb8e-4724-a089-77f36af0e8a6","mcps-new-primitives-make-agent-middleware-obsolete-zh","MCP 的新原語，正在淘汰自製 agent middleware","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782748974384-f5w9.png","2026-06-29T16:02:24.789168+00:00",{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":13},"6e37d84c-aa27-4d4d-bbf1-81c47dc4522d","mcp-servers-ai-workflows-explained-zh","MCP Server 讓 AI 工具接上工作流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782747180723-q3gs.png","2026-06-29T15:32:33.536175+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":13},"a5333ae2-bfd1-434a-92dd-575e824538c3","openmontage-open-source-ai-video-production-zh","OpenMontage 證明 AI 影片製作該由開源接管","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782685072512-v02f.png","2026-06-28T22:17:22.846394+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":13},"caea04da-9e30-4eb8-bb08-2ac3afc4f09e","gemini-35-flash-computer-use-safeguards-zh","Gemini 3.5 Flash 讓你寫電腦操作腳本","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782681504454-c1ly.png","2026-06-28T21:17:56.883563+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":13},"362a448e-b40e-437c-9529-94b0fd6a7689","design-md-bridge-taste-to-ui-scaffolds-zh","DESIGN.md 是把品味變成 UI 骨架的缺失橋樑","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782586072806-w93e.png","2026-06-27T18:47:23.886521+00:00",[78,83,88,93,98,103,108,113,118,123],{"id":79,"slug":80,"title":81,"created_at":82},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":84,"slug":85,"title":86,"created_at":87},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":89,"slug":90,"title":91,"created_at":92},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]