Start by creating a virtual environment and installing dependencies with uv:
# Create and activate a virtual environment
uv venv
source .venv/bin/activate
# Install dependencies (including optional groups used in development)
uv sync --all-extrasUse 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 mcpuv run pytestRun API-key-dependent tests as well:
uv run pytest --run-api-testsuv run ruff check
uv run ruff format- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Releases are triggered manually via GitHub Actions workflow dispatch.
- 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)
- Version: Leave empty to use version from
- 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
lateston both registries - Create a GitHub release with the version tag
Docker Hub: https://hub.docker.com/r/redislabs/agent-memory-server
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:
$ git tag client/v0.9.0-b2-test
$ git push client/v0.9.0-b2-test
- Production PyPI: Do not include
-testin the version tag:
$ git tag client/v0.9.0b2
$ git push client/v0.9.0b2