mcpField
H
Heartwood Memory — governed memory for AI agents

Heartwood Memory — governed memory for AI agents

本地服务
heartwoodmemory.com记忆与知识06 天前更新

关于 Heartwood Memory — governed memory for AI agents

Heartwood Memory 是供 AI Agent 使用的嵌入式 Python 记忆存储,提供签名溯源、策略门控检索和可审计的擦除流程。它面向需要在现有记录系统旁实施可检查治理的团队。

主要功能

  1. 01带签名的记忆溯源
  2. 02检索排序前执行策略检查
  3. 03防篡改哈希链审计日志
  4. 04按主体生成密钥销毁凭证
  5. 05忠实度与外发检查

适用场景

  1. 01为 AI Agent 保存可审计记忆
  2. 02按策略限制记忆检索
  3. 03检查记忆变更和审计记录
  4. 04执行主体级擦除流程

MCP 相关

Heartwood 可通过受治理的 MCP 接口为支持 MCP 的 Agent 提供服务。写入和擦除工具默认不开放,需显式启用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"jermayne36-heartwood-memory": {
"command": "uvx",
"args": [
"heartwood-memory"
],
"env": {
"HEARTWOOD_DB_PATH": "<HEARTWOOD_DB_PATH>",
"HEARTWOOD_TENANT": "<HEARTWOOD_TENANT>",
"HEARTWOOD_MCP_ALLOWED_TOOLS": "<HEARTWOOD_MCP_ALLOWED_TOOLS>"
}
}
}
}
启动命令uvx heartwood-memory
需要配置的环境变量
HEARTWOOD_DB_PATHPath to the local Heartwood SQLite database.
HEARTWOOD_TENANTTenant identifier used to isolate memories.
HEARTWOOD_MCP_ALLOWED_TOOLSComma-separated MCP tool allowlist; the default is read-only.

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

安装包
pypiheartwood-memory0.2.9

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Heartwood Memory — 面向 AI Agent 的受治理记忆

Heartwood Memory 是面向 AI Agent 的受治理记忆存储:具备来源签名审计、策略门控召回、租户隔离,以及擦除时针对每个主体的密钥销毁证明。

许可证一览。 Heartwood Memory 0.2.0 及更高版本依据 Business Source License 1.1(BSL 1.1)以源代码可用形式发布,并非 OSI「开源」许可证。非生产用途不受规模限制,均可免费使用。小型组织——员工和独立承包商少于 100 人,且上一纳税年度收入低于 100 万美元(按许可证规定,以 2019 年为基准调整)——也可免费用于生产。每个版本都会在发布四年后自动转换为 Apache License 2.0。0.1.0–0.1.2 版本采用 MIT 许可证,并永久保留 MIT 许可证。

网站 · 比较 Heartwood · 常见问题 · PyPI

面向 AI Agent、可审计源代码的受治理记忆,可嵌入现有记录系统旁运行。

Heartwood 是 Agent 记忆的加密信任根:每条记忆均经过签名,召回会在排序前执行策略检查,审计日志采用哈希链并可检测篡改,擦除时则会生成可证伪的、针对每个主体的密钥销毁凭据。该软件包以嵌入式 Python 库的形式提供,并包含可在你的基础设施上运行的受治理适配器接口。

明确的边界。 Heartwood 使用托管密钥:服务器会解密数据以提供召回服务。以下凭据目前可通过审查源代码进行审计。删除采用针对每个主体的密钥销毁工作流,并非即时删除保证。请参阅密钥托管与擦除。

安装

python -m pip install "heartwood-memory[recall,mcp]"

开发检查

从源代码检出版本开始,请使用 Python 3.11,并在运行本地质量检查前安装声明的开发依赖项:

python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
bash scripts/check.sh

scripts/check.sh 会运行 Ruff 和完整的 pytest 测试套件。除非安装了单独的集成依赖项,否则可选的 Hermes Agent 契约测试套件会报告为已跳过。若要将相同的检查设为 pre-commit 钩子,同时不覆盖其他钩子,请运行 bash scripts/install-hooks.sh。

重新运行公开信任测试套件

公开的信任凭据基准测试位于源代码仓库中,而不包含在已安装的 wheel 中。从干净克隆开始,运行:

git clone https://github.com/jermayne36/heartwood-memory.git
cd heartwood-memory
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --quiet -e ".[dev]"
python bench/run_benchmark.py --out .heartwood/trust-receipt.json

在 Windows PowerShell 中,将激活命令替换为 .\.venv\Scripts\Activate.ps1。

如果可执行契约或正向对照案例失败,或者基准测试现有的声明锚点扫描发现违规,该命令将以非零状态退出。终端中的单行摘要会报告实际案例数量;JSON 文件包含每个探测项的结果,以及单独发布的边界案例。

5 分钟快速入门

记住一条受治理的记忆,在策略约束下召回它,并生成密钥销毁凭据:

from heartwood import Heartwood, Policy, Principal, prove_crypto_erase_path

# 1. Open an embedded, tenant-scoped store.
db = Heartwood(path="./heartwood.db", tenant="tenant:acme")

# 2. Remember. The record is signed and written to a hash-chained audit log.
db.remember(
    "Customer 42 is on the Enterprise plan.",
    subject="customer:42",
    created_by="agent:support",
    policy=Policy(classification="internal"),
)

# 3. Recall. Policy gates the candidate set before ranking.
principal = Principal(
    id="agent:support",
    tenant="tenant:acme",
    roles=("support",),
    clearance="internal",
)
out = db.recall(
    "what plan is customer 42 on?",
    principal=principal,
    filters={"subject": "customer:42"},
    k=5,
)

for hit in out["results"]:
    print(hit["content"], hit["provenance"]["signature_valid"])

# 4. Forget. This crypto-shreds the per-subject key and purges derived artifacts.
receipt = db.forget(
    "customer:42",
    mode="hard",
    actor="agent:support",
    reason="right-to-erasure request",
)
db.close()

proof = prove_crypto_erase_path(
    "./heartwood.db",
    tenant="tenant:acme",
    root_present=False,
).to_dict()
print(receipt["key_shredded"], proof["content_unrecoverable"])

请勿将本地工件提交到 Git。 本仓库的 .gitignore 不会传递到下游仓库。如果你在另一个检出目录中运行这些示例,请在该目录中添加等效的忽略规则,涵盖本地 Heartwood 数据库及其旁置文件、令牌/配置文件、根目录中的 JSONL 输入、生成的 *-report.json 文件和 .venv/;或者,将敏感运行时状态保存在已忽略的 .heartwood/ 目录中。请将有意保留的测试夹具放在非根目录中,以便进行审查。

想为支持 MCP 的 Agent 使用受治理记忆,而不是使用库?请参阅受治理 MCP 快速入门和 Codex 本地 stdio 快速入门。默认不会公开写入和擦除操作;运维人员可选择显式指定这些操作以启用。

你将获得的内容——五种凭证

可在记录级别检查并重新运行的治理机制:

凭证功能当前边界
签名溯源信息每条记忆都有签名;读取时会重新验证签名和内容哈希,并在每条结果中显示验证信息。默认的 OFF 会显示验证状态;选择 FILTER 会丢弃验证失败的记录,选择 ENFORCE 则会在返回结果前失败。签名范围不包括授权元数据。
防篡改审计采用哈希链的只追加日志;verify_chain() 可检测原位编辑或行删除。只要外部 AnchorSink 和固定的验证根仍在攻击者边界之外,就能检测最新锚点及之前的回滚;锚点之后的行仍是明确存在的风险窗口。
排序前执行策略召回仅限于已获准的记录,然后再进行排序;被拒绝的记录不会参与评分或返回,结果和签名凭证中也都不会包含被拒绝记录的数量。可通过源代码审计确认其遵循已提交的单信任域预种子策略;不声称支持多租户部署。
密钥销毁凭证forget(mode="hard") 会销毁每位主体的密钥并清除派生工件。报告每位主体的密钥销毁情况和清除数量;不证明内容已按字节级别删除。
忠实度与出站门控生成的记忆只有通过忠实度检查才会被接受;被拒绝的出站请求会阻止对外部模型的调用。默认会阻止未接受的忠实度结果;store_unaccepted=True 会存储 generated_needs_review 提案,类型化排序会降低其权重。

替换记忆

从 0.2.10 版起,当新记忆注明它所替换的记忆,或通过记忆工具(MCP memory 或 MemoryToolBackend)编辑或删除文件时,Heartwood 的默认召回会停止返回旧文本, 即使重启后也是如此。只有显式请求历史记录时,才能访问已编辑文件的早期版本。

限制。 Heartwood 不会自行检测替换操作:如果写入新记忆时没有注明它所替换的内容,旧记忆和新记忆都会保持当前状态,旧记忆仍可能被召回。

要注明所替换的记忆,请在写入新记忆时传入旧记忆的 ID: db.remember(..., supersedes=old_id)。在 forget() 删除其主体之前,可通过 filters={"include_review_states": ["superseded"]} 访问历史记录。由旧版本写入的记忆工具文件,在下次编辑、重命名或删除之前,其早期版本仍会出现在默认召回中;请参阅 0.2.10 更新日志中的“现有数据”。 详情:召回可见性与退役。

重要文档

安装后运行控制台脚本:

heartwood --help

许可证

从 0.2.0 版本起,Heartwood Memory 根据 Business Source License 1.1(BSL 1.1)采用源代码可见许可——它不是 OSI 定义的“开源”许可。你可以免费阅读源代码、在本地运行、基于它开发、进行评估,并将其用于非生产环境的自托管。小型组织(人数少于 100 人且年收入低于 100 万美元)也可以免费在生产环境中运行。较大型组织需要商业许可证才能用于生产环境。每个版本发布四年后都会自动转为 Apache License 2.0。

0.1.0–0.1.2 版本采用 MIT 许可证,并永久保持该许可。详情请参阅 NOTICE。商业支持、托管密钥保管和托管服务另行提供。

当前侧重

在构建宏大的认知能力之前,先证明基础可信:

  • 来源溯源
  • 类型化记忆路由
  • 感知策略的记忆召回
  • 时间状态
  • 完整删除
  • 生成记忆的忠实度
  • 可重复的评测

认知数据库愿景应由这些循环产生的证据来支撑。

评论

支持 Markdown

第一次接触 MCP?

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

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