'use client' import Link from 'next/link' import { ArrowLeft } from 'lucide-react' import { motion } from 'framer-motion' const skillCategories = [ { title: 'Core Runtime', skills: ['Rust', 'actix-web', 'tokio', 'serde'], }, { title: 'Storage & Search', skills: ['PostgreSQL (CloudNativePG)', 'pgvector (HNSW)', 'Cosine Similarity', 'BFS Graph Traversal'], }, { title: 'LLM & Embeddings', skills: ['Ollama (ornith:35b)', 'TEI (nomic-embed)', '768-dim Embeddings'], }, { title: 'Identity & Security', skills: ['Authentik OIDC', 'JWT Verification', 'SOPS Encrypted Secrets', 'RBAC'], }, { title: 'Data Pipeline', skills: ['Fixed-Window Chunking', 'Entity Extraction', 'Fact Extraction', 'Reflection Filtering'], }, { title: 'Infrastructure', skills: ['Kubernetes', 'ArgoCD', 'Kustomize', 'cert-manager'], }, ] const sectionVariants = { hidden: { opacity: 0, y: 40 }, visible: { opacity: 1, y: 0, transition: { duration: 0.6 } }, } export default function PoimenMemoryPage() { return (
Back to Projects {/* Hero */}
Poimen (Ποιμήν) · Memory System

Teaching the Shepherd to Remember

A Graph-RAG memory system that gives AI agents long-term recall, semantic search, and self-compacting knowledge.

Agents forget. Every conversation starts from zero unless you build memory into the system. Poimen Memory is a Rust-based Graph-RAG service that ingests conversations, extracts entities and relationships via LLM, stores them in a temporal knowledge graph backed by pgvector, and serves them back through three-tier retrieval — signature match at 50ms, graph-boosted hybrid search, and Obsidian fallback. The cache self-compacts: stale embeddings are evicted, frequently-accessed chunks are promoted, and the graph auto-reconciles on every write.

{/* Section 1: Architecture Overview */}
System Design

Architecture Overview

The memory system runs as a Rust microservice inside the Kubernetes poimen namespace. An actix-web API server handles HTTP requests, authenticates via Authentik OIDC JWT, and routes to either the search path (direct pgvector query) or the ingest path (async pipeline through an internal queue → LLM extraction → graph persistence). All data lives in a CloudNativePG cluster with HNSW indexes for vector similarity.

{/* Architecture Diagram */}

🏗️ System Architecture