Show HN: Eion – a shared memory system for AI agents

4 hours ago 2

Eion Logo Eion Logo

Connecting AI agents through shared memory and collaborative intelligence.

Version  AGPL v3

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)

3. Agency (Multi-Agent) Systems

Agent A → context → Agent B → context → Agent C ↓ ↓ ↓ Eion ← shared memory & knowledge → Eion

3b. Concurrent Live Agency (WIP)

Agent A ──┐ ├── shared live context ← Eion (live sync + notifications) Agent B ──┤ │ Agent C ──┘

4. External Guest Agent Access

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

2. Start Database Services

# Start all required databases (PostgreSQL + Neo4j) docker-compose up -d # Verify databases are ready docker-compose ps

3. Setup Database Extensions and Tables

# 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

4. Install Python Dependencies

# Create virtual environment python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies pip install -r requirements.txt

5. Build and Run Eion Server

# 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

Eion Logo Eion Logo

Read Entire Article