Max Nardit
v0.3.0python 3.10+mcpMITテスト 321 件

Agent Recall

AI コーディングエージェントのための永続メモリ

AI エージェントはセッションごとにすべてを忘れます

Agent Recall はコーディングエージェントに永続的な記憶を与えます。事実、人、決定をセッションをまたいで覚えています。オープンソース、ローカルファースト、MCP ネイティブです。

shell
pip install 'agent-recall[mcp]'
agent-recall generate acme-project
--- Agent Briefing: acme-project ---

Key People:
  Alice — Lead Engineer, prefers async
  Bob — Product Manager, owns roadmap

Recent Decisions:
  API migration approved (Feb 12)
  Auth service blocked — waiting on Alice

Active Context:
  Sprint 14, 3 days remaining
  Focus: auth service unblock

MCP ネイティブ。Claude Code、Cursor、Windsurf、Cline でテスト済み

Claude Code実戦投入済みCursorWindsurfCline

01

積み上がるコンテキスト

  1. 01

    記憶なし

    > Alice とは誰ですか?Alice についての文脈はありません。すべてのセッションがゼロから始まります。

  2. 02

    セッション 1 で事実を保存

    create_entities: Alice (person)set_slot: role = "Lead Engineer"add_observation: "prefers async"エージェントが学んだことを MCP ツール経由で保存します。

  3. 03

    セッション 2 は文脈付きで開始

    Agent Briefing 読み込み完了Alice。リードエンジニア非同期コミュニケーションを好む2 月 12 日に API 移行が承認文脈は積み上がります。すべてのセッションが前のセッションの上に乗ります。

02

仕組み

  1. 01

    エージェントが事実を保存

    エージェントは作業中に MCP ツールを呼び、エンティティ、観察、リレーションを保存します。9 つのツールで完全な CRUD に対応します。

  2. 02

    SQLite に保存

    すべてが WAL モードのローカル SQLite データベースに残ります。プロジェクトごとにスコープ化され、同じ人物でもスコープごとに別の文脈を持てます。

  3. 03

    起動時にブリーフィング

    次のセッションでは AI が生成したブリーフィングが自動で読み込まれます。重要人物、最近の決定、現在の文脈を、ダンプではなく要約してお届けします。

03

クイックスタート

1. インストール
pip install 'agent-recall[mcp]'
agent-recall init

.mcp.json (Claude Code、Cline) またはエディタ設定 (Cursor、Windsurf)

2. エディタに追加
{
  "mcpServers": {
    "memory": {
      "command": "python3",
      "args": ["-m", "agent_recall.mcp_server"]
    }
  }
}

.claude/settings.json。セッション開始時にブリーフィングを読み込みます。

3. 自動ブリーフィング用フック
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "agent-recall-session-start"
      }]
    }],
    "PostToolUse": [{
      "matcher": "mcp__memory__.*",
      "hooks": [{
        "type": "command",
        "command": "agent-recall-post-tool-use"
      }]
    }]
  }
}
4. 確認
agent-recall status

Database: ~/.agent-recall/frames.db
Entities: 27
  client: 11, person: 8, company: 1
  concept: 2, entity: 3, topic: 2

04

Agent Recall の機能

  • スコープ付きメモリ

    同じ人物でもプロジェクトごとに別の文脈で扱えます。Alice は Acme では「Engineer」、BetaCorp では「Consultant」です。データはスコープ階層で分離されます。

  • AI ブリーフィング

    データダンプではなく要約。147 件の事実を読み、Key People、現在のタスク、最近の決定を生成します。LLM は持ち込み可能です。

  • マルチエージェント対応

    エージェンシー向けに設計。スコープ階層により、各エージェントが自分のスコープチェーン内で読み書きしつつ、ナレッジベースを 1 つに統合できます。

  • ローカルファースト

    お使いのマシン上の SQLite。同時アクセス用に WAL モード対応。データはあなたのもの。クラウドもベンダーロックインもありません。

  • MCP ネイティブ

    Model Context Protocol 上の 9 つのツール。MCP 互換クライアント向けに設計され、Claude Code、Cursor、Windsurf、Cline 用のテスト済み設定を提供します。

  • 完全な履歴

    バイテンポラル追跡。今の値だけでなく、いつどの値だったかも分かります。スロットごとに完全な時系列履歴を保持します。

05

コード例

Python API
from agent_recall import MemoryStore, ScopedView

with MemoryStore() as store:
    alice = store.resolve_entity("Alice", "person")
    store.set_slot(alice, "role", "Lead Engineer", scope="acme")
    store.add_observation(alice, "Prefers async", scope="acme")

    view = ScopedView(store, ["global", "acme"])
    entity = view.get_entity("Alice")
    print(entity["slots"]["role"])  # "Lead Engineer"

    # 検索、履歴、トランザクション
    results = store.search("engineer")
    store.set_slot(alice, "role", "Staff Engineer", scope="acme")
    history = store.get_slot_history(alice, "role")

    with store.transaction():
        bob = store.resolve_entity("Bob", "person")
        store.set_slot(bob, "role", "PM")
CLI
$ agent-recall set Alice role Engineer --type person
Alice.role = Engineer

$ agent-recall list --type person
  Alice (person)  Bob (person)

$ agent-recall entity Alice --scope global --scope acme
  role: Lead Engineer (acme)

$ agent-recall logs Alice
  [2026-02-26] Joined the team

$ agent-recall generate my-agent --force
Generated: ~/.agent-recall/context_cache/my-agent.md

エージェントが使える 9 つの MCP ツール

create_entitiesadd_observationscreate_relationssearch_nodesopen_nodesread_graphdelete_entitiesdelete_relationsdelete_observations
マルチエージェント YAML 設定
hierarchy:
  agency:
    - client-a
    - client-b

briefing:
  backend: cli
  model: opus
  adaptive: true
  auto_discover: true

agents:
  coordinator:
    model: opus
    output_budget: 12000
  client-a:
    template: client
    context_files:
      - docs/client-a-brief.md
LLM 持ち込み
from agent_recall import generate_briefing, LLMResult

def my_llm(prompt, model, timeout):
    response = call_your_api(prompt)
    return LLMResult(
        text=response.text,
        input_tokens=0,
        output_tokens=0
    )

generate_briefing(
    "my-agent",
    llm_caller=my_llm,
    force=True
)

06

なぜ agent-recall なのか

他のメモリソリューション (Mem0、Zep / Graphiti、LangMem) もあります。agent-recall が違うところは:

  • スコープ階層 · フラットな記憶ではありません。継承を伴うスコープチェーン。複数のクライアント、プロジェクト、入れ子の文脈で動くエージェントのために設計されています。同じ人物がプロジェクトごとに別の役割を持てます。
  • AI ブリーフィング · 生のデータダンプは機能しません。LLM が数百件の事実を構造化された実用的な文脈に要約し、セッション開始時に注入します。
  • ローカルファースト · SQLite ファイル 1 つ。クラウド、ベクトル DB、Docker、Neo4j は不要。データはあなたのマシン上にとどまります。
  • MCP ネイティブ · 能動的に保存するための指示を備えた 9 つのツール。MCP 互換クライアント向けに設計されています。
  • バイテンポラル · 古い値は削除ではなくアーカイブされます。任意の時点で何が真だったかを照会できます。
  • 最小限の依存関係 · pyyaml と click のみ。MCP と Anthropic SDK は任意のエクストラです。

07

本番環境で生まれた

本番で 30 以上の AI エージェントを並列稼働させる実システムから抽出。週末プロジェクトではなく、日々の実稼働を支える実戦投入済みのインフラです。

321

テスト

12

モジュール

WAL

SQLite モード

30+

本番のエージェント

08

トラブルシューティング

エージェントが事実を自動で保存しない
MCP サーバーが接続されているか確認してください。エージェントは create_entities, search_nodes などを利用可能なツールとして表示するはずです。サーバーがエラーなく起動するかを確認: python3 -m agent_recall.mcp_server
ブリーフィングが空、または生成に失敗する
データがあるか確認してください: agent-recall status でエンティティが表示されるはずです。デフォルトの cli バックエンドには Claude Code のインストールが必要です。api バックエンドを ANTHROPIC_API_KEY.
Windows: python3 が見つからない
Windows では Python は通常 python であり python3 ではありません。MCP 設定の "command": "python".

09

技術スタック

PythonSQLiteMCPFastMCPYAMLClickpy.typed

10

エージェントに永続的な記憶を

オープンソース。ローカルファースト。MIT ライセンス。pip install ひとつで使えます。

shell
pip install 'agent-recall[mcp]'