Eion is a shared memory storage that provides unified knowledge graph capabilities for multi-agent systems, adapting to different AI deployment scenarios from single LLM applications to complex multi-agency systems.
User ↔ LLM Application → Eion (context storage)
Business Logic ↔ AI Agent → Eion (memory + knowledge graph)
Agent A → context → Agent B → context → Agent C
↓ ↓ ↓
Eion ← shared memory & knowledge → Eion
Agent A ──┐
├── shared live context ← Eion (live sync + notifications)
Agent B ──┤
│
Agent C ──┘
Internal Agency: Agent A ↔ Agent B → Eion ← External Agent C (guest)
↑
(controlled access)
- Docker & Docker Compose: For PostgreSQL and Neo4j
- Go 1.21+: For the Eion server
- Python 3.13+: For knowledge extraction services
# Start all required databases (PostgreSQL + Neo4j)
docker-compose up -d
# Verify databases are ready
docker-compose ps
# Enable the pgvector extension (required for embeddings)
docker exec eion_postgres psql -U eion -d eion -c "CREATE EXTENSION IF NOT EXISTS vector;"
# Run main orchestrator migrations (includes sessions table)
docker exec -i eion_postgres psql -U eion -d eion < database_setup.sql
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Build the server
go build -o eion-server ./cmd/eion-server
# Run the server
./eion-server
# Check server health
curl http://localhost:8080/health
# Expected response:
# {"status":"healthy","timestamp":"2024-12-19T10:30:00Z","services":{"database":"healthy","embedding":"healthy"}}
Eion provides a unified API that combines:
- Memory Storage: PostgreSQL with pgvector for conversation history and semantic search
- Knowledge Graph: Neo4j with in-house extraction for temporal knowledge storage
- Real Embeddings: all-MiniLM-L6-v2 model (384 dimensions) using sentence-transformers - production-ready embeddings
- Knowledge Extraction: In-house extraction service for entity/relationship extraction
Create eion.yaml (optional - defaults work out of the box):
common:
http:
host: "0.0.0.0"
port: 8080
postgres:
user: "eion"
password: "eion_pass"
host: "localhost"
port: 5432
database: "eion"
# Neo4j Configuration (Required)
numa:
neo4j:
uri: "bolt://localhost:7687"
username: "neo4j"
password: "password"
database: "neo4j"
For production deployments, you may want to customize the database settings in docker-compose.yml or create your own configuration.
Or use the automated setup script:
# One-command setup (includes database startup, Python env, and server build)
./setup.sh
# Then start the server
./eion-server