Skip to main content
Glama
kuaizhongqiang

TencentAgentMemoryBridge MCP Server

TencentAgentMemoryBridge

Мост памяти на базе TencentDB Agent Memory Team Edition v2.0.0 (ветка feat/server_team) — подключает 4-уровневую долговременную память (L0 диалог → L1 атомарные факты → L2 сценарии → L3 профиль) к различным AI Agent платформам.

Не изобретаем велосипед: все возможности движка памяти предоставляет TencentDB Agent Memory, этот репозиторий занимается только протокольным мостом. Team Edition вводит MemoryProxy (прозрачный LLM-прокси) и v3 isolation (триада team / agent / user); старые /capture, /recall и изоляция по sender заменены.

Официальный дизайн см. в docs/team-edition-role-model.md (модель трёх ролей + интеграция 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

✅ ядро Team Edition

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-аутентификация/пересылка заменена встроенной аутентификацией Team Edition

Основные принципы

  • Изолированная триада v3: все операции чтения/записи на уровне данных выполняются с team_id + agent_id + user_id (опционально task_id для различия на уровне проектов), заменяя старый белый список sender.

  • task_id строго отделён от идентичности: agent_id (agt-*) — это идентичность платформы, неизменная между проектами; task_id — метка уровня проекта (имя каталога или явный TASK_ID), префиксы agt-/team-/usr-/sk- отклоняются (mcp-bridge ≥ 0.4.0 проверяет при запуске), что исключает использование identity id в качестве task_id.

  • Область действия одной команды: /v3/atomic/search, /v3/core/read, /v3/scenario/ls выполняют поиск в пределах текущей team.

  • Разделение извлечения и записи: L1 запрашивается по мере необходимости через инструменты; L0 прозрачно возвращается через MemoryProxy или записывается явно через mcp-bridge/Stop hook.

Related MCP server: engram

Три способа интеграции

1. MemoryProxy (прозрачный, рекомендуется)

Claude Code / WorkBuddy направляют ANTHROPIC_BASE_URL (или OpenAI-совместимую конечную точку) на MemoryProxy, память обрабатывается автоматически:

  • capture: каждый раунд диалога автоматически возвращает L0, без явного вызова инструментов.

  • inject: L2/L3 автоматически внедряются в system prompt.

  • Идентичность: предварительный выбор через путь URL /{agent}/{spaceId} + заголовки x-team-id / x-agent-id / x-task-id (или выбор в форме на первом шаге).

Предварительное условие: необходимо выполнить шаги развёртывания и миграции Team Edition (см. role-model §10).

2. mcp-bridge (для MCP-only клиентов)

MCP-сервер, который напрямую подключает вызовы инструментов памяти к MemoryCore Gateway (плоскость данных Team Edition /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 или в env из MCP settings, не коммитьте их в репозиторий.

3. OpenClaw (официальный плагин)

Используйте официальный openclaw-plugin из апстрима, статическая конфигурация teamId / agentId / userId. См. docs/openclaw-plugin-v3.md.

4. DeepSeek Harness (нативный MCP для DSH)

DSH подключается к mcp-bridge через нативный плагин MCP-клиента (@deepseek-ai/dsh-mcp-client), модель видит инструменты 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 — по завершении каждого ответа извлекает последний фрагмент текста user/assistant из transcript и отправляет POST в MemoryCore /v3/conversation/add.

  • Конфигурация: hooks.Stop в .claude/settings.local.json (учётные данные читаются из mcpServers.agent-memory.env того же файла — единый источник истины).

  • Дедупликация: по session_id + временной метке последнего assistant записывается .claude/.memory-store-state.json, что предотвращает повторную запись при /compact, /resume.

  • Не блокирует: при сбое записи только пишет в stderr и завершается с кодом 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, многофреймовый JSONL в zstd); по завершении каждого раунда (событие turn/end) автоматически отправляет POST с текстом user + assistant этого раунда в /v3/conversation/add.

  • Идентичность: team/agent/user + gate key переиспользуют локальную конфигурацию DSH (~/.dsh/profiles/web/cordis.patch.yml → mcp-agent-memory.env, единый источник истины), поддерживается переопределение через переменные окружения.

  • task_id: автоматически выводится из cwd в header сессии (имя каталога проекта), отдельный для каждого проекта.

  • Дедупликация: по 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 endpoint

Описание

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-уровневая система долговременной памяти с открытым исходным кодом от Tencent (Team Edition включает MemoryProxy + v3 isolation)

Лицензия

MIT

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers