mcpField
F
Fireweed

Fireweed

本地服务
github.com/Starksood记忆与知识59 周前更新

关于 Fireweed

Fireweed 是面向 Agent 的记忆 MCP 服务,只有在引用证据支持声明时才保存,并为记忆保留来源范围和可验证凭据。它可拒绝无依据的回忆,并为删除操作签发证明;记忆提取需由外部提供。

主要功能

  1. 01验证声明是否受引用证据支持
  2. 02回忆时返回来源字节范围
  3. 03重新校验收据与来源完整性
  4. 04追溯记忆到来源及记录事件
  5. 05删除记忆并签发签名证书
  6. 06导出开放格式记忆数据

适用场景

  1. 01保存可追溯来源的 Agent 记忆
  2. 02避免回忆中补造存储中不存在的事实
  3. 03审计记忆内容及来源是否被篡改
  4. 04证明指定记忆已删除

MCP 相关

作为 MCP 服务,向客户端提供 remember、recall、verify_receipts、trace_evidence、review_reads、forget 和 export_memory 等工具。声明与证据由调用方提供,服务通过确定性检查决定是否接纳。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"starksood-fireweed": {
"command": "uvx",
"args": [
"fireweed-mcp"
]
}
}
}
启动命令uvx fireweed-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypifireweed-mcp0.5.0

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
claimstring是要记住的事实
evidencestring是支持该事实的逐字文本
source_idstring否此内容的来源(默认值:agent)
source_textstring否引用此证据的完整文档。传入该文档后,主张将绑定到其中可验证的字节范围——即回执。可选,但这才是关键。

详细介绍

fireweed-mcp

Agent 记忆中的每条事实都有据可查。

remember(claim    = "Priya joined Acme in 2019 under duress.",
         evidence = "Priya Raman joined Acme in 2019 as a logistics analyst.")

REFUSED (asserts_more_than_evidence) — the claim adds something the evidence does not say.
  claim   : Priya joined Acme in 2019 under duress.
  evidence: Priya Raman joined Acme in 2019 as a logistics analyst.
recall("Priya's salary")

ABSTAINED (unknown_predicate) — no claims ground "salary"; 1 claim about Priya Raman exists
This is a refusal, not an empty result.
forget("Priya")

ERASED Priya Raman — certificate issued
  signature            : hmac-sha256:f4d0768ef3b0fec624afec12f25bfd91…
  nodes in closure     : 1
  every probe abstains : True
  bystanders surviving : 1

最后那项就是这句话背后的产物:"将我从你的 Agent 记忆中删除——并证明这一点。

安装

uvx fireweed-mcp          # try it
pip install fireweed-mcp  # keep it
claude mcp add fireweed -- uvx fireweed-mcp

无依赖项。无需 API 密钥。无需模型——此服务中的任何内容都不会调用 LLM。

功能

工具
remember仅当你引用的证据确实支持该说法时才接受。拒绝结果会注明类型并说明需要修正什么。
recall返回有依据的说法,并附上其来源的字节范围;无法提供依据时会放弃作答,并指出无法找到依据的术语
verify_receipts重新哈希每个来源,重新切分每个范围——可检测篡改
trace_evidence逆向审计一条记忆,追溯到其证据的到达过程:它绑定的字节、这些字节是否仍然匹配、记录该文档的账本事件,以及证据链是否通过验证
review_reads查看针对该底层系统提出了什么请求,以及它如何作答——默认关闭;查询内容会以加盐指纹记录,除非你还选择记录文本
forget精确闭环地擦除,并提供签名证书;不相关的记录会保留
export_memory将整个底层系统导出为可移植的开放格式数据块

为什么拒绝才是关键

大多数记忆服务会存储模型所说的内容,并返回最接近的结果。这个服务会审定内容。

规则是:模型提出,确定性代码裁决。 跨越 RPC 边界后,这就不再是一句口号:你的 Agent 是提议者,而它无法靠说辞绕过关卡,因为这道关卡不是提示词。传入一条说法和你引用的文本;纯函数会检查证据是否指出了主体、保留了关系、没有捏造数字,也没有断言原文片段未提及的内容。通过检查的内容会连同指向来源的字节范围一起存储。

之后,任何人都可以核查——包括既不信任你的 Agent,也不信任此服务的人。这就是整个产品。

它不会做什么

先说明这一点,因为本项目上一版 README 宣称的关键数字后来被证实毫无意义 (请参阅撤回声明,其中附带了一个可以证明这一点的脚本):

  • 服务本身不会从自由文本中提取记忆。 你提供声明和证据,而这个服务中没有任何部分会调用模型。从 0.5.0 起,一个可选的配套组件 fireweed_extractor 可以使用你运行的模型,从对话记录中提出声明/证据对,但绝不会被信任:每条提议都要经过与手动编写的提议相同的四项检查。在四种模型系列中测得的通过率从 0% 到 99.3% 不等,而所有不忠实的提议都因明确的类型化原因而被拒绝。一个 4B 模型提出的 46 对内容,其引用的片段并不支持这些内容;这 46 对全部被拒绝。故障模式是记忆更少,而不是记忆不实。

  • 它不会让 LLM 变得诚实。 它管控哪些内容可以进入记录,以及哪些内容可以被证明。你的模型仍然可以在自己的文字中随意发言。

  • 召回是薄弱的一环,诚实的数字远比本页过去宣称的差。 先前版本的 README 称,门控器有 98.4% 的概率找到已存储的事实。该数字现已撤回。它是在一个语料库上测得的,其中十四种问题表述全部都能在手写类别表中找到匹配条目来回答——因为这些条目正是根据同一语料库中的失败案例得出的。它测量的是该表对一组问题的覆盖率,而不是系统的召回率。

    2026-08-27 的测量使用了在两个维度上都留出的语料库——未见过的角色,以及至关重要的、未见过的问题表述:

    提问方式……默认安装会拒绝
    表格构建所依据的表述4.8%
    从未见过的表述99.2%

    对于用未经调优的措辞表达的问题,默认安装几乎什么都回答不了。这才是描述该系统的数字,它取代了本页此前所有关于召回率的说法。

  • 真正强的一项是另一个维度。 对于答案缺失陷阱,门控器能正确拒绝 96.1% 的请求——它拒绝请求的能力远胜于回答问题,而且不会捏造内容。如果你需要一个绝不编造的记忆系统,这就是你要的。如果你需要一个能可靠找到信息的系统,它还做不到,而上面的数字正说明了原因。

  • 它目前还不能对涉及多个主体的问题进行范围限定。 只提及一个主体的问题会限定在该主体范围内;提及两个或更多主体的问题仍会与整个存储库匹配。

    这些数字来自一个经过校准的测量工具,它会在测量前打印自身的控制参数。语料库和方法保存在私有评估仓库中,因此请将这些数字视为报告结果,而非可独立核验的结果——写入路径、回执、来源追溯和擦除功能,则可通过上面的命令自行验证。

你的数据

~/.fireweed/mcp/(可通过 FIREWEED_MCP_STORE 更改)。底层存储采用开放格式——请参阅open_format/SPEC.md——而 open_format/reference_reader.py 仅使用标准库即可读取。你的记忆不会因这个服务、这个引擎或任何模型而消失。有一项测试会验证这一往返过程。

不要安装 fireweed-mcp[semantic]。 它会在 recall 中启用释义匹配;针对答案缺失陷阱的测量显示,它会让正确拒绝率从 96.1% 降至 32.8%——对于答案根本不在存储库中的问题,它会回答其中三分之二。阈值扫描未发现任何既能提升召回率又不产生这种代价的设置:如果阈值收紧到足够安全,它就完全不起作用。它仍可安装,因为如果将此机制限制在某个主体自己的谓词范围内,或许还有挽救的可能,但这一点尚未经过测试。在此之前,该功能保持关闭,而 memory_stats 会告诉你当前处于哪种模式。

许可证

FSL-1.1-ALv2 — 源码可用。除构建竞品外,其他用途均免费;将于 2028-01-01 转为 Apache 2.0。完整文本见 LICENSE.md。

想在商业产品或竞品服务中使用 Fireweed?→ [email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。