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エージェント向けの組み込み型Pythonメモリストアです。署名付き来歴、ポリシーに基づく検索、監査可能な消去手順を備え、既存の記録システムと併用するチーム向けです。

主な機能

  1. 01署名付きメモリ来歴
  2. 02検索順位付け前のポリシー確認
  3. 03改ざん検知可能なハッシュチェーン監査ログ
  4. 04対象者単位の鍵破棄レシート
  5. 05忠実性と外部送信のチェック

活用シーン

  1. 01AIエージェントの監査可能な記憶の保存
  2. 02ポリシーに沿った検索制限
  3. 03メモリ変更と監査記録の確認
  4. 04対象者単位の消去手順の実行

MCP 対応

ガバナンス機能を備えたMCPインターフェースを通じて、MCP対応エージェントに利用できます。書き込みと消去のツールは既定で無効で、明示的な有効化が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 エージェントのためのガバナンスされたメモリー

Heartwood Memory は、AI エージェントのためのガバナンスされたメモリーストアです。来歴に署名された監査、ポリシーで制御される想起、テナント分離、消去時のサブジェクトごとの鍵破棄証明を提供します。

ライセンスの概要。 Heartwood Memory 0.2.0 以降は、OSI の「オープンソース」ライセンスではなく、Business Source License 1.1(BSL 1.1)に基づくソース入手可能なソフトウェアです。本番以外での利用は、規模を問わず無料です。小規模組織(従業員と独立請負業者が100人未満で、ライセンスに基づき2019年から調整された前課税年度の収益が100万ドル未満)も、本番環境で無料で利用できます。各バージョンはリリースから4年後に Apache License 2.0 へ自動的に移行します。バージョン0.1.0~0.1.2はMITライセンスで提供され、今後も永久にMITライセンスのままです。

ウェブサイト · Heartwoodとの比較 · FAQ · PyPI

既存の信頼できる情報源システムの隣に組み込める、ガバナンスされ、ソースを監査できるAIエージェント向けメモリーです。

Heartwood は、エージェントのメモリーにおける暗号学的な信頼の基点です。すべてのメモリーに署名し、ランキング前にポリシーに基づいて想起を実行し、ハッシュチェーンによって改ざんを検知できる監査ログを保持します。また、反証可能なサブジェクトごとの鍵破棄レシートを出力します。パッケージは、インフラ上で動作するガバナンスされたアダプターインターフェースを備えた、組み込み型の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 を実行してください。

公開トラストスイートを再実行する

公開トラストレシートのベンチマークは、インストール済みのホイールではなく、ソースリポジトリにあります。クリーンなクローンから、次を実行してください。

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 に置き換えてください。

実行可能なコントラクトテストまたはポジティブコントロールのケースが失敗した場合、あるいはベンチマークに既存のクレームアンカースキャンで違反が見つかった場合、このコマンドはゼロ以外の終了コードを返します。1行のターミナルサマリーには実行されたケース数が表示され、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/ を対象とする同等の除外設定を追加してください。または、機密性の高いランタイム状態を、Git の追跡対象外となる .heartwood/ ディレクトリに保管してください。レビュー可能な状態を保つため、意図的に使用するフィクスチャはルート以外のパスに置いてください。

ライブラリではなく、MCP 対応エージェント向けのガバナンスされたメモリーをお探しですか?ガバナンスされたMCPクイックスタートとCodexローカルstdioクイックスタートをご覧ください。書き込みと消去の動詞はデフォルトでは公開されません。利用するには、オペレーターがそれらを明示的に指定します。

得られるもの — 5つのレシート

記録単位で検査や再実行ができるガバナンス機能です。

レシート機能現時点での境界
署名付き来歴すべてのメモリーに署名を付与します。読み取り時に署名とコンテンツハッシュを再検証し、各結果に表示します。デフォルトの 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 万ドル未満)も、本番環境で無料で実行できます。それ以上の規模の組織が本番環境で利用するには、商用ライセンスが必要です。各バージョンは、リリースから 4 年後に Apache License 2.0 へ自動的に移行します。

バージョン 0.1.0~0.1.2 は MIT ライセンスで公開されており、今後もそのままです。詳細については NOTICE をご覧ください。商用サポート、管理型の鍵管理、およびホスティングサービスは別途ご利用いただけます。

現在の重視事項

意欲的な認知機能の構築に進む前に、堅実な信頼性を証明します。

  • 来歴
  • 型付きメモリルーティング
  • ポリシーを考慮した想起
  • 時間的な状態
  • 削除の完全性
  • 生成されたメモリの忠実性
  • 再現可能な評価

認知データベースのビジョンは、こうしたサイクルから得られる証拠によって実現されるべきです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。