The Agno Memory Module (AMM) System is a powerful framework for building AI agents with fixed knowledge and adaptive memory capabilities. It leverages Google's Generative AI (Gemini) models to create intelligent agents that can access knowledge sources and learn from interactions.
- Fixed Knowledge: Store and retrieve structured knowledge using vector embeddings
- PDF Knowledge Sources: Support for text extraction and chunking from PDF documents
- Adaptive Memory: Maintain conversation history and learn from interactions
- MCP Server: Deploy as a FastAPI-based microservice
- Web GUI: Built with Streamlit for easy interaction
- Key Management: Secure API key management for MCP server
- MCP Server Manager: Launch and manage MCP servers directly from the GUI
- CLI Tools: Command-line tools for server and knowledge management
- Modular Design: Easily extensible architecture for custom components
- GitHub-Ready Packaging: Modular components designed for easy integration
- Python 3.9+
- pip (Python package manager)
- Poetry (recommended)
- Google Cloud account with Gemini API access
-
Clone the repository
git clone https://github.com/your-username/agno-memory-module.git cd agno-memory-module -
Set up a virtual environment (recommended)
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
# Using pip pip install -r requirements.txt # Or using Poetry (recommended) poetry install
-
Set up environment variables
cp .env.example .env # Edit .env with your API keys and configuration -
Initialize the database
python -m agno.cli db-init
-
Run tests
# Run MCP component tests ./run_mcp_tests.py # Run all tests python -m unittest discover tests
Our MCP server implementation includes:
- Standalone Operation: All required modules included in the build directory
- Import Fix Script: Automatically fixes import issues in builds
- CLI Tool: Comprehensive command-line interface for server management
- GUI Integration: Powerful GUI for managing MCP servers from the Test tab
- Network Binding: Binds to all interfaces by default (0.0.0.0)
- Interactive Mode: Command-line interface with menu-driven operation
- Comprehensive Tests: Unit tests for all MCP server components
-
Start the AMM Server
# Development server python -m agno.server # Or with hot reload uvicorn agno.server:app --reload
-
Access the Web UI
streamlit run agno/gui/app.py
Then open http://localhost:8501 in your browser.
from agno import AMMEngine
from agno.models import AMMDesign
# Initialize the engine
design = AMMDesign(
name="my_agent",
description="A sample AMM agent"
)
engine = AMMEngine(design)
# Process a query
response = engine.process_query("What is the capital of France?")
print(response)# Start an interactive session
python -m agno.cli chat
# Process a single query
python -m agno.cli query "Your question here"To create and manage API keys for your MCP servers:
# Create a new API key and update your .env file
python mcp_key_manager/cli.py create "Production Key" --description "Key for production use" --use-in-env
# List all your API keys
python mcp_key_manager/cli.py list
# View details of a specific key
python mcp_key_manager/cli.py view <key_id>The AMM project includes comprehensive tests for all components:
# Run MCP component tests
./run_mcp_tests.py
# Run with verbose output
./run_mcp_tests.py --verbose
# Run specific test modules
python -m unittest tests/unit/test_mcp_cli.py
# Run all tests in the project
python -m unittest discover testsSee the Running Tests Guide for more detailed instructions.
agno-memory-module/
├── agno/ # Core AMM package
│ ├── core/ # Core functionality
│ ├── models/ # Data models
│ ├── utils/ # Utility functions
│ ├── cli/ # Command-line interface
│ └── gui/ # Web interface
├── docs/ # Documentation
├── tests/ # Test suite
├── .env.example # Example environment variables
├── pyproject.toml # Project metadata and dependencies
└── README.md # This file
For more detailed information, refer to the following guides:
- Deployment Guide - How to deploy AMM in production
- Architecture Guide - System architecture overview
- Memory Components - Working with fixed and adaptive memory
- PDF Knowledge Guide - Working with PDF knowledge sources
- MCP Server Guide - Running AMM as an MCP server
- Troubleshooting - Common issues and solutions
- MCP Server Testing - Testing MCP servers with the GUI
- Running Tests - Guide to running all tests
- Testing MCP Components - Unit testing the MCP components
Contributions are welcome! Please read our Contributing Guidelines for details on how to submit pull requests and report issues.
This project is licensed under the MIT License - see the LICENSE file for details.
- Google's Gemini API for powerful language models
- The open-source community for valuable libraries and tools
- All contributors who have helped improve this project