[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-harness-engineering-ai-agent-reliability-2026-zh":3,"tags-harness-engineering-ai-agent-reliability-2026-zh":28,"related-lang-harness-engineering-ai-agent-reliability-2026-zh":39,"related-posts-harness-engineering-ai-agent-reliability-2026-zh":43,"series-ai-agent-48c9889e-86df-450b-a356-e4a4b7c83c5b":80},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":9,"image_url":10,"keywords":11,"language":17,"translated_content":9,"views":18,"is_premium":19,"created_at":20,"updated_at":20,"cover_image":10,"published_at":21,"rewrite_status":22,"rewrite_error":9,"rewritten_from_id":9,"slug":23,"category":24,"related_article_id":25,"status":26,"google_indexed_at":27,"x_posted_at":9,"tweet_text":9,"title_rewritten_at":9,"title_original":9,"key_takeaways":9,"topic_cluster_id":9,"embedding":9,"is_canonical_seed":19},"48c9889e-86df-450b-a356-e4a4b7c83c5b","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","\u003Ch2>引言：為什麼 GPT-5 還是會犯低級錯誤？\u003C\u002Fh2>\n\u003Cp>你有沒有想過，為什麼最強大的 AI 模型也會莫名其妙地偏離軌道？\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1774940070981-vjgu.png\" alt=\"駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\n\u003Cp>2025 年 8 月，OpenAI 內部一個小團隊開始了一個大膽的實驗：讓 Codex Agent 在空白倉庫中從零開始構建一個百萬行代碼的產品。最後，\u003Cstrong>七個工程師透過 Agent 在五個月內完成了通常需要數年的工作\u003C\u002Fstrong>——平均每名工程師每天合併 3.5 個 PR，項目進度隨著團隊擴大而加快，而非減慢。\u003C\u002Fp>\n\u003Cp>但這個成就的代價不是更聰明的模型。實際上，整個項目的制約之一是「零行手動編寫的代碼」。成功的秘密隱藏在看不見的地方：\u003Cstrong>包裹 Agent 的框架體系\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>這就是 Harness Engineering 的故事。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>什麼是 Harness Engineering？\u003C\u002Fh2>\n\u003Cp>Harness Engineering（駕馭工程）是設計 AI Agent 外部控制與執行框架的工程實踐。如果 AI 模型是馬匹，那麼 Harness 就是騎手手中的韁繩、鞍具和一整套馴馬術——它決定了這匹馬去往何方、如何對待失控的時刻。\u003C\u002Fp>\n\u003Ch3>術語起源\u003C\u002Fh3>\n\u003Cp>這個概念由 HashiCorp 共同創辦人 Mitchell Hashimoto 在 2026 年 2 月正式命名。在他的文章《我的 AI 採納之旅》中，Hashimoto 將他的一個關鍵洞察命名為「Engineer the Harness」（工程化馬具）：\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>「每當 Agent 犯錯時，不要寄希望於它下次做得更好。而是要工程化環境本身，使其無法再以同樣的方式犯同樣的錯誤。」\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>這一簡單的原則點燃了整個行業的思想火花。幾週後，OpenAI 發表了關於 Harness Engineering 的詳細報告，Anthropic 將其融入 \u003Ca href=\"\u002Ftag\u002Fclaude-code\">Claude Code\u003C\u002Fa> 的核心架構，Google DeepMind 用它優化了代碼生成流程。\u003C\u002Fp>\n\u003Ch3>為什麼叫「馬具」？\u003C\u002Fh3>\n\u003Cp>Harness 這個詞本身來自騎馬術語——它是連接騎手和馬匹的工具組。隱喻恰當得令人驚訝：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>馬 = 大模型\u003C\u002Fstrong> — 原始能力強大但性情不定\u003C\u002Fli>\n\u003Cli>\u003Cstrong>騎手 = 開發者或使用者\u003C\u002Fstrong> — 希望控制方向和速度\u003C\u002Fli>\n\u003Cli>\u003Cstrong>馬具 = Harness Engineering\u003C\u002Fstrong> — 使控制成為可能的工程系統\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>沒有馬具，再強的馬也無法拉車。沒有馬具，再聰明的 Agent 也無法在生產環境中穩定運行。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>三次演進：從 Prompt 到 Harness\u003C\u002Fh2>\n\u003Cp>AI 工程在過去三年經歷了三個截然不同的時代。理解這三次演進，你才能理解為什麼 Harness Engineering 在 2026 年會成為行業焦點。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1774940090123-fw0j.png\" alt=\"駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\n\u003Ch3>第一代：Prompt Engineering（2023-2024）\u003C\u002Fh3>\n\u003Cp>時代特徵：魔法咒語\u003C\u002Fp>\n\u003Cp>在 ChatGPT 推出的早期，開發者們迷上了 Prompting。經典思路是：\u003Cstrong>寫得更聰明的指示，就能從模型中榨取更多智慧\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>「讓我們一步步思考…」\u003C\u002Fli>\n\u003Cli>「你是一個資深軟體工程師…」\u003C\u002Fli>\n\u003Cli>「輸出 JSON 格式…」\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>這些技巧有效，但效果上限很低。當面對複雜、多步驟的任務時，Prompt Engineering 的局限性浮現：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>上下文窗口詛咒\u003C\u002Fstrong> — 無論 Prompt 多詳細，它佔據的 token 空間與實際工作空間競爭\u003C\u002Fli>\n\u003Cli>\u003Cstrong>魔法數字\u003C\u002Fstrong> — 某個在你的案例中有效的 Prompt，在別人的環境中失效\u003C\u002Fli>\n\u003Cli>\u003Cstrong>零學習能力\u003C\u002Fstrong> — Agent 每次失敗都重新開始，無法從錯誤中積累經驗\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>第二代：Context Engineering（2024-2025）\u003C\u002Fh3>\n\u003Cp>時代特徵：動態知識管理\u003C\u002Fp>\n\u003Cp>2024 年，Hugging Face 的 Philipp Schmid 發表了《新的 AI 技能不是 Prompting，而是 Context Engineering》。這篇文章改變了遊戲規則。\u003C\u002Fp>\n\u003Cp>核心洞察：\u003Cstrong>大多數 Agent 失敗不是因為模型太笨，而是因為上下文不夠好\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>Context Engineering 強調：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>動態上下文構建\u003C\u002Fstrong> — 根據當前任務動態組裝相關信息，而不是靜態 Prompt\u003C\u002Fli>\n\u003Cli>\u003Cstrong>知識庫優化\u003C\u002Fstrong> — 建立可搜尋的文檔、代碼結構和 API 文檔，Agent 可以按需擷取\u003C\u002Fli>\n\u003Cli>\u003Cstrong>工具發現\u003C\u002Fstrong> — Agent 不僅知道什麼工具存在，還知道何時使用、如何使用\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>到 2025 年中期，Context Engineering 已經成為 LangChain、OpenAI 和 Anthropic 的標準做法。但在實踐中，團隊發現了一個新的瓶頸：\u003Cstrong>光有好的上下文還不夠\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>Agent 可能知道該怎麼做，但在複雜的多步工作流中仍會失控。為什麼？\u003C\u002Fp>\n\u003Ch3>第三代：Harness Engineering（2026~）\u003C\u002Fh3>\n\u003Cp>時代特徵：外部控制框架\u003C\u002Fp>\n\u003Cp>Harness Engineering 回答的問題是：\u003Cstrong>我們不只是給 Agent 更多信息，我們還要給它一個邊界清晰、可預測、可恢復的執行環境\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>這不是改進 Prompt，不是優化上下文，而是重新設計整個系統架構。\u003C\u002Fp>\n\u003Cp>三代的演進軌跡：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Prompt Engineering\n    ↓\n  「寫得更好的魔法咒語」\n    ↓\n  失敗：上下文窗口有限\n    ↓\nContext Engineering\n    ↓\n  「動態組裝更相關的信息」\n    ↓\n  失敗：Agent 仍在複雜流程中失控\n    ↓\nHarness Engineering\n    ↓\n  「設計整個執行環境，讓 Agent 無法失控」\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Chr>\n\u003Ch2>Philipp Schmid 的作業系統隱喻：比馬具更精確的類比\u003C\u002Fh2>\n\u003Cp>儘管「馬具」這個比喻很形象，但 Schmid 提出的「作業系統」隱喻更能捕捉 Harness Engineering 的本質。\u003C\u002Fp>\n\u003Ch3>四層計算棧\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>層級\u003C\u002Fth>\n\u003Cth>傳統計算\u003C\u002Fth>\n\u003Cth>AI Agent 系統\u003C\u002Fth>\n\u003Cth>角色\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cstrong>應用\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>文字編輯器、遊戲、瀏覽器\u003C\u002Ftd>\n\u003Ctd>具體任務的 Agent（如「編寫測試用例」）\u003C\u002Ftd>\n\u003Ctd>用戶直接使用\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>作業系統\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Windows、Linux、macOS\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>Harness Engineering（Agent Harness）\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>管理資源、執行控制\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>RAM\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>8GB、16GB 的物理記憶體\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>上下文窗口\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>有限的工作空間\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>CPU\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Intel、AMD 處理器\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>大型語言模型\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>原始計算能力\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3>為什麼作業系統隱喻更準確？\u003C\u002Fh3>\n\u003Cp>一個現代作業系統不只是「加快 CPU」，而是：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>\u003Cstrong>記憶體管理\u003C\u002Fstrong> — 在有限的 RAM 中運行龐大的應用\u003C\u002Fp>\n\u003Cul>\n\u003Cli>AI 類比：在有限的上下文窗口中處理複雜任務\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>進程排程\u003C\u002Fstrong> — 決定哪個任務何時運行、分配多少資源\u003C\u002Fp>\n\u003Cul>\n\u003Cli>AI 類比：將複雜任務分解為子任務，決定執行順序\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>驅動程式\u003C\u002Fstrong> — 標準化軟體與硬體的互動\u003C\u002Fp>\n\u003Cul>\n\u003Cli>AI 類比：標準化 Agent 與工具、API、數據庫的互動\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>權限管理\u003C\u002Fstrong> — 防止應用程序意外或惡意地造成損害\u003C\u002Fp>\n\u003Cul>\n\u003Cli>AI 類比：限制 Agent 可以執行的操作範圍\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>異常恢復\u003C\u002Fstrong> — 當應用程序崩潰時，作業系統恢復到一致狀態\u003C\u002Fp>\n\u003Cul>\n\u003Cli>AI 類比：當 Agent 陷入循環或做出錯誤決策時恢復執行\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>馬具比喻告訴我們「控制」的想法。OS 隱喻告訴我們「控制、管理、優化、恢復」的完整系統設計。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>三大業界實踐\u003C\u002Fh2>\n\u003Cp>理論很好，但 Harness Engineering 如何在現實中運作？以下三個案例展示了不同的實踐方向。\u003C\u002Fp>\n\u003Ch3>OpenAI：7 人團隊 × 百萬行代碼的「馬具完美」\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>時間線\u003C\u002Fstrong>：2025 年 8 月–2026 年 1 月\u003C\u002Fp>\n\u003Cp>\u003Cstrong>目標\u003C\u002Fstrong>：用 Codex Agent 在空白倉庫中構建一個生產級應用\u003C\u002Fp>\n\u003Cp>\u003Cstrong>成果\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>超過 \u003Cstrong>100 萬行代碼\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>1500+ pull requests\u003C\u002Fstrong> 合併\u003C\u002Fli>\n\u003Cli>\u003Cstrong>7 名工程師\u003C\u002Fstrong>（從 3 人開始，後來擴展）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>3.5 PR\u002F工程師\u002F天\u003C\u002Fstrong> 平均合併率\u003C\u002Fli>\n\u003Cli>速度隨著團隊擴大而加快（通常應該減慢）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>十分之一的時間\u003C\u002Fstrong>相比手動編寫\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>這聽起來像科幻，但它基於一個鐵律：\u003Cstrong>沒有人手工編寫任何代碼\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch4>OpenAI 的馬具四支柱\u003C\u002Fh4>\n\u003Cp>根據 OpenAI 發表的詳細報告，他們的馬具包含四個核心部分：\u003C\u002Fp>\n\u003Ch5>1. 上下文工程：持續增強的知識庫\u003C\u002Fh5>\n\u003Cp>OpenAI 構建了「持續增強的代碼庫知識庫 + Agent 對動態上下文（如可觀測性數據和瀏覽器導航）的存取」。\u003C\u002Fp>\n\u003Cp>這不是靜態文檔。而是：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>代碼結構文檔\u003C\u002Fstrong> — 新建模組時，Harness 強制更新 architecture 文檔\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API 與工具清單\u003C\u002Fstrong> — 可搜尋的工具索引，包含使用示例\u003C\u002Fli>\n\u003Cli>\u003Cstrong>可觀測性集成\u003C\u002Fstrong> — Agent 可以查詢前一個 Agent 的執行日誌，學習為什麼它失敗了\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch5>2. 架構約束：LLM + 確定性雙層驗證\u003C\u002Fh5>\n\u003Cp>最有趣的部分：OpenAI \u003Cstrong>同時使用 LLM 和傳統 linter\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>LLM 層\u003C\u002Fstrong> — Agent 審查自己的代碼，確保邏輯正確\u003C\u002Fli>\n\u003Cli>\u003Cstrong>確定性層\u003C\u002Fstrong> — 自訂 linter 和結構測試強制執行代碼風格、模組邊界、命名規範\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>為什麼雙層？因為 LLM 有時會遺漏，傳統 linter 不會。\u003C\u002Fp>\n\u003Ch5>3. 垃圾回收：熵的持續戰鬥\u003C\u002Fh5>\n\u003Cp>即使有好的 Harness，Agent 產生的代碼也會積累技術債：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>死代碼\u003C\u002Fli>\n\u003Cli>不必要的檔案\u003C\u002Fli>\n\u003Cli>過時的註解\u003C\u002Fli>\n\u003Cli>架構違規\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>OpenAI 的解決方案：\u003Cstrong>定期運行清理 Agent\u003C\u002Fstrong>，它們的唯一工作是尋找不一致之處並修復。這是垃圾回收。\u003C\u002Fp>\n\u003Ch5>4. 反饋迴路：失敗 → 信號 → 改進\u003C\u002Fh5>\n\u003Cp>OpenAI 採取的最重要哲學：\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>「當 Agent 失敗時，我們將其視為信號：識別缺少什麼 — 工具、護欄、文檔 — 並將其反饋到倉庫中。」\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>這不是「希望 Agent 做得更好」，而是「識別系統缺陷並修復系統」。\u003C\u002Fp>\n\u003Ch3>Anthropic：生成-評估分離架構\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>方法論\u003C\u002Fstrong>：多 Agent 協作，而非單一超級 Agent\u003C\u002Fp>\n\u003Cp>Anthropic 在 Claude Code 中內建的 Harness 採用了不同的模式：\u003Cstrong>專門化的 Agent 團隊\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch4>三層 Agent 架構\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cp>\u003Cstrong>Orchestrator Agent\u003C\u002Fstrong> （領導層）\u003C\u002Fp>\n\u003Cul>\n\u003Cli>運行最聰明的模型（Claude Opus 4.5）\u003C\u002Fli>\n\u003Cli>分析用戶請求\u003C\u002Fli>\n\u003Cli>將工作分解為子任務\u003C\u002Fli>\n\u003Cli>協調執行順序\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Specialist Sub-agents\u003C\u002Fstrong>（執行層）\u003C\u002Fp>\n\u003Cul>\n\u003Cli>運行更快、更便宜的模型（Claude Sonnet 4、Haiku 4.5）\u003C\u002Fli>\n\u003Cli>並行執行專門任務\u003C\u002Fli>\n\u003Cli>如：一個 Agent 寫代碼，一個 Agent 寫測試，一個 Agent 寫文檔\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Verification Agent\u003C\u002Fstrong>（驗證層）\u003C\u002Fp>\n\u003Cul>\n\u003Cli>審查所有輸出\u003C\u002Fli>\n\u003Cli>檢查代碼正確性、文檔完整性、測試覆蓋\u003C\u002Fli>\n\u003Cli>在返回給用戶前提高品質\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>為什麼分離有效？\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>績效提升\u003C\u002Fstrong>：內部評估顯示這個架構的性能比單個 Claude Opus 4 \u003Cstrong>高出 90.2%\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>原因\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>並行性\u003C\u002Fstrong> — 多個 Agents 可以同時工作，不會相互阻礙\u003C\u002Fli>\n\u003Cli>\u003Cstrong>專業化\u003C\u002Fstrong> — 每個 Agent 優化於特定任務，而非通才\u003C\u002Fli>\n\u003Cli>\u003Cstrong>可恢復性\u003C\u002Fstrong> — 一個 Sub-agent 失敗不影響其他的，Orchestrator 可以重新分配\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Claude Code 正是這個 Harness 的公開實現。當你在 Claude Code 中寫代碼時，你看到的不是單一 Agent，而是一個完整的團隊在幕後運作。\u003C\u002Fp>\n\u003Ch3>Google DeepMind：循環驗證的 AlphaCode 2 範式\u003C\u002Fh3>\n\u003Cp>Google DeepMind 的方法強調\u003Cstrong>迭代改進\u003C\u002Fstrong>，而非一次性生成。\u003C\u002Fp>\n\u003Cp>儘管 Google 沒有公開詳細的「Generator-Verifier-Reviser」(GVR) 架構論文，但他們在 AlphaCode 2 中展示的實踐反映了 Harness Engineering 的核心：\u003C\u002Fp>\n\u003Ch4>三階段循環\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>Generator\u003C\u002Fstrong> — 生成多個代碼候選（通常 &gt; 100 個）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verifier\u003C\u002Fstrong> — 在測試用例上驗證，排除失敗的候選\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reviser\u003C\u002Fstrong> — 對經過驗證的候選進行微調和最佳化\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>這不是線性的「寫一次，提交」，而是\u003Cstrong>循環\u003C\u002Fstrong>：Generator 可以看到 Verifier 的反饋，重新生成更好的候選。\u003C\u002Fp>\n\u003Ch4>與開源 CodeContests 競賽的成果\u003C\u002Fh4>\n\u003Cp>Google DeepMind 用 AlphaCode 2 在 CodeContests 競賽中的排名進入\u003Cstrong>前 15%\u003C\u002Fstrong> 的人類程式師。這超越了 GPT-4 和 Claude Opus 的單一生成性能。\u003C\u002Fp>\n\u003Cp>差異在哪裡？\u003Cstrong>Harness\u003C\u002Fstrong>。不是模型本身，而是圍繞它的驗證和修訂系統。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>反直覺經驗：Vercel 為什麼砍掉 80% 的工具\u003C\u002Fh2>\n\u003Cp>2026 年 2 月，Vercel 發表了一篇令人困惑的文章：《我們移除了 Agent 80% 的工具》。\u003C\u002Fp>\n\u003Cp>結果？效能提升了。\u003C\u002Fp>\n\u003Ch3>故事背景\u003C\u002Fh3>\n\u003Cp>Vercel 建立了一個文本轉 SQL Agent，用於他們的 Vercel Data Platform。初始版本配備了許多精心設計的工具：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>SQL 查詢執行器\u003C\u002Fli>\n\u003Cli>數據庫 schema 檢查器\u003C\u002Fli>\n\u003Cli>表統計工具\u003C\u002Fli>\n\u003Cli>自訂 Vercel API 包裝器\u003C\u002Fli>\n\u003Cli>錯誤處理工具\u003C\u002Fli>\n\u003Cli>…… 還有更多\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>初始性能：\u003Cstrong>80% 成功率\u003C\u002Fstrong>。但過程很痛苦：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>平均 \u003Cstrong>100 步\u003C\u002Fstrong>才能完成一個查詢\u003C\u002Fli>\n\u003Cli>\u003Cstrong>145,000 tokens\u003C\u002Fstrong>（成本高）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>724 秒\u003C\u002Fstrong>最壞情況下的延遲\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>大膽的決定\u003C\u002Fh3>\n\u003Cp>Vercel 團隊做了反直覺的事：\u003Cstrong>刪除所有自訂工具，只保留一個通用工具：執行任意 bash 命令\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>新 Harness：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>給 Claude 檔案系統存取權限\u003C\u002Fli>\n\u003Cli>給 Claude 標準的 Unix 工具：\u003Ccode>cat\u003C\u002Fcode>、\u003Ccode>grep\u003C\u002Fcode>、\u003Ccode>ls\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>信任 Claude 自己理解如何導航\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>結果令人震驚\u003C\u002Fh3>\n\u003Cp>新版本：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>100% 成功率\u003C\u002Fstrong>（相比 80%）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>19 步\u003C\u002Fstrong>（相比 100）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>67,000 tokens\u003C\u002Fstrong>（相比 145,000，節省 40%）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>141 秒\u003C\u002Fstrong>（相比 724 秒，快 5 倍）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>為什麼更少的工具 = 更好的性能？\u003C\u002Fh3>\n\u003Cp>Vercel 的假設是：\u003Cstrong>模型變得更聰明了，上下文窗口變大了，也許最好的 Agent 架構就是幾乎沒有架構\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>深層原因：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>\u003Cstrong>認知超載\u003C\u002Fstrong> — 太多工具讓 Agent 困惑，它花時間思考該用哪個工具，而不是解決問題\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>信任與自由\u003C\u002Fstrong> — 當給予 Agent 基本但強大的原始工具，它反而表現得更好\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>通用性優於專門性\u003C\u002Fstrong> — 自訂工具可能遺漏邊界情況，通用工具更魯棒\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>這反映了 Harness Engineering 的一個深刻真理：\u003Cstrong>最好的馬具不是限制性的，而是釋放潛力的\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>LangChain 實證：只改 Harness，排名從 30 到 5\u003C\u002Fh2>\n\u003Cp>LangChain 的案例是 Harness Engineering 有效性的最清晰證據。\u003C\u002Fp>\n\u003Ch3>基準線\u003C\u002Fh3>\n\u003Cp>LangChain 的深度 Agent（用於軟體開發任務）在 \u003Cstrong>Terminal Bench 2.0\u003C\u002Fstrong> 上排名第 30，分數 \u003Cstrong>52.8%\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>Terminal Bench 是一個代碼生成基準，測試 Agent 在實際軟體開發場景中的表現。排名第 30 意味著有 29 個系統比它更好。\u003C\u002Fp>\n\u003Ch3>實驗設置\u003C\u002Fh3>\n\u003Cp>LangChain 的關鍵決定：\u003Cstrong>保持模型固定，只改變 Harness\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>使用的模型：\u003Cstrong>GPT-5.2-Codex\u003C\u002Fstrong>（固定不變）\u003C\u002Fp>\n\u003Cp>改變的變數：\u003C\u002Fp>\n\u003Col>\n\u003Cli>系統 prompt\u003C\u002Fli>\n\u003Cli>工具集合和工具設計\u003C\u002Fli>\n\u003Cli>中間件掛鉤和控制流\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>核心發現\u003C\u002Fh3>\n\u003Ch4>1. 驗證迴路是遊戲改變者\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：Agent 寫完代碼後，自己讀了一遍，決定「看起來不錯」，就停止了。沒有實際執行測試。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>解決方案\u003C\u002Fstrong>：LangChain 實裝了 \u003Ccode>PreCompletionChecklistMiddleware\u003C\u002Fcode>，強制 Agent 執行驗證通過。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>效果\u003C\u002Fstrong>：單這一個掛鉤就貢獻了 \u003Cstrong>13.7 百分點\u003C\u002Fstrong>的改進。\u003C\u002Fp>\n\u003Ch4>2. 上下文注入優於口頭說教\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：Agent 被淹沒在文檔中，遺漏關鍵細節。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>解決方案\u003C\u002Fstrong>：\u003Ccode>LocalContextMiddleware\u003C\u002Fcode> 在代碼執行前掃描整個本地結構，主動注入相關信息（文件樹、關鍵檔案內容、測試命令）。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>效果\u003C\u002Fstrong>：上下文注入單獨貢獻了 \u003Cstrong>7.2 百分點\u003C\u002Fstrong>的改進。\u003C\u002Fp>\n\u003Ch4>3. 計算預算的詭異逆轉\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>發現\u003C\u002Fstrong>：將推理預算設為最高（\u003Ccode>xhigh\u003C\u002Fcode>）實際上 \u003Cstrong>降低了性能\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>xhigh\u003C\u002Fcode> 設置：53.9%（由於超時）\u003C\u002Fli>\n\u003Cli>\u003Ccode>high\u003C\u002Fcode> 設置：63.6%（最佳性能）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>理由\u003C\u002Fstrong>：更多思考時間不一定更好；Agent 可能陷入分析癱瘓或超時。有時候，\u003Cstrong>約束能改進性能\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch3>最終結果\u003C\u002Fh3>\n\u003Cp>經過這些改動，LangChain 的 Agent：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>排名上升到第 5\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>分數從 52.8% → 66.5%\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>僅改變 Harness，未改變模型\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>這是對 Harness Engineering 有效性最有力的證明：\u003Cstrong>問題不是模型，而是如何使用它\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>Martin Fowler 的三大 Harness 組件\u003C\u002Fh2>\n\u003Cp>讓我們從更結構化的視角重新審視 Harness 的組成。Martin Fowler 與 Birgitta Böckeler 總結的框架已經成為業界標準。\u003C\u002Fp>\n\u003Ch3>1. 上下文工程（Context Engineering）\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>定義\u003C\u002Fstrong>：持續增強的知識庫 + Agent 對動態數據的存取\u003C\u002Fp>\n\u003Cp>上下文工程不是寫更詳細的 Prompt，而是：\u003C\u002Fp>\n\u003Ch4>構成要素\u003C\u002Fh4>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>要素\u003C\u002Fth>\n\u003Cth>描述\u003C\u002Fth>\n\u003Cth>例子\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cstrong>靜態知識庫\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>代碼結構、API 文檔、架構決策\u003C\u002Ftd>\n\u003Ctd>README.md、API docs 索引\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>動態上下文\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>實時數據，根據任務變化\u003C\u002Ftd>\n\u003Ctd>當前檔案樹、相關代碼片段\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>工具發現\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Agent 知道有什麼工具，為什麼需要它\u003C\u002Ftd>\n\u003Ctd>精選的工具清單 + 使用示例\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>可觀測性積分\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Agent 可以查詢前一次執行的日誌\u003C\u002Ftd>\n\u003Ctd>錯誤日誌、性能數據\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch4>為什麼分開靜態和動態？\u003C\u002Fh4>\n\u003Cp>靜態文檔會過時。動態生成的上下文會過度膨脹。最佳實踐是\u003Cstrong>混合\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>核心架構和 API 文檔保持靜態更新\u003C\u002Fli>\n\u003Cli>執行時上下文動態生成（如檔案樹、最近編輯的檔案）\u003C\u002Fli>\n\u003Cli>兩者結合送給 Agent\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2. 架構約束（Architectural Constraints）\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>定義\u003C\u002Fstrong>：強制執行代碼結構和設計模式，既用 LLM 也用確定性工具\u003C\u002Fp>\n\u003Cp>這是 Harness 的「守法者」。\u003C\u002Fp>\n\u003Ch4>雙層驗證方法\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>第一層：LLM 驗證\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Agent 自己審查生成的代碼\u003C\u002Fli>\n\u003Cli>檢查邏輯正確性、命名、結構\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>缺點：LLM 有時會遺漏，或不嚴格執行。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>第二層：確定性檢查\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>自訂 linter\u003C\u002Fli>\n\u003Cli>結構測試（如：所有 \u003Ccode>user_\u003C\u002Fcode> 前綴的函數必須在 \u003Ccode>user.ts\u003C\u002Fcode> 中）\u003C\u002Fli>\n\u003Cli>模組邊界檢查（如：\u003Ccode>data\u002F\u003C\u002Fcode> 層不能直接導入 \u003Ccode>ui\u002F\u003C\u002Fcode> 層）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>架構約束的例子\u003C\u002Fh4>\n\u003Cp>假設你建立一個 Clean Architecture 應用。Harness 可以強制：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-typescript\">\u002F\u002F 違規 ❌ — data 層不能導入 ui 層\nimport { Button } from &#39;..\u002Fui\u002Fbutton&#39;;  \u002F\u002F Linter 檢測並拒絕\n\n\u002F\u002F 正確 ✅\nimport { UserRepository } from &#39;.\u002Fuser.repository&#39;;  \u002F\u002F Linter 允許\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>這不是建議，而是\u003Cstrong>強制\u003C\u002Fstrong>。每個 commit 都要通過。\u003C\u002Fp>\n\u003Ch3>3. 垃圾回收（Garbage Collection）\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>定義\u003C\u002Fstrong>：定期運行清理 Agent，尋找並修復不一致之處\u003C\u002Fp>\n\u003Cp>代碼熵是真實的。Agent 生成的代碼尤其容易積累技術債：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>死代碼（被移除的特性卻留下的函數）\u003C\u002Fli>\n\u003Cli>過時的註解\u003C\u002Fli>\n\u003Cli>遺漏的單元測試\u003C\u002Fli>\n\u003Cli>違反命名規範的變數\u003C\u002Fli>\n\u003Cli>文檔與實現不一致\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Garbage Collection Agent 的運作方式\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>掃描\u003C\u002Fstrong> — 定期掃描整個代碼庫\u003C\u002Fli>\n\u003Cli>\u003Cstrong>檢測\u003C\u002Fstrong> — 識別不一致（用規則和 LLM）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>報告\u003C\u002Fstrong> — 生成修復提案\u003C\u002Fli>\n\u003Cli>\u003Cstrong>修復\u003C\u002Fstrong> — 自動修復或標記待人工審查\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>例子\u003C\u002Fh4>\n\u003Cpre>\u003Ccode class=\"language-bash\"># 每週執行一次垃圾回收\n$ npm run gc\n\n結果：\n- 找到 12 個已移除的 API 端點的死代碼\n- 發現 3 個過時的文檔\n- 識別 5 個違反命名規範的變數\n- 建議修復（可自動應用或人工審查）\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Chr>\n\u003Ch2>Harness Engineering 的六大核心模組\u003C\u002Fh2>\n\u003Cp>綜合前述實踐，Harness Engineering 的完整框架包含六個核心模組。\u003C\u002Fp>\n\u003Ch3>1. 上下文管理引擎\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>職責\u003C\u002Fstrong>：在有限的上下文窗口中放置最相關的信息\u003C\u002Fp>\n\u003Cp>\u003Cstrong>實現方式\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>聲明式上下文規則（「執行 Python 腳本時包含 .env 範本」）\u003C\u002Fli>\n\u003Cli>向量相似度搜尋（找到最相關的代碼片段）\u003C\u002Fli>\n\u003Cli>優先級佇列（重要信息優先）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>工具\u003C\u002Fstrong>：Supabase Vector DB、Pinecone、LangChain 的 RecursiveCharacterTextSplitter\u003C\u002Fp>\n\u003Ch3>2. 工具與能力層\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>職責\u003C\u002Fstrong>：定義 Agent 可以做什麼，以及如何做\u003C\u002Fp>\n\u003Cp>\u003Cstrong>核心決定\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>提供高層次抽象（如 \u003Ccode>run_command\u003C\u002Fcode>）還是細粒度工具？\n→ Vercel 案例表明：高層次抽象更好\u003C\u002Fli>\n\u003Cli>工具有多少（Vercel 的教訓：越少越好，除非有明確的理由）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>工具集合例子\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>文件系統存取（read, write, delete）\u003C\u002Fli>\n\u003Cli>代碼執行（run Python, run bash）\u003C\u002Fli>\n\u003Cli>搜尋和瀏覽（Google search, Brave API）\u003C\u002Fli>\n\u003Cli>外部 API（Stripe, AWS, 自訂 API）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>3. 控制流協調器\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>職責\u003C\u002Fstrong>：決定任務執行的順序和分支\u003C\u002Fp>\n\u003Cp>\u003Cstrong>三種常見模式\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cp>a) \u003Cstrong>線性執行\u003C\u002Fstrong> — 一個步驟接一個\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Plan → Code → Test → Deploy\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>b) \u003Cstrong>並行執行\u003C\u002Fstrong> — 多個 Agents 同時工作\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Code Agent ──┐\nTest Agent ─┼→ Verify\nDoc Agent ──┘\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>c) \u003Cstrong>循環執行\u003C\u002Fstrong> — 生成 → 驗證 → 修訂 → 再驗證\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Generate → Verify → Revise → Verify (loop)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>4. 驗證與反饋層\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>職責\u003C\u002Fstrong>：檢查輸出品質，提供可操作的反饋\u003C\u002Fp>\n\u003Cp>\u003Cstrong>驗證類型\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>驗證\u003C\u002Fth>\n\u003Cth>方法\u003C\u002Fth>\n\u003Cth>例子\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cstrong>語法驗證\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>確定性（Linter）\u003C\u002Ftd>\n\u003Ctd>TypeScript \u003Ccode>tsc --noEmit\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>邏輯驗證\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>自動化測試\u003C\u002Ftd>\n\u003Ctd>Unit tests, Integration tests\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>風格驗證\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>規則引擎\u003C\u002Ftd>\n\u003Ctd>Prettier, ESLint\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>語義驗證\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>LLM 審查\u003C\u002Ftd>\n\u003Ctd>「這個函數名是否有意義？」\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>商業邏輯驗證\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>人工或規則\u003C\u002Ftd>\n\u003Ctd>「這個功能符合產品需求嗎？」\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3>5. 恢復與重試機制\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>職責\u003C\u002Fstrong>：當 Agent 失敗時，優雅地恢復\u003C\u002Fp>\n\u003Cp>\u003Cstrong>故障模式與恢復\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>故障\u003C\u002Fth>\n\u003Cth>症狀\u003C\u002Fth>\n\u003Cth>恢復策略\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>工具超時\u003C\u002Ftd>\n\u003Ctd>API 無響應超過 30 秒\u003C\u002Ftd>\n\u003Ctd>指數退避重試 (1s, 2s, 4s)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>上下文溢出\u003C\u002Ftd>\n\u003Ctd>超過模型 token 限制\u003C\u002Ftd>\n\u003Ctd>動態截斷或分解為子任務\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>無限循環\u003C\u002Ftd>\n\u003Ctd>相同步驟重複 &gt; 5 次\u003C\u002Ftd>\n\u003Ctd>標記為失敗，回滾到檢查點\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>權限錯誤\u003C\u002Ftd>\n\u003Ctd>「Access Denied」\u003C\u002Ftd>\n\u003Ctd>告知用戶，不自動重試\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>模型拒絕\u003C\u002Ftd>\n\u003Ctd>「I can&#39;t do this」\u003C\u002Ftd>\n\u003Ctd>重新組織上下文或升級至更強模型\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3>6. 可觀測性與學習層\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>職責\u003C\u002Fstrong>：記錄執行軌跡，以便改進和調試\u003C\u002Fp>\n\u003Cp>\u003Cstrong>關鍵數據\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>執行日誌\u003C\u002Fstrong> — 每一步做了什麼、為什麼\u003C\u002Fli>\n\u003Cli>\u003Cstrong>決策點\u003C\u002Fstrong> — Agent 在哪裡做出選擇，基於什麼\u003C\u002Fli>\n\u003Cli>\u003Cstrong>性能指標\u003C\u002Fstrong> — 花費的 token、執行時間、成功\u002F失敗\u003C\u002Fli>\n\u003Cli>\u003Cstrong>用戶反饋\u003C\u002Fstrong> — 「這個結果有幫助嗎？」\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>用途\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>即時除錯\u003C\u002Fstrong> — 當 Agent 失敗時，看清執行軌跡\u003C\u002Fli>\n\u003Cli>\u003Cstrong>持續改進\u003C\u002Fstrong> — 識別常見失敗模式，改進 Harness\u003C\u002Fli>\n\u003Cli>\u003Cstrong>訓練數據\u003C\u002Fstrong> — 為微調或強化學習提供數據\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Chr>\n\u003Ch2>風險、爭議與工程挑戰\u003C\u002Fh2>\n\u003Cp>Harness Engineering 不是銀彈。它引入了新的複雜性和新的風險。\u003C\u002Fp>\n\u003Ch3>挑戰 1：文檔衰變與熵戰爭\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：即使有好的 Harness，代碼庫中的知識仍會過時。\u003C\u002Fp>\n\u003Cp>一個簡單的 markdown 文件會迅速衰變，變成過時的。太多指導會淹沒任務。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>具體例子\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-markdown\"># 我們的架構規則（寫於 2025 年 6 月）\n\n1. 所有 API 回應應返回 { data, error }\n2. 使用 PostgreSQL JSONB 儲存嵌套結構\n3. Service 層應使用 dependency injection\n... (還有 50 條規則)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>6 個月後，#1 和 #3 改了，但文檔沒更新。Agent 遵循過時的規則。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>解決方案\u003C\u002Fstrong>（部分）：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>將架構規則寫成可執行的測試（不是評論）\u003C\u002Fli>\n\u003Cli>使用 LLM 驗證來補充確定性檢查\u003C\u002Fli>\n\u003Cli>定期垃圾回收，審計文檔與實現的一致性\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>挑戰 2：模型迭代速度 vs Harness 穩定性\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：Harness 是為特定模型設計的。當新模型推出時會發生什麼？\u003C\u002Fp>\n\u003Cp>每個模型有不同的最優提示策略、工具使用模式、推理風格。為 GPT-5 設計的完美 Harness 可能在 Claude Opus 上表現糟糕。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>例子\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-python\"># 為 GPT-5 優化的 Harness\nsystem_prompt = &quot;Think step by step...&quot;  # GPT-5 喜歡\ntools = [file_read, bash_execute]  # 精簡工具集\n\n# Claude Opus 可能更喜歡\nsystem_prompt = &quot;Analyze carefully, consider alternatives...&quot;\ntools = [file_read, bash_execute, web_search, ...]  # 更多工具\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Philipp Schmid 的建議\u003C\u002Fstrong>：「Build to Delete」— 設計 Harness 時，假設它會隨著每個新模型推出而被替換。\u003C\u002Fp>\n\u003Ch3>挑戰 3：過度工程化風險\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：團隊可能投入過多精力優化 Harness，以至於過度複雜化。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>紅旗\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Harness 本身的代碼超過應用代碼本身\u003C\u002Fli>\n\u003Cli>有 10+ 層中間件，每層都做「優化」\u003C\u002Fli>\n\u003Cli>文檔與實現之間的同步變成夜間工作\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>平衡點\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>從簡單開始（可能就是 Prompt + 一個驗證層）\u003C\u002Fli>\n\u003Cli>當看到具體瓶頸時再優化\u003C\u002Fli>\n\u003Cli>定期審計：Harness 是幫助還是礙事？\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>挑戰 4：可交付性與可解釋性\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：複雜的 Harness 很難向非技術人員解釋。\u003C\u002Fp>\n\u003Cp>用戶想知道：「為什麼 Agent 拒絕了我的請求？」\u003C\u002Fp>\n\u003Cp>答案是：「因為架構約束層 3 的確定性檢查檢測到……」 太技術性了。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>解決方案\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>用戶可讀的拒絕消息\u003C\u002Fli>\n\u003Cli>提供修復建議，不只是「不行」\u003C\u002Fli>\n\u003Cli>提升路徑（「這個操作需要人工審查」）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>挑戰 5：人工在迴路的治理困境\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：在什麼地方讓人類介入？\u003C\u002Fp>\n\u003Cp>太多人工干預，Agent 的優勢蕩然無存。太少人工干預，風險很高。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>典型的治理層級\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>操作\u003C\u002Fth>\n\u003Cth>人工干預\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>修改非關鍵檔案\u003C\u002Ftd>\n\u003Ctd>自動，事後審查\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>刪除代碼\u003C\u002Ftd>\n\u003Ctd>自動，事後審查\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>部署到生產環境\u003C\u002Ftd>\n\u003Ctd>人工批准前置\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>修改 schema 或 API\u003C\u002Ftd>\n\u003Ctd>人工批准前置\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>建立新的數據庫表\u003C\u002Ftd>\n\u003Ctd>人工批准前置\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>沒有一個完美的答案。取決於風險承受度和信任度。\u003C\u002Fp>\n\u003Ch3>挑戰 6：學習曲線與技能轉移\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>問題\u003C\u002Fstrong>：建立和維護 Harness 需要高度專業化的技能。\u003C\u002Fp>\n\u003Cp>這不是每個團隊都有的。當建造 Harness 的人離職時會發生什麼？\u003C\u002Fp>\n\u003Cp>\u003Cstrong>長期解決方案\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>將 Harness 最佳實踐開源化（LangChain、Anthropic 正在做這個）\u003C\u002Fli>\n\u003Cli>發展 Harness 工程師的職業路徑\u003C\u002Fli>\n\u003Cli>提供工具和框架，降低進入門檻\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch2>展望：競爭重心的轉移\u003C\u002Fh2>\n\u003Cp>2025 年，大家都在競爭最好的模型。2026 年，大家都在競爭最好的 Harness。\u003C\u002Fp>\n\u003Ch3>為什麼？\u003C\u002Fh3>\n\u003Cp>三個原因：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>\u003Cstrong>模型收斂\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>GPT-5、Claude Opus 4.5、Gemini 2.0 的能力越來越接近\u003C\u002Fli>\n\u003Cli>增量改進變得困難且昂貴\u003C\u002Fli>\n\u003Cli>基於模型本身的競爭優勢正在消蝕\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Harness 的倍增效應\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>好的 Harness 可以讓現有模型性能提升 20-30%\u003C\u002Fli>\n\u003Cli>LangChain 的案例：排名提升 25 位，分數提升 13.7 百分點\u003C\u002Fli>\n\u003Cli>成本：改進 Harness 而非訓練新模型\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>大規模部署的現實\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>在生產環境中，可靠性比原始能力更重要\u003C\u002Fli>\n\u003Cli>Agent 不失控比 Agent 智力 IQ 更有價值\u003C\u002Fli>\n\u003Cli>Vercel 的案例：移除複雜性，反而改進了性能\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>新的分工\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>舊分工\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>AI 研究員 → 構建更好的模型 → 工程師 → 集成到產品\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>新分工\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>模型提供商（OpenAI、Anthropic、Google）\n        ↓\n     模型\n        ↓\nHarness 工程師 → 設計馬具 → 應用工程師 → 構建產品\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Harness 工程師成為一個獨立的角色。不是模型專家，不是應用開發者，而是\u003Cstrong>系統設計師\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch3>商業含義\u003C\u002Fh3>\n\u003Cp>如果競爭重心從模型轉向 Harness，這意味著：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>較小的團隊可以與大公司競爭\u003C\u002Fstrong> — Harness 通常比模型開發更輕量級\u003C\u002Fli>\n\u003Cli>\u003Cstrong>開源工具變得更重要\u003C\u002Fstrong> — LangChain、LlamaIndex、Anthropic Agent SDK\u003C\u002Fli>\n\u003Cli>\u003Cstrong>諮詢和實施服務的機會\u003C\u002Fstrong> — 許多公司需要幫助構建他們的 Harness\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Chr>\n\u003Ch2>結語\u003C\u002Fh2>\n\u003Cp>2026 年，Harness Engineering 已經從一個新想法演變為生產系統的關鍵組件。Mitchell Hashimoto 的簡單觀察——「工程化環境，使 Agent 無法失控」——已經成為推動 Agent 可靠性的工程學科。\u003C\u002Fp>\n\u003Cp>七個工程師透過 Harness 生成了百萬行代碼。Vercel 透過刪除複雜性而獲得了簡單。Anthropic 透過協調多個 Agents 而超越單一超級 Agent。LangChain 透過改進 Harness 而跳升 25 名。\u003C\u002Fp>\n\u003Cp>模型仍然重要，但它不再是故事的全部。真正的競爭發生在看不見的地方：\u003Cstrong>系統的邊界、約束、驗證迴路和恢復機制中\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>對於想在 AI 時代構建可靠系統的工程師來說，Harness Engineering 不再是可選項。它是必需的。不是因為它很流行，而是因為\u003Cstrong>它有效\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>參考來源\u003C\u002Fh2>\n\u003Ch3>一手文章\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmitchellh.com\u002Fwriting\u002Fmy-ai-adoption-journey\" target=\"_blank\" rel=\"noopener\">Mitchell Hashimoto - 我的 AI 採納之旅\u003C\u002Fa> — Harness Engineering 正式命名的起源\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmartinfowler.com\u002Farticles\u002Fexploring-gen-ai\u002Fharness-engineering.html\" target=\"_blank\" rel=\"noopener\">Martin Fowler - Harness Engineering\u003C\u002Fa> — 三大組件框架的經典闡述\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fopenai.com\u002Findex\u002Fharness-engineering\u002F\" target=\"_blank\" rel=\"noopener\">OpenAI - Harness Engineering: 在 Agent 優先的世界中運用 Codex\u003C\u002Fa> — 百萬行代碼案例研究\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.philschmid.de\u002Fagent-harness-2026\" target=\"_blank\" rel=\"noopener\">Philipp Schmid - Agent Harness 在 2026 年的重要性\u003C\u002Fa> — 作業系統隱喻和上下文工程\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Fblog\u002Fwe-removed-80-percent-of-our-agents-tools\" target=\"_blank\" rel=\"noopener\">Vercel - 我們移除了 Agent 80% 的工具\u003C\u002Fa> — 簡單性勝過複雜性的實證\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fblog.langchain.com\u002Fimproving-deep-agents-with-harness-engineering\u002F\" target=\"_blank\" rel=\"noopener\">LangChain - 用 Harness 工程改進深度 Agents\u003C\u002Fa> — Terminal Bench 2.0 從 30 到 5 的案例\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>二手分析\u003C\u002Fh3>\n\u003Col start=\"7\">\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmulti-agent-research-system\" target=\"_blank\" rel=\"noopener\">Anthropic - 我們如何構建多 Agent 研究系統\u003C\u002Fa> — 協調 Agents 的架構模式\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.epsilla.com\u002Fblogs\u002Fharness-engineering-evolution-prompt-context-autonomous-agents\" target=\"_blank\" rel=\"noopener\">Epsilla - Harness Engineering 演進\u003C\u002Fa> — Prompt → Context → Harness 的演進軌跡\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.nxcode.io\u002Fresources\u002Fnews\u002Fharness-engineering-complete-guide-2026\" target=\"_blank\" rel=\"noopener\">NxCode - Harness Engineering 完整指南\u003C\u002Fa> — 實踐模式總結\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsmartscope.blog\u002Fen\u002Fblog\u002Fharness-engineering-overview\u002F\" target=\"_blank\" rel=\"noopener\">SmartScope - Harness Engineering 與 Context Engineering 的區別\u003C\u002Fa> — 概念澄清\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>工具與SDK\u003C\u002Fh3>\n\u003Col start=\"11\">\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagent-sdk\u002F\" target=\"_blank\" rel=\"noopener\">Claude Agent SDK 文檔\u003C\u002Fa> — 權限管理和掛鉤\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fblog.langchain.com\u002Fthe-anatomy-of-an-agent-harness\u002F\" target=\"_blank\" rel=\"noopener\">LangChain Agent Harness 架構\u003C\u002Fa> — 開源 Harness 設計模式\u003C\u002Fli>\n\u003C\u002Fol>\n","Harness Engineering 是設計 AI Agent 外部控制框架的工程實踐，透過上下文工程、架構約束和垃圾回收，將不穩定的大模型轉變為可靠的生產系統。2026 年，決定 Agent 成敗的關鍵不是模型本身，而是包裹它的馬具。","oracore-original",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1774940070981-vjgu.png",[12,13,14,15,16],"Harness Engineering","駕馭工程","AI Agent","Context Engineering","LLM","zh",2,false,"2026-03-31T06:42:53.556721+00:00","2026-03-31T06:54:50.443+00:00","done","harness-engineering-ai-agent-reliability-2026-zh","ai-agent","fe91bce0-b85d-4efa-a207-24ae9939c29f","published","2026-04-09T09:00:55.495+00:00",[29,31,32,34,37],{"name":12,"slug":30},"harness-engineering",{"name":13,"slug":13},{"name":16,"slug":33},"llm",{"name":35,"slug":36},"context engineering","context-engineering",{"name":38,"slug":24},"AI agent",{"id":25,"slug":40,"title":41,"language":42},"harness-engineering-ai-agent-reliability-2026","Harness Engineering: From Bridle to Operating System, The Missing Link in AI Agent Reliability","en",[44,50,56,62,68,74],{"id":45,"slug":46,"title":47,"cover_image":48,"image_url":48,"created_at":49,"category":24},"38406a12-f833-4c69-ae22-99c31f03dd52","switch-ai-outputs-markdown-to-html-zh","怎麼把 AI 輸出改成 HTML","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778743243861-8901.png","2026-05-14T07:20:21.545364+00:00",{"id":51,"slug":52,"title":53,"cover_image":54,"image_url":54,"created_at":55,"category":24},"c7c69fe4-97e3-4edf-a9d6-a79d0c4495b4","anthropic-cat-wu-proactive-ai-assistants-zh","Cat Wu 談 Claude 的主動式 AI","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778735455993-gnw7.png","2026-05-14T05:10:30.453046+00:00",{"id":57,"slug":58,"title":59,"cover_image":60,"image_url":60,"created_at":61,"category":24},"e1d6acda-fa49-4514-aa75-709504be9f93","how-to-run-hermes-agent-on-discord-zh","如何在 Discord 執行 Hermes Agent","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778724655796-cjul.png","2026-05-14T02:10:34.362605+00:00",{"id":63,"slug":64,"title":65,"cover_image":66,"image_url":66,"created_at":67,"category":24},"4104fa5f-d95f-45c5-9032-99416cf0365c","why-ragflow-is-the-right-open-source-rag-engine-to-self-host-zh","為什麼 RAGFlow 是最適合自架的開源 RAG 引擎","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778674262278-1630.png","2026-05-13T12:10:23.762632+00:00",{"id":69,"slug":70,"title":71,"cover_image":72,"image_url":72,"created_at":73,"category":24},"7095f05c-34f5-469f-a044-2525d2010ce9","how-to-add-temporal-rag-in-production-zh","如何在正式環境加入 Temporal RAG","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778667053844-osvs.png","2026-05-13T10:10:30.930982+00:00",{"id":75,"slug":76,"title":77,"cover_image":78,"image_url":78,"created_at":79,"category":24},"10479c95-53c6-4723-9aaa-2fde5fb19ee7","github-agentic-workflows-ai-github-actions-zh","GitHub 把 AI 代理放進 Actions","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778551884342-8io7.png","2026-05-12T02:11:02.069769+00:00",[81,86,91,96,101,106,111,116,117,122],{"id":82,"slug":83,"title":84,"created_at":85},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"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":92,"slug":93,"title":94,"created_at":95},"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":97,"slug":98,"title":99,"created_at":100},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"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":112,"slug":113,"title":114,"created_at":115},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":4,"slug":23,"title":5,"created_at":20},{"id":118,"slug":119,"title":120,"created_at":121},"e41546b8-ba9e-455f-9159-88d4614ad711","openai-codex-plugin-claude-code-zh","OpenAI 把 Codex 放進 Claude Code","2026-04-01T09:21:54.687617+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00"]