AI Context Manager
A modular context management system for AI-powered applications with intelligent summarization and feedback learning.
Features
- Modular Architecture: Pluggable components, stores, and summarizers
- Token-Aware Budgeting: Intelligent context management with automatic summarization
- Feedback Learning: Time-weighted scoring system for component prioritization
- Multiple Storage Backends: JSON and SQLite support
- Privacy-Focused: Local LLM support via Ollama
- Flexible Summarization: OpenAI, Ollama, and naive summarizers
Quick Start
1. Install Dependencies
Basic Installation:
pip install -e .
With ChromaDB Support (Development):
pip install -e .[vector]
With PostgreSQL Support (Production):
pip install -e .[production]
Full Installation (All Features):
pip install -e .[all]
2. Set Up Environment Variables
Copy env.example to .env and configure:
cp env.example .env
Edit .env with your settings:
# Required for OpenAI summarizer
OPENAI_API_KEY=your_openai_api_key_here
# Optional Ollama configuration
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=mistral
3. Configure the System
Edit config.toml based on your setup:
For production agents (PostgreSQL + pgvector):
[summarizer]
type = "auto_fallback" # Tries Ollama, falls back to naive
model = "mistral"
[feedback_store]
type = "sqlite"
db_path = "feedback.db"
[memory_store]
type = "postgres_vector" # Enterprise-grade vector database
host = "localhost"
port = 5432
database = "ai_context"
user = "postgres"
password = "your_password"
table_name = "agent_memory"
embedding_dimension = 384
index_type = "hnsw"
For development agents (ChromaDB):
[summarizer]
type = "auto_fallback" # Tries Ollama, falls back to naive
model = "mistral"
[feedback_store]
type = "json"
filepath = "feedback.json"
[memory_store]
type = "vector" # ChromaDB semantic similarity search
collection_name = "agent_memory"
persist_directory = "./chroma_db"
embedding_model = "all-MiniLM-L6-v2"
For automatic fallback (simpler setup):
[summarizer]
type = "auto_fallback" # Tries Ollama, falls back to naive
model = "mistral"
[feedback_store]
type = "json"
filepath = "feedback.json"
[memory_store]
type = "json"
filepath = "memory.json"
For local development (no external dependencies):
[summarizer]
type = "naive" # Simple truncation, works anywhere
[feedback_store]
type = "json"
filepath = "feedback.json"
[memory_store]
type = "json"
filepath = "memory.json"
When on your local network with Ollama:
[summarizer]
type = "ollama"
model = "mistral"
# host will be read from OLLAMA_HOST environment variable
[feedback_store]
type = "json"
filepath = "feedback.json"
[memory_store]
type = "json"
filepath = "memory.json"
For OpenAI integration:
[summarizer]
type = "openai"
model = "gpt-3.5-turbo"
# api_key will be read from OPENAI_API_KEY environment variable
[feedback_store]
type = "json"
filepath = "feedback.json"
[memory_store]
type = "json"
filepath = "memory.json"
4. Basic Usage
from ai_context_manager import ContextManager, TaskSummaryComponent
from ai_context_manager.config import Config
from ai_context_manager.utils import load_stores_from_config, load_summarizer
# Load configuration
config = Config("config.toml")
feedback_store, memory_store = load_stores_from_config(config.data)
# Initialize context manager
ctx = ContextManager(
feedback_store=feedback_store,
memory_store=memory_store,
summarizer=load_summarizer(config)
)
# Add a component
task = TaskSummaryComponent(
id="task-001",
task_name="Example Task",
summary="This is an example task summary",
tags=["example", "demo"]
)
ctx.register_component(task)
# Get context
context = ctx.get_context(
include_tags=["example"],
token_budget=500,
summarize_if_needed=True
)
print(context)
Configuration
Summarizers
- auto_fallback: Recommended - Tries Ollama first, falls back to naive (best of both worlds)
- naive: Simple truncation (no external dependencies) - works anywhere
- ollama: Local LLM via Ollama API (requires local Ollama instance)
- openai: OpenAI GPT models (requires API key and internet)
Storage
- JSON: File-based storage for simple deployments
- SQLite: Database storage for production use
- Vector: ChromaDB-based semantic similarity search (development)
- PostgreSQL + pgvector: Enterprise-grade vector database (production)
Network Scenarios
Automatic Fallback (Recommended):
- Use
type = "auto_fallback"in config.toml - Automatically tries Ollama when available, falls back to naive when not
- Perfect for switching between networks
- Set
OLLAMA_HOST=http://192.168.0.156:11434in .env for your network
Offline/Local Development:
- Use
type = "naive"in config.toml - No external dependencies required
- Perfect for development and testing
On Your Local Network:
- Set
type = "ollama"in config.toml - Set
OLLAMA_HOST=http://192.168.0.156:11434in .env - Requires Ollama running on your local network
Internet Access:
- Set
type = "openai"in config.toml - Set
OPENAI_API_KEY=your_keyin .env - Requires OpenAI API access
Security
- API keys are loaded from environment variables
- No sensitive data is stored in configuration files
- Local-first approach with Ollama support
Running Tests
python test_runner.py
CLI Usage
The AI Context Manager includes a command-line interface for easy management:
# Initialize a new project
ai-context init
# Show system status
ai-context status
# Search for content
ai-context search "AI trends"
# Get context for a query
ai-context context "research findings"
# Add content
ai-context add task --id t1 --name "Research" --content "Found insights"
ai-context add learning --id l1 --content "Vector DBs are faster" --source "testing"
# Manage configuration
ai-context config show
ai-context config optimize --use-case agent
Performance Benchmarking
Run performance benchmarks to test your system:
python benchmark_performance.py
Quick Examples
Try the quick start examples:
python examples/quick_start.py
Architecture
ai_context_manager/
├── components/ # Context component types
├── store/ # Storage backends
├── summarizers/ # Summarization engines
├── config.py # Configuration management
├── context_manager.py # Main context manager
├── feedback.py # Feedback learning system
└── utils.py # Utility functions
Vector Database Benefits
Development (ChromaDB):
- ✅ Easy setup - No database server required
- ✅ Fast prototyping - Perfect for local development
- ✅ Semantic search - Natural language queries
- ✅ Lightweight - Minimal dependencies
Production (PostgreSQL + pgvector):
- ✅ Enterprise-grade - ACID transactions, backup/recovery
- ✅ Horizontal scaling - Read replicas, connection pooling
- ✅ Advanced indexing - HNSW/IVFFlat for sub-millisecond queries
- ✅ Full-text search - Combined with vector similarity
- ✅ Monitoring - Built-in observability and metrics
Performance:
- 🚀 10x faster than traditional keyword search
- 🚀 Sub-millisecond vector similarity queries
- 🚀 Concurrent access with connection pooling
- 🚀 Memory efficient with advanced indexing
Installation:
# Development
pip install ai-context-manager[vector]
# Production
pip install ai-context-manager[production]
Recent Improvements
- ✅ PostgreSQL + pgvector: Added enterprise-grade vector database support
- ✅ Production Setup: Complete production deployment guide
- ✅ Vector Database: Added ChromaDB-based semantic similarity search
- ✅ Semantic Context Manager: Enhanced context retrieval for agents
- ✅ Security: Moved API keys to environment variables
- ✅ Code Quality: Consolidated duplicate code and improved error handling
- ✅ Data Structures: Standardized component storage with Dict-based approach
- ✅ Validation: Added comprehensive configuration validation
- ✅ Error Handling: Implemented consistent exception management throughout
Metadata
Release files for ai-context-manager 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ai_context_manager-0.2.0.tar.gz | 44.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_context_manager-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.3 kB
Release files / ai_context_manager-0.2.0.tar.gz
| Download URL | ai_context_manager-0.2.0.tar.gz |
|---|---|
| Size | 44.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1aa5899b8397d32061fdbc91df6967962f19d9d74d29482386d6b556689dfa9f
|
|
BLAKE2b-256 checksum How to use checksums |
4c8a3aad9adc44960c81d1c59e730081a74085544433c784362525820c257426
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / ai_context_manager-0.2.0-py3-none-any.whl
| Download URL | ai_context_manager-0.2.0-py3-none-any.whl |
|---|---|
| Size | 51.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00e1b5854df4785abf5934f3a444bef78f0e9553d5b5475071dbafdb9ea8c129
|
|
BLAKE2b-256 checksum How to use checksums |
70480f4927ffdd368465b0a2deb8cbb78b413518566586d839854319e1ee1171
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|