mirror of
https://github.com/TencentCloud/TencentDB-Agent-Memory
synced 2026-07-13 13:54:29 +00:00
docs: sync README, SKILL, and image updates from GitHub
This commit is contained in:
@@ -1,17 +1,24 @@
|
||||
<div align="center">
|
||||
|
||||
<img src="./assets/images/logo2.png" alt="TencentDB Agent Memory" width="880" />
|
||||
<img src="./assets/images/logo.png" alt="TencentDB Agent Memory" width="880" />
|
||||
|
||||
### Help your Agent accumulate experience, so people can focus on creation.
|
||||
### Agents remember,Humans innovate.
|
||||
|
||||
[](https://www.npmjs.com/package/@tencentdb-agent-memory/memory-tencentdb)
|
||||
[](./LICENSE)
|
||||
[](https://nodejs.org/)
|
||||
[](https://github.com/openclaw/openclaw)
|
||||

|
||||
[](https://hermes-agent.nousresearch.com/docs/)
|
||||
[](https://discord.gg/kDtHb5RW2)
|
||||
|
||||
[Highlights](#-highlights) · [Overview](#overview) · [Core Technology](#core-technology-reject-flat-storage-embrace-layering-and-symbolization) · [Quick Start](#quick-start)
|
||||
[Highlights](#-highlights) · [Overview](#overview) · [Core Technology](#core-technology-reject-flat-storage-embrace-layering-and-symbolization) · [Features](#-features) · [Quick Start](#quick-start)
|
||||
|
||||
<div align="center">
|
||||
|
||||
[**English**](./README.md) · [简体中文](./README_CN.md)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@@ -19,12 +26,12 @@
|
||||
|
||||
## ✨ Highlights
|
||||
|
||||
> **TencentDB Agent Memory = Symbolic short-term memory + Layered long-term memory.**
|
||||
> **TencentDB Agent Memory = symbolic short-term memory + layered long-term memory.**
|
||||
>
|
||||
> - **Symbolic short-term memory**: offload heavy tool logs layer by layer and progressively condense them into lightweight Mermaid structural symbols, drastically reducing token consumption while improving task success rate.
|
||||
> - **Layered long-term memory**: refine fragmented conversations layer by layer into structured personas and scenes — no more flat vector piles.
|
||||
> - **Symbolic short-term memory** offloads heavy tool logs and condenses them into compact Mermaid symbols, cutting token usage and improving task success.
|
||||
> - **Layered long-term memory** distills fragmented conversations into structured personas and scenes, instead of flat vector piles.
|
||||
|
||||
**Plugged into OpenClaw**, it saves up to **61.38% tokens**, lifts pass rate by **+51.52%** (relative), and pushes PersonaMem accuracy from **48%** to **76%**.
|
||||
When integrated with OpenClaw, it cuts token usage by up to **61.38%**, improves pass rate by **51.52%** (relative), and raises PersonaMem accuracy from **48%** to **76%**.
|
||||
|
||||
| Memory Capability | Benchmark | Openclaw Success | With Plugin | Relative Δ | Openclaw Tokens | With Plugin Tokens | Relative Δ |
|
||||
| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
|
||||
@@ -33,17 +40,17 @@
|
||||
| **Short-term** | AA-LCR | 44.0% | **47.5%** | **+7.95%** | 112.0M | **77.3M** | **−30.98%** |
|
||||
| **Long-term** | PersonaMem | 48% | **76%** | **+59%** | — | — | — |
|
||||
|
||||
> These are long-session evaluations, not single-turn isolated runs. Multiple tasks are concatenated into the same session and executed back-to-back. For example, each SWE-bench session runs 50 tasks consecutively to simulate the context-accumulation pressure faced by a real long-horizon Agent.
|
||||
> These results are measured over continuous long-horizon sessions, not isolated turns. For example, SWE-bench runs 50 consecutive tasks per session to simulate the context-accumulation pressure of real-world long-horizon agents.
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
**Memory is not about letting AI store everything — it is about freeing humans from repeating everything.**
|
||||
**Memory is not about hoarding everything in the AI — it is about sparing humans from having to repeat themselves.**
|
||||
|
||||
In real work, we often have to repeatedly tell the Agent about fixed SOPs, project backgrounds, tool habits, and output formats. This information should not need to be re-explained every time, yet it also should not be mindlessly and flatly crammed into the context.
|
||||
In practice, we constantly re-explain the same SOPs, project background, tool conventions, and output formats to the Agent. Such information should not require repetition, nor should it be indiscriminately dumped into the context.
|
||||
|
||||
TencentDB Agent Memory helps the Agent learn your workflows, retain task context, and reuse past experience. But we **reject brute-force history piling** and **abandon irreversible brute-force summarization**. We design memory as a deeply layered system: **symbolic memory** to solve information overload within a single long task, and **memory layering** to solve cross-session experience accumulation.
|
||||
TencentDB Agent Memory helps the Agent learn your workflows, retain task context, and reuse past experience. We reject both brute-force history accumulation and irreversible lossy summarization. Instead, we design memory as a layered system: **symbolic memory** for in-task information overload, and **memory layering** for cross-session experience.
|
||||
|
||||
> **Let the Agent remember what should be remembered, so people can focus on judgment, creation, and work that truly matters.**
|
||||
|
||||
@@ -51,73 +58,64 @@ TencentDB Agent Memory helps the Agent learn your workflows, retain task context
|
||||
|
||||
## Core Technology: Reject Flat Storage, Embrace Layering and Symbolization
|
||||
|
||||
The design philosophy of TencentDB Agent Memory revolves around two cores: **memory layering** and **symbolic memory**. This not only lets the Agent "remember more" but, more importantly, "think more clearly".
|
||||
Our architecture rests on two pillars: **memory layering** and **symbolic memory**. Together they ensure Agents do not merely "remember more", but "reason better".
|
||||
|
||||
### 1. Memory Layering: Progressive Disclosure and Heterogeneous Storage
|
||||
### 1. Memory Layering: Progressive Disclosure with Heterogeneous Storage
|
||||
|
||||
Traditional memory systems often slice all data into flat vectors. Recall then feels like searching for clues among a pile of unrelated sticky notes, lacking the guidance of a macro perspective.
|
||||
Traditional memory systems shred data into fragments and dump them into a flat vector store. Recall degenerates into a blind search across disconnected fragments, with no macro-level guidance.
|
||||
|
||||
We believe that **whether it is long-term knowledge, short-term tasks, or future experiential capabilities, memory should never be flat — both generation and recall must have layers**. TencentDB Agent Memory adopts "layering" as the unified design philosophy across the entire architecture:
|
||||
Whether it is long-term knowledge, short-term tasks, or future skill capabilities, memory should never be flat — both its formation and its recall must be hierarchical. TencentDB Agent Memory adopts **layering** as its unified architectural paradigm:
|
||||
|
||||
* **Short-term memory (context offload / task) layering**: the bottom layer retains the raw, heavy tool-call results (`refs/*.md`); the middle layer extracts step summaries (`jsonl`); the top layer condenses everything into an extremely lightweight Mermaid task canvas. The Agent only needs to focus on the top-layer structure in the context, drilling down to the bottom layer via `node_id` when errors occur.
|
||||
* **Long-term personalization (user understanding) layering**: break away from flat history logs and build a semantic pyramid: L0 raw conversations → L1 structured facts → L2 scene blocks → L3 user persona. Rely on the top-layer persona to grasp user preferences day-to-day; search the bottom-layer facts when details need verification.
|
||||
* **Skill generation (skill and action accumulation, Roadmap) layering**: memory should not be limited to "knowing what" but also include "knowing how". We are extending layering into the action domain: from bottom-layer execution traces and error logs, the middle layer generalizes common solution patterns, and the top layer ultimately distills reusable Skills or standardized SOP code.
|
||||
* **Short-term context layering.** The bottom layer archives raw tool outputs (`refs/*.md`); the middle layer extracts step-level summaries (`jsonl`); the top layer condenses state into a lightweight Mermaid canvas. The Agent only needs to attend to the top-layer structure in context, and drills down to the lower layers via `node_id` when an error occurs.
|
||||
* **Long-term personalization layering.** In place of flat logs, we build a semantic pyramid: **L0 Conversation** (raw dialogue) → **L1 Atom** (atomic facts) → **L2 Scenario** (scene blocks) → **L3 Persona** (user profile). The Persona layer carries day-to-day preferences; the system drills down to Atoms only when details matter.
|
||||
* **Skill generation layering.** Layering also applies to actions. The middle layer derives common solution patterns (**Scenario**) from bottom-layer execution traces (**Conversation**), and the top layer distills reusable Skills or standard SOPs (**Persona**).
|
||||
|
||||
<p align="center">
|
||||
<img src="./assets/images/memory-pyramid-en.jpg" alt="TencentDB Agent Memory L0 to L3 semantic pyramid" width="860" />
|
||||
</p>
|
||||
|
||||
**Progressive disclosure and heterogeneous storage**: to support this pervasive layering, we designed a storage approach combining a bottom-layer database with a top-layer file system. The bottom layer (massive facts, logs, traces) is stored in databases or archive files, ensuring stability and full-text retrieval; the top layer (personas, scenes, canvases, Skills) is stored in business-readable file systems (Markdown), ensuring high information density, clear logic, and white-box tunability. **Lower layers preserve evidence; upper layers preserve structure.**
|
||||
**Heterogeneous storage and progressive disclosure.** A dual-layer storage strategy underpins this architecture. The bottom layer (facts, logs, traces) is persisted in databases for robust full-text retrieval; the top layer (personas, scenes, canvases) is stored as human-readable Markdown files for high information density and white-box inspection. **Lower layers preserve evidence; upper layers preserve structure.**
|
||||
|
||||
**Every piece of information is 100% retrievable and recoverable**: the biggest risk of compression or abstraction is "losing the evidence". Thanks to strict index mapping, no summary in the system is an "irreversible" black box. Whether it is an error log offloaded from short-term memory or a user preference distilled from long-term memory, the Agent or developer can perfectly trace and recover it along the chain: "top-layer symbol (persona / canvas) → middle-layer index (scene / JSONL) → bottom-layer raw text (L0 conversation / refs)".
|
||||
**Full traceability and lossless recovery.** Compression often sacrifices traceability. TencentDB Agent Memory avoids irreversible compression by maintaining a deterministic path from high-level abstractions back to ground-truth evidence. Whether it is an offloaded error log or a distilled user preference, the system guarantees a complete drill-down path: "top-layer symbol (Persona / canvas) → mid-layer index (Scenario / jsonl) → bottom-layer raw text (L0 Conversation / refs)".
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph TraceLink["100% Retrievable and Recoverable Drill-Down Chain"]
|
||||
direction TB
|
||||
High["Top layer: Symbols & Structure<br/>(Persona / Mermaid Canvas)"]
|
||||
Mid["Middle layer: Summaries & Indexes<br/>(Scene Blocks / JSONL Summaries)"]
|
||||
Low["Bottom layer: Complete Facts & Evidence<br/>(L0 Raw Conversations / refs Raw Text)"]
|
||||
|
||||
High == "Need details / Encountered doubt" ==> Mid
|
||||
Mid == "Via node_id or citation matching" ==> Low
|
||||
end
|
||||
```
|
||||
<div align="center">
|
||||
<img src="assets/images/flowchart1.png" alt="Retrievable and Recoverable Drill-Down Chain" />
|
||||
</div>
|
||||
|
||||
### 2. Symbolic Memory: Express Maximum Semantics with Minimum Symbols (Mermaid Canvas)
|
||||
### 2. Symbolic Memory: Maximum Semantics in Minimum Symbols (Mermaid Canvas)
|
||||
|
||||
In long tasks, the biggest token consumers are often verbose process logs (e.g., search results, code, error messages). To address this, we combine **Context Offloading** to propose **Symbolic Memory**:
|
||||
In long tasks, the largest token consumers are verbose intermediate logs (search results, code, error traces). To address this, we combine **context offloading** with **symbolic memory**:
|
||||
|
||||
* **Mermaid symbol graph**: replacing verbose natural language or flat JSON, we use high-density, strongly-topological Mermaid syntax to depict task state transitions, precisely understandable by LLMs and easy for humans to read.
|
||||
* **History folding and offloading**: complete tool logs are offloaded to the external file system; the context retains only a lightweight Mermaid task map.
|
||||
* **`node_id`-based tracing**: the Agent reasons by looking at the symbol graph; when it needs to verify details, it simply greps the `node_id` on the graph to instantly retrieve the full original text — drastically reducing costs while preserving 100% traceability.
|
||||
* **Mermaid symbol graph.** Instead of verbose prose or flat JSON, we encode task state transitions in high-density Mermaid syntax — precise enough for LLMs to parse, concise enough for humans to read.
|
||||
* **History offloading.** Full tool logs are offloaded to external files; only a lightweight Mermaid task map remains in context.
|
||||
* **`node_id` tracing.** The Agent reasons over the symbol graph; to verify a detail, it greps for the `node_id` and instantly retrieves the full raw text — cutting token cost while preserving full traceability.
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
Log["Verbose process logs<br/>(hundreds of thousands of tokens)"] -->|"1. Offload full text"| FS[("External file system<br/>(refs/xxx.md)")]
|
||||
Log -->|"2. Extract relationships"| MMD["Mermaid symbol graph<br/>(with node_id)"]
|
||||
Log["Verbose Logs<br/>(hundreds of thousands of tokens)"] -->|"1. Offload full text"| FS[("External FS<br/>(refs/*.md)")]
|
||||
Log -->|"2. Extract relations"| MMD["Mermaid Canvas<br/>(with node_id)"]
|
||||
|
||||
MMD -->|"3. Lightweight injection"| Agent(("Agent context<br/>(a few hundred tokens)"))
|
||||
Agent -. "4. Drill down to recover full text via node_id anytime" .-> FS
|
||||
MMD -->|"3. Light injection"| Agent(("Agent Context<br/>(a few hundred tokens)"))
|
||||
Agent -. "4. Recall via node_id" .-> FS
|
||||
|
||||
style Log fill:#f1f5f9,stroke:#94a3b8,stroke-dasharray: 5 5
|
||||
style FS fill:#f8fafc,stroke:#cbd5e1
|
||||
style MMD fill:#eff6ff,stroke:#3b82f6,stroke-width:2px
|
||||
style Agent fill:#fffbeb,stroke:#f59e0b,stroke-width:2px
|
||||
style Log fill:#f1f5f9,stroke:#94a3b8,stroke-dasharray: 5 5,color:#475569
|
||||
style FS fill:#f8fafc,stroke:#cbd5e1,stroke-width:2px,color:#334155
|
||||
style MMD fill:#eff6ff,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a
|
||||
style Agent fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#92400e
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
### 1. Install the plugin
|
||||
### 1. Openclaw
|
||||
### 1.1 Install the plugin
|
||||
|
||||
```bash
|
||||
openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
### 2. Zero-config to enable
|
||||
### 1.2 Zero-config to enable
|
||||
|
||||
Defaults to a local `SQLite + sqlite-vec` backend.
|
||||
|
||||
@@ -132,22 +130,7 @@ Defaults to a local `SQLite + sqlite-vec` backend.
|
||||
|
||||
Once enabled, TencentDB Agent Memory automatically handles conversation capture, memory extraction, scene aggregation, persona generation, and recall before the next turn.
|
||||
|
||||
### 3. Use the TCVDB backend (optional, requires version ≥ 0.2.0)
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"memory-tencentdb": {
|
||||
"storeBackend": "tcvdb",
|
||||
"tcvdb": {
|
||||
"url": "http://your-vdb-instance:8100",
|
||||
"apiKey": "your-api-key",
|
||||
"database": "my_memory_db"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4. Enable short-term compression (optional, requires version ≥ 0.3.0)
|
||||
### 1.3 Enable short-term compression (optional, requires version ≥ 0.3.4)
|
||||
|
||||
```jsonc
|
||||
{
|
||||
@@ -159,21 +142,46 @@ Once enabled, TencentDB Agent Memory automatically handles conversation capture,
|
||||
}
|
||||
```
|
||||
|
||||
### 5. Hermes Gateway Quick Start (Docker, requires version ≥ 0.3.0)
|
||||
#### Step 1 — Register the slot in your plugin config
|
||||
|
||||
In addition to OpenClaw, this plugin also supports the [Hermes](https://github.com/hermes-ai/hermes) Agent. Start a memory-enabled Hermes with a single command:
|
||||
Add the `slots` field so OpenClaw routes context-offload requests to this plugin:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"plugins": {
|
||||
"slots": {
|
||||
"contextEngine": "openclaw-context-offload"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Step 2 — Apply the runtime patch
|
||||
|
||||
For the best results, run the patch script below. It hooks `after-tool-call` messages so they can be offloaded and recovered correctly:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name hermes-memory \
|
||||
--restart unless-stopped \
|
||||
-p 8420:8420 \
|
||||
-e MODEL_API_KEY="your-api-key" \
|
||||
-e MODEL_BASE_URL="https://api.lkeap.cloud.tencent.com/v1" \
|
||||
-e MODEL_NAME="deepseek-v3.2" \
|
||||
-e MODEL_PROVIDER="custom" \
|
||||
-v hermes_data:/opt/data \
|
||||
agentmemory/hermes-memory:latest
|
||||
bash scripts/openclaw-after-tool-call-messages.patch.sh
|
||||
```
|
||||
|
||||
> 💡 The patch only needs to be applied once per OpenClaw installation. After upgrading OpenClaw, re-run the script to re-apply.
|
||||
|
||||
|
||||
### 2. Hermes (Docker, requires version ≥ 0.3.4)
|
||||
|
||||
In addition to OpenClaw, this plugin also supports the [Hermes](https://github.com/NousResearch/hermes-agent) Agent. Start a memory-enabled Hermes with a single command:
|
||||
|
||||
```bash
|
||||
docker run -d \ # Run container in detached (background) mode
|
||||
--name hermes-memory \ # Container name for easy docker exec / logs / stop
|
||||
--restart unless-stopped \ # Auto-restart on crash or host reboot, unless manually stopped
|
||||
-p 8420:8420 \ # Map host port 8420 -> container port 8420 (Hermes Gateway)
|
||||
-e MODEL_API_KEY="your-api-key" \ # LLM API key (required) — replace with your own credential
|
||||
-e MODEL_BASE_URL="https://api.lkeap.cloud.tencent.com/v1" \ # LLM endpoint, defaults to Tencent Cloud LKE Auto Platform
|
||||
-e MODEL_NAME="deepseek-v3.2" \ # Model identifier, defaults to DeepSeek-V3.2
|
||||
-e MODEL_PROVIDER="custom" \ # Provider type: "custom" for OpenAI-compatible endpoints
|
||||
-v hermes_data:/opt/data \ # Persist memory data to a named volume (survives container restarts)
|
||||
agentmemory/hermes-memory:latest # Official image, supports linux/amd64 and linux/arm64
|
||||
```
|
||||
|
||||
The image supports `linux/amd64` and `linux/arm64`. It ships with Tencent Cloud DeepSeek-V3.2 defaults — to use a different model, pass `MODEL_BASE_URL`, `MODEL_NAME`, and `MODEL_PROVIDER` accordingly.
|
||||
@@ -181,8 +189,8 @@ The image supports `linux/amd64` and `linux/arm64`. It ships with Tencent Cloud
|
||||
Verify:
|
||||
|
||||
```bash
|
||||
curl http://localhost:8420/health # Check Gateway health
|
||||
docker exec -it hermes-memory hermes # Enter Hermes conversation
|
||||
curl http://localhost:8420/health # Check Gateway health endpoint, expect HTTP 200 + {"status":"ok"}
|
||||
docker exec -it hermes-memory hermes # Enter interactive Hermes REPL inside the running container
|
||||
```
|
||||
|
||||
---
|
||||
@@ -196,7 +204,7 @@ docker exec -it hermes-memory hermes # Enter Hermes conversation
|
||||
|
||||
| Field | Default | Description |
|
||||
| :--- | :--- | :--- |
|
||||
| `storeBackend` | `"sqlite"` | Storage backend: `sqlite` / `tcvdb` |
|
||||
| `storeBackend` | `"sqlite"` | Storage backend: `sqlite` |
|
||||
| `recall.strategy` | `"hybrid"` | Recall strategy: `keyword` / `embedding` / `hybrid` (RRF fusion, recommended) |
|
||||
| `recall.maxResults` | `5` | Number of items returned per recall |
|
||||
| `pipeline.everyNConversations` | `5` | Trigger an L1 memory extraction every N turns |
|
||||
@@ -231,7 +239,6 @@ docker exec -it hermes-memory hermes # Enter Hermes conversation
|
||||
For all fields, types, and constraints see [`openclaw.plugin.json`](./openclaw.plugin.json) and [`CONFIGURATION.md`](./CONFIGURATION.md).
|
||||
|
||||
- `embedding.*` — remote embedding service (OpenAI-compatible API)
|
||||
- `tcvdb.*` — full Tencent Cloud Vector Database parameters (incl. HTTPS / self-signed CA)
|
||||
- `llm.*` — standalone LLM mode (bypass OpenClaw's built-in model and run L1/L2/L3 with a designated API)
|
||||
- `offload.backendUrl / backendApiKey` — offload the L1/L1.5/L2/L4 flow to a backend service
|
||||
- `report.*` — metrics reporting
|
||||
@@ -240,42 +247,43 @@ For all fields, types, and constraints see [`openclaw.plugin.json`](./openclaw.p
|
||||
|
||||
---
|
||||
|
||||
## 🤔 Design Highlights
|
||||
## 🤔 Features
|
||||
|
||||
### 1. Macro persona + micro facts: one drill-down mechanism to reduce hallucination
|
||||
### 1. Macro Personas + Micro Facts: A Unified Drill-Down Mechanism
|
||||
|
||||
The biggest risk of compression is "saving tokens but losing the receipts". So TencentDB Agent Memory does not collapse history into an irreversible summary — it keeps a clear path from high-level abstraction back to ground-truth evidence.
|
||||
The biggest risk in compression is saving tokens at the cost of losing the evidence. TencentDB Agent Memory therefore does not collapse history into an irreversible summary — it preserves a clear path from high-level abstraction back to ground-truth evidence.
|
||||
|
||||
| Question type | First look at | Drill down to |
|
||||
| :--- | :--- | :--- |
|
||||
| Daily preferences, voice, long-term goals | L3 Persona / L2 Scene | Hit L1 / L0 when facts are needed |
|
||||
| Specific facts, dates, project details | L1 Memory / L0 Conversation | Widen the time range or use semantic recall when hits are sparse |
|
||||
| Continuing a long-running task | Active MMD task canvas | Check the JSONL when the summary is thin, then read `refs/*.md` for raw text |
|
||||
| Resuming a historical task | Metadata task entry | Open the MMD → find `node_id` → trace `result_ref` |
|
||||
| Daily preferences, voice, long-term goals | L3 Persona / L2 Scenario | L1 Atom / L0 Conversation when facts are needed |
|
||||
| Specific facts, dates, project details | L1 Atom / L0 Conversation | Widen the time range, or fall back to semantic recall when results are sparse |
|
||||
| Continuing a long-running task | Active Mermaid task canvas | Check the JSONL when the summary lacks detail, then `refs/*.md` for raw text |
|
||||
| Resuming a historical task | Metadata task entry | Open the Mermaid canvas → locate the `node_id` → trace `result_ref` |
|
||||
|
||||
The upper layer carries "judgment" and direction; the lower layer carries "evidence" and precision. Short-term compression and long-term memory close into one loop: **foldable and unfoldable; abstract yet auditable.**
|
||||
The upper layers carry judgment and direction; the lower layers carry evidence and precision. Short-term compression and long-term memory form a single closed loop: **collapsible and expandable, abstract yet auditable.**
|
||||
|
||||
### 2. White-box debuggable: memory is not a black-box vector
|
||||
### 2. White-Box Debuggability: Memory Is Not a Black Box
|
||||
|
||||
Many memory systems break here: when recall is wrong, all you see is a list of vector scores, and you cannot tell where things went sideways. TencentDB Agent Memory keeps the key intermediates as readable files:
|
||||
Most memory systems fall short here: when recall is wrong, all you see is a list of vector scores, with no way to tell where things went wrong. TencentDB Agent Memory keeps the key intermediates as readable files:
|
||||
|
||||
- L2 scene blocks are Markdown — open and inspect directly.
|
||||
- L3 personas live in `persona.md` and trace back to the scenes that produced them.
|
||||
- Short-term task canvases are Mermaid — readable to humans and to Agents.
|
||||
- L2 Scenario blocks are plain Markdown — open them and inspect.
|
||||
- L3 Persona lives in `persona.md` and traces back to the Scenarios that produced it.
|
||||
- Short-term task canvases are Mermaid — readable by both humans and Agents.
|
||||
- Raw payloads, summaries, and nodes are linked by `result_ref` and `node_id`.
|
||||
|
||||
Debugging is no longer rummaging through a black-box database — it is walking the chain "persona → scene → memory → raw text" until the issue surfaces.
|
||||
Debugging no longer means probing an opaque database — it becomes a deterministic walk along the chain "Persona → Scenario → Atom → Conversation" until the root cause surfaces.
|
||||
|
||||
### 3. Production-ready engineering: a real plugin, not a demo
|
||||
**All of these layered memory artifacts live under `~/.openclaw/memory-tdai/` — feel free to open the directory and inspect each layer for yourself.**
|
||||
|
||||
### 3. Production-Ready Engineering: Not a Demo
|
||||
|
||||
| Capability | Description |
|
||||
| :--- | :--- |
|
||||
| OpenClaw plugin | Capture, extract, and recall memory automatically once installed |
|
||||
| Hermes Gateway adapter | `TdaiCore + HostAdapter` decoupled from the host framework |
|
||||
| Dual backends | Local `SQLite + sqlite-vec`, or remote `TCVDB` |
|
||||
| Hybrid retrieval | BM25 + vector + RRF — both keyword and semantic recall |
|
||||
| OpenClaw plugin | Automatically captures, extracts, and recalls memory once installed |
|
||||
| Hermes Gateway adapter | `TdaiCore + HostAdapter`, decoupled from the host framework |
|
||||
| Local backend | `SQLite + sqlite-vec`, ready to use out of the box |
|
||||
| Hybrid retrieval | BM25 + vector + RRF — supports both keyword and semantic recall |
|
||||
| Agent tools | `tdai_memory_search` / `tdai_conversation_search` |
|
||||
| Data migration | Historical import, SQLite → TCVDB migration, VDB export |
|
||||
|
||||
---
|
||||
|
||||
@@ -283,7 +291,6 @@ Debugging is no longer rummaging through a black-box database — it is walking
|
||||
|
||||
| Document | Contents |
|
||||
| :--- | :--- |
|
||||
| [`CONFIGURATION.md`](./CONFIGURATION.md) | Full configuration reference, field descriptions, and advanced parameters |
|
||||
| [`scripts/README.memory-tencentdb-ctl.md`](./scripts/README.memory-tencentdb-ctl.md) | Operations & management tooling |
|
||||
| [`CHANGELOG.md`](./CHANGELOG.md) | Release notes and version history |
|
||||
| [`openclaw.plugin.json`](./openclaw.plugin.json) | OpenClaw plugin manifest and configuration schema |
|
||||
@@ -307,9 +314,8 @@ We welcome every kind of contribution — bug reports, feature ideas, doc fixes,
|
||||
- [x] Short-term context compression (Context Offload + Mermaid canvas)
|
||||
- [x] Local SQLite backend and Tencent Cloud Vector Database (TCVDB) backend
|
||||
- [x] OpenClaw plugin and Hermes Gateway integration
|
||||
- [ ] Short-term compression GA release
|
||||
- [ ] Portable memory: cross-Agent / cross-framework / cross-device import, export, and live migration
|
||||
- [ ] More Agent framework adapters
|
||||
- [ ] Automatic Skill generation
|
||||
- [ ] Visual debugging and memory observability dashboard
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user