How to Configure the Memory Panel API for Custom Integrations
Configure the Memory Panel API by registering your instance in metadata-instances.json, exposing it via the METADATA_INSTANCES_CONFIG environment variable, and authenticating requests with the x-tdai-service-id and x-tdai-user-key headers.
The Memory Panel serves as the front-end gateway for the TencentDB-Agent-Memory repository, exposing a unified REST-style RPC API that external tools, CI pipelines, and custom bots can consume. To integrate your application with this team-memory service, you must properly configure the instance registry and authentication headers as implemented in the source code.
Register Your Memory Instance
All external integrations begin with the instance registry file. The Memory Panel expects a JSON configuration that maps instance IDs to their respective gateway endpoints and API keys.
Create your configuration from the provided template:
cp MemoryPanel/config/metadata-instances.example.json MemoryPanel/config/metadata-instances.json
Edit MemoryPanel/config/metadata-instances.json to include your instance ID, gateway endpoint, and API key (the bearer token issued by the kernel). Optionally, add a proxy_endpoint if your architecture routes traffic through a separate proxy service.
According to the repository structure, this file lives at MemoryPanel/config/metadata-instances.json and is explicitly ignored by Git to prevent credential leakage. Detailed field descriptions are available in MemoryPanel/config/metadata-instances.README.md.
Configure Environment Variables
The Panel runtime, defined in MemoryPanel/src/panel/config/panel-config.ts, locates the registry file via the METADATA_INSTANCES_CONFIG environment variable.
Set the variable to point to your JSON file:
export METADATA_INSTANCES_CONFIG=/app/panel/config/metadata-instances.json
When running in Docker, mount the file as a read-only volume:
docker run -d \
-p 8125:8125 \
-e METADATA_INSTANCES_CONFIG=/app/config/metadata-instances.json \
-v "$(pwd)/config/metadata-instances.json:/app/config/metadata-instances.json:ro" \
tencentcloud/memory-panel:latest
The deployment scripts in deploy/panel-knowledge-combined/start-combined.sh and MemoryPanel/docker/local/Dockerfile.local reference this variable during service initialization.
Set Up Networking and Proxy Settings
If the kernel gateway requires proxy access, you have two configuration options. You can add a proxy_endpoint field directly in metadata-instances.json, or set the REMOTE_INSTANCE_PROXY_URL environment variable. When the JSON configuration contains a proxy endpoint, the environment variable is ignored.
Authenticate API Requests
All business endpoints (except health checks) require specific headers for authentication and routing. According to MemoryPanel/panel-api-doc.md, every POST request to /api/v1/... must include:
x-tdai-service-id— Theinstance_idvalue from yourmetadata-instances.jsonfilex-tdai-user-key— A user-level API key distinct from the kernelapi_keyx-request-id— Optional tracing identifierContent-Type: application/json
The base URL for all API calls follows the pattern http://<panel-host>:8125/api/v1.
Making Your First API Call
Once configured, you can interact with team-memory services. For example, to retrieve a team's chat-memory assets:
curl -X POST http://localhost:8125/api/v1/chat-memory/team-assets \
-H "Content-Type: application/json" \
-H "x-tdai-service-id: inst_1" \
-H "x-tdai-user-key: <user-key>" \
-d '{"team_id":"t_1"}'
For TypeScript applications, use the Memory Core SDK:
import { MemoryPanelClient } from '@tencentcloud/memory-core';
const client = new MemoryPanelClient({
baseUrl: 'http://localhost:8125/api/v1',
serviceId: 'inst_1',
userKey: process.env.TDIA_USER_KEY!,
});
async function listTeamMemories(teamId: string) {
const resp = await client.post('chat-memory/team-assets', { team_id: teamId });
console.log(resp.data);
}
All responses follow a standard envelope format containing code, message, request_id, and data fields as documented in MemoryPanel/panel-api-doc.md.
Verify Connectivity
Before deploying integrations, confirm the Panel is healthy:
curl http://localhost:8125/health
A successful response returns {"status":"ok"}. If the health check passes but API calls fail, verify that METADATA_INSTANCES_CONFIG points to valid JSON and that the api_key matches the kernel gateway's issued token.
Summary
- Instance registration requires copying
metadata-instances.example.jsontometadata-instances.jsonand populating theinstance_id,gateway_endpoint, andapi_keyfields. - Runtime configuration depends on the
METADATA_INSTANCES_CONFIGenvironment variable pointing to your registry file, as loaded byMemoryPanel/src/panel/config/panel-config.ts. - Proxy support can be set via the JSON file's
proxy_endpointfield or theREMOTE_INSTANCE_PROXY_URLenvironment variable. - Authentication requires the
x-tdai-service-idandx-tdai-user-keyheaders on all POST requests to/api/v1/*endpoints. - Health verification is available via the
GET /healthendpoint on port 8125.
Frequently Asked Questions
What file format does the Memory Panel expect for instance configuration?
The Panel expects a JSON file matching the schema defined in MemoryPanel/config/metadata-instances.example.json. This file must contain an array of instance objects with instance_id, gateway_endpoint, and api_key properties. The file path must be exported via the METADATA_INSTANCES_CONFIG environment variable before starting the service.
How do I secure the API keys when deploying with Docker?
Store the metadata-instances.json file outside version control (it is already listed in .gitignore) and mount it as a read-only volume into the container. Use the syntax -v /host/path/metadata-instances.json:/app/config/metadata-instances.json:ro to prevent the container from modifying the credentials at runtime.
Why am I receiving authentication errors despite a healthy Panel?
Authentication errors typically indicate a mismatch between the x-tdai-service-id header and the instance_id in your JSON file, or an invalid x-tdai-user-key. Verify that the user key is active and that the api_key in your configuration matches the bearer token issued by the kernel gateway. Check the METADATA_INSTANCES_CONFIG path if the Panel cannot locate the registry file.
Can I use environment variables instead of the JSON configuration file?
You must use the JSON file for instance registration, but you can configure proxy settings through the REMOTE_INSTANCE_PROXY_URL environment variable as a fallback. However, if proxy_endpoint is defined in the JSON file, it takes precedence over the environment variable according to the logic in deploy/panel-knowledge-combined/README.md.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →