Skip to main content
Glama
kuaizhongqiang

TencentAgentMemoryBridge MCP Server

TencentAgentMemoryBridge

TencentDB Agent Memory チーム版 v2.0.0(feat/server_team ブランチ)を中心に構築されたメモリーブリッジ。4 層の長期記憶機能(L0 会話 → L1 原子事実 → L2 シナリオ → L3 人物像)をさまざまな AI Agent プラットフォームに接続します。

車輪の再発明はしない:記憶エンジンの能力はすべて TencentDB Agent Memory が提供し、本リポジトリはプロトコルブリッジのみを担当します。チーム版では MemoryProxy(透過型 LLM プロキシ)と v3 isolation(team / agent / user の三つ組)が導入され、旧 /capture /recall と sender 分離は置き換えられました。

正式な設計は docs/team-edition-role-model.md(3 ロールモデル + v3 接続)を参照してください。

アーキテクチャ

┌───────────────┐   ┌───────────────────────────────┐
│ Claude Code / │──▶│  MemoryProxy(团队版,透明 LLM)│──▶ MemoryCore /v3/*
│ WorkBuddy     │   │  URL /{agent}/{spaceId}/v1/*   │
└───────────────┘   │  header 预选 x-team-id/x-agent-id │
┌───────────────┐   └───────────────────────────────┘
│ MCP-only 客户端 │──▶┌───────────────────────┐        │
│ (Claude Code, │   │  mcp-bridge (v3 重写)   │────────▶ MemoryCore /v3/*
│  CodeBuddy,   │   │  配置 TEAM/AGENT/USER 三元组 │
│  DSH)         │   └───────────────────────┘        │
└───────────────┘   ┌───────────────────────┐        │
┌───────────────┐   │  openclaw-plugin(官方)  │────────▶ MemoryCore /v3/*
│ OpenClaw      │──▶│  静态配置 teamId/agentId│
└───────────────┘   └───────────────────────┘

コンポーネント

ステータス

接続先

説明

MemoryProxy

✅ チーム版コア

Claude Code / WorkBuddy

透過型 LLM プロキシ:URL /{agent}/{spaceId}/v1/* + header の事前選択。各ターンで L0 を自動書き戻し、L2/L3 を system prompt に自動注入。明示的なツール呼び出しは不要

mcp-bridge

✅ v3 リライト(0.4.0)

MCP-only クライアント(Claude Code / CodeBuddy / DeepSeek Harness)

MemoryCore /v3/* に直接接続。分離三つ組 TEAM_ID/AGENT_ID/USER_ID + 任意の TASK_ID を設定。ツール結果は _context 分離ドメインをエコー

openclaw-plugin

✅ 公式プラグイン

OpenClaw

上流の公式実装。teamId / agentId / userId を静的に設定

bridge-server

❌ 退役済み

—

旧 sender の認証/転送はチーム版標準の認証に置き換えられました

核心原則

  • v3 分離三つ組:すべてのデータ面の読み書きに team_id + agent_id + user_id(任意でプロジェクト単位の区別として task_id)を付与し、旧 sender ホワイトリストを置き換えます

  • task_id と ID を厳密に分離:agent_id(agt-*)はプラットフォーム ID であり、プロジェクトをまたいで不変です。task_id はプロジェクト単位のラベル(ディレクトリ名または明示的な TASK_ID)で、agt-/team-/usr-/sk- プレフィックスを拒否します(mcp-bridge ≥ 0.4.0 は起動時に検証)。ID が task_id として使用されるのを防ぎます

  • 単一チームスコープ:/v3/atomic/search、/v3/core/read、/v3/scenario/ls はいずれも現在のチーム内を検索します

  • リコールと書き込みの分離:L1 は必要に応じてツールで照会します。L0 は MemoryProxy による透過的な書き戻し、または mcp-bridge による明示的/Stop hook での書き込みです

Related MCP server: engram

3 つの接続方法

1. MemoryProxy(透過型、推奨)

Claude Code / WorkBuddy の ANTHROPIC_BASE_URL(または OpenAI 互換エンドポイント)を MemoryProxy に向けると、記憶が自動的に処理されます:

  • capture:各ターンの会話で L0 を自動的に書き戻します。明示的なツール呼び出しは不要です

  • inject:L2/L3 を system prompt に自動注入します

  • ID:URL パス /{agent}/{spaceId} + x-team-id / x-agent-id / x-task-id header の事前選択(または初回フォームでの選択)

前提:チーム版のデプロイと移行手順を完了する必要があります(role-model §10 参照)。

2. mcp-bridge(MCP-only クライアント)

MCP サーバーで、記憶ツールの呼び出しを MemoryCore Gateway(チーム版 /v3/* データ面)に直接接続します。設定は docs/mcp-bridge-v3.md を参照してください。

// .claude/settings.local.json
{
  "mcpServers": {
    "agent-memory": {
      "command": "npx",
      "args": ["-y", "tencent-agent-memory-mcp-bridge"],
      "env": {
        "MEMORY_ENDPOINT": "https://memory.kuai-private.top",
        "API_KEY": "<gate-api-key>",
        "SERVICE_ID": "default",
        "TEAM_ID": "<team-id>",
        "AGENT_ID": "<agent-id>",
        "USER_ID": "<user-id>"
      }
    }
  }
}

⚠️ 実際のキーは本機の .env または MCP settings の env にのみ置き、リポジトリにコミットしないでください。

3. OpenClaw(公式プラグイン)

上流の公式 openclaw-plugin を使用し、teamId / agentId / userId を静的に設定します。docs/openclaw-plugin-v3.md を参照してください。

4. DeepSeek Harness(DSH ネイティブ MCP)

DSH はネイティブ MCP クライアントプラグイン(@deepseek-ai/dsh-mcp-client)経由で mcp-bridge に接続します。モデルには mcp__agent-memory__* ツールが見えます。設定テンプレートは examples/deepseek-harness/cordis.patch.yml、完全なガイドは docs/deepseek-harness-v3.md を参照してください。

自動取り込み(デフォルトで送信、必要に応じて取得)

Claude Code / CodeBuddy(Stop hook)

mcp-bridge 自体はツールサーバーです。store_memory はモデルが明示的に呼び出した場合のみ書き込みます。「対話生成完了後に自動送信」を保証するために、Stop hook によってフォールバックします:

  • スクリプト:scripts/stop-memory-store.mjs——各応答の終了時に、transcript から最後の user/assistant テキストを抽出し、MemoryCore /v3/conversation/add へ POST します

  • 設定:.claude/settings.local.json の hooks.Stop(認証情報は同じファイルの mcpServers.agent-memory.env から読み取ります。単一の情報源)

  • 重複排除:session_id + 最後の assistant タイムスタンプに基づき .claude/.memory-store-state.json に書き込み、/compact、/resume による重複取り込みを防ぎます

  • ブロックしない:書き込み失敗時は stderr に記録して exit 0 にし、会話を遅延させません

"hooks": {
  "Stop": [{ "hooks": [{ "type": "command", "command": "node scripts/stop-memory-store.mjs", "timeout": 30 }] }]
}

DeepSeek Harness(デーモンスクリプト)

DSH には Stop hook がないため、独立したデーモンスクリプト scripts/dsh-memory-autostore.mjs で同じセマンティクスを実現します:

  • 原理:~/.dsh/sessions/**/session.jsonl.zstd(DSH セッションログ、zstd マルチフレーム JSONL)を監視し、各ターンの終了(turn/end イベント)時にそのターンの user + assistant テキストを自動で /v3/conversation/add に POST します

  • ID:team/agent/user + ゲートキーは DSH のローカル設定(~/.dsh/profiles/web/cordis.patch.yml → mcp-agent-memory.env、単一の情報源)を再利用し、環境変数による上書きをサポートします

  • task_id:セッションヘッダーの cwd から自動派生されます(プロジェクトディレクトリ名)。プロジェクトごとに独立

  • 重複排除:session_id + turn に基づき ~/.dsh/.dsh-memory-autostore-state.json に書き込みます。起動時にベースラインを作成し、履歴は遡りません。以後に追加されたターンのみを送信します

  • 使い方:デプロイ時はまず node scripts/dsh-memory-autostore.mjs --baseline-only を実行します(既存のターンをベースラインとして記録し、履歴を遡って送信しません)。その後 node scripts/dsh-memory-autostore.mjs --once(増分送信。スケジュールタスクと組み合わせる)または常駐 node scripts/dsh-memory-autostore.mjs(10 秒ポーリング)を使用します。--backfill は履歴の補完送信、--dry-run はスキャンのみ行います

MCP ツール

ツール

v3 エンドポイント

説明

recall_memory

/v3/atomic/search + /v3/core/read + /v3/scenario/ls

多層リコール。{facts, persona?, scenes?, _context} を返します

store_memory

/v3/conversation/add

L0 を書き込みます。session 必須(Stop hook が自動フォールバックするため、通常は明示的な呼び出し不要)

search_memories

/v3/atomic/search

L1 セマンティック検索。{items, _context} を返します

end_session は削除されました。v3 では session はクライアント側のキーにすぎず、独立したクローズエンドポイントはありません。 _context(≥0.4.0):各ツールの結果が現在の分離ドメイン {team_id, agent_id, user_id, task_id} をエコーします。モデル/ユーザーはこれにより agent と task が混在していないことを確認できます。

プロジェクト構造

tencent-agent-memory-bridge/
├── packages/
│   ├── mcp-bridge/           # MCP Server → MemoryCore /v3/* 直连(v3 重写)
│   └── bridge-server/        # 已退役(旧 sender 代理层,仅保留历史参考)
├── scripts/
│   ├── stop-memory-store.mjs # Stop hook:响应结束后自动写 L0(Claude Code)
│   └── stop-memory-store-codebuddy.mjs # CodeBuddy Stop hook
├── examples/
│   ├── codebuddy/            # CodeBuddy MCP 安装/更新指南
│   ├── claude-code/          # Claude Code 配置指南
│   └── deepseek-harness/     # DeepSeek Harness cordis.patch.yml 模板
├── docs/
│   ├── team-edition-role-model.md   # 团队版三角色模型(权威)
│   ├── mcp-bridge-v3.md             # mcp-bridge v3 使用指南
│   ├── deepseek-harness-v3.md       # DeepSeek Harness 接入指南
│   ├── openclaw-plugin-v3.md        # OpenClaw 官方插件接入
│   └── design-overview.md           # 旧架构设计(已过时,仅参考)
├── CLAUDE.md                 # 项目指令
└── package.json

ローカル開発

pnpm install
pnpm --filter mcp-bridge build
pnpm --filter mcp-bridge test

上流依存

  • TencentDB Agent Memory — テンセントがオープンソース化した 4 層長期記憶システム(チーム版には MemoryProxy + v3 isolation が含まれます)

ライセンス

MIT

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers