ctx:本機搜尋程式代理歷史記錄
ctx:本機搜尋程式代理歷史記錄
ctx 讓代理能從本機歷史中恢復過去的上下文
程式代理通常在每次會話開始時不會記得先前的互動。雖然它們可以檢查儲存庫的當前狀態,但往往無法取得先前的討論、被拒絕的方案以及導致目前程式碼庫的失敗指令。ctx 透過將本機代理歷史檔案索引至本機 SQLite 資料庫,讓現在與未來的代理能使用 CLI 取得特定的先前事件與決策,從而解決此問題。
具備代幣效率的檢索 vs. 原始文字稿搜尋
直接搜尋原始文字稿在代幣使用上往往成本過高。ctx 的設計可比原始搜尋節省高達 50 倍的代幣,方法是將歷史結構化為會話、事件與中繼資料。
與其把整段文字稿塞入模型的上下文視窗,ctx 會回傳排序過、帶有引用的匹配結果。這避免了「代幣密集」的原始搜尋,使歷史對代理仍然可用。
技術架構與隱私
ctx 使用 Rust 撰寫,作為本機優先工具,無需背景服務或 API 金鑰。它的運作流程如下:
- 探索:ctx 會在機器上找出受支援的本機提供者歷史檔案。
- 匯入:將持久化的記錄匯入,並正規化會話、事件與觸及檔案的中繼資料。
- 儲存:資料存放於本機 SQLite 索引,針對檢索進行最佳化。
為了維護隱私,索引預設保留在本機且僅限私人使用。此工具不會將提示、文字稿或歷史傳送至雲端服務。然而,因為文字稿會被保存(包括本機路徑與可能的機密資訊),使用者在將內容分享至機器外部前應先檢查輸出。
支援的代理與整合方式
ctx 能夠偵測並匯入多種代理框架的歷史,包含:
- Claude Code
- Cursor
- Codex
- Copilot CLI
- Pi
- OpenCode
- Antigravity / Gemini CLI
- Factory AI Droid
使用者可以透過 npx skills add ctxrs/ctx 將 ctx 整合為「Agent Skill」,或為 Cursor、Claude Code 等工具安裝特定插件,讓代理本身能呼叫搜尋 CLI。
與其他記憶工具的比較
ctx 與一般的代理記憶工具或程式碼庫映射工具不同,它聚焦於程式碼背後的「原因」:
- 代理記憶工具:通常只儲存簡潔的事實或向量,缺乏理解為何做出特定決策或指令失敗的證據。
- 程式碼庫圖譜(例如 Graphify):描繪檔案與符號的當前狀態,但不捕捉儲存庫變更的歷史過程。
- Grep/Log 搜尋:雖然可行,ctx 提供結構化、索引化的方式,比手動 grep 日誌檔案更有效率。
社群觀點與討論
雖然結構化搜尋工具的實用性顯而易見,部分 Hacker News 使用者指出某些代理已具備自行搜尋歷史的能力。
"我常叫 Claude Code 去看 ~/.claude 裡的先前會話,它會很快用 jq/grep 把內容找出來,根本不需要特別的工具。"
其他貢獻者則強調需要一套標準化的代理文字稿與日誌格式,以簡化在不同提供者間建立此類工具的工作。ctx 的作者 luca-ctx 表示,開發此工具讓他明顯感受到制定代理文字稿標準規範的必要性。
摘要: ctx 是一個開源 CLI 工具,將本機程式代理的會話索引至 SQLite,提供快速且代幣高效的搜尋,讓使用者能在過去的討論、決策與失敗嘗試中快速定位資訊。
標題: ctx:本機搜尋程式代理歷史記錄