Development¶
Running the servers locally¶
Start by creating a virtual environment and installing dependencies with uv:
Use Docker Compose from the repository root:
# Development mode (API + Redis)
docker compose up api redis
# Production-like mode (API + MCP + worker + Redis)
docker compose up api task-worker redis mcp
Running Tests¶
Run API-key-dependent tests as well:
Linting and formatting¶
For the full local check used in CI, run:
make verify requires OPENAI_API_KEY because it runs the API-key-dependent test suite.
Contributing¶
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Releasing Agent Memory Server¶
Releases are triggered manually via GitHub Actions workflow dispatch.
Steps to Release¶
- Update the version in
agent_memory_server/__init__.py - Commit and push the version change to main
- Go to GitHub Actions → "Release Docker Images" workflow
- Click "Run workflow"
- Choose options:
- Version: Leave empty to use version from
__init__.py, or specify a custom version - Push latest tag: Check to also tag as
latest(recommended for stable releases) - Click "Run workflow"
This will: - Build Docker images for linux/amd64 and linux/arm64 - Push to Docker Hub: redislabs/agent-memory-server:<version> - Push to GitHub Container Registry: ghcr.io/redis/agent-memory-server:<version> - Optionally tag as latest on both registries - Create a GitHub release with the version tag
Docker Hub: https://hub.docker.com/r/redislabs/agent-memory-server
Releasing Agent Memory Client¶
For the client, the workflow is different. First, merge your PR to main. Then tag a commit (from main) and push to a tag based on the format client/vx.y.z-test or client/vx.y.z:
-
Test PyPI: Use
-testin the version tag. For example: -
Production PyPI: Do not include
-testin the version tag: ``` $ git tag client/v0.9.0b2 $ git push client/v0.9.0b2