release notes 裡有一類 PR 你得讀兩遍,因為第一遍讀完你根本不知道發生了什麼。Hermes Agent v0.8.0 notes 裡相關的那一條長這樣:
自最佳化的 GPT/Codex 工具呼叫指南 —— agent 透過自動行為基準測試,診斷並修補了 GPT 和 Codex 在工具呼叫上的 5 種失敗模式,大幅提升了 OpenAI 模型上的可靠性。(#6120)
第一遍讀的時候,我以為是哪個寫字的人把「自最佳化」這個詞用得比較鬆。第二遍讀的時候我才反應過來:字面意思就是字面意思。agent 把一套基準測試跑在自己身上,發現 OpenAI 模型在呼叫它那些工具的時候有系統性的失敗,針對這些失敗產出了一套有的放矢的指南,再測一遍,確認這些修補真的起作用了。最後由人類審批放行。但是診斷和打修補這一整步,是自動的。
這件事值得拆開講,因為它是那種悄悄塞進一次發布裡的單行文字,卻會改變後面幾次發布能長什麼樣的能力。
具體是個什麼問題
Hermes Agent 配 OpenAI 模型——GPT-5、Codex——的組合,之前幾個版本裡一直看起來晃晃悠悠的。使用者回饋是,Anthropic Claude 跑得順,GPT-5 有時候吐出來的參數形狀不對、跳步驟,或者在多工具呼叫鏈的中途忘了自己剛剛做過什麼。這些不是什麼隱蔽的 bug;你眼睜睜就能看到它們發生。但用手去修它們能把人逼瘋——失敗模式是跟模型綁在一起的,而且它們對 prompt 怎麼措辭敏感到沒法靠直覺去猜。
按 PR 描述裡的說法,有五種反覆出現的樣式:
- •在做破壞性的工具呼叫之前,跳過了本該先做的預檢。
- •schema 要求結構化物件或者數字的地方,它卻甩出一串裸字串。
- •在一串鏈式呼叫裡,忘了哪一個工具呼叫已經成功,導致重複呼叫。
- •指南裡明明寫著要重試,遇上短暫錯誤時它還是拒絕重試。
- •上下文一長,它就從「按計畫執行」飄到「把計畫重新規劃一遍」。
這些沒一個是理論上的東西。每一條背後都拖著一串 GitHub issue。
把它們修好的那條迴圈
PR #6120 的做法有三個活動部件。
第一,一套自動行為基準測試。一個測試框架拿 agent 去跑一組合成場景,這些場景是專門為了勾出上面五種失敗模式設計的。每跑完一個場景,基準會記錄模型做了什麼、本來該做什麼,以及這個差值算不算已知失敗模式裡的某一種。
第二,一步產生指南。基準一旦標出一個失敗,測試框架就會產出若干條候選指南字串——都是些短的、針對具體模型的指令,準備塞進系統提示詞,專門打在剛才失敗的那個樣式上。不是「更小心點」這種話;是類似「在呼叫任何破壞性工具之前,先用相同參數呼叫一次對應的預覽工具,並回報它的輸出」這種話。這些候選是針對觀察到的具體失敗產生的,不是照著一張通用評分表寫出來的。
第三,再測一遍。每一條候選指南字串都會在同一組場景上再跑一次。能把分數拉上去的留下;把別的場景搞糊的扔掉。活下來的那些被合進 Hermes 最終發出去的 GPT/Codex 系統提示詞裡。
為什麼這是另外一種東西
一直以來,agent 框架裡那些內建的 prompt 都是人寫的——有時候一個人,有時候一個小團隊——他們靠親自把一堆對話盯過一遍,沉澱出關於哪些寫法管用、哪些不管用的看法。這個流程有三個毛病:它沒法擴展到很多模型;模型一更新它就沒法便宜地重跑一遍;它產出來的 prompt,會把一個人的經驗和他的迷信混在一起編碼進去。
把「人寫 prompt、人評 prompt」這條迴圈換成「基準測試出候選、基準測試評候選」這條迴圈,並不等於讓 AI 無人監督地自己調自己。最終的指南還是由人類審批放行。但「找規律、提修補方案」這件事,本身變成了可量、可重現的東西。GPT-6 發出來的時候,同一套測試框架再跑一遍就行。有新的失敗模式被報出來的時候,加一個新場景,迴圈再跑一次。讓 prompt 跟模型的實際行為保持同步所要付的代價,降了一個數量級。
v0.8.0 裡其他幾個相關改動,指的也是同一個方向。僅思考 prefill 續寫(#5931)處理的是這麼一種具體情況:模型產出了一段推理區塊卻沒有內容區塊,然後卡住了。執行紀律指南(#5414)往系統提示詞裡加了一條通用規則:「除非真的有什麼變了,別再把計畫重新規劃一遍。」強制歸併工具呼叫參數(#5265)在 JSON schema 要數字或布林值的地方,把字串悄悄轉過去,蓋住了基準測試剛好抓到的那個參數類型失敗。這三條 PR 單獨放進 changelog 裡看像是互不相干的。跟 PR #6120 一起讀,你會發現它們是同一場刻意行動浮在水面上的部分:透過不停地量、修、再量,把 agent 在某一家模型家族上的可靠性拉上去。
藏在這件事底下的那層含義
這件事讓我覺得它不只是一次好發布、而更像是一個轉折點,是因為它在悄悄告訴你:當你不再手寫 prompt 以後,agent 工程長什麼樣。像 Hermes 這樣的專案得同時對付十二家服務商、三十種模型。純靠手工追蹤每一家的行為,在今天已經是不可能的了。但如果你把「該怎麼給模型 X 寫 prompt」當成一個用基準測試去解的調參問題,你就有了一個能跟著模型動物園規模一起放大的流程,而不是被它淹死。
這些都不是 v0.8.0 的頭條。頭條是「智力發布」,demo 是會話中途換模型。但地板下面悄悄發生的那件事是:Hermes 現在有辦法讓它支援的每一個模型上的 agent 都持續變聰明,不需要有人每個模型花一個週末重調一版系統提示詞。這種能力下一次發布裡也不會作為一個具體 feature 出現——它會以「Hermes 上 GPT 的可靠性在持續變好」這種形式,攤在後面連續六次發布裡一點點顯出來。
如果你跟我一樣,把讀 release notes 當樂趣的話,這才是你該盯著看的那種形狀。