Skip to content
所有標籤

#harness-engineering

36 篇文章

跟成熟 coding agent 學設計:系列總覽——拆五個專案的原始碼,蓋自己的 agent

我在寫自己的 Python coding agent「looplane」,這個系列把 pi、oh-my-pi、opencode、codex、claude-code 五個成熟專案的原始碼逐題對照,也對照 Looplane 現在已經落地的 TUI、外部 CLI runtime、local gateway、usage/OTel/session 工具與 Cloudflare 切片。每篇固定走「設計問題→五家做法→looplane 選擇→學術依據→改善路線」五段,證據一律給到 file#symbol 層級。

跟成熟 coding agent 學設計(6):ModelProvider 抽象——為什麼不能直接包 SDK 就好

直接包 SDK 三個月就會後悔:每家的 usage 欄位、tool call 格式、錯誤語意都不一樣,換模型等於重寫迴圈。五家參考專案都把「wire protocol」從「provider 身分」裡拆出來當獨立維度;looplane 更進一步,用 pydantic canonical contract(Message/ToolCall/Usage/ModelTurn)加六種 protocol adapter,把 OpenAI SDK 的內建 retry 關到 0,所有錯誤先分類成 ProviderErrorKind 再交給統一的重試政策。provider 表本身是跟 pi 的 packages/ai 對著抄的——這是血統,不是巧合。

跟成熟 coding agent 學設計(29):OS 級沙箱

OS 沙箱是 path policy 之外的核心防線。looplane 已落地 fail-closed `CommandSandbox`:macOS 包 sandbox-exec,Linux 用 Landlock 加 seccomp,verification 預設在能證明 containment 時進沙箱;不支援時回 exit 126。剩餘限制是目前主要只包 verification、外部 CI 結果仍待確認。

跟成熟 coding agent 學設計(7):Provider retry policy——從單次 5xx 到有界 retry 與 fallback

NVIDIA NIM 間歇 500 暴露了 looplane 早期只有錯誤分類、沒有重試消費者的缺口。現在 SDK retry 關閉,harness 對每個候選最多嘗試 5 次,使用帶 jitter 的指數退避並尊重有上限的 Retry-After;耗盡後可依明確設定切到 fallback model,model.retry 與 model.fallback 都進 event log。

跟成熟 coding agent 學設計(3):Workspace 隔離與 path policy

Looplane 的 disposable clone 與 SafePathPolicy 保護來源 repo;現在 `--sandbox-checks` 也能用 macOS sandbox-exec、Linux bubblewrap 或 Landlock 包住 verification command,Cloudflare 另有受限 Sandbox slice。但不同 backend 的 network policy、外部 runtime coverage 與 production hardening 仍未一致驗證。

同名不同層:meta-harness、ACP、HarnessAgent 與 Flue 到底在爭哪一層

同一個詞 meta-harness 其實指兩種東西:Databricks 的控制面與 Stanford 的優化迴圈。本文用 MCP/ACP/Runtime/meta-harness 四層模型,對照 Omnigent、Zed ACP、Vercel HarnessAgent 與 Cloudflare Flue 的定位。

跟成熟 coding agent 學設計(10):編輯工具的取捨——unified diff、exact edit、hashline 與 whole-file

LLM 寫 unified diff 壞在簿記:hunk 行數算錯、上下文行幻覺。五家的答案分成兩派——把 diff 文法做簡單(Codex 拿掉行號)、或乾脆不用 diff(Claude Code/Pi/OpenCode 的 exact replace);OMP 更進一步用 hash 錨點綁住讀取狀態。looplane 走最小干預:保留 guarded apply_patch,加一個零模糊匹配的 replace_text,qwen3:4b eval 就從穩定失敗變 5/5。

跟成熟 coding agent 學設計(22):Gateway 模式——把任何 provider 變成 OpenAI 相容端點

生態系都把 /v1/chat/completions 當共通語,但你手上的 provider 不一定講這個方言。五家的答案分三派:pi 和 OpenCode 讓 client 本身講多種方言所以不做 gateway;OMP 做了真正的 protocol translator(foreign wire → 中立 context → provider adapter,禁止 raw passthrough);Codex 和 Claude Code 的 proxy 不翻譯,只負責強制流量管控。looplane 抄 OMP 的邊界但收斂成一進一出:只收 OpenAI Chat,嚴格解析成 canonical contract,後面接任何 ModelProvider——順便踩掉一個 cross-event-loop client close bug,教訓是 provider 的生命週期必須交給 ASGI lifespan。

跟成熟 coding agent 學設計(16):Runtime 抽象與 capability handshake

五個外部 CLI 有五種機器介面:JSONL 事件流、JSON-RPC、HTTP API、ACP、stream-json。支援它們的正確姿勢不是抽一個「都一樣」的介面,而是一條窄的 runtime 邊界加一份誠實的 capability matrix——availability 只代表裝了,不代表登入;協定飄移就 fail closed。

跟成熟 coding agent 學設計(11):沙箱與遠端執行——Cloudflare Sandbox 部署實戰

本地沙箱管的是『agent 在你的機器上爆炸半徑多大』,雲端沙箱管的是『怎麼把程式碼安全地搬到別人的機器上跑』——五家成熟專案幾乎都在做前者,只有 looplane 真的部署了後者。實戰教訓:mock 測不出 SSE framing、CI 綠燈擋不住 stale wheel,而清理路徑要跟成功路徑一樣有 timeout。

跟成熟 coding agent 學設計(12):小模型能寫程式嗎——能力邊界與 eval 紀律

小模型卡的不是『不會想』而是『格式不穩』:tool call JSON、diff hunk 計數、context 預算都會爆。五家參考專案的共識是把評測建立在真實模型行為上(pi 的 model-backed eval、OMP 從真實 session log 校準編輯基準、Codex 甚至為弱模型放寬 parser),looplane 則選最窄但最硬的路:一個 fixture、五次真實 Ollama 執行、manifest 宣告改哪些檔案和哪些 patch 片段才算過,並且把 M2 的失敗原封不動留成證據——不把 mock 當 E2E,不把部分成功講成全過。

跟成熟 coding agent 學設計(8):訂閱的正道與邪路——OAuth 與 credential 邊界

五家在「訂閱認證」上分成三派:Codex 和 Claude Code 只為自己官方 client 做 OAuth 並把 token 收進 OS keyring;pi 和 OMP 直接重用 Claude Code 的 client ID 實作 Pro/Max OAuth(技術可行但 Anthropic 文件明文禁止第三方未經核准提供 claude.ai 登入);OpenCode 則把內建 Pro/Max plugin 整組移除,是生態系最乾淨的政策先例。looplane 的原則:自己的 grant 自己做、絕不刮別家 CLI 的 credential 檔、第三方 client 要 provider 明確支援才接 OAuth、credential 不複製不轉發。

跟成熟 coding agent 學設計(5):Verification gate——改了檔案不算成功,驗過才算

五家參考專案裡沒有任何一家在 harness 層強制「宣告的驗證指令全過才算成功」:pi 靠模型自覺、OpenCode 和 Codex 把驗證寫進 system prompt、Claude Code 用獨立的對抗式驗證 subagent 但仍是軟性合約、只有 OMP 的 cleanse 真的由 harness 跑檢查。looplane 選最硬的一條路:改過檔案就必須重跑所有宣告的驗證指令,全過才給 terminal_reason=verified;沒動任何檔案就不重跑(no_changes),把「跑不跑」變成程式碼決定,不是模型決定。

Antigravity CLI:Google 用閉源 Go binary 取代十萬星開源 Gemini CLI

2026 年 5 月 Google I/O 宣布 Antigravity CLI(agy),用閉源 Go binary 取代 Apache 2.0 的 Gemini CLI。技術上升級——多 agent 編排、原生沙箱、毫秒啟動——但免費額度砍 98%、開源轉閉源、28 天過渡期,社群反應強烈。

Grok Build:xAI 的 Rust Coding Agent,開源之前先把你的 repo 傳上去了

Grok Build 是 xAI 用 Rust 寫的 coding agent,845K 行程式碼、8 個平行子 agent、Arena Mode。2026 年 5 月 beta、7 月開源(Apache 2.0)——但開源的直接原因是隱私事件:它靜默把整個 repo(含 SSH key、.env)上傳到 Google Cloud Storage,27,800 倍的流量比。資料外洩的程式碼至今還在 binary 裡,只靠 server-side flag 關閉。

Muse Code:Meta 的第一個 Coding Agent,用訓練權換八折定價

2026 年 8 月 Meta Superintelligence Labs 發布 Muse Code beta。閉源靜態 binary、Muse Spark 1.2 模型、平行子 agent + worktree 隔離。最大爭議是定價:標準版 $1.25/$4.25 per M tokens,Contributor 版 $0.10/$0.20——便宜 20 倍,但你的程式碼進 Meta 的訓練管線。

2026 下半年 Harness 大戰:八大框架重寫、三家模型商入場,110+ CLI 怎麼看

2026 年 8 月,不只五個框架在動。OMP 2、Pi v2、Opencode 2、dsh、Claude Code 之外,Google(Antigravity CLI)、Meta(Muse Code)、xAI(Grok Build)三家模型商直接下場做 coding agent,加上 Amp、Cline 2.0、Codex CLI Rust 重寫,共八個以上框架同時有架構級變動。再算進 110+ 個 CLI 工具,H2 2026 是 harness 方法論的分裂期。本文從四條架構路線、一個共同方向、一場信任危機拆解。

DeepSeek Harness(dsh):把 Everything is a Plugin 做到底的 coding agent 框架

DeepSeek Harness(dsh)是 DeepSeek 官方的開源 coding agent 框架,2026-08-13 發布 v0.1 開發者預覽版,9 天內累積 184,000+ 星。核心是 Cordis plugin kernel——模型、工具、agent loop、UI 全部都是可抽換的外掛。四種 runtime 模式,能把 Claude Code 和 Codex 當子代理使用。Web UI 優先,目前沒有原生 CLI。

OMP 2(Oh My Pi 2):從 Pi fork 到全 Rust 重寫的獨立 coding harness

OMP 2 不再是 Pi 的 fork。整個 codebase 用 Rust 從零重寫,約 41 個 crate 涵蓋自製 bash 引擎、GPU 加速 GUI、嵌入式 CPython 3.14t、gRPC transport 與 Kokoro-82M TTS。目前 pre-release,尚未正式發行。

Opencode 2:Bun 換 Node、Tauri 換 Electron、API 全部打掉重練的代價

Opencode 2 是 Anomaly(Dax Raad)主導的大重寫。runtime 從 Bun 換成 Node.js(記憶體問題)、桌面從 Tauri 換成 Electron(WebKit 效能與 Node 整合)、v1 API 刻意不相容。新增多分頁並行 session、持久化後端服務、HTTP API + SDK。目前 beta,預估 2026 年 9 月 stable。約 200K stars。

Pi v2:AgentHarness API 升穩、Earendil 公司化,極簡主義走進下一章

Pi v0.84.0(2026-08-06)把 AgentHarness v2 API 升為 stable。Lane-based v4 Session model 讓操作可持久化、可中斷。CBOR 取代 JSON,Unix socket 取代 HTTP。背後的 Earendil Inc.(Armin Ronacher 的 PBC)拿到首輪資金。95.4K stars,still MIT,still 極簡。

ai deep-dive

Context 滿了怎麼辦:七種答案,沒有一種是共識

Chroma 的對照實驗證明:就算塞得下,塞滿也會變差。於是各家 coding agent 發展出七種對策——壓縮、換手、剪枝、少載入、隔離、進模型、換單位。Amp 直接移除 /compact,Atlassian 說摘要該是最後手段,Cursor 的 A/B 測出 46.9% token 降幅。三場分歧的根源不是誰對,是各自在衡量不同的東西。

ai deep-dive

microsoft/AI-Engineering-Coach 的 45 條規則:一份把 agentic 工程意見寫成可執行門檻的清單

微軟員工開源的 VS Code extension,讀本機 Claude Code / Codex / OpenCode 的 session log。真正的內容物是 45 條 Markdown 規則:prompt 短於 30 字元、收到 20 行 AI 程式碼後 15 秒內就送下一則、instructions 檔超過 4000 bytes——把「context engineering」翻成可以爭論的數字。

ai deep-dive Agent 生產線

上線才是工作的開始:企業 agent 案例橫向讀

Salesforce 從兩萬個部署得到的數字:agent 有 90% 的工作發生在上線之後,跟傳統軟體剛好相反。Stripe 每週合併 1,300 個零人類手寫的 PR,靠的是環境而不是模型。附六家公司的橫向比對。

ai deep-dive Agent 生產線

模型只是元件,harness 才是系統

Microsoft、OpenAI、Salesforce、Stripe 等七個獨立案例講出同一句話:可靠性來自模型周圍的工程。而「把確定性的部分還給程式碼」已經被四家公司各自做成產品——Agent Script、Procedures、runtime、blueprints。

ai deep-dive

數位員工:可靠度來自 harness,不來自模型

「數位員工」不是技術,是計價與課責單位。Anthropic Project Vend 讓 Claude 真的開了三家店,發現最有效的介入不是換更強的模型,而是強迫走流程——官方原話是「我們重新發現了 bureaucracy matters」。Gartner 估計數千家自稱 agentic 的廠商中只約 130 家是真的。

ai deep-dive

Loop Engineering:當 AI 不再需要你打 Prompt

Loop Engineering 是設計「自動 prompt agent 的系統」而非手動 prompt 的工程實踐。Boris Cherny 跑數百個 agent、Addy Osmani 正式命名、Blake Crosley 指出驗證成本才是真正瓶頸——這篇整理一手來源、五大構建塊、適用邊界與批評觀點。

ai deep-dive

別人怎麼用 LLM 寫文章:從 Karpathy LLM-wiki 到多 agent pipeline 的取捨筆記

綜述 11 個公開的 LLM 寫作 pipeline,三條主流模式:多 agent(researcher → writer → critic)、Karpathy LLM-wiki(raw + wiki + LLM 寫不手寫)、品質防線(technical verifier + never fabricate + brief gate)。Princeton GEO 論文(KDD 2024)量化了 inline 引用 +28%、加數字 +33%、quote 原文 +41%、關鍵字塞詞 −9%。

ai guide

Codex App Server:OpenAI 如何把 Agent Harness 變成通用協議

OpenAI 把 Codex harness 包裝成 JSON-RPC over stdio 的 App Server,讓 VS Code、JetBrains、Web、桌面 App 都能共用同一套 agent loop,三個核心 primitive:Item、Turn、Thread。

ai guide AI Agent 實戰

OpenAI 用 Codex 寫了 100 萬行程式碼:Harness Engineering 實戰

OpenAI 內部團隊 5 個月、3 人、0 行手寫程式碼,用 Codex 交付了一個完整產品。這篇整理他們在 AGENTS.md 設計、repo-local 知識庫、架構強制執行、entropy 管理上的核心心得。

product project

quidproquo 部落格改進完整規劃:從內容、技術、RAG 設計到 Harness 基礎建設

用自己寫的 30+ 篇 RAG/Agent 文章交叉檢視部落格現狀,整理出橫跨內容品質、網站技術、RAG 設計修正、Harness 基礎建設、AI Agent 應用的完整改進清單,按優先級排列、不分階段。

ai guide

Agent Skills:讓 AI 代理像資深工程師一樣工作的技能框架

Agent Skills 是 Addy Osmani 開源的 19 個生產級工程技能,透過 /spec → /plan → /build → /test → /review → /ship 的指令驅動 AI 代理遵循資深工程師的開發紀律,而不是走捷徑。

ai guide

Claude Code Agent Teams 怎麼用?從 GitHub 6,400+ 個 agent 看設計模式

GitHub 上已有 6,400+ 個 .claude/agents/*.md 檔案。我們拆解了 4 個代表性專案——ChemistryTimes(內容生產 pipeline)、claude-sub-agent(document-driven 開發流水線)、agentic(Temporal.io DAG 平行執行)、vs-copilot-multi-agent(Hook 強制記憶寫入)——加上 ruflo 的企業級 swarm 架構,歸納出 6 種設計模式和 5 個實戰趨勢。

ai guide AI Agent 實戰

Harness Engineering 進階模式:Tool Registry、Guard System 與 Checkpoint-Resume

Harness 不只是呼叫 LLM 的 wrapper。Tool Registry 管理工具的動態載入與選擇、Guard System 建立四層防護網、Checkpoint-Resume 讓長時間任務可以中斷恢復。這三個模式是生產級 Agent 系統的關鍵基礎設施。

ai guide AI Agent 實戰

從 Prompt 到 Harness:AI 工程的三次演化

AI 工程經歷三個階段:Prompt Engineering(寫好指令)→ Context Engineering(餵對資訊)→ Harness Engineering(設計整個工作環境)。每一次演化不是取代前者,而是在更高的抽象層級上操作。

ai guide

Phil Schmid:為什麼 Agent Harness 是 2026 年最重要的事

模型是 CPU,harness 是作業系統,agent 是應用程式。模型能力再強,沒有好的 harness 就只是 demo。Phil Schmid 認為 harness 是 2026 年 AI 工程最關鍵的基礎設施。