funes:用於程式碼代理的持久記憶層
TL;DR
Hugging Face 發布了 funes,一個輕量級、可在本地執行的記憶系統,能將程式碼代理的會話記錄轉換為索引化、可搜尋的資料集,讓 Claude Code、Codex、pi 和 Hermes 等代理能在不同機器與模型之間,不需將資料傳送至遠端服務,即可精確回憶先前的對話回合。
為現有代理加入記憶功能的單一指令
重點: 將 funes 加入代理只需執行單一指令 funes add <agent>,該指令會建立初始索引,注入 recall 與 get 工具,並設定每次完成回合的增量索引。
curl -fsSL https://huggingface.co/buckets/huggingface/funes/resolve/install.sh | sh
funes add claude # 或 codex, pi, hermes
- 預設的推理後端無機器學習執行時依賴;嵌入與重排序皆在使用者機器上執行。
- 索引是增量式的:新增回合會被嵌入並加入,無需重新嵌入整個歷史。
recall會回傳回合的原始文字,並附上來源元資料(代理、時間戳、會話、回合),以及一個get指令,可開啟周圍的上下文。
"加入 funes 後,recall 會在對話中自動發生。代理會自行觸發記憶,並在回答中指出其背後的會話。"
確定性流程與排序架構
重點: funes 將所有支援的追蹤格式統一轉換為一致的 回合與區塊 表示,再透過確定性流程進行處理:
- 回合切塊。
- 使用固定本地模型進行嵌入。
- 儲存至本地的Lance追加-only 資料集。
- 查詢結合向量相似度與 BM25,融合排序結果,以交叉編碼器重排序,根據新鮮度重新加權,並附加鄰近區塊。
此設計帶來三個關鍵特性:
- 跨代理的統一記憶 – 所有支援的代理寫入相同格式,因此
recall可橫跨 Claude Code、Codex、pi 和 Hermes 的歷史。 - 原始證據完整保留 – 寫入時不進行摘要;每個結果皆可追溯至產生它的精確回合。
- 預設本地運作 – 索引、嵌入與重排序皆無需 Hub 帳戶或外部服務。
記憶作為資料集,而非託管服務
重點: funes 將記憶視為一個Lance 資料集,可選擇性地發布至私有的 Hugging Face 資料集,實現跨機器的無縫可攜性。
funes add codex acme/funes-memory # 綁定至遠端資料集
- 發布時會在索引階段清除憑證;安全掃描器(文件於
SECURITY.md中說明)會在上傳前移除明顯的機密資訊。 - 遠端記憶會被快取於本地,因此後續查詢可達本地速度,而 Hub 則提供所有權、存取控制、版本化與分發功能。
- 此工作流程不會建立獨立的記憶即服務帳戶;相同的二進位檔可同時服務本地與遠端記憶。
ask 與 recall:一次性查詢 vs. 整合工作流程
重點: funes ask 讓使用者能對記憶提出單一問題,無需安裝持久性代理整合。
funes ask claude "what did we decide about the streaming parser"
# 或針對已發布的記憶
funes ask claude "why is funes append-only" --memory huggingface/funes-memory
- 該指令會取得相關段落,輸入至所選程式碼代理,並回傳一個有根據的答案,並標註其來源。
- 若取得的段落無法支援答案,代理會明確指出限制,鼓勵重新表述或透過
funes add完成完整整合。
跨代理連續性,不遺失上下文
重點: 因為記憶是模型無關的資料集,一個以 Claude Code 開始的任務,可在不同機器上由 Codex(或任何支援的代理)繼續執行,後續代理可 recall 早期的推理過程。
- 跨機器: 將各主機的代理綁定至相同的遠端記憶,以維持對話連續性。
- 跨團隊: 新成員可直接從共享記憶中取得數月的決策、死胡同與論證。
- 開源專案: 維護者可將記憶與發行版一同發布,建立可搜尋、版本化的
CLAUDE.md,完整記錄決策過程。
已發布的記憶可在 Hub 上透過 funes 標籤被發現,讓任何人皆可使用 --memory 查詢公開專案的歷史。
成本效益更高的替代方案:會話壓縮與交接
重點: 在 交接 vs. 回憶 基準測試中,回憶在一個任務上比書面交接便宜 8 倍,在另一個任務上則為 4 倍,同時保留原始證據。
- 壓縮(摘要)經常遺漏關鍵細節,導致兩個基準任務中的一個失敗。
- 回憶回傳原始段落,避免摘要需求,並減少 token 使用量。

開源基礎與社群參與
重點: funes 建立在現有的開源元件之上:
- 本地嵌入模型(無需外部 API 執行)。
- Lance 追加-only 資料集,實現低成本的增量寫入。
- Hugging Face Hub 的資料集快取與去重功能。
專案完全開源,位於 https://github.com/huggingface/funes。使用者被鼓勵開立問題,回報安裝問題、遺漏的回憶,或提出額外代理支援的需求。
總結: funes 將程式碼代理原本靜態的記錄轉化為活躍、可搜尋的記憶,可在本地運作,也能作為私有資料集共享,並支援無縫的跨代理、跨機器連續性——僅需單一指令,且無外部服務依賴。