Thank you for your interest in the TencentDB Agent Memory project! We welcome all kinds of contributions from the community — whether it's reporting issues, improving documentation, or submitting code.
- Report Bugs: Describe the issue in GitHub Issues and provide steps to reproduce.
- Request Features: Describe your use case and proposed solution in Issues.
- Improve Documentation: Fix typos, clarify explanations, or add examples.
- Submit Code: Fix bugs, implement new features, or optimize performance.
- Node.js >= 22.16.0
- npm or pnpm
- OpenClaw >= 2026.3.13
This project requires no build step. Node.js 22.16+ natively supports TypeScript type stripping, and OpenClaw directly loads .ts source files at runtime.
# Clone the repository
git clone https://github.com/Tencent/TencentDB-Agent-Memory.git
cd TencentDB-Agent-Memory
# Install dependencies
npm install
# Register the current directory as a local plugin in OpenClaw
openclaw plugins install --link .install --link registers the current directory as a local plugin in OpenClaw. After modifying source code, simply restart the Gateway for changes to take effect.
├── index.ts # Plugin entry point
├── openclaw.plugin.json # OpenClaw plugin manifest
├── src/
│ ├── config.ts # Configuration management
│ ├── conversation/ # L0 Conversation layer — raw dialogue capture
│ ├── record/ # L1 Record layer — structured information extraction
│ ├── scene/ # L2 Scene layer — scene summarization & aggregation
│ ├── persona/ # L3 Persona layer — user profile construction
│ ├── store/ # Storage layer — SQLite / vector database
│ ├── hooks/ # OpenClaw hooks integration
│ ├── prompts/ # LLM prompt templates
│ ├── tools/ # Tool functions
│ ├── utils/ # General utilities
│ └── report/ # Health check & reporting
├── hermes-plugin/ # Hermes agent plugin adapter
├── scripts/ # Helper scripts (Gateway control, etc.)
├── CHANGELOG.md # Changelog
└── README.md # Project documentation
- Fork this repository and create your feature branch from
main. - Make changes — keep each commit focused and atomic.
- Test — ensure existing functionality is not affected.
- Update documentation — if changes affect user-facing behavior, update the README or related docs.
- Open a PR — describe the motivation, changes, and link related Issues.
| Branch | Purpose |
|---|---|
main |
Default branch, PR target |
Use the following format for commit messages:
<type>(<scope>): <short summary>
<detailed description (optional)>
Closes #123
Signed-off-by: Your Name <your-email@example.com>
Aligned with the PR template Change Types:
| Type | Description | PR Change Type |
|---|---|---|
fix |
Bug fix | Bug fix |
feat |
New feature | New feature |
docs |
Documentation update | Documentation update |
perf |
Performance optimization | Code optimization |
refactor |
Code refactoring (no behavior change) | Code optimization |
test |
Test related | — |
chore |
Build / tooling / dependency changes | — |
store, hooks, persona, scene, record, conversation, gateway, hermes
- TypeScript: Follow the existing code style in the project for consistency.
- Naming: Use meaningful variable and function names, prefer English.
- Comments: Add comments at critical logic points explaining "why" rather than "what".
- Import order: Node.js built-in modules → third-party dependencies → internal project modules.
All commits must include a Signed-off-by line, indicating your agreement to the Developer Certificate of Origin:
git commit -s -m "feat(store): add batch insert support"Commits without a valid Signed-off-by will not be merged.
If you discover a security vulnerability, please report it via the email agentmemory@tencent.com and we will address it promptly.
By submitting a contribution, you agree that your code will be licensed under the MIT License.
Thank you again for contributing! If you have any questions, feel free to discuss them in Issues.