[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-multi-agent-coding-distributed-systems-zh":3,"tags-multi-agent-coding-distributed-systems-zh":33,"related-lang-multi-agent-coding-distributed-systems-zh":34,"related-posts-multi-agent-coding-distributed-systems-zh":38,"series-ai-agent-f90f5880-c4f9-4ecd-ade1-3d3fa05dd527":75},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":22,"translated_content":10,"views":23,"is_premium":24,"created_at":25,"updated_at":25,"cover_image":11,"published_at":26,"rewrite_status":27,"rewrite_error":10,"rewritten_from_id":28,"slug":29,"category":30,"related_article_id":31,"status":32,"google_indexed_at":10,"x_posted_at":10},"f90f5880-c4f9-4ecd-ade1-3d3fa05dd527","多代理寫程式像分散式系統","\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",[13,14,15,16,17,18,19,20,21],"多代理寫程式","分散式系統","LLM","agentic coding","Temporal","aider","Hacker News","workflow","verification gates","zh",0,false,"2026-04-20T00:06:35.013148+00:00","2026-04-20T00:06:34.83+00:00","done","0b743e50-360a-4347-8433-a43456c3c273","multi-agent-coding-distributed-systems-zh","ai-agent","07f51e13-cb42-4bb2-b25d-9ab1d0642bc1","published",[],{"id":31,"slug":35,"title":36,"language":37},"multi-agent-coding-distributed-systems-en","Why Multi-Agent Coding Feels Like Distributed Systems","en",[39,45,51,57,63,69],{"id":40,"slug":41,"title":42,"cover_image":43,"image_url":43,"created_at":44,"category":30},"4f83d9b9-d7c4-4ce2-96a0-ee6d52567f9f","claude-design-codebase-aware-system-zh","Claude Design 最關鍵的技術細節：讀 codebase 建設計系統","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776609018078-9uxl.png","2026-04-19T13:59:21.426881+00:00",{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":30},"b3e4d4ed-a225-456c-8550-8d26c26ce5e5","openai-agents-sdk-safer-enterprise-controls-zh","OpenAI Agents SDK 加強企業控管","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776513829857-0otz.png","2026-04-18T12:03:31.394038+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":30},"c7f4b560-6d6e-4e7f-9124-93c43a5985ab","neubird-ai-falcon-production-ops-launch-zh","NeuBird AI 推出 Falcon，主打自動維運","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776038833498-gyrk.png","2026-04-13T00:06:40.141753+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":30},"a0793170-f21f-4450-9d77-43cc7e43b192","anthropic-managed-agents-enterprise-ai-work-zh","Anthropic 推出 Managed Agents 攻…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775779802303-ko9l.png","2026-04-10T00:09:40.716623+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":30},"fccdb73d-49ee-45c4-9c9c-d74f8239c5a0","openclaw-memory-retrieval-system-zh","OpenClaw 記憶體檢索怎麼跑","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775630218744-w091.png","2026-04-08T06:36:39.499911+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":30},"35b17db6-a915-4a3c-87c6-733fbb7f5a31","harness-engineering-long-running-multi-agent-systems-zh","長跑型多代理系統的 Harness 設計","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775629509415-9j0g.png","2026-04-08T06:24:33.356723+00:00",[76,81,86,91,96,101,106,111,116,121],{"id":77,"slug":78,"title":79,"created_at":80},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":82,"slug":83,"title":84,"created_at":85},"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":87,"slug":88,"title":89,"created_at":90},"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":92,"slug":93,"title":94,"created_at":95},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"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":107,"slug":108,"title":109,"created_at":110},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"e41546b8-ba9e-455f-9159-88d4614ad711","openai-codex-plugin-claude-code-zh","OpenAI 把 Codex 放進 Claude Code","2026-04-01T09:21:54.687617+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00"]