AI 開發工具
Funes Unifies Work Logs from Multiple Coding Agents into Portable, Searchable Local Memory
Hugging Face has open-sourced Funes, which writes turn-by-turn logs from Claude Code, Codex, pi, and Hermes into a single Lance dataset. Retrieval and reranking run locally by default, but cross-machine synchronization, residual secrets, and prompt injection through external memory still require user-managed safeguards.

Hugging Face has released Funes under the Apache 2.0 license, aiming to transform coding-agent “memory” from a product-specific service into a user-owned dataset. A single Rust binary can parse sessions from Claude Code, Codex, pi, and Hermes and normalize them into a turn/block structure. Hooks incrementally index each turn after it is completed, rather than repeatedly processing the entire history. Other agents that can output compatible Parquet traces can also implement `TraceSource` to connect to the same pipeline.
On the retrieval side, Funes first generates vectors using a pinned version of a local embedding model, then combines BM25 search, rank fusion, cross-encoder reranking, recency weighting, and adjacent-chunk expansion. `recall` returns the original passages along with the agent name, timestamp, session, and turn, while `get` can expand the surrounding context. By preserving source evidence, this design avoids having another model summarize the history at ingestion time into potentially distorted “facts.” Embedding and reranking use macOS Accelerate or a pure-Rust Linux backend by default, with no external ML runtime required.
For sharing across computers, Funes can publish a local Lance dataset as a private Hugging Face Dataset. After the remote data is downloaded, queries still run locally. In the project’s small experiment covering two tasks and 30 runs, the weighted token cost of recall was approximately one-eighth and one-quarter, respectively, of the cost of written handoffs. However, both tasks were deliberately selected because they could not be answered without prior records, so the results cannot be used to infer the average benefit for general software work.
The security boundary is particularly important. Funes redacts credentials during indexing, then scans with TruffleHog before pushing and fails closed if problems are detected. However, any secrets already uploaded remain in the dataset’s version history, requiring credential rotation and repository reconstruction. External memory content is also inserted directly into the agent’s context, potentially enabling persistent prompt injection. Teams adopting Funes should first restrict access to trusted datasets, use fine-grained read-only tokens, and test retrieval quality for Chinese-language records, index capacity, and how agents behave when exposed to incorrect memories.