TencentDB-Agent-Memory Docker & Self-Hosted Deployment

GitHub

TencentDB Agent Memory is a team-level memory hub for AI Agents โ€” turning conversations, docs, and code into four reusable memory assets (Chat Memory,...

20,658 stars TypeScript TypeScript 1 file ยท ~19,044 tokens #agent#ai-agent#embedding#llm#local-first#long-term-memory#memory#openclaw-plugin
RAW Compose
1. Pull Image (DOCKERHUB) docker pull library/${TEAM_KNOWLEDGE_IMAGE
2. Docker Run (1-Click Launch) docker run -d --name tencentdb-agent-memory -p 8421:8421 --restart always ${TEAM_KNOWLEDGE_IMAGE:-team-knowledge:latest}
3. Podman Run podman run -d --name tencentdb-agent-memory -p 8421:8421 --restart always ${TEAM_KNOWLEDGE_IMAGE:-team-knowledge:latest}
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/${TEAM_KNOWLEDGE_IMAGE:-team-knowledge
5. ORAS Pull (OCI Artifact) oras pull ${TEAM_KNOWLEDGE_IMAGE:-team-knowledge:latest}
6. Compose Deployment docker compose up -d
MemoryKnowledge/docker-compose.yml
Download .yml
# Knowledge Service โ€” one-shot local / user-side run
#
#   cp docker/env.example docker/env.docker
#   docker compose --env-file docker/env.docker up -d
#
# Or pass vars inline:
#   PUBLIC_URL=http://203.0.113.10:8421/v3 \
#   TMC_CALLBACK=http://203.0.113.10:8123 \
#   LLM_MODE=custom LLM_API_KEY=sk-xxx \
#   LLM_BASE_URL=https://api.example.com/v1 \
#   docker compose up -d --build
# ้ป˜่ฎค LLM_MODE=proxy ๆ—ถๆ— ้œ€ LLM_API_KEY/LLM_BASE_URL๏ผˆ่ตฐ context_proxy ็ป‘ๅฎš๏ผ‰ใ€‚

services:
  knowledge:
    build: .
    image: ${TEAM_KNOWLEDGE_IMAGE:-team-knowledge:latest}
    ports:
      - "${TEAM_KNOWLEDGE_HOST_PORT:-8421}:8421"
    volumes:
      - knowledge-data:/app/data
    environment:
      KNOWLEDGE_CLICKHOUSE_ENABLED: ${KNOWLEDGE_CLICKHOUSE_ENABLED:-false}
      KNOWLEDGE_CLICKHOUSE_URL: ${KNOWLEDGE_CLICKHOUSE_URL:-}
      KNOWLEDGE_CLICKHOUSE_DATABASE: ${KNOWLEDGE_CLICKHOUSE_DATABASE:-default}
      KNOWLEDGE_CLICKHOUSE_TABLE: ${KNOWLEDGE_CLICKHOUSE_TABLE:-tool_call_logs}
      KNOWLEDGE_CLICKHOUSE_USER: ${KNOWLEDGE_CLICKHOUSE_USER:-default}
      KNOWLEDGE_CLICKHOUSE_PASSWORD: ${KNOWLEDGE_CLICKHOUSE_PASSWORD:-}
      KNOWLEDGE_CLICKHOUSE_FLUSH_INTERVAL_MS: ${KNOWLEDGE_CLICKHOUSE_FLUSH_INTERVAL_MS:-5000}
      KNOWLEDGE_CLICKHOUSE_FLUSH_THRESHOLD: ${KNOWLEDGE_CLICKHOUSE_FLUSH_THRESHOLD:-50}
      KNOWLEDGE_CLICKHOUSE_TTL_DAYS: ${KNOWLEDGE_CLICKHOUSE_TTL_DAYS:-90}
      KNOWLEDGE_CLICKHOUSE_REQUEST_TIMEOUT_MS: ${KNOWLEDGE_CLICKHOUSE_REQUEST_TIMEOUT_MS:-5000}
    restart: unless-stopped
    command:
      - --public-url=${PUBLIC_URL:?set PUBLIC_URL e.g. http://203.0.113.10:8421/v3}
      - --tmc-callback=${TMC_CALLBACK:-}
      # proxy๏ผˆ้ป˜่ฎค๏ผ‰่ตฐ context_proxy ็ป‘ๅฎš๏ผ›custom ๆ‰้œ€ --llm-key/--llm-base-urlใ€‚
      - --llm-mode=${LLM_MODE:-proxy}
      - --llm-key=${LLM_API_KEY:-}
      - --llm-base-url=${LLM_BASE_URL:-}
      - --llm-model=${LLM_MODEL:-gpt-4o-mini}
    healthcheck:
      test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8421/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
      interval: 15s
      timeout: 5s
      retries: 3
      start_period: 15s

volumes:
  knowledge-data: