coding agent harness engineering 基準診斷

基礎

先診斷 harness 缺口:量完基準再加 scaffolding

讓 coding agent 在未改造的 repository 完成一次有限任務,保存完整證據,再判斷問題落在意圖、可讀性、持續性、控制或回饋。

難度
入門
預估時間
75 分鐘
更新日期
2026-08-26
文案複核
speak-human-tw
兩輪
本課內容
  1. 01先把定義說清楚
  2. 02現場情境
  3. 03實作範例
  4. 04照著做,每一步都有檢查點
  5. 05實務脈絡
  6. 06動手實作
  7. 07故障診間
  8. 08正式上線前的邊界
  9. 09資料來源與主張限制

這一課會完成什麼

  • 分清模型能力問題,以及脈絡、狀態、控制與環境回饋的結構性缺口
  • 保存可重現的基準,包括品質、人工介入、修改範圍、成本與復原證據
  • 根據觀察挑選最小的一項 harness 介入,不先堆滿指令與工具
  • 說清單次前後比較的限制,避免把課堂 run 包裝成普遍 benchmark

開始前先準備

  • 本機已安裝 Git,並有一套可在 sandbox repository 讀寫的 coding agent
  • 使用 Release Desk 課程 fixture,不得放真實憑證、客戶紀錄或 production 連線

先把定義說清楚

診斷 harness 缺口

Harness 缺口是模型周邊系統造成、而且能重複觀察的失敗。常見成因包括需求沒有可執行定義、repository 無法交代架構、環境不能穩定啟動、工作狀態只留在聊天、權限與停止條件放在模型文字裡,或驗證回饋無法證明真實使用路徑。診斷的目的不是替 agent 打分數,而是找出能由工程手段修正的邊界。

一次失敗後立刻換模型、加長 prompt,可能讓下一次看起來順一點,卻沒有修好 repository 本身。Agent 仍可能找錯檔案、漏跑 migration、把局部測試當作完成,或在 session 中斷後重做已完成的效果。這些問題換一個功能名稱就會再出現。

基準把討論從印象換成可查證的紀錄。你要保存開始 commit、完整任務文字、agent 看過的入口、第一個宣稱完成的時間、真正執行的檢查、修改路徑、人工提示、失敗位置與後續修復。後面每一層 harness 都必須改善其中一項觀察,否則就應刪除,避免維護成本反過來拖慢工作。

現場情境

Release Desk 的第一次無 harness 任務

Release Desk、任務、agent 行為、執行時間與所有結果都是課程合成 fixture。

負責人
你是準備導入 coding agent 的技術主管,要先知道 repository 缺的是什麼。
要做的決策
這次失敗最主要落在哪一個 harness 邊界,第一個值得實作的介入是什麼?
目前狀態
Repository 可以手動啟動,但沒有入口說明、環境健檢、工作 ledger 或端到端命令。任務要求有權限的 reviewer 對一筆 open request 提出 changes,必須保存原因並留下一筆 audit。
預期成果
交出一份能重播的基準 receipt,列出證據、人工介入與限制,並只選一項有理由的後續工作。

限制條件

  • 基準 run 不得新增 AGENTS、README 補丁、工具 wrapper 或測試,只能保存 agent 原本的操作證據
  • 最多 90 分鐘、12 個 agent turn,任何真實外部寫入與 production 憑證都在範圍外
  • 完成要以登入後頁面、資料持久化、權限拒絕與 audit 次數判定,不能只看 terminal 宣告

實作範例

API 通過,但使用者路徑沒有完成

證據類型: 具名模擬情境

Agent 找到 route handler,加入狀態轉換後執行單元測試,看到綠燈便宣稱完成。Diff 沒有接前端 action,也沒有檢查重整後資料。Reviewer 打開頁面時找不到按鈕;手動呼叫 API 後,狀態又在重新整理時消失。

團隊沒有把問題歸咎於模型,而是記為兩個缺口:任務合約沒寫可觀察的使用者旅程,repository 也沒有一個能驗登入、操作、持久化與 audit 的完整檢查。第一項介入是鎖定 executable task contract,而不是先新增更多工具。

基準紀錄保留起始 commit、11 個 turn、兩次人工提示、4 個額外修改檔案、缺少 browser evidence,以及持久化失敗。這些數字只描述合成 fixture,後續候選必須在相同驗收條件下比較。

主張限制

單次 run 無法估計模型變異,也不能證明其他 repository 會有相同結果。要擴大結論,仍需固定任務集、重複試跑、holdout 與人工審查。

做法

照著做,每一步都有檢查點

Release Desk 基準 run 依序經過意圖、可讀性、持續性、控制與回饋,旁邊標出 evidence、diff 與人工介入。

現場情境

這次失敗最主要落在哪一個 harness 邊界,第一個值得實作的介入是什麼?

  1. 01鎖定基準條件
  2. 02旁觀完整工作軌跡
  3. 03獨立執行驗收

驗收條件

你能用一份可重播紀錄說明 failure 在哪一層、哪些仍是未知,以及下一個最小實驗要改善哪個觀察。

這張圖要幫你看懂什麼五個 harness 邊界配上同一條基準時間線,能讓學員從症狀追到可修位置。
  1. 01

    鎖定基準條件

    記錄 commit、branch、lockfile、runtime、fixture、agent、任務文字、預算與停止條件。先不要更動 repository 說明,也不要把 reviewer 的背景知識塞進 prompt。

    檢查點 · 另一位同事可以取得相同起點,且所有差異都能在 receipt 看到。

  2. 02

    旁觀完整工作軌跡

    保存每次工具操作、失敗、修改路徑、測試、agent 第一次完成宣告與人工提示。敏感值只能以 canary 或雜湊檢查,不把完整內容收進教材。

    檢查點 · 時間線能回答 agent 看了什麼、改了什麼、依據什麼說完成,以及人工在哪裡介入。

  3. 03

    獨立執行驗收

    從乾淨狀態檢查 type、規則、API、登入後 browser 旅程、重整持久化、未授權角色與 audit 次數。不要沿用 agent 口頭說通過的結果。

    檢查點 · 每一項合約要求都有 pass、fail、missing 或 skipped 狀態與實際證據。

  4. 04

    分類並挑一項介入

    把問題對到 intent、legibility、continuity、control、feedback,附上證據與其他可能解釋。按影響、重複機率、可測性與維護成本排序,只選第一項可驗證的 harness 改造。

    檢查點 · 決策沒有把所有失敗都推給模型,也沒有一次加入整套複雜 scaffolding。

實務脈絡

展示版之後

G1

固定任務與環境

使用課程提供的 request changes 功能、固定 seed、鎖定依賴版本與同一套 agent 設定。先記錄起始 commit、工作樹狀態、任務文字、預算與停止點。後續若改用 holdout,難度與驗收路徑要相當,不能換成比較容易的案例再宣稱改善。

基準期間不補 repository 指令,也不偷偷修啟動流程。安裝失敗就保存輸出;agent 問到只存在工程師腦中的知識,也要記下問題而不是立即回答。缺少的資訊本身就是 harness 診斷證據。

G2

按照可修邊界分類

把觀察分到 intent、legibility、continuity、control、feedback。因為沒有架構地圖而改錯層,屬於可讀性問題;程式修改正確但頁面重整後狀態消失,屬於回饋與驗收問題;逾時後重複寫入,牽涉控制與復原。不要用粗心、迷路或不夠聰明這類人格標籤,因為它們沒有可執行的修復位置。

比較時同時看結果與過程:任務是否真的通過、修改是否超出範圍、發生幾次人工介入、走了多少無效步驟、context 花在哪裡、失敗後多久能定位與復原。最後寫成診斷表,每個推測都要連到 trace、diff、指令輸出或人工紀錄。

動手實作

跑一次基準並寫出 harness-gap 診斷

在乾淨 Release Desk fixture 執行固定任務,不補提示,保存操作、diff、檢查與人工介入,再依五個邊界分類。

準備項目

  • 建立獨立 worktree,確認沒有 production 連線、真實秘密或其他專案程序會被碰到
  • 鎖定任務文字、起始 commit、agent 設定、時間與 turn 上限,準備旁觀用記錄表

本課產出

一份 baseline receipt、時間線、diff scope、驗收結果、人工介入紀錄、五類缺口診斷,以及只含一個優先介入的決策。

起始模板: 基準觀察表

Markdown
{
  "runId": "he-00-baseline-001",
  "startingCommit": "REPLACE_ME",
  "taskFixture": "request-changes-v1",
  "agentSetup": { "tool": "REPLACE_ME", "modelLabel": "REPLACE_ME" },
  "limits": { "minutes": 45, "externalWrites": 0 },
  "firstCompletionClaim": null,
  "acceptance": [],
  "humanInterventions": [],
  "filesChanged": [],
  "failureClass": [],
  "limitsOfEvidence": "single synthetic run"
}

可下載的實作檔

Baseline worksheet

harness-baseline.json · JSON

An editable course fixture for the main lab. Save it inside the Release Desk repository before running the acceptance command.

Run receipt template

he-00-receipt.json · JSON

A compact evidence record for the check, environment, result, and limits that another reviewer must be able to inspect.

驗收指令

npm run harness:baseline -- --receipt .harness/harness-baseline.json

預期 receipt

PASS he-00 baseline-recorded
task=request-changes-v1 evidence>=5 externalWrites=0
decision=recorded limits=single-run

預期結果

你能用一份可重播紀錄說明 failure 在哪一層、哪些仍是未知,以及下一個最小實驗要改善哪個觀察。

留給下一課

保留原始 task text 與 baseline receipt。模組 01 會把它改寫成機器與 reviewer 都能執行的任務合約,之後每一層都要回來對照這份基準。

驗收條件

  1. 01基準條件包含 commit、環境、fixture、任務、agent 設定、預算與停止點
  2. 02證據涵蓋真實使用路徑、持久化、權限、audit、修改範圍、人工介入與復原
  3. 03每個診斷都連到可查的 trace、diff、輸出或 reviewer 紀錄
  4. 04後續介入只有一項,且預先寫好成功、失敗與移除條件

常見故障

故障診間

F1基準途中一直補提示,最後任務雖完成卻不知道是哪個介入有效。
先檢查
對照每次人工訊息、repository 變更、檢查與結果時間點。
可能原因
沒有先定停止點與介入記錄,把觀察和教學混在同一個 run。
修復方式
將這次標為探索,回到乾淨 commit 重新跑受控基準。
下次怎麼避免
基準只記錄問題;任何協助都另開候選 run 並版本化。
F2Agent 說完成,獨立 reviewer 卻無法操作功能。
先檢查
核對 agent 執行的命令、skipped suite、browser journey、持久化與 receipt。
可能原因
完成定義停在單元測試或 API,沒有涵蓋使用者可觀察行為。
修復方式
把缺少的路徑記為 feedback gap,保留失敗案例供後續 evaluator。
下次怎麼避免
所有完成主張都由任務合約與獨立驗收建立,不採信 session 摘要。
F3診斷表把每個問題都寫成模型不夠好。
先檢查
逐一問 repository、環境、狀態、權限或回饋是否真的提供必要條件。
可能原因
分類描述人格與結果,沒有定位可修的系統邊界。
修復方式
用五類架構重寫,未知就保留未知,不硬湊單一原因。
下次怎麼避免
要求每個原因附證據、反證與可測的最小介入。

展示版之後

正式上線前的邊界

  1. 01基準與候選的任務、環境、fixture、模型設定、預算與驗收路徑可比較
  2. 02所有資料為合成或明確授權內容,trace、截圖與 receipt 不含真實秘密
  3. 03完成狀態來自獨立驗收,不來自 agent 的文字宣告
  4. 04人工介入、修改範圍、失敗、成本、復原與未解問題都如實保存
  5. 05診斷區分證據、推測與其他可能原因,沒有把單次結果當普遍結論
  6. 06每個新增 harness 層都有預期效益、維護成本、owner 與移除條件

證據類型

資料來源與主張限制

資料來源只支撐本課標示的主張,不代表換一個系統也會得到相同結果。

  1. [1]知識留在 repository · 讓系統對 agent 可讀 · 機械式規則 · 處理 repository entropy
  2. [2]
    長時間執行 agent 的有效 harness

    Anthropic · 已發表研究 · 2026-08-26

    initializer 模式 · feature ledger · session 交接 · 端到端驗證
  3. [3]
    打造有效的 agent

    Anthropic · 官方文件 · 2026-08-26

    採用能通過需求的最簡架構 · workflow 模式 · 環境回饋 · 停止條件
  4. [4]
    Learn Harness Engineering

    Walking Labs · 公開案例 · 2026-08-26

    專案式學習順序 · 五個 harness 子系統 · 迴圈工程 · 工作圖工程
  5. [5]
    Andrej Karpathy 的 AI Engineering Playbook

    AI Builder Club · 公開案例 · 2026-08-26

    Software 3.0 觀點 · spec、diff、eval 實作 · 平行 session · repository 指令

延伸的 Tenten 資源

當本機 harness 要接進真實 repository

帶著 receipt、失敗案例,以及那條還拿不準的控制邊界來。

在團隊拉長 agent 自治時間前,Tenten 可以一起檢查 repository 可讀性、權限、evaluator 涵蓋、worktree 隔離、復原與上線證據。