全部場數

024 · 自建本地索引砍九成 AI 成本

分享兩位工程師如何自建本地程式碼索引,把送給 AI 工具的 context 砍到剩不到一成,還能維持九成搜尋準確度。

2026-06-2810:42Rajkumar Sakthivel(Tesco)Agent開發工具開源評估看原片

原標題:We Cut 94% of AI Coding Tokens With a Local Code Index - Rajkumar Sakthivel, Tesco

重點摘要

  • 帳單暴增揪出真兇Raj 和夥伴 Foss 每天用多個 AI 編碼工具寫程式,某個月帳單無故暴增,兩人一路追查,發現多花的錢大多不是模型在「思考」,而是每次查詢都把一堆用不到的程式碼硬塞進 context。
  • 輸出省不了多少他們一開始想省成本,先試著改 prompt、調模型參數,都沒有用,因為 context 在模型讀 prompt 之前就已經送出去了;後來改叫模型輸出更短的答案,輸出雖然砍了 75%,但輸出本來就只占成本一成左右,省下來的錢有限。
  • 問題其實在輸入端90% 的 AI 成本來自輸入的檔案、搜尋結果與 context,砍輸出 75% 只省下 8%,砍輸入 94% 卻能省下 61%;同一套邏輯,改對地方效果差很多。
  • 本地索引分五步驟運作他們做了一層本地搜尋,夾在程式碼庫跟 AI 之間:先把程式碼拆成有意義的函式與類別片段,同時跑語意與關鍵字兩種搜尋互補彼此弱點,再把結果壓縮到只剩重點、串起彼此的呼叫關係,最後用評分機制擋掉不相關的結果,全程都在自己的機器上跑。
  • 簡單評分打敗複雜模型他們原本想找 AI 來幫忙判斷搜尋結果好不好,但速度太慢;後來改用一套簡單的加權評分公式,跑起來只要 0.4 毫秒,效果反而更好,結論是多數時候簡單公式就贏過複雜模型。
  • 真實數字與限制都攤開講在實測專案上,token 用量從 83k 砍到 4.9k,加上壓縮後剩 523,準確率仍有九成;但他們也坦言,94% 是最極端情況下的數字,遇到職責混雜的大型程式庫,效果會明顯變差。

時間軸

時碼點下去會跳到影片的那一段。

時碼段落重點
00:00帳單忽然暴增Raj 和夥伴 Foss 每天用多個 AI 編碼工具寫程式,某個月帳單無故暴增,兩人開始追查原因。
00:39找到真正的成本元凶錢大多不是花在 AI 思考,而是每次查詢都把用不到的程式碼硬塞進 context。
01:20測出典型查詢的浪費一次典型查詢送出 45,000 tokens 的 context,其中一大部分根本沒用到,卻照樣付費。
01:41兩次修正都沒抓對改 prompt 要求「只給相關程式碼」沒用,context 在模型讀 prompt 前就已經送出去;調模型參數也只影響輸出,跟輸入成本無關。
02:25壓縮輸出效果有限叫模型寫更短的答案,輸出砍了 75%,但輸出本來就只占成本一成左右,省下來的錢有限。
02:47關鍵其實在輸入90% 的 AI 成本來自輸入,砍輸出 75% 只省 8%,砍輸入 94% 卻能省 61%,同一套邏輯,改對地方差很多。
03:29索引流程的五個步驟先把程式碼拆成有意義的函式與類別片段,作為後續搜尋與壓縮的基礎,而不是隨機切塊。
04:39兩種搜尋為何互補語意搜尋抓得到相關概念卻常抓錯確切名稱,關鍵字搜尋抓得到精確名稱卻漏掉語意相近的內容,兩者合併正好互補。
05:33評分機制擋掉爛結果搜尋常混入不相關的結果,若照單全收會讓模型講出「自信卻錯」的答案;最後靠一套簡單加權公式評分,只要 0.4 毫秒。
06:33實測數據亮眼同一個開源專案,不用工具要送 83k tokens,用了工具剩 4.9k,加上壓縮再降到 523,還能找到九成正確的程式碼。
07:26坦承限制與例外94% 是最極端情境下的數字,真實工具本來就比較聰明;遇到職責混雜的大型程式庫,命中率會掉到接近零。
08:24每個工具各自為政每個編碼工具原本都是從零開始,等於要對每個工具重新解釋一次同一個 codebase,於是他們做了一個共用索引。
09:03真實專案的省錢成果在一個實際專案上測了 247 次查詢,省下 12.4 million tokens,另外還有將近 186 沒有花掉(講者只報了數字,沒有說單位),其中 84% 的節省來自搜尋層本身。
10:06修輸入而非換模型換一個更好的模型幫助有限,真正有效的是少送東西進去;模型選擇的重要性,其實沒有想像中那麼大。

值得記的話

名詞與人物

Rajkumar Sakthivel(Raj)這場的講者,在 Tesco 工作,因為親身遇到 AI 編碼帳單暴增,動手和夥伴一起做了這套本地索引工具。
Foss講者提到的合作夥伴,兩人一起打造這套本地程式碼索引工具。
Claude Code講者提到自己每天在用的 AI 編碼工具之一。
Meaning-based search(語意搜尋)用語意相似度找程式碼的搜尋方式,擅長抓到相關概念,但容易漏掉或抓錯確切名稱。
Word-based search(關鍵字搜尋)用精確字詞比對找程式碼的搜尋方式,擅長抓到精確名稱,但容易漏掉語意相近的內容。
cce講者秀在螢幕上的指令,一行就能試用這套本地索引工具,他說是免費開源的。

延伸

  • 講者提到在一個有 396 個檔案、職責混雜的大型程式庫上測試,命中率掉到接近零,但沒有細講後續打算怎麼處理這種情況。
  • 講者提到會追蹤程式碼之間「哪個函式呼叫哪個」的關聯,讓找到一段程式碼就能連帶找到相關的部分,但沒有細講這個關聯實際上怎麼建出來。
  • 講者提到目前用一個小型、快速的模型做搜尋,換成更大的模型應該能找到更多結果,但他們選擇犧牲一點準確度來換取速度。