$ show eidolon-ai/eidolon
Eidolon is an open-source framework for building, deploying, and managing multi-agent AI applications. It provides a Python SDK with abstractions for LLM integration (OpenAI, Anthropic, Mistral, Ollama, Azure), retrieval-augmented generation (RAG) pipelines, memory systems (vector stores, symbolic memory, file storage), and document processing (loaders, parsers, splitters). Agents are configured declaratively via YAML and can communicate with each other, use tools, and stream responses. The framework includes a Kubernetes operator for production deployment, a web UI built with Next.js and React for chatbot interaction and developer tooling, and a TypeScript client library. It also features built-in agent types like SimpleAgent, RetrieverAgent, SQLAgent, and a Tree-of-Thought agent, along with logic units for web search, browser automation, and API integration.
The LLM identified 5 files worth highlighting for reuse:
Specable is a base class that uses Pydantic models for typed configuration (spec). It allows components to be instantiated with a spec from YAML or code, and supports lazy dependency injection via AnnotatedReference. This pattern is reusable for any configurable component system and decouples configuration from implementation.
This directory contains AST generators for Python, JavaScript, and COBOL, with a common base class. These parsers convert source code into structured documents (e.g., for RAG on codebases). The pattern of language-specific AST parsing with a shared interface is highly reusable for any code analysis tool.
ToolBuilder provides decorators (@tool, @dynamic_contract) to expose Python functions as LLM-callable tools with automatic OpenAPI schema generation from type hints. This pattern separates tool definition from agent logic and is reusable for any framework that needs to convert functions into tool descriptions.
A test utility that wraps pytest-recording to record and replay LLM API calls. It includes a custom path translator and stable process ID generator for reproducible tests. This pattern is essential for cost-effective and deterministic testing of LLM-integrated applications and can be extracted for any project using VCR-like recording.
Implements the LLMUnit interface for OpenAI models, handling streaming, tool calls, JSON mode, and error translation. The clean separation between the LLMUnit abstraction and the specific provider implementation allows easy swapping of LLM backends. This pattern is reusable for any multi-LLM framework.