Agent 的 Demo 很快能跑起來,交付真實工作後,問題常出在模型外面:按了停止還在改檔、Timeout 後又寄一次信、文件寫了卻沒被讀到。組裝 Context、執行工具、決定何時停下的這層程式,就是 Harness。我實作 Harness 時也踩過類似的坑,於是整理 OpenAI、Anthropic、Shopify 等團隊公開的工程文章,看他們面對同樣問題怎麼取捨。三十天分為五個主題:任務狀態與恢復、Context 與知識、工具與副作用、權限與信任邊界、運行與改善。每篇從一個問題出發,比較做法的代價,整理成設計判斷,讓讀者檢查自己的 Agent 時,知道該補哪一層、補到什麼程度。
🗃️ Compaction 把舊對話壓短,Agent 才跑得下去;壓完原文通常還在,摘要要記下出處,才找得回去。 昨天在 Day 10,我們確認了必要的內容...
🧠 Agent 記下的 memory 會過期。寫進去時連當時的條件一起存,讀回來先看它多舊、條件還在不在;有了新說法,舊的標成已取代,別直接蓋掉。 昨天在...
🔀 subagent 先換到的是乾淨的主對話:大量的測試輸出、log 留在它那邊,主對話只收一份摘要。多開幾個會不會快,看分出去的工作重疊多少;重疊的部分,開...
🔧 API 原樣轉成工具,後台畫面替客服人員做的事就落到模型身上。工具要照 Agent 的任務設計:模型判斷退哪幾件,金額由系統照規則算,做了什麼、為什麼被拒...
🧰 工具一多,定義會占掉 Context,名字像的也更難分。先把這個 Agent 用不到的拿掉;剩下的常用幾支一直給,其餘先只給名字、用到再載入;搜不搜得到、...
✂️ 只回傳一部分沒問題,前提是講清楚讀到哪裡、為什麼只有這些,和下一段怎麼拿。 昨天在 Day 15|工具越多,選錯越多:控制 Agent 當下看見的能力...
🧭 Agentic search 搜什麼、搜到哪裡停,都由 Agent 自己決定,從改了哪些檔案看不出漏了什麼。要判斷找齊沒,交回時得附上它用哪些線索搜、排除...
🔁 timeout 不代表失敗,動作可能已經做了,不能直接再送一次。要再送,Harness 得帶上同一把 key:key 從「做哪一件事」算出來,不管誰重送、...
🔌 接得下去,但不能只交一段摘要給新模型。Harness 要把確認過的結果直接交過去,例如哪些檔案改好了、diff 是什麼;舊模型的工具呼叫和供應商專屬的狀態...
🛡️ 擋不住。prompt 裡的規則和資料裡夾帶的指示,對模型來說都是讀到的文字,它可能照後者做。在模型外面先掃描、執行前再檢查,能降低被騙的機率;要擋住,得...