337p人体粉嫩胞高清图片,97人妻精品一区二区三区在线 ,日本少妇自慰免费完整版,99精品国产福久久久久久,久久精品国产亚洲av热一区,国产aaaaaa一级毛片,国产99久久九九精品无码,久久精品国产亚洲AV成人公司
網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

Harness發(fā)威!Claude被榨干的秘訣公開了

0
分享至


智東西
作者|江宇
編輯|漠影

智東西3月26日?qǐng)?bào)道,前日,Anthropic發(fā)布了最新工程博客《Harness Design for Long-Running Application Development》。這篇博客由Anthropic Labs團(tuán)隊(duì)成員Prithvi Rajasekaran撰寫,討論的話題是:當(dāng)AI開始連續(xù)數(shù)小時(shí)地做設(shè)計(jì)、寫代碼、搭應(yīng)用時(shí),光靠模型本身已經(jīng)不夠了,還需要一套圍繞模型運(yùn)轉(zhuǎn)的“harness(執(zhí)行框架/調(diào)度框架)”。

這里的harness,不是傳統(tǒng)意義上的“工具鏈”三個(gè)字就能概括的東西。按Prithvi Rajasekaran的分享,它是一套專門為長程任務(wù)搭出來的運(yùn)行機(jī)制:什么時(shí)候拆任務(wù),什么時(shí)候交接上下文,什么時(shí)候引入新的Agent,生成結(jié)果后由誰來檢查,檢查不過如何打回重做,長上下文撐不住時(shí)是壓縮歷史還是直接重置會(huì)話,這些都屬于harness設(shè)計(jì)的一部分。

換句話說,模型負(fù)責(zé)“做事”,而harness負(fù)責(zé)讓它在一段很長、很復(fù)雜、還容易跑偏的工作流程里,盡量一直做對(duì)事。

Prithvi Rajasekaran這次分享的重點(diǎn),就是他過去幾個(gè)月圍繞兩個(gè)相互關(guān)聯(lián)的問題所做的一輪工程探索:一是怎么讓Claude做出更高質(zhì)量的前端設(shè)計(jì),二是怎么讓Claude在幾乎沒有人工介入的情況下,持續(xù)數(shù)小時(shí)構(gòu)建出完整應(yīng)用

為了把這兩個(gè)問題繼續(xù)推進(jìn),他借鑒了生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)的思路,把“生成”和“評(píng)估”拆開,先在前端設(shè)計(jì)上驗(yàn)證,再把這套思路擴(kuò)展到長程自動(dòng)編程里,最后形成了一個(gè)由planner(規(guī)劃者)、generator(生成者)和evaluator(評(píng)估者)組成的三層Agent架構(gòu)

整篇內(nèi)容分享了為什么簡單的Agent方案容易失靈,以及他如何一步步搭出這套harness、如何測試、如何迭代、又如何在新模型發(fā)布后繼續(xù)把框架進(jìn)行優(yōu)化。

一、先把AI“管住”,長程開發(fā)真正難的是“別跑偏”

Prithvi Rajasekaran一開始回顧說,過去幾個(gè)月里,他主要在做兩件事:讓Claude產(chǎn)出高質(zhì)量前端設(shè)計(jì),以及讓Claude在沒有人類干預(yù)的情況下構(gòu)建完整應(yīng)用。

這項(xiàng)工作承接了團(tuán)隊(duì)更早之前在前端設(shè)計(jì)能力和長程編碼Agent harness上的嘗試。那時(shí)他和同事已經(jīng)通過提示工程(prompt engineering)與harness設(shè)計(jì),把Claude的表現(xiàn)拉到了明顯高于基線的水平,但這兩條路最后都碰到了天花板。

為了繼續(xù)推進(jìn),他開始尋找一種能跨越兩類問題的AI工程方法:一類是前端設(shè)計(jì)這種帶有明顯主觀審美色彩的任務(wù),另一類是軟件開發(fā)這種可以驗(yàn)證正確性與可用性的任務(wù)。

他最后從生成對(duì)抗網(wǎng)絡(luò)中獲得啟發(fā),設(shè)計(jì)了一種多Agent結(jié)構(gòu),把負(fù)責(zé)生成結(jié)果的generator負(fù)責(zé)判斷結(jié)果好壞的evaluator分離開來。

在他看來,最難的其實(shí)不是多加一個(gè)Agent,而是先把“評(píng)價(jià)標(biāo)準(zhǔn)”做出來。因?yàn)橄瘛斑@個(gè)設(shè)計(jì)好不好看”這種判斷,原本非常主觀,如果不能被拆成更具體、可評(píng)分的標(biāo)準(zhǔn),評(píng)估就無從談起。也正是從這里出發(fā),他逐步把一套能把主觀判斷變成可評(píng)分項(xiàng)的思路,先用于設(shè)計(jì),再搬到長程自動(dòng)編程中。

之后,他把這套方法擴(kuò)展到長時(shí)間自主編碼任務(wù)里,同時(shí)沿用了此前做harness時(shí)得到的兩個(gè)經(jīng)驗(yàn):其一,是把構(gòu)建過程拆成可處理的小塊其二,是通過結(jié)構(gòu)化產(chǎn)物(structured artifacts)在不同會(huì)話之間完成上下文交接

最后形成的結(jié)果,是一個(gè)由planner、generator和evaluator組成的三層Agent架構(gòu),它可以在持續(xù)數(shù)小時(shí)的自動(dòng)編碼會(huì)話中,產(chǎn)出內(nèi)容比較豐富的全棧應(yīng)用。

二、上下文一長就慌,自己打分又總偏高,簡單Agent為什么總失靈

Prithvi Rajasekaran接著解釋,團(tuán)隊(duì)此前已經(jīng)證明,harness設(shè)計(jì)會(huì)顯著影響長程Agent編碼的有效性

更早的一次實(shí)驗(yàn)里,他們用initializer agent(初始化Agent)把產(chǎn)品規(guī)格拆成任務(wù)列表,再讓coding agent(編碼Agent)一次實(shí)現(xiàn)一個(gè)功能點(diǎn),并通過交接產(chǎn)物在不同會(huì)話之間傳遞上下文。開發(fā)者社區(qū)也逐漸形成了類似共識(shí),比如“Ralph Wiggum”方法,就會(huì)借助hooks或腳本,讓Agent維持持續(xù)迭代循環(huán)。

但即便如此,一些問題仍然非常頑固。任務(wù)一復(fù)雜,Agent時(shí)間一拉長,還是容易逐漸跑偏。Prithvi Rajasekaran觀察到兩種很常見的失效模式。

第一種,是模型在長任務(wù)里會(huì)隨著上下文窗口(context window)逐漸填滿而失去連貫性。他還提到,有些模型會(huì)表現(xiàn)出所謂“context anxiety(上下文焦慮)”,也就是當(dāng)模型覺得自己快接近上下文極限時(shí),會(huì)開始提前收尾,沒做完也想結(jié)束。

為了解決這兩個(gè)問題,他們采用了context resets(上下文重置):把上下文窗口完全清空,啟動(dòng)一個(gè)新的Agent,再通過結(jié)構(gòu)化交接,把前一個(gè)Agent的狀態(tài)與下一步計(jì)劃傳給后一個(gè)Agent。

他特別區(qū)分了這種“重置”做法和compaction(壓縮)。壓縮是把前面對(duì)話原地總結(jié),讓同一個(gè)Agent在縮短后的歷史上繼續(xù)工作。壓縮能保留連續(xù)性,但不能給Agent一個(gè)真正的“干凈起點(diǎn)”,所以context anxiety仍可能持續(xù)存在。重置則能提供一個(gè)徹底清空后的新起點(diǎn),代價(jià)是交接文件必須帶足夠多的狀態(tài)信息,保證下一個(gè)Agent能無縫接上。

Prithvi Rajasekaran提到,在更早的測試?yán)铮?strong>Claude Sonnet 4.5的context anxiety已經(jīng)強(qiáng)到只靠壓縮根本不夠,因此context reset成了那一代harness設(shè)計(jì)中的必要組件。它確實(shí)解決了核心問題,但也會(huì)帶來編排復(fù)雜度、token額外開銷和更高延遲。

第二種問題,是他們此前沒有系統(tǒng)處理過的self-evaluation(自我評(píng)估)。當(dāng)Agent被要求評(píng)價(jià)自己剛做出的成果時(shí),它往往會(huì)很自信地夸自己的工作,哪怕在人類看來質(zhì)量只是平平。

這在設(shè)計(jì)這類主觀任務(wù)上尤其明顯,因?yàn)樗幌褴浖y試那樣存在明確的二元驗(yàn)證標(biāo)準(zhǔn)。一個(gè)布局到底精致還是普通,本身就是判斷題,而模型在給自己的作品打分時(shí),幾乎總是傾向于偏樂觀。

Prithvi Rajasekaran進(jìn)一步指出,即便是那些結(jié)果可驗(yàn)證的任務(wù),Agent在執(zhí)行過程中仍會(huì)出現(xiàn)判斷失真,進(jìn)而影響最終表現(xiàn)。把“干活的Agent”和“評(píng)判它的Agent”分開,是解決這個(gè)問題的一個(gè)強(qiáng)有力手

當(dāng)然,這種分離并不會(huì)立刻消除寬松傾向,因?yàn)閑valuator本身仍然是LLM,依舊會(huì)對(duì)LLM生成內(nèi)容天然偏慷慨。但相比之下,把一個(gè)獨(dú)立的evaluator調(diào)成“懷疑主義者”,明顯比逼generator嚴(yán)厲地批評(píng)自己要容易得多。一旦外部反饋存在,generator也就有了可以針對(duì)性迭代的依據(jù)。

三、先讓審美變得可評(píng)分,Claude怎么從“安全牌”走向更有設(shè)計(jì)感

Prithvi Rajasekaran最先在前端設(shè)計(jì)上做實(shí)驗(yàn),因?yàn)樵谀抢铮晕以u(píng)估失真最明顯。沒有特別干預(yù)時(shí),Claude通常會(huì)傾向于生成那種安全、可預(yù)測、技術(shù)上能用但視覺上很平的布局。

圍繞前端設(shè)計(jì)這件事,他搭建的harness主要建立在兩個(gè)判斷上。

第一,審美當(dāng)然不可能被徹底化約成一個(gè)分?jǐn)?shù),個(gè)人偏好也始終會(huì)存在差異,但如果把設(shè)計(jì)原則和偏好寫進(jìn)評(píng)分標(biāo)準(zhǔn)里,結(jié)果還是能被往更好的方向走。換句話說,“這個(gè)設(shè)計(jì)美不美”很難穩(wěn)定回答,但“它有沒有遵循我們定義的好設(shè)計(jì)原則”就變成了模型能抓住的具體問題。

第二,把前端生成和前端評(píng)分拆開后,就能形成一個(gè)反饋循環(huán),持續(xù)把generator往更強(qiáng)的輸出上推進(jìn)。

基于這個(gè)思路,他為generator和evaluator都寫進(jìn)了同樣四個(gè)評(píng)分維度。

第一個(gè)是Design quality(設(shè)計(jì)質(zhì)量),看整體設(shè)計(jì)是否是一個(gè)統(tǒng)一的整體,而不是零散部件的拼裝;優(yōu)秀的結(jié)果應(yīng)該讓顏色、字體、布局、圖像和細(xì)節(jié)共同營造出清晰的氛圍與身份感。

第二個(gè)是Originality(原創(chuàng)性),看里面有沒有定制化的設(shè)計(jì)選擇,而不是模板布局、組件庫默認(rèn)值或典型的AI生成套路;如果一個(gè)人類設(shè)計(jì)師看不出其中有刻意做過的創(chuàng)意決策,那就說明不夠好。像未經(jīng)修改的現(xiàn)成組件,或者白底卡片配紫色漸變這種明顯“AI味”很重的模式,在他這里都會(huì)被判定失敗。

第三個(gè)是Craft(工藝),也就是技術(shù)執(zhí)行層面,包括字號(hào)層級(jí)、間距一致性、色彩和諧性、對(duì)比度等,這更像是在檢查基本功而不是創(chuàng)意;大多數(shù)正常實(shí)現(xiàn)默認(rèn)都能過這一關(guān),過不了通常說明基礎(chǔ)就出問題了。

第四個(gè)是Functionality(功能性),它和審美無關(guān),更關(guān)注可用性:用戶能否理解界面在做什么,能否找到主要操作,能否不靠猜測完成任務(wù)。

他特別強(qiáng)調(diào)了Design quality和Originality,而不是Craft和Functionality。原因是Claude本來就在工藝和功能性上得分不低,模型通常天然就能表現(xiàn)出一定技術(shù)能力;真正的問題是設(shè)計(jì)質(zhì)量和原創(chuàng)性,經(jīng)常只停留在“不難看,但很平”的程度。

因此,這套標(biāo)準(zhǔn)會(huì)明確懲罰高度泛化的“AI slop(AI流水線式糊弄設(shè)計(jì))”模式,并通過提高設(shè)計(jì)質(zhì)量與原創(chuàng)性的權(quán)重,逼模型在審美上承擔(dān)更多風(fēng)險(xiǎn)。

為了讓evaluator的判斷更接近他的偏好,Prithvi Rajasekaran又用帶有詳細(xì)拆分分?jǐn)?shù)的few-shot examples(少樣本示例)做了校準(zhǔn)。這樣做的結(jié)果,是讓evaluator在多輪迭代中更穩(wěn)定,也減少了評(píng)分漂移。

整個(gè)循環(huán)建立在Claude Agent SDK之上,編排相對(duì)直接。先由generator根據(jù)用戶提示生成一個(gè)HTML/CSS/JS前端,再給evaluator接入Playwright MCP,讓它在打分前可以直接與運(yùn)行中的頁面交互。

實(shí)際運(yùn)行時(shí),evaluator會(huì)自己瀏覽頁面、截圖、仔細(xì)檢查實(shí)現(xiàn)情況,再對(duì)每一項(xiàng)標(biāo)準(zhǔn)打分并寫出詳細(xì)批評(píng),這些反饋再回流給generator,成為下一輪迭代的輸入

他通常會(huì)讓一次生成跑5到15輪迭代。隨著evaluator不斷提出批評(píng),generator往往會(huì)被推向更有個(gè)性的方向。因?yàn)閑valuator不是只看靜態(tài)截圖,而是在主動(dòng)瀏覽頁面,所以每一輪都要花真實(shí)時(shí)間,完整一次運(yùn)行甚至?xí)系?小時(shí)。Prithvi Rajasekaran還會(huì)要求generator在每輪評(píng)估后做一次策略判斷:如果評(píng)分走勢(shì)不錯(cuò),就繼續(xù)細(xì)化當(dāng)前方向;如果路線不對(duì),就直接轉(zhuǎn)向完全不同的審美方案。

從整體上看,evaluator的評(píng)分會(huì)隨著迭代先提升,再逐漸平臺(tái)化,說明還有進(jìn)一步優(yōu)化空間。

有些案例是逐步細(xì)修上去的,也有些會(huì)在某一輪突然大轉(zhuǎn)彎。Prithvi Rajasekaran還發(fā)現(xiàn),評(píng)分標(biāo)準(zhǔn)里的措辭本身,也會(huì)以他原先沒完全預(yù)料到的方式影響輸出。比如他在標(biāo)準(zhǔn)里加入“the best designs are museum quality(最好的設(shè)計(jì)應(yīng)達(dá)到博物館級(jí)別)”這樣的表述后,結(jié)果會(huì)把設(shè)計(jì)往特定視覺收斂方向上推進(jìn),這說明和標(biāo)準(zhǔn)綁定在一起的提示語言,會(huì)直接塑造最終產(chǎn)物的氣質(zhì)

雖然分?jǐn)?shù)通常會(huì)隨輪次上升,但過程并不總是線性。后期實(shí)現(xiàn)整體上往往更強(qiáng),但他也經(jīng)常更喜歡中間某一輪,而不是最后一輪。

與此同時(shí),隨著輪次推進(jìn),實(shí)現(xiàn)復(fù)雜度也會(huì)不斷提高,generator會(huì)在evaluator反饋驅(qū)動(dòng)下嘗試更野心勃勃的方案。值得一提的是,即便在第一輪,沒有任何evaluator反饋時(shí),只要加入了這套標(biāo)準(zhǔn)和相關(guān)語言,輸出質(zhì)量也已經(jīng)明顯優(yōu)于完全不做提示的基線版本。這說明光是標(biāo)準(zhǔn)本身,就已經(jīng)先把模型從那些泛化默認(rèn)值里往外拉了一步。

他舉了一個(gè)比較典型的例子:自己曾提示模型為一家荷蘭藝術(shù)博物館做官網(wǎng)。到第九輪時(shí),Claude已經(jīng)做出一個(gè)干凈、暗色調(diào)的虛構(gòu)博物館首頁,視覺上挺完整,但整體仍在他的預(yù)期范圍內(nèi)。

到了第十輪,模型卻把此前方案整個(gè)推翻,改成了一種空間化體驗(yàn):用CSS透視渲染了一個(gè)帶棋盤格地面的3D房間,畫作以自由位置掛在墻上,頁面導(dǎo)航也不再依賴滾動(dòng)或點(diǎn)擊,而是通過房間之間的門洞完成切換。Prithvi Rajasekaran直言,這種創(chuàng)造性跳躍,是他以前在單次生成里沒見過的


四、從前端評(píng)分器到全棧開發(fā)流水線,三層Agent開始接管完整應(yīng)用構(gòu)建

在前端設(shè)計(jì)實(shí)驗(yàn)得出這些結(jié)論后,Prithvi Rajasekaran把這套受GAN啟發(fā)的模式擴(kuò)展到了全棧開發(fā)中。在他看來,generator-evaluator的循環(huán)和軟件開發(fā)生命周期是天然對(duì)應(yīng)的,因?yàn)榇a評(píng)審和QA,本質(zhì)上就承擔(dān)著和設(shè)計(jì)評(píng)估器類似的結(jié)構(gòu)性角色。

先看架構(gòu)。更早的長程harness里,他們已經(jīng)通過initializer agent、一次只做一個(gè)功能點(diǎn)的coding agent,以及跨會(huì)話的context reset,解決了多會(huì)話編碼的連貫性問題。context reset之所以關(guān)鍵,正是因?yàn)楫?dāng)時(shí)用的是Sonnet 4.5,它會(huì)表現(xiàn)出前文提到的“context anxiety”。能在context reset來回切換時(shí)仍保持任務(wù)推進(jìn),是那一版harness能跑起來的關(guān)鍵。

但到了這次新實(shí)驗(yàn)里,Prithvi Rajasekaran發(fā)現(xiàn)Opus 4.5已經(jīng)在很大程度上消除了這種問題,因此這套新harness里他干脆把context reset整個(gè)拿掉了,改為讓所有Agent在一次連續(xù)會(huì)話中跑完整個(gè)構(gòu)建流程,把上下文增長交給Claude Agent SDK的自動(dòng)compaction去處理。

在這個(gè)基礎(chǔ)上,他搭建了一個(gè)新的三層Agent系統(tǒng),每個(gè)角色都對(duì)準(zhǔn)了他在此前運(yùn)行中觀察到的一個(gè)缺口

其中,planner負(fù)責(zé)把用戶那種只有1到4句話的簡單提示,擴(kuò)展成一份完整的產(chǎn)品規(guī)格。之所以要加planner,是因?yàn)榕f版長程harness要求用戶一開始就自己提供詳細(xì)規(guī)格,他想把這個(gè)步驟自動(dòng)化。為了避免planner一上來就把技術(shù)實(shí)現(xiàn)細(xì)節(jié)寫得過死、寫錯(cuò)后一路污染后續(xù)實(shí)現(xiàn),他在提示里要求planner要大膽擴(kuò)展產(chǎn)品范圍,但聚焦在產(chǎn)品語境和高層技術(shù)設(shè)計(jì)上,而不是過細(xì)的技術(shù)落地細(xì)節(jié)。

Prithvi Rajasekaran的考慮是,與其提前把實(shí)現(xiàn)路徑寫死,不如先約束最終要交付什么,再讓后續(xù)Agent邊做邊找思路。他還要求planner主動(dòng)在產(chǎn)品規(guī)格里尋找可以嵌入AI能力的地方

generator則沿用了舊版harness里“一次做一個(gè)功能”的思路,把工作拆成一個(gè)個(gè)sprint(沖刺階段),每輪從規(guī)格中拿起一個(gè)功能點(diǎn)來實(shí)現(xiàn)。

每個(gè)sprint都用React、Vite、FastAPI和SQLite,后來又換成了PostgreSQL這一套技術(shù)棧來搭建應(yīng)用。generator在每輪結(jié)束后需要先做自我評(píng)估,再把成果交給QA。此外,它還接入了git用于版本控制。

evaluator要解決的,則是此前一些應(yīng)用“看上去很厲害,真正用起來還是有bug”的問題。它會(huì)通過Playwright MCP,像真實(shí)用戶一樣點(diǎn)擊運(yùn)行中的應(yīng)用,測試UI功能、API端點(diǎn)和數(shù)據(jù)庫狀態(tài)。之后再根據(jù)自己找到的bug,以及一套從前端實(shí)驗(yàn)改造而來的評(píng)分標(biāo)準(zhǔn)打分,范圍覆蓋product depth(產(chǎn)品深度)、functionality(功能性)、visual design(視覺設(shè)計(jì))和code quality(代碼質(zhì)量)。每個(gè)標(biāo)準(zhǔn)都有硬閾值,只要有一項(xiàng)低于閾值,這輪sprint就算失敗,generator必須接收詳細(xì)反饋并返工。

在每輪sprint開始之前,generator和evaluator還會(huì)先協(xié)商一份sprint contract(沖刺契約):在一行代碼都沒寫之前,先把這塊任務(wù)什么算“完成”談清楚。因?yàn)閜lanner輸出的產(chǎn)品規(guī)格本來就刻意保持在高層抽象,不會(huì)細(xì)到可直接測試的程度,所以他需要這個(gè)步驟,把用戶故事和具體、可驗(yàn)證的實(shí)現(xiàn)之間接起來。

具體流程是,generator先提出自己準(zhǔn)備做什么、怎么驗(yàn)證完成,evaluator再審這份提案,確認(rèn)它做的是不是對(duì)的東西,雙方來回迭代,直到達(dá)成一致

整個(gè)系統(tǒng)中的溝通也盡量簡單,主要通過文件來完成:一個(gè)Agent寫文件,另一個(gè)Agent讀文件,然后在同一個(gè)文件里回復(fù),或?qū)懸粋€(gè)新文件給上一個(gè)Agent繼續(xù)讀。等sprint contract敲定后,generator就按照這份契約開始構(gòu)建,再把結(jié)果交給QA。這樣做的好處,是既能盡量忠于最初的產(chǎn)品規(guī)格,又避免在一開始就把實(shí)現(xiàn)路徑描述得過細(xì)、過死。

五、20分鐘和6小時(shí)的差距,完整Harness為什么能把一個(gè)游戲制作器拉開一大截

在這套harness的第一版實(shí)驗(yàn)里,Prithvi Rajasekaran使用的是Claude Opus 4.5,并把完整harness和單Agent系統(tǒng)放在同一個(gè)用戶提示下做對(duì)比。當(dāng)時(shí)他選擇Opus 4.5,原因也很簡單:那是他開始做這些實(shí)驗(yàn)時(shí)手頭最強(qiáng)的編碼模型。

測試提示詞是這樣一句話:創(chuàng)建一個(gè)2D復(fù)古游戲制作器,要求包括關(guān)卡編輯器(level editor)、精靈編輯器(sprite editor)、實(shí)體行為(entity behaviors)以及可試玩的測試模式(playable test mode)。

結(jié)果顯而易見。單Agent版本只跑了20分鐘,花費(fèi)9美元;完整harness跑了6小時(shí),花費(fèi)200美元,成本高出20多倍。但Prithvi Rajasekaran強(qiáng)調(diào),輸出質(zhì)量的差異幾乎是一眼就能看出來的


按照這句提示,他原本期待看到的是一個(gè)可以搭建關(guān)卡及其組成部分——比如精靈、實(shí)體、瓦片布局,然后點(diǎn)一下“play”就能真正游玩的界面。最開始打開單Agent版本時(shí),表面上看,這個(gè)應(yīng)用似乎也差不多朝著這個(gè)方向去了。

但他一邊點(diǎn)擊一邊試,很快問題就開始冒出來了。首先是布局浪費(fèi)空間,固定高度面板讓大部分視口都空著。


其次是工作流僵硬,當(dāng)他想往關(guān)卡里填內(nèi)容時(shí),系統(tǒng)先要求去創(chuàng)建精靈和實(shí)體,但界面里沒有任何地方提示你應(yīng)該按這個(gè)順序來操作。


更關(guān)鍵的是,真正的游戲根本跑不起來。實(shí)體雖然出現(xiàn)在屏幕上,但完全不響應(yīng)輸入。繼續(xù)往代碼里翻,才發(fā)現(xiàn)實(shí)體定義和游戲運(yùn)行時(shí)(runtime)之間的連接本身就斷掉了,而且界面上沒有任何明顯線索告訴用戶問題出在哪。


評(píng)估完單Agent版本后,他再去看完整harness跑出來的版本。

同樣是一句提示,但經(jīng)過planner這一步擴(kuò)寫后,原始需求被擴(kuò)展成了一個(gè)包含16個(gè)功能點(diǎn)、拆成10個(gè)sprint推進(jìn)的產(chǎn)品規(guī)格,范圍遠(yuǎn)遠(yuǎn)超過單Agent版本

除了核心編輯器和試玩模式,規(guī)格里還加上了精靈動(dòng)畫系統(tǒng)、行為模板、音效與音樂、AI輔助精靈生成器、AI輔助關(guān)卡設(shè)計(jì)器,以及可以通過鏈接分享的游戲?qū)С龉δ堋?/p>


▲AI輔助關(guān)卡設(shè)計(jì)器


▲AI輔助關(guān)卡設(shè)計(jì)器

Prithvi Rajasekaran還給planner開放了前端設(shè)計(jì)能力,讓它先閱讀這部分內(nèi)容,再為整個(gè)應(yīng)用制定一套視覺設(shè)計(jì)語言,納入產(chǎn)品規(guī)格之中。之后的每個(gè)sprint里,generator和evaluator都會(huì)先談妥一份contract,明確這輪具體要實(shí)現(xiàn)什么,以及用哪些可測試行為來驗(yàn)證是否完成。

從打開應(yīng)用的第一眼看,完整harness版本就比單Agent版本更精致、更順滑。畫布占滿了整個(gè)視口,面板尺寸更合理,界面也形成了貫穿規(guī)格中設(shè)計(jì)方向的一致視覺身份。


當(dāng)然,單Agent版本里一些笨拙之處并沒有徹底消失,比如它仍然沒有明確告訴用戶,填充關(guān)卡前最好先創(chuàng)建精靈和實(shí)體,Prithvi Rajasekaran還是得自己摸索一下才能搞清楚。

這在他看來,更像是基礎(chǔ)模型產(chǎn)品直覺上的短板,而不是harness原本要解決的問題,不過也提示了一個(gè)后續(xù)可以在harness內(nèi)部繼續(xù)定向迭代的方向。

繼續(xù)往編輯器里深入,新版本相對(duì)于單Agent的優(yōu)勢(shì)就更明顯了。比如精靈編輯器本身更豐富、功能更完整,工具面板更清爽,顏色選擇器更好用,縮放控制也更順手。因?yàn)樗趐lanner階段就要求把AI能力織進(jìn)產(chǎn)品規(guī)格里,這個(gè)應(yīng)用里還自帶了Claude集成,可以通過提示詞直接生成游戲的不同部分,整個(gè)制作流程因此明顯提速。

最大的差別還是出現(xiàn)在play mode(試玩模式)里。這一次,他真的可以控制自己的實(shí)體在游戲里移動(dòng)起來并玩下去。雖然物理效果仍有一些粗糙邊緣,比如角色跳到平臺(tái)上后會(huì)和平臺(tái)發(fā)生重疊,這種感覺從直覺上就不太對(duì),但至少最核心的東西已經(jīng)工作起來了,而這一點(diǎn)恰恰是單Agent版本沒有做到的。


又玩了一會(huì)兒后,他也發(fā)現(xiàn)AI生成關(guān)卡本身仍有局限,比如前面出現(xiàn)一堵很高的墻,角色根本跳不過去,整局就被卡住了。這說明harness后續(xù)還可以繼續(xù)處理一些常識(shí)性優(yōu)化與邊角情況,把應(yīng)用再往前打磨。

從日志里回看,Prithvi Rajasekaran認(rèn)為evaluator在讓實(shí)現(xiàn)不偏離規(guī)格這件事上起了很大作用。每個(gè)sprint里,它都會(huì)逐條對(duì)照sprint contract中的測試標(biāo)準(zhǔn),通過Playwright操作運(yùn)行中的應(yīng)用,把任何偏離預(yù)期行為的地方都記錄成bug。契約本身也非常細(xì),光是第3個(gè)sprint,圍繞關(guān)卡編輯器就列了27條標(biāo)準(zhǔn),而evaluator的反饋具體到不需要額外調(diào)查就能直接動(dòng)手修。

不過,要把evaluator調(diào)到這個(gè)水平,也不是一上來就能做到。Prithvi Rajasekaran坦言,默認(rèn)狀態(tài)下Claude并不是一個(gè)好的QA Agent。

在早期運(yùn)行里,他經(jīng)常看到模型已經(jīng)識(shí)別出真實(shí)問題,結(jié)果又自己把自己說服,覺得“問題也沒那么大”,最后仍然給通過。它還經(jīng)常只做表層測試,不愿深挖邊界情況,很多更隱蔽的bug就這樣漏過去了。

因此,他的調(diào)優(yōu)方法基本就是反復(fù)讀evaluator日志,找到那些它的判斷和自己判斷不一致的案例,再回頭修改QA提示詞,專門去糾偏。經(jīng)過好幾輪這樣的開發(fā)循環(huán)后,evaluator才終于開始以一種他認(rèn)為“比較合理”的方式打分。

即便如此,Prithvi Rajasekaran也沒有認(rèn)為這套harness毫無問題。在他看來,輸出結(jié)果仍然暴露了模型QA能力的邊界:有些小的布局問題還在,一些交互在局部仍顯得不夠直觀,更深層嵌套功能里的bug,也有不少是evaluator沒有充分觸達(dá)的。

他明確提到,這里面仍然存在大量可以通過進(jìn)一步調(diào)優(yōu)挖出來的驗(yàn)證空間。但即便如此,和單Agent版本相比,那種提升已經(jīng)非常明顯,因?yàn)楹笳咦詈诵牡膽?yīng)用功能壓根就沒有跑起來。

六、模型變強(qiáng)了,框架也得瘦身,哪些部件還“承重”得重新審一遍

第一版harness的結(jié)果讓Prithvi Rajasekaran看到了希望,但問題也很明顯:它太重、太慢、太貴了。接下來的合理動(dòng)作,自然就是看能不能在不明顯損傷表現(xiàn)的前提下,把這套框架做輕一點(diǎn)。

他在這里提出了一個(gè)很重要的判斷:harness里的每一個(gè)組件,其實(shí)都隱含著一個(gè)假設(shè),那就是“模型自己還做不到這件事”。而這種假設(shè)需要不斷做壓力測試,因?yàn)樗赡芤婚_始就不對(duì),也可能隨著模型升級(jí)很快過時(shí)。

他提到團(tuán)隊(duì)此前那篇《Building Effective Agents》博客里有一個(gè)原則,叫“先找盡可能簡單的方案,只有在必要時(shí)才增加復(fù)雜度”,這其實(shí)也是所有維護(hù)Agent harness的人都會(huì)不斷碰到的模式。

Prithvi Rajasekaran第一次嘗試簡化時(shí),直接大刀闊斧砍掉了很多東西,也順手試了一些新的創(chuàng)意辦法,但最后沒能復(fù)現(xiàn)原始harness的效果。

更麻煩的是,一旦改動(dòng)太多,反而很難判斷哪一塊組件才是真正“承重”的,以及它到底承擔(dān)了什么作用。于是從那以后,他換成了一種更機(jī)械、也更靠譜的辦法:每次只刪一個(gè)組件,再回頭看最終結(jié)果發(fā)生了什么變化。

正是在這一輪輪迭代過程中,Anthropic又發(fā)布了Opus 4.6,這進(jìn)一步強(qiáng)化了他簡化harness的動(dòng)機(jī)。

因?yàn)閺男履P偷哪芰γ枋隹矗?.6本來就應(yīng)該比4.5更少依賴外部腳手架(scaffolding)。按照Anthropic的發(fā)布博客,Opus 4.6“計(jì)劃更謹(jǐn)慎、能持續(xù)更久地執(zhí)行Agent任務(wù)、能在更大代碼庫中更可靠地運(yùn)行,并且具備更好的代碼評(píng)審和調(diào)試能力來發(fā)現(xiàn)自身錯(cuò)誤”,同時(shí)它在長上下文檢索(long-context retrieval)上也有明顯提升,而這些能力原本正是harness試圖額外補(bǔ)齊的部分。

七、去掉Sprint后,Evaluator不再是“必選項(xiàng)”,看任務(wù)難度再?zèng)Q定

在具體簡化動(dòng)作里,Prithvi Rajasekaran先下手砍掉的是sprint結(jié)構(gòu)。過去之所以分sprint,是為了把工作拆成更小塊,讓模型更容易保持一致性。既然Opus 4.6已經(jīng)明顯增強(qiáng),他就有理由相信,模型也許可以不依賴這種拆解,自己原生完成整段構(gòu)建。

不過,planner和evaluator他都保留了下來,因?yàn)檫@兩個(gè)角色的價(jià)值仍然很明顯。沒有planner時(shí),generator會(huì)明顯低估任務(wù)范圍:它拿到一條原始提示后就直接開建,不會(huì)先做規(guī)格設(shè)計(jì),最終做出來的應(yīng)用也往往沒有planner擴(kuò)展出來的版本那么豐富。

而在去掉sprint之后,evaluator的位置也跟著變了。它不再在每個(gè)sprint結(jié)束后逐輪打分,而是改成在整輪構(gòu)建結(jié)束后做一次單次評(píng)估。

Prithvi Rajasekaran認(rèn)為,這其實(shí)反映了一個(gè)更有意思的變化:隨著模型能力本身增強(qiáng),evaluator對(duì)某些任務(wù)到底是不是“承重部件”,已經(jīng)不再固定,而是取決于任務(wù)所處的位置,是否仍然貼著當(dāng)前模型單獨(dú)完成能力的邊界

在4.5時(shí)代,這條邊界離得比較近,很多構(gòu)建任務(wù)正好卡在generator單獨(dú)完成得不太穩(wěn)的邊緣,因此evaluator在整個(gè)構(gòu)建過程中能持續(xù)抓出不少關(guān)鍵問題。到了4.6,模型原始能力抬高了,邊界也整體向外推。以前那些必須靠evaluator兜底才能做順的任務(wù),現(xiàn)在很多已經(jīng)落進(jìn)了generator單獨(dú)也能處理好的范圍里。

對(duì)這部分任務(wù)來說,evaluator就會(huì)變成純粹的額外成本。但如果任務(wù)依然處在generator能力邊緣之外,那evaluator還是能繼續(xù)帶來真實(shí)提升。

所以,Prithvi Rajasekaran給出的結(jié)論是,是否使用evaluator,不是一個(gè)永遠(yuǎn)固定的“是或否”判斷。只有當(dāng)任務(wù)超過當(dāng)前模型單獨(dú)可靠完成的能力邊界時(shí),evaluator的成本才真正值得

在做這些結(jié)構(gòu)簡化的同時(shí),他還額外強(qiáng)化了提示詞,去改善harness為每個(gè)應(yīng)用加入AI功能的方式。更具體地說,就是讓generator不只是嵌一個(gè)“看起來像AI”的功能,而是真正能構(gòu)建出一個(gè)可以通過工具驅(qū)動(dòng)應(yīng)用自身功能的agent。

這部分也經(jīng)歷了不少迭代,因?yàn)橄嚓P(guān)知識(shí)還比較新,Claude訓(xùn)練數(shù)據(jù)對(duì)這類模式的覆蓋并不算厚。但經(jīng)過足夠多的調(diào)試后,generator最終還是能夠比較正確地把這類agent搭出來。

八、4小時(shí)做出一個(gè)網(wǎng)頁版數(shù)字音頻工作站,交付還是得靠QA盯住

為了測試更新后的harness,Prithvi Rajasekaran換了一個(gè)新的提示:在瀏覽器中用Web Audio API構(gòu)建一個(gè)功能完整的Digital Audio Workstation(DAW,數(shù)字音頻工作站),也就是用來作曲、錄音和混音的音樂制作程序。

即便結(jié)構(gòu)已經(jīng)簡化,這次運(yùn)行依舊不算便宜,大約耗時(shí)4小時(shí),token成本124美元左右。時(shí)間的大頭依然耗在builder上,它在沒有sprint拆解的前提下,仍能連貫地跑兩小時(shí)以上,這一點(diǎn)正是Opus 4.5當(dāng)時(shí)做不到的。


和前一版harness一樣,planner先把那句一行提示擴(kuò)展成了完整規(guī)格。從日志上看,generator在應(yīng)用規(guī)劃、agent設(shè)計(jì)、功能接線,以及交給QA前的自測這幾步上都做得不錯(cuò)。

但即便這樣,QA Agent依舊抓出了實(shí)在的缺口。第一輪反饋里,它給出的評(píng)價(jià)是:這是個(gè)很強(qiáng)的應(yīng)用,設(shè)計(jì)還原度高,AI agent做得穩(wěn),后端也不錯(cuò),主要失敗點(diǎn)在Feature Completeness(功能完整性)上。雖然應(yīng)用看上去很唬人,AI集成也運(yùn)轉(zhuǎn)良好,但幾個(gè)核心DAW功能其實(shí)只是“展示出來了”,缺乏足夠的交互深度:音頻片段不能在時(shí)間線上拖動(dòng)和移動(dòng),沒有樂器界面面板,比如合成器旋鈕(synth knobs)和鼓墊(drum pads),也沒有可視化效果編輯器,比如EQ曲線(EQ curves)和壓縮器表(compressor meters)。這些不是邊角小問題,而是讓DAW真正可用的核心交互,而且產(chǎn)品規(guī)格里本來就明確要求了這些東西。

到了第二輪反饋,QA又繼續(xù)指出幾項(xiàng)功能缺口,包括錄音仍然只是stub-only(只有占位邏輯,按鈕能切換但并沒有真正采集麥克風(fēng)輸入),音頻片段的邊緣拖拽改長度與片段切分還沒實(shí)現(xiàn),以及效果器可視化仍停留在數(shù)值滑桿,并沒有真正的圖形化表現(xiàn),比如EQ曲線。

Prithvi Rajasekaran借這個(gè)例子強(qiáng)調(diào),哪怕模型本體已經(jīng)更強(qiáng),generator單獨(dú)跑時(shí)仍然會(huì)漏細(xì)節(jié),或者把一些功能做成占位殼子就算完工,因此QA依然有價(jià)值,它會(huì)把這些尾部缺口揪出來,再交還給generator去補(bǔ)

按最初提示,他期待的是一個(gè)程序:可以寫旋律、和聲、鼓點(diǎn),把它們排成一首歌,同時(shí)在過程中還能得到一個(gè)集成Agent的幫助。從最終結(jié)果來看,這個(gè)應(yīng)用離專業(yè)級(jí)音樂制作軟件當(dāng)然還有很大距離,Agent在作曲上的能力也還明顯需要繼續(xù)提升。

Prithvi Rajasekaran還特別提到,Claude實(shí)際上并不能“聽見”聲音,因此圍繞音樂品味進(jìn)行的QA反饋循環(huán),天然就比視覺或代碼驗(yàn)證要弱一些。

不過,他仍然認(rèn)為最終成品已經(jīng)具備了一個(gè)可用音樂制作程序的核心骨架,這東西當(dāng)然還沒有“音準(zhǔn)完美”,但確實(shí)已經(jīng)越來越接近了。

九、模型越強(qiáng),Harness也值得做

在最后的總結(jié)里,Prithvi Rajasekaran談到,隨著模型持續(xù)變強(qiáng),大致可以預(yù)期它們會(huì)越來越能長時(shí)間工作,也能承擔(dān)更復(fù)雜的任務(wù)。在某些情況下,這意味著圍繞模型搭的那層“haarness”會(huì)隨著時(shí)間推移變得沒那么重要,開發(fā)者甚至可以直接等下一代模型發(fā)布,讓一部分問題自己消失。

但另一方面,模型越強(qiáng),可供harness繼續(xù)發(fā)揮作用的空間也會(huì)越大。因?yàn)楫?dāng)基礎(chǔ)能力抬高后,工程師就可以繼續(xù)設(shè)計(jì)新的harness組合,把任務(wù)推到模型默認(rèn)能力之上。

基于這次工作,他認(rèn)為有幾條經(jīng)驗(yàn)值得留下。

第一,始終要親自去和你正在構(gòu)建的模型打交道,讀取它在真實(shí)問題上的trace(執(zhí)行軌跡),再圍繞你想要的結(jié)果去調(diào)性能。

第二,在更復(fù)雜的任務(wù)上,把任務(wù)拆開,并讓不同Agent各自專職處理問題的不同方面,有時(shí)確實(shí)能繼續(xù)挖出額外空間。

第三,當(dāng)新模型出現(xiàn)后,重新審視已有harness通常是值得的:把那些已經(jīng)不再“承重”的部件剝掉,同時(shí)再加上此前做不到的新部件,把能力往更高處進(jìn)化。

Prithvi Rajasekaran最后給出的判斷:隨著模型進(jìn)步,值得探索的harness組合空間并不會(huì)縮小,它只是會(huì)移動(dòng)。對(duì)AI工程師來說,真正有意思的工作,就是不斷去找到下一組新的、有效的組合方式。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
阿努廷,“狂飆突進(jìn)”

阿努廷,“狂飆突進(jìn)”

中國新聞周刊
2026-03-25 22:26:41
沒想到不翻不知道,一翻嚇一跳,張雪峰幾乎每個(gè)月都在網(wǎng)上喊累

沒想到不翻不知道,一翻嚇一跳,張雪峰幾乎每個(gè)月都在網(wǎng)上喊累

歲月有情1314
2026-03-26 12:13:10
Manus的兩名聯(lián)合創(chuàng)始人被告知不要離開中國

Manus的兩名聯(lián)合創(chuàng)始人被告知不要離開中國

新浪財(cái)經(jīng)
2026-03-26 13:50:59
4月1日醫(yī)保7號(hào)令落地!1965-1985年出生的,這6件事務(wù)必抓緊辦

4月1日醫(yī)保7號(hào)令落地!1965-1985年出生的,這6件事務(wù)必抓緊辦

混沌錄
2026-03-25 15:50:11
博主被陌生網(wǎng)友辱罵3個(gè)月,默默觀察其2年半,終于找到機(jī)會(huì)碰面了

博主被陌生網(wǎng)友辱罵3個(gè)月,默默觀察其2年半,終于找到機(jī)會(huì)碰面了

離離言幾許
2026-03-26 15:01:41
大陸對(duì)全體臺(tái)胞發(fā)出邀請(qǐng):兩岸統(tǒng)一之時(shí),即可從臺(tái)島自駕直達(dá)北京

大陸對(duì)全體臺(tái)胞發(fā)出邀請(qǐng):兩岸統(tǒng)一之時(shí),即可從臺(tái)島自駕直達(dá)北京

小童歷史
2026-03-25 18:20:29
伊朗軍方:霍爾木茲海峽局勢(shì)發(fā)展由伊朗掌控

伊朗軍方:霍爾木茲海峽局勢(shì)發(fā)展由伊朗掌控

澎湃新聞
2026-03-26 01:17:13
突發(fā)!以色列徹底失控!

突發(fā)!以色列徹底失控!

財(cái)經(jīng)要參
2026-03-26 21:58:11
砸6700億建雄安,面積抵3個(gè)紐約,如今究竟咋樣了?

砸6700億建雄安,面積抵3個(gè)紐約,如今究竟咋樣了?

娛樂圈的筆娛君
2026-03-26 12:15:32
現(xiàn)貨黃金跌幅擴(kuò)大至2.5%

現(xiàn)貨黃金跌幅擴(kuò)大至2.5%

財(cái)聯(lián)社
2026-03-27 00:24:12
伊朗稱已組織超百萬人為地面戰(zhàn)斗做準(zhǔn)備

伊朗稱已組織超百萬人為地面戰(zhàn)斗做準(zhǔn)備

財(cái)聯(lián)社
2026-03-26 22:50:26
曾在恒大賺上億!40歲郜林吐槽:在中乙當(dāng)老總1個(gè)月工資不夠油費(fèi)

曾在恒大賺上億!40歲郜林吐槽:在中乙當(dāng)老總1個(gè)月工資不夠油費(fèi)

我愛英超
2026-03-26 20:47:14
萬科高管被要求退還薪酬

萬科高管被要求退還薪酬

地產(chǎn)微資訊
2026-03-26 12:22:04
聯(lián)大通過決議,宣布“最嚴(yán)重反人類罪”

聯(lián)大通過決議,宣布“最嚴(yán)重反人類罪”

澎湃新聞
2026-03-26 11:03:06
人狂自有天收

人狂自有天收

李老逵亂擺龍門陣
2025-09-11 09:01:28
翻到張雪峰2016年婚紗照,瞬間看哭了!

翻到張雪峰2016年婚紗照,瞬間看哭了!

魔都姐姐雜談
2026-03-26 22:06:50
突發(fā),雷軍辭職董事長!

突發(fā),雷軍辭職董事長!

品牌頭版
2026-03-26 14:46:17
尺度大到曾下架!模特冠軍泳裝大雷出演影游即將發(fā)售

尺度大到曾下架!模特冠軍泳裝大雷出演影游即將發(fā)售

游民星空
2026-03-26 11:58:13
手機(jī)放床頭輻射傷身?央視實(shí)驗(yàn)給出答案:這樣放手機(jī),輻射降10倍

手機(jī)放床頭輻射傷身?央視實(shí)驗(yàn)給出答案:這樣放手機(jī),輻射降10倍

天氣觀察站
2026-03-24 19:02:53
中國、俄羅斯、伊朗等123票贊成,美國、以色列等3票反對(duì),聯(lián)合國認(rèn)定:最嚴(yán)重反人類罪!英法德日等52國投棄權(quán)票

中國、俄羅斯、伊朗等123票贊成,美國、以色列等3票反對(duì),聯(lián)合國認(rèn)定:最嚴(yán)重反人類罪!英法德日等52國投棄權(quán)票

每日經(jīng)濟(jì)新聞
2026-03-26 13:25:09
2026-03-27 03:16:49
智東西 incentive-icons
智東西
聚焦智能變革,服務(wù)產(chǎn)業(yè)升級(jí)。
11443文章數(shù) 117016關(guān)注度
往期回顧 全部

科技要聞

美團(tuán)發(fā)布外賣大戰(zhàn)后成績單:虧損超200億

頭條要聞

特朗普:伊朗允許10艘油輪通行霍爾木茲海峽

頭條要聞

特朗普:伊朗允許10艘油輪通行霍爾木茲海峽

體育要聞

申京努力了,然而杜蘭特啊

娛樂要聞

劉曉慶妹妹發(fā)聲!稱姐姐受身邊人挑撥

財(cái)經(jīng)要聞

油價(jià)"馴服"特朗普?一到100美元就TACO

汽車要聞

一汽奧迪A6L e-tron開啟預(yù)售 CLTC最大續(xù)航815km

態(tài)度原創(chuàng)

藝術(shù)
旅游
健康
房產(chǎn)
公開課

藝術(shù)要聞

北京大興機(jī)場和青島膠東機(jī)場“撞臉”,長得像就是抄襲?

旅游要聞

河南開封萬歲山武俠城,游客買300元門票:給妻子拍照被保安阻攔

轉(zhuǎn)頭就暈的耳石癥,能開車上班嗎?

房產(chǎn)要聞

突發(fā),三亞又有大批征遷補(bǔ)償方案出爐!

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進(jìn)入關(guān)懷版