Reasonix:為前綴快取而生的終端編碼代理,長會話也敢放手
摘要
一個以「讓會話開頭一個位元組都不變」為核心約束的終端編碼代理,單一靜態連結的二進位檔承載。長會話便宜、動手前先給計畫、每一輪都有檢查點,工具呼叫格式壞了會自己修。免費且開源。
推薦- 軟體名稱
- Reasonix
- 版本
- 0.53.2
- 收費
- 免費
- 開源
- 開源
- 作業系統
- macOSLinuxWindows
- 更新時間
- 2026-10-06 18:49
在終端機裡跑編碼代理,已經從新鮮事變成習慣。它讀檔案、排計畫、改程式、跑測試,你去忙別的事情,專案就往前走了。然後月底的帳單到了,這個習慣忽然有了價格,而且不太好解釋。每一輪都要把系統提示詞、工具定義與整段歷史重新送回去,一個跑上好幾小時的會話,等於把同一批材料重送幾百次。
那些重複本來應該幾乎免費。模型廠商對「與先前完全相同」的輸入給折扣,但前提是重複的部分必須落在請求的最前面,而且一個位元組都不能變。一般代理每一輪都把上下文重新排列,等於每次呼叫都親手把這個安排拆掉——這就是為什麼折扣很少真的出現在該出現的地方。

一個被當真的約束
Reasonix 就建立在這個事實上。整套架構都從一條規則推出來:會話的開頭一旦送出,就不能再變。它並不是把別人的迴圈套上一層新外殼;這個專案的重點,就是把一個終端代理重新排列,讓便宜的那條路在好幾個小時裡都還在。
於是會話被切成三個行為不同的區域。不可變前綴區放系統提示詞、工具規格與範例,在會話建立時注入一次,然後鎖住。追加日誌區按時間順序往後長,從不重排、從不改寫既有條目。易變暫存區放這一輪的臨時思考與計畫草稿,而這部分只留在本機,根本不往上送。
經濟效果一點都不含蓄。命中快取的輸入只按正常費率的一小部分計價,但前面改動一個位元組,整份快取就作廢。這兩件事幾乎解釋了程式裡所有的設計決定。

省下來的錢長什麼樣
日常使用的數字比跑分有說服力。有人用這個代理處理了一整天的工作,送進去的輸入超過四億token,帳單是十二美元;同樣的工作量在沒有快取的情況下要花掉大約五倍。命中快取的比例超過百分之九十九。這不是實驗室裡的數字,而是某個人某個星期二的真實開銷。
跑的時候還看得見的自治
費用只是人們不敢放手讓代理跑一整天的其中一半原因。另一半是:不知道它到底改了什麼。這裡的答案是一層一層的機制,每一層都讓會話的某一部分保持可見。
計畫模式在任何檔案被動到之前先列出步驟,計畫沒被批准就什麼都不寫。權限閘門把讀取、寫入與執行命令分開詢問;即使你放行,動作也仍然被限制在工作區沙箱的範圍內。每一輪都會在版本歷史之外留下檢查點,於是一個跑了六小時的會話可以回到其中任何一點,而不會在儲存庫裡留下一串提交。還有一層修補機制專門接住這類模型的壞習慣:工具呼叫被思考區塊吃掉、參數清單被截斷、一串呼叫亂序湧入。
一個小任務能看出這幾層怎麼配合。交代它「替 HTTP 用戶端加上帶退避的重試」,代理先列出三個步驟,並確認會動到兩個檔案、跑一次測試。你回一句 yes,它依序改完兩個檔案、把測試跑通。每一步都對應一個檢查點,任何一步不滿意,一條命令就能退回去。整段會話十八分鐘、九次工具呼叫、花費不到五分錢。
一顆二進位檔,四個門面
程式以單一靜態二進位檔編譯,沒有動態依賴,替三種桌面平台各自的兩種處理器架構都出了檔。同一個產物支撐所有用法:終端機本身、桌面應用程式,以及一個說開放代理協定的編輯器擴充套件——讓同一個引擎坐進編輯器視窗裡。
這些門面共用同一個引擎,所以會話生命週期、權限閘門、檢查點、復原與外掛層只存在一份,而不必實作四次。這就避開了那個熟悉的落差:桌面版能做,命令列版不能做。
設定遵循同一個原則:不把任何模型選擇寫死在程式裡。提供方、代理、工具與外掛,全部宣告在同一份文字設定檔裡。廠商自家的模型附有較重與較輕兩檔預設,任何相容端點只要一小段設定就能接上,包括跑在自己機器上的模型。金鑰以環境變數引用,不以明文寫進檔案,於是設定檔可以安全地提交進儲存庫。
外掛同樣守著「不寫死」這條線。外部工具伺服器用一小段設定就能掛上;內建的探索、研究、審閱與安全審閱等子代理各自隔離工作,既能並行,也能嵌套。
誰該看它
專案以寬鬆授權開源,2026 年春天立項,幾乎每天都有新版本,幾個月內就聚起一個不小的社群。它的主張很窄但很誠實:不宣稱自己是更快的代理,而是宣稱能讓某一家模型在連續好幾小時的使用中真的便宜下來,同時讓每一步都看得見、退得回。如果那家模型本來就在你的日常工作裡,這個下午值得花。