Thank you for your interest in contributing to AgenticMemory! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/agentic-memory.git - Create a feature branch:
git checkout -b my-feature - Make your changes
- Run the tests (see below)
- Commit and push
- Open a pull request
This is a Cargo workspace monorepo. All Rust crates are under crates/.
# Build everything (core + MCP server)
cargo build
# Run all tests (core + MCP + bridge)
cargo test --workspace
# Core library only
cargo test -p agentic-memory
cargo bench -p agentic-memory
# MCP server only
cargo test -p agentic-memory-mcp
# Bridge integration tests
cargo test -p agentic-memory-bridge-tests
# Run the core CLI
cargo run -p agentic-memory -- create test.amem
# Run the MCP server
cargo run -p agentic-memory-mcp -- serve --memory test.amemcd python/
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -vcd installer/
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -vFile an issue with:
- Steps to reproduce
- Expected behavior
- Actual behavior
- System info (OS, Python version, Rust version)
- Create a new file in
python/src/agentic_memory/integrations/ - Implement the
LLMProviderinterface - Add tests in
python/tests/ - Update
docs/integration-guide.md
- Create a new tool handler in
crates/agentic-memory-mcp/src/tools/ - Register it in
crates/agentic-memory-mcp/src/tools/registry.rs - Add tests in
crates/agentic-memory-mcp/tests/ - Update
crates/agentic-memory-mcp/README.md
- Add a new example in
examples/ - Ensure it runs without errors
- Add a docstring explaining what it demonstrates
- Update
examples/README.md
All docs are in docs/. Fix typos, add examples, clarify explanations — all welcome.
- Rust: Follow standard Rust conventions. Run
cargo clippyandcargo fmt. - Python: Follow PEP 8. Use type hints. Run
mypyfor type checking. - Tests: Every feature needs tests. We maintain 575+ tests across the stack (179 Rust core, 135 MCP server + bridge, 104 Python SDK, 97 agent, 21 cross-provider, 39 installer).
- Documentation: Update docs when changing public APIs.
Use clear, descriptive commit messages:
Add: new OllamaProvider integrationFix: memory leak in graph traversalUpdate: improve error messages for CLIDocs: add LangChain integration guide
- Keep PRs focused — one feature or fix per PR
- Include tests for new functionality
- Update documentation if needed
- Ensure all tests pass before submitting
- Write a clear PR description
By contributing, you agree that your contributions will be licensed under the MIT License.