Aioga
AI资讯 / 行业动态
返回 AI资讯

Hugging Face 发布开源工具 funes,为编码智能体提供可本地持有的记忆层

Hugging Face:Blog(RSS)Aioga 编辑团队2026-09-03T00:00:00.000Z热度 72

Hugging Face 发布开源工具 funes,为 Claude Code、Codex、pi、Hermes 等编码智能体提供本地记忆层,把已有会话记录索引成 Lance 数...

行业动态Hugging Face:Blog(RSS)

今日 AI 情报摘要

Hugging Face 发布开源工具 funes,为 Claude Code、Codex、pi、Hermes 等编码智能体提供本地记忆层,把已有会话记录索引成 Lance 数据集,一条 funes

add 命令即可让 Agent 自主召回原始出处(Agent、时间戳、会话、轮次)。

中文正文 · AI 翻译

为你已经使用的代理添加记忆:#add-memory-to-the-agent-you-already-use 记忆是数据集,而不是服务:#a-memory-is-a-dataset-not-a-service 先询问,后连接:#ask-first-wire-later 在不丢失上下文的情况下切换代理:#switching-agents-without-losing-the-thread 结束长会话的最便宜方法:#the-cheapest-way-out-of-a-long-session 停止从零开始:#stop-starting-from-zero 基于开源构建:#built-on-open-source 我在多台机器上工作,根据任务切换编码代理。每一个代理在接手我的项目时都是陌生的。“上周二”的推理在会话结束时消失。每一个新的代理,在每台新的主机上,都是从零开始。

David Corvoysier's avatar

今年早些时候,《软件会遗忘:代理轨迹就是记忆》提出了这样一个观点:编码代理已经生成了我们一直丢失的记录。当它们搜索代码库、尝试方法、遇到错误、阅读文档并改变方向时,它们留下的不仅是发生了什么变化,还有为什么发生的详细记录。

虽然这个诊断是正确的,但轨迹只是潜在的记忆。代理的会话日志仍然只是一个档案。你无法通过grep在一万次操作中找到“为什么我们放弃流式解析器?” 这样的原因。为了让代理在工作时使用这些轨迹,它们需要索引、检索、排序和精确的来源记录。

这就是 funes(https://github.com/huggingface/funes) 提供的功能。它为你的代理(Claude Code、Codex、pi 和 Hermes)提供了一个持久的记忆层。它是基于你机器上已有的会话构建的。本地运行,并且只需一个命令就能成为代理的正常工作流程的一部分。当你需要时,它也可以上传到你拥有的 Hugging Face 数据集,默认是私有的。

funes 是一个单一的二进制文件。它默认的推理后端没有机器学习运行时依赖,并且嵌入和重排序操作在你的本地机器上执行。安装它:

那一条添加命令会构建第一个索引,提供代理的回忆和获取工具,并安装自动化程序以索引每一个完成的操作。索引是增量的,新运行只会添加新的操作,而不会重新嵌入整个历史记录。较旧和较深的内容可以在有限的步骤中补充回填。

从那里开始,你只需工作即可。当一个任务涉及过去的决策、理由或发现时,代理可以直接调用记忆本身。你不需要记住旧的会话或将其内容粘贴到新的会话中。

A coding agent reaches for funes on its own, recalls an earlier decision, and grounds its answer in the retrieved session

:https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/funes/recall.gif

加入 funes 后,记忆会在对话中发生。代理会自己调用记忆,并标明答案背后的会话。

recall 返回原始文本,而不是摘要,并准确显示其来源(代理、时间戳、会话和步骤)。每个结果都包含一个 get 命令,可打开整个步骤及其周围的上下文。

在底层,一个确定性的流水线将每个支持的追踪解析为相同的步骤和块形状,对其分块,用固定的本地模型进行嵌入,并写入本地 Lance 数据集。查询结合向量搜索和 BM25 搜索,融合它们的排名,用跨编码器重新排序候选项,根据最近性重新加权,并附加相邻块。

这种设计赋予 funes 三个重要特性:

在一台机器上,代理作为一个陌生问题已经解决。但当下一个代理在其他地方运行时,记忆会变得更有用。

为了让记忆跟随你的工作,在向代理添加 funes 时绑定一个记忆:

绑定会将你当前的记忆发布到那儿。funes 随后保持其最新状态,在本地索引每个步骤,并在会话边界处发布。代理可以在整个过程中调用它。在另一台机器上运行相同的命令,记忆也会跟随你到那里。

在底层,本地记忆是一个 Lance 数据集,而共享记忆是你拥有的 Hugging Face 数据集(默认私有)。

在任何数据达到 Hub 之前,凭证已在索引过程中被处理。发布时会再次扫描每个块,并屏蔽任何仍然看起来像是秘密的信息。其背后的扫描器在 SECURITY.md 中有文档说明:https://github.com/huggingface/funes/blob/main/SECURITY.md,包括它覆盖和不覆盖的内容。

当代理读取远程内存时,funes 会将数据集文件缓存到本地,因此热查询会返回到本地速度。Hub 提供所有权、访问控制、版本管理和分发,就像它对其他数据集提供的一样。您的内存不会成为独立内存服务的账户,也不会通过 API 租回它。

回忆是为代理设计的。当您自己想向内存提问时,请使用 ask。它默认读取您的本地内存:

或者指向共享内存。我们发布了一个 memory:https://huggingface.co/datasets/huggingface/funes-memory 记录 funes 的开发情况,因此您可以在不创建自己内存的情况下询问 funes 为什么会以这种方式工作:

Asking the published funes memory why it is append-only; funes retrieves the relevant sessions and a coding agent answers from them

:https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/funes/ask.gif

funes ask 是 funes add 的只读、单次提问兄弟功能。它回忆片段,将其交给编码代理,并返回带有来源名称的有根据的答案。它不会安装集成或更改代理的持久设置。

检索失败不会被掩盖。如果这些片段无法支持答案,代理会说明。您可以重新表述问题,或将 funes 添加到代理中,以便它在正常工作期间迭代搜索内存。

共享内存不与创建它的代理或模型绑定。在 Claude Code 中开始任务,下周继续在 Codex 中进行,第二个代理可以回忆第一个代理的推理。使用 pi 进行本地模型或通过 Hugging Face 路由提供的模型,然后返回 Claude。

Claude Code chooses an embedding model, then Codex recalls that decision in a separate session

:https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/funes/cross-agents.gif

Claude 做出决策;钩子对其进行索引;Codex 在另一个会话中回忆它。演示中的早期命中是同一实验的早期记录:一个仅追加的内存也记住了排练过程。

这在几个不同的范围内很重要:

已发布的记忆带有数据集卡和 funes 标签,使其在 Hub 上易于识别和发现:https://huggingface.co/datasets?other=funes。Hub 已经托管开放权重和数据集。Funes 增加了开放工作记忆。它保存项目背后的决策、失败方法和理由,可由其他代理查询,并可追溯到产生这些内容的会话。

长时间的调查会让会话膨胀,直到每回合承载上下文的成本超过完成工作的成本。通常的答案是让代理压缩并继续,或者写一个交接文件重新开始。回忆是第三个,所以我们在交接与回忆基准测试中进行了比较:这两个任务的答案在没有会话事先知识的情况下无法重建。

压缩是大多数代理默认会做的,而在三者中,它是唯一结果分裂的:它在一个任务上得出,另一个任务却从未得到。在失败的地方,其总结压平了重要的发现。回忆返回了段落本身,因此发现不必经得起摘要。

召回在这三种任务中最便宜,其中一项比书面交接便宜8倍,另一项是4倍。

:https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/funes/handoff-recall-cost.jpg

每条条中较轻的部分是一次性准备通道的费用,即切换或压缩,在第一个问题提出前支付,并计一次。叉号标记了一个从未到达的通道,因此没有每次成功的成本。

“思考就是忘记差异,泛化,抽象化。”——豪尔赫·路易斯·博尔赫斯,《记忆中的富内斯》

你的特工已经写好了记录。富内斯住在 github.com/huggingface/funes:https://github.com/huggingface/funes,只需一个命令,就能把那个记录变成下一个特工能读取的内存,无论你所在的哪台机器上。

Funes 几乎没有发明这些内容。它依赖于足够优秀的开源嵌入模型,可以在本地运行,使用 Lance:https://github.com/lancedb/lance 的仅附加数据集,支持廉价的增量写入,以及 Hub 的缓存和内容去量。工作重点是将它们融入代理实际可用的内存中。

funes 也是开源的。对于从安装问题到未能成功召回的记忆,或是你希望支持的代理,任何事项都可以在 https://github.com/huggingface/funes/issues 上提交 issue。

情报判断

Aioga 编辑摘要

Hugging Face 发布开源工具 funes,为 Claude Code、Codex、pi 和 Hermes 等编码智能体提供本地记忆层。工具可将已有会话记录索引为 Lance 数据集,并通过一条命令接入智能体工作流。

背景分析

来源称,编码智能体的会话日志记录了搜索代码、尝试方案、错误和调整方向,但原始日志仍是存档,难以直接检索决策原因。funes 提供索引、检索、排序和精确出处能力,并支持本地处理。

Aioga 观点

Aioga 判断:funes 的核心价值在于把编码智能体已有的会话轨迹转化为可召回、可追溯的记忆数据,而不是另建一套独立服务。其本地运行和开源属性也使部署方式更贴近现有工作流。

影响与后续

可能影响:编码智能体之间切换时,历史决策和上下文有机会被继续使用,但这不代表召回结果始终完整或准确。使用方需要关注索引范围、出处核验、机器间同步方式及会话数据的隐私边界。 后续观察:应关注 funes 对不同智能体会话格式的支持范围、召回与排序效果、跨机器使用方式,以及本地数据上传至 Hugging Face 数据集时的实际控制选项。

来源与版权说明

本页正文由公开来源页面提取并按原有信息整理,同时保留来源、发布时间和原文入口。版权归原作者及来源网站所有,请通过原文链接核验和阅读来源版本。

抓取通道: RSS · 原始域名: huggingface.co

来源: Hugging Face:Blog(RSS)

原文链接: 打开原始来源

Aioga 归档: 查看情报页

Content record: source-page · Updated: 2026-09-03T00:00:00.000Z

API 中转站
API RELAY · DEVELOPER INFRASTRUCTURE

API 中转站

统一接入主流 AI 模型 API,为开发、测试与生产环境提供稳定调用入口。

立即访问 api.w173.com
AIOGA SHARE POSTER

分享这篇 AI 情报

Hugging Face 发布开源工具 funes,为 Claude Code、Codex、pi、Hermes 等编码智能体提供本地记忆层,把已有会话记录索引成 Lance 数...

Hugging Face:Blog(RSS)2026-09-03T00:00:00.000Z
扫码打开文章详情扫码直达文章详情

Aioga 自动聚合全球 AI 动态,并保留来源信息用于核验与引用。