這項由騰訊混元大模型前沿團隊聯合印第安納大學、馬里蘭大學帕克分校、喬治亞大學及新加坡國立大學共同完成的研究,以預印本形式發布於2026年7月14日,論文編號為arXiv:2607.13285,有興趣深入了解的讀者可通過該編號檢索完整論文。
**一、故事的起點:AI助手也會"找不到北"**
每一位程序員都有過這樣的經歷:接手一個運行多年的大型項目,老同事遞來一句"代碼在那邊",然後你對著幾百個文件、幾千個函數發呆,不知道從哪裡下手。你想改一個功能,但這個功能可能藏在七八個文件的角落裡,彼此之間通過複雜的調用關係和共享狀態串聯在一起。搜索關鍵詞?可能一個都搜不到,因為功能的名字和代碼里的變量名完全不同。
現在,越來越多的公司開始把這種"改代碼"的工作交給AI編程助手來完成。這些AI助手接到一句自然語言指令,比如"把任務完成的確認流程改成需要三次確認",就要自己去翻代碼庫、找到相關位置、制定修改方案。但問題來了:AI助手同樣會"找不到北"。它們的記憶是有限的,沒辦法一次性把所有代碼都看完;它們在龐大的代碼庫里摸索,很容易遺漏那些藏在冷門路徑或對稱位置的關鍵代碼。
研究團隊把這個困難正式命名為"行為定位"——也就是說,給定一個描述"系統應該做什麼改變"的指令,如何精準找到所有實現這個行為的代碼位置。這不是小問題,這是整個AI輔助編程流程中最先需要解決的一步,因為找不對位置,後續的修改計劃從一開始就是錯的。
**二、被忽略的那個"中間層"**
要理解這項研究想解決的問題,需要先認識一個稍微陌生的概念:代碼駕馭框架,英文叫"harness
"。
可以把一個現代AI智能體的工作方式理解為一輛賽車。賽車的發動機是底層的大語言模型,決定著原始的動力和智能。但賽車能不能跑起來、能不能轉彎、剎車在哪裡——這些都由車身框架和控制系統決定,而不是發動機本身。這個"車身框架和控制系統"就是harness。它負責構造輸入給模型的提示詞、管理系統的運行狀態、調用各種外部工具、控制整個執行流程。一個AI智能體能做什麼、怎麼做,在很大程度上取決於harness的設計。
隨著模型升級、API變化、應用需求演化,harness也必須不斷更新和改造。這就是"harness演化"的工程挑戰。而在演化過程中,無論是人類開發者還是AI編程助手,都必須先搞清楚"要改的功能到底在代碼的哪些地方有實現",才能動手修改。
現有的代碼理解工具——比如代碼搜索、代碼摘要、倉庫索引——確實讓代碼更容易瀏覽,但它們的根本組織邏輯是文件、函數和模組。而一個改動請求說的是"行為",比如"改掉任務完成的確認邏輯",代碼庫里卻沒有一個文件或函數叫做"任務完成確認邏輯"。這個從"行為描述"到"代碼位置"的跨越,就是現有工具留下的空白。
**三、Harness Handbook:給代碼庫繪一張行為地圖**
研究團隊提出的解決方案叫做Harness Handbook,直譯過來就是"駕馭框架手冊"。核心思路可以用一個直觀的比喻來說明:把整個代碼庫想像成一座大型博物館。
傳統的代碼索引就像博物館的房間清單,告訴你一號展廳在哪裡、二號展廳在哪裡,每個展廳里有哪些柜子。但如果你想找"關於宋朝瓷器的所有展品",房間清單沒法直接幫你,你得自己一個展廳一個展廳地翻。Harness Handbook則是另一種導覽——它按照"主題"來組織資訊,直接告訴你"宋朝瓷器"在幾號展廳的哪個柜子、還有一件在五號展廳的角落,以及這兩件展品在歷史脈絡上的關聯。
具體來說,Harness Handbook把一個代碼庫的知識組織成三個層次。第一層是系統總覽,用來描述整個代碼框架的架構、運行模式、主要執行階段以及全局數據流,讓讀者先對整個系統有一個宏觀的認知。第二層是組件概覽,對應系統中的各個執行階段,詳細說明每個階段的職責、輸入輸出、依賴關係和本地狀態。第三層是單元深挖,把每個階段進一步拆解到具體的函數或文件,並且用精確的代碼位置標註(文件名加行號範圍)把描述和源代碼直接連接起來。
除了這三層文檔樹,Handbook還維護著一個跨階段的"狀態寄存器視圖",專門記錄那些在多個執行階段之間傳遞和共享的數據。這非常重要,因為真實系統里的許多關鍵狀態會在一個地方被寫入、在另一個完全不相鄰的地方被讀取,而這種隱性關聯正是人工查找和AI搜索最容易遺漏的陷阱。
**四、地圖是怎麼自動畫出來的**
Harness Handbook不需要人工編寫,它由一套自動化流水線從代碼倉庫直接生成,整個過程分三個階段。
第一階段叫"靜態事實提取",完全不依賴AI,是純粹的確定性程序分析。系統解析代碼倉庫,提取出所有函數、方法的名稱、所在文件、行號範圍、調用關係等基礎事實,構建出一張"程序圖"。這張圖的邊只連接那些能被明確解析的調用關係;對於無法確認的調用,系統會記錄下來而不是猜測,因為猜錯比不知道更有害。
第二階段叫"行為組織",這裡大語言模型開始介入,負責把第一階段提取出來的函數和文件,按照"這些代碼在運行時扮演什麼角色"來重新組織。這裡有兩種工作模式,分別適用於不同規模的代碼庫。
對於代碼規模相對適中、有清晰執行骨架可循的倉庫,系統採用"以函數為葉節點"的模式。這時候有一個預先提供的執行階段骨架作為參照,系統用代碼內容和調用圖上下文來判斷每個函數屬於哪個階段,並且對於那些承擔多種職責的大函數,還可以把它切割成若干連續的代碼區域,分別歸入不同階段。這個判斷過程有提議方和審核方兩個角色相互制衡:提議方給出歸類方案,審核方檢查是否合理,不通過的重新修改,直到方案穩定收斂。
對於代碼庫規模巨大、事先無法提供清晰骨架的情況,系統採用"以文件為葉節點"的模式。這時候系統先為每個文件生成一張描述卡片,然後根據這些卡片的內容和文件之間的調用關係,自動推斷出執行階段的劃分方案,再把文件歸入各自的階段。
第三階段叫"層次合成與打包",把前兩階段的成果組裝成最終的三層文檔樹和狀態寄存器視圖,並且對每一個最底層的條目做驗證——檢查它指向的代碼位置在當前倉庫中是否真實存在。如果某個條目指向的代碼已經不存在了,這個條目會被凍結標記,在被重新核驗之前不會參與定位任務。這個驗證機制確保了Handbook始終以代碼倉庫本身為最終權威。
**五、用Handbook找代碼的方式:從粗到細,步步為營**
有了Handbook這張行為地圖,AI規劃助手在接到改動請求時就有了全新的工作方式,研究團隊把這套工作方式稱為"行為引導式漸進披露",英文縮寫BGPD。這個名字有點學術,但背後的邏輯其實像警探斷案。
接到案子(改動請求)之後,先不要急著去現場翻查證據(源代碼)。先看案件檔案(Handbook的第一層和第二層),搞清楚這個案子涉及哪幾個場景,哪幾個執行階段跟這次改動有關。然後再翻跨階段關聯記錄(狀態寄存器視圖),因為一個狀態變量可能在多個階段都有操作,改了一個地方忘了另一個,案子就沒破乾淨。
確定了相關階段後,警探深入查看每個階段的詳細檔案(第三層),找到最相關的具體函數或文件,拿到它們在代碼倉庫中的精確地址(文件名加行號)。接著,警探順著調用關係圖順藤摸瓜,把直接相關的函數調用鏈上的代碼也納入候選範圍。
最後,也是最關鍵的一步:警探拿著候選地址清單,親自去現場(源代碼)核實。逐一打開每個候選位置,確認它們現在的代碼內容確實和這次改動有關,去掉不相關的,保留下確認有效的證據。這些經過核實的源碼片段,就構成了後續制定修改方案的可靠基礎。
**六、改完代碼之後,地圖會自動更新**
Harness Handbook還有一個工程上的重要設計:每次代碼被修改之後,系統會自動檢測改動範圍,並且只更新受影響的部分,而不是每次都從頭重建整張地圖。
在函數級別的模式下,系統通過分析函數體的內容特徵來識別"這個函數移動了位置但內容沒變"、"這個函數內容改了"、"這個函數被刪掉了"等不同情況,從而精確判斷哪些Handbook條目需要刷新、哪些可以直接復用。在文件級別的模式下,則通過文件路徑差異和內容哈希值來做同樣的判斷。如果執行階段的骨架結構沒有根本性變化,就只更新涉及改動的那部分文檔;如果骨架本身也變了,才重新運行完整的構建流程。整個resync過程中,AI模型只參與分類、歸屬、組織和描述修訂這四類語義判斷,其餘全部是確定性的計算操作。
**七、真實測試:兩個代碼倉庫,六十個改動任務**
研究團隊在兩個開源代碼庫上驗證了這套方案的效果。
第一個是Terminus-2,一個Python語言編寫的終端智能體,屬於Harbor框架的一部分。它通過tmux會話驅動真實終端,在"觀察-決策-行動"循環里不斷運行,直到任務完成或達到上限。這個倉庫雖然只有6個源代碼文件,卻有豐富的多階段疊代邏輯和跨疊代狀態管理,屬於規模小但行為複雜的典型情況,使用函數級別的工作模式。
第二個是Codex,OpenAI Codex編程智能體背後的Rust語言單體倉庫。它規模龐大,橫跨命令行界面、終端用戶界面、應用伺服器、配置管理和沙箱機制等多個子系統,包含數千個文件和深度調用圖,使用文件級別的工作模式。
每個倉庫各提供30個改動請求,按照類型分為三組。"查詢型"請求要求修改已有行為,比如改變某個觸發條件或控制流決策,難點在於從大量相似代碼中找出真正相關的目標。"跨文件型"請求要求添加一個從頭到尾貫穿多個文件的新能力,比如添加一個新參數並讓它在解析、執行、文檔等所有環節都生效,難點在於不遺漏任何一個需要聯動改動的位置。"搜索對抗型"請求是專門設計的"刁鑽"任務,相關實現藏在鏡像代碼、備用路徑或冷門分支里,單純靠關鍵詞搜索幾乎必然遺漏,這類任務最能考驗系統的深度理解能力。此外,每個請求還被標註了"簡單"、"中等"或"困難"三個定位難度等級。
規劃助手統一使用DeepSeek-V4-Pro大模型,基於NexAU框架構建,只有隻讀工具權限。兩種方案的唯一區別是有沒有Handbook可以訪問——"基準方案"完全靠自己翻倉庫,"Handbook輔助方案"按照BGPD流程先查地圖再核實源碼。評分由GPT-5.5、Opus 4.8和DeepSeek-V4-Pro三個獨立模型擔任裁判,從定位準確性、範圍控制和推理質量三個維度評分,三者加權之後形成最終評分,定位準確性的權重最高,占50%。
**八、數字說話:效果有多明顯**
實驗結果在三個維度上都給出了一致的答案。
在整體方案質量上,Handbook輔助方案在Codex上的勝率是38.3%,對比基準方案的28.3%,提升了10個百分點;在Terminus-2上的勝率是45.6%,對比基準方案的26.7%,提升幅度達到將近19個百分點。三個裁判模型的判斷方向完全一致,說明結果不是某個裁判的特殊偏好,而是真實的質量差異。
更值得關注的是,這些質量提升不是靠"讓AI想更久"換來的,恰恰相反,Handbook輔助方案用的規劃token數量反而更少。在Codex上每個請求的token消耗從10.2萬降到8.9萬,下降了12.7%;在Terminus-2上從5.8萬降到5.3萬,下降了8.6%。質量更好、成本更低,這個組合是研究團隊格外強調的發現,因為它證明了改進來自方向更準確,而不是計算更多。
在定位精度上,研究團隊把DeepSeek-V4-Pro規劃助手的預測位置,與Opus 4.8和GPT-5.5獨立給出的參考答案做比較,計算文件級別和函數級別的召回率、精確率和F1分數。結果是:在兩個倉庫、兩個參考答案、兩個粒度上,全部24組比較都是Handbook輔助方案更高。F1分數的提升幅度從5個百分點到將近19個百分點不等。尤其在Terminus-2上,Handbook輔助方案對比GPT-5.5參考答案,文件級別和函數級別的F1分別達到89.3%,精確率達到93.3%。"完全定位失敗"的比例——也就是一個相關位置都沒找對的情況——在所有設置下都沒有增加,最高下降了將近26個百分點。
按照請求類型細分來看,六個"倉庫×類型"的組合全部是Handbook輔助方案領先,提升幅度在16到33個百分點之間。Codex在"查詢型"請求上提升最顯著,Terminus-2在"搜索對抗型"請求上提升最顯著,後者的提升幅度高達33個百分點——這恰恰是那些最依賴深度理解而非關鍵詞搜索的任務。按照定位難度分層來看,六個"倉庫×難度"的組合同樣全部是Handbook輔助方案領先,提升幅度在4到33個百分點之間,而且提升幅度不是簡單地隨難度升高而增大,這說明Handbook的幫助不只是對"難題"有效,在各種情境下都能帶來實質性改善。
**九、這張地圖還能用在哪裡**
研究團隊在論文中指出,Harness Handbook的用途並不局限於輔助代碼改動的規劃。因為它是一份始終與代碼同步更新的行為中心式倉庫表示,它天然適合用來做行為審計——檢查某個設計決策是否在所有相關位置都得到了一致的實現——以及回歸影響分析——當某處代碼發生變化時,哪些其他行為可能受到影響。
更長遠的方向,研究團隊把Harness Handbook視為一種"共享行為記憶",讓智能體可以在這個記憶的支撐下,自主完成定位、規劃、執行、同步這一整個循環,讓代碼框架朝著自我演化的方向發展。換句話說,不只是AI幫人改代碼,而是AI自己維護自己運行所依賴的基礎設施。
歸根結底,這項研究揭示的核心道理並不複雜:找對地方,才能做對事情。無論是人類開發者還是AI編程助手,在面對大型複雜系統時,最大的瓶頸往往不是"怎麼改",而是"改哪裡"。Harness Handbook把這個隱性的、費力的認知過程變成了一個有跡可循的系統性工作,而且這個過程可以自動化、可以持續維護、可以在每次代碼變動後自動跟上。
這對於那些日常需要維護大型AI系統的工程團隊來說意味著什麼?新人不再需要花幾周時間才能搞清楚一個功能在哪裡;AI助手不再因為遺漏了某個鏡像實現而提交一個"改了一半"的方案;代碼審查也多了一個可靠的參照,讓人知道一個改動是否真的覆蓋了所有相關位置。
如果你對這套方案的細節感興趣,想進一步了解Harness Handbook的構建算法、BGPD的完整工作流程,或者研究中使用的提示詞模板和評測設計,可以通過arXiv編號2607.13285查閱完整論文。
---
Q&A
Q1:Harness Handbook是什麼?
A:Harness Handbook是一種自動從代碼倉庫生成的"行為地圖",它把代碼按照運行時的行為邏輯而非文件結構重新組織,並把每個行為描述直接連接到對應的源代碼位置。當你想改某個功能時,可以先查這張地圖定位相關代碼,再去核實源碼,而不是在幾百個文件里盲目摸索。
Q2:BGPD定位方式和普通代碼搜索有什麼區別?
A:普通代碼搜索是用關鍵詞去匹配文件內容,找到的是包含特定詞語的位置。BGPD則是先理解"這個改動涉及系統的哪個運行階段",再追蹤跨階段的共享狀態,最後才去源碼核實,能找到那些變量名和功能名完全不同、關鍵詞搜索必然遺漏的實現位置,尤其擅長處理分散在多個文件角落的情況。
Q3:Harness Handbook構建出來之後需要手動維護嗎?
A:不需要手動維護。每次代碼被修改,系統會自動檢測改動範圍,只更新受影響的部分文檔,未改動的內容直接復用緩存。如果某個文檔條目指向的代碼已不存在,系統會自動凍結標記,防止過期資訊被用於定位任務。整個維護過程對用戶來說是透明的。






