Skip to content

全部文章

第 71 頁,共 129 頁

跟成熟 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 學設計(9):外部 CLI 當 backend——包別人的 loop,安全邊界畫在哪

每家成熟 coding agent 都有 headless 機器介面:codex 有 `exec --json` 和更完整的 app-server JSON-RPC,claude-code 有 `-p` 加 stream-json,pi/opencode/omp 各有一種 JSON 事件流。直接把這些 CLI 當 backend 是最快的路,但代價是:它們自帶 agent loop、自己的權限模型、自己的登入。looplane 的答案是讓外來 CLI 完整擁有它的 loop,自己只守住三件事——隔離副本、patch audit、最終驗證——並且一條 runtime 永遠不偽裝成另一條。

跟成熟 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 學設計(21):Headless 模式與 CI 使用——沒有人可以按 approve 的時候

agent 進 CI 後最大的問題是審批:沒有終端機、沒有人可以按 approve。五家的解法收斂成兩條路——把權限決策外包給呼叫端(claude-code 的 control protocol),或直接換掉審批語意(codex 預設 Never 配沙箱、opencode 預設自動拒絕)。looplane 用同一個 AgentRunner loop 注入不同的 ApprovalPolicy:headless 下用 HeadlessApprovalPolicy,不讀 stdin 所以不可能卡住 pipeline,EXECUTE 預設 fail closed。

跟成熟 coding agent 學設計(14):Onboarding 設計——provider-aware 初始化與即時驗證

空白設定檔勸退人,憑證錯太晚發現更勸退人。五家成熟 agent 都把 setup 做成 first-class state,looplane 再補上存完 key 立即驗證這一步。

跟成熟 coding agent 學設計(20):Run artifacts 契約——跑完之後憑什麼審計?

agent 跑完之後,「模型說它做完了」不是證據。codex 把 trace 拆成 manifest + JSONL + payloads 的 bundle、omp 用 SQLite 鏡像磁碟上的固定檔案、pi 用 runs.jsonl 索引原生 session 檔。looplane 選了最硬的一條:每個 run 固定六個檔案,缺一個就不算完成,patch 審計看 changes.patch 不看口頭宣稱。

跟成熟 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 學設計(19):Session 持久化與 crash recovery——agent 死掉之後,狀態怎麼救

五家 agent 的 session 儲存幾乎都是 append-only JSONL 加上某種單寫者保護,但 crash recovery 的差別在細節:pi 會修 torn tail、codex 寫失敗會重開檔重試、looplane 選了「manifest 先落盤」讓唯一的 crash window 變成可修復的一格。這篇拆解每家的寫入順序與 fail-closed 條件,全部附 file#symbol 證據。

跟成熟 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 學設計(17):啟動效能與工程紀律——慢的從來不是語言

CLI 工具每次叫用都要付一次啟動成本,而沒有 baseline 的效能優化等於沒有回歸保護。codex 用 daemon 重用與 skill snapshot 快取、claude-code 把入口切成七十個動態 import 加上內建啟動 profiler、opencode/omp 各有 lazy 載入紀律;pi 則什麼都沒做,靠 Bun 的速度快撐著。looplane 是 Python,天生慢,所以把紀律做滿:lazy import、單飛磁碟快取、背景預熱 controller、hyperfine paired benchmark 加上 CI 大於 10% 退步就擋 merge。

跟成熟 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 學設計(24):測試一個會動的 agent——fake-CLI 合約、錄製串流、TUI pilot

agent 的兩個依賴——LLM 和外部 CLI——都不是決定性的,但成熟專案的招式是把「會動的部分」與「邊界的形狀」切開:codex 用 wiremock 假 Responses API 加腳本化 SSE server,TUI 用 insta 快照;opencode 乾脆做了 VCR 式的 http-recorder 錄放套件;pi 把 eval 與 unit test 分成兩份 vitest config;omp 把 edit benchmark 本身用 unit test 圍起來。looplane 對外部 CLI 做了四層:單元測試、fake-CLI 合約、錄製串流整合、Textual pilot TUI 測試。核心方法論一句話:錄下真實的非決定性輸出,對它做決定性的斷言。

跟成熟 coding agent 學設計(15):從全螢幕 TUI 到 semantic transcript

成熟的 coding agent TUI 都不是把事件流印出來,而是先做一層 typed projection 再渲染;looplane 走了全螢幕組合、runtime-first 雙模式、移除 Ask/Agent 分離三步,才把 non-streaming 和 resume 不能 replay 兩個舊限制真正解除。

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

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

為什麼 Python:寫 coding agent 的語言選擇代價與補償

五個成熟 coding agent 沒有一家用 Python——pi/opencode/claude-code 用 TypeScript,codex 從 TS 重寫成 Rust,omp 把熱路徑補上 8 萬行 Rust native crate。looplane 仍選 Python,代價是啟動效能與打包,補償手段是 lazy import、uv 和 Cloudflare Sandbox。

圖譜 RAG 怎麼選:GraphRAG v3.1.2、LightRAG 與 HippoRAG 2 的設計、成本與選型

同樣是「知識圖譜 + 檢索」,Microsoft GraphRAG v3.1.2 用重索引換全局總結能力,LightRAG 用 dual-level 與增量把成本砍下來,HippoRAG 2 用 PPR 把 RAG 做成可持續增長的記憶;這篇按部件拆設計取捨,含四種查詢、索引流程與選型表。

Late Chunking vs Contextual Retrieval:先編碼後切塊的零成本上下文 vs LLM 前置生成的精準度交易

Anthropic Contextual Retrieval 用 LLM 為每塊生成 50-100 token 前置上下文把失敗率從 5.7% 壓到 1.9%(含 rerank),成本約 $1.02/1M tokens;Late Chunking 先以 32K 長上下文模型全文件編碼再切塊 mean-pool,零額外 LLM 成本,取捨在窗口、延遲與文件結構。

aiguide

Unsloth 完整指南:在本地微調和運行 LLM 的加速工具

Unsloth 是目前最省 VRAM、最快的本地 LLM 微調工具,訓練速度快 2 倍、VRAM 省 70%。2026 年加入 Desktop 桌面應用後,整合了推論、微調、圖片影片生成、web search 和 agent 連接,從微調庫變成完整的本地 AI 工作站。

Apple Foundation Models——隱私優先的封閉生態 AI,20B 稀疏模型跑在手機上

Apple Foundation Models(AFM)是 Apple 自研的封閉生態 AI 家族,三代演進從 2024 年的 3B dense + LoRA adapter,到 2026 年的五個模型。AFM 3 Core Advanced 用 IFP 稀疏架構把 20B 跑在手機上(只啟動 1–4B),雲端最強的 Cloud Pro 跑在 Google Cloud NVIDIA GPU、用 Gemini 蒸餾精煉。沒有公開 API 定價,沒有第三方 benchmark,只透過 Foundation Models framework 給 iOS/macOS 開發者使用。