eidolon
首个 AI Agent 服务器框架,让每个 Agent 本身就是 HTTP 服务,原生支持 Docker Compose 一键部署和 Kubernetes 生产级运维
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个 AI Agent 服务器框架,让每个 Agent 本身就是 HTTP 服务,原生支持 Docker Compose 一键部署和 Kubernetes 生产级运维
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Eidolon 项目概览
2023 年,随着 ChatGPT 引爆大模型浪潮,无数开发者兴奋地开始用 LangChain、LlamaIndex 构建自己的 AI Agent。然而,当他们试图把这些"玩具级"原型推上生产线时,一个残酷的现实扑面而来:Agent 代码和 HTTP 服务器纠缠在一起、工具注册散落各处、多 Agent 协作时接口对接像噩梦一样混乱。"Demo 跑得通,上了生产就崩"——这几乎是当时所有 AI Agent 项目的共同宿命。
正是在这样的背景下,Eidolon(意为"幻影")诞生了。它的核心命题非常明确:让每个 Agent 本身就是一个 HTTP 服务,天然具备网络通信能力,原生支持 Docker/Kubernetes 部署。开发者不需要额外写任何 Web 代码,定义好 Agent 的 LogicUnit(逻辑单元)和工具,它就自动成为一个可被调用、可被编排的微服务。
图2:Eidolon 分层架构 — Agent 服务层、AgentOS 内核层与 Machine 资源层
Eidolon 的设计哲学可以用一句话概括——"Agents are Services"。传统框架中,Agent 是一个 Python 类,你需要自己包装成 FastAPI 服务;而在 Eidolon 中,Agent 天生就是一个带 OpenAPI Schema 的 HTTP 端点,其他 Agent 可以像调用 REST API 一样直接与它对话,无需任何桥接代码。
这一设计带来的实际好处是:多 Agent 协作变得极为自然。当 Agent A 需要调用 Agent B 的能力时,它只需要根据 B 暴露的 OpenAPI Schema 动态生成调用代码——而不是写一堆硬编码的函数引用。Eidolon 的架构图中可以清晰看到这个设计思路:
图3:Agent 内部架构 — FnHandler 注册机制与 Action/Program 双入口设计
Eidolon 的核心注册机制由 fn_handler.py 中的 FnHandler 数据类和 register_handler 装饰器实现。开发者通过 @register_program 和 @register_action 装饰器声明式地定义 Agent 的能力:
@register_program(title="文档问答", description="基于 RAG 的文档问答能力")
async def doc_qa(self, question: str) -> str:
...
@register_action("initialized", "running", name="查询状态")
async def get_status(self) -> str:
...
装饰器会自动从函数签名中提取输入输出类型,通过 Pydantic 动态生成 API Schema,无需手动编写 OpenAPI 文档。这个机制确保了每个 Agent 的能力可以被子系统自动发现和调用,实现了真正的接口驱动设计。
agent_os.py 中定义的 AgentOS 类为所有 Agent 提供了一组静态访问接口,类似于 Actor 模型中的上下文对象。它统一管理五大核心能力:
这种统一抽象意味着,Agent 的代码不需要关心"记忆数据存在哪里",只需要调用 AgentOS.similarity_memory.search() 即可完成向量检索,非常适合 RAG 场景。
kernel.py 中的 AgentOSKernel 是整个框架的中央调度器。它负责:
builtins/resources 目录,加载所有内置 LogicUnitkind → name → Resource 的三级资源注册表fail_on_agent_start_error)这套机制让 Eidolon 具备了真正的插件化能力——你可以新增一个 Python 模块,重启服务,新工具即可用,无需修改核心代码。
Eidolon 采用多语言 Monorepo 设计,包含三个相对独立的服务:
位于 sdk/ 目录,用 Poetry 管理依赖,基于 FastAPI 构建 HTTP 服务器。核心依赖包括:
eidolon-server 命令行工具启动服务,默认监听 8080 端口,配置文件通过 resources 目录下的 YAML 定义。
位于 webui/ 目录,基于 Next.js + TypeScript 构建,提供:
位于 k8s-operator/ 目录,实现了三个 Kubernetes CRD:
这是一个用 Kubebuilder 框架生成的标准 K8s Operator,遵循 Operator Pattern,支持 OLM(Operator Lifecycle Manager)安装。
Eidolon 提供了开箱即用的 Docker Compose 配置,包含三个服务:
services:
mongo: # 数据持久化存储
image: mongo:latest
eidolon-server: # 核心 Agent 服务
build: ./Dockerfile
environment:
- OPENAI_API_KEY=xxx
- MONGO_CONNECTION_STR=mongodb://mongo:27017
depends_on: mongo
eidolon-ui2: # Web 管理界面
build: ./webui
environment:
- EIDOLON_SERVER=http://eidolon-server:8080
一条 docker-compose up 命令,即可同时启动 MongoDB + Agent Server + Web UI 三个服务。用户只需要准备好 LLM API Key,整个系统 10-15 分钟内可完成部署。
主 Dockerfile 采用多阶段构建(Multi-stage),通过 Poetry 安装依赖并导出为 requirements.txt,最终镜像基于 python:3.11-slim,非 root 用户运行,安全性良好。
Eidolon 的示例目录 (examples/) 包含了 20+ 完整场景,覆盖范围极广:
| 场景 | 说明 |
|---|---|
| Conversational Chatbot | 多轮对话 Bot |
| Code Search | 代码语义搜索 |
| Azure Auth/RBAC | 企业级认证授权 |
| OpenTelemetry | 可观测性集成 |
| Tree-of-Thoughts | 思维链推理 |
| Audio/Image Agents | 音视频处理 |
其中最具实用价值的是 RAG(检索增强生成)全链路:从文档加载器(文件系统/GitHub/Azure)→ 文档切分(RecursiveCharacterTextSplitter)→ 向量化(OpenAI Embeddings)→ 向量检索 → 重排序 → LLM 生成,全流程通过配置 YAML 完成,无需写代码。
1. LLM API Key 的硬依赖
Eidolon 目前需要用户自行准备 OpenAI/Anthropic/Mistral 等商业 LLM API Key,框架本身不包含模型推理能力。这意味着:
2. Docker 以外的系统支持不完善
虽然项目提供了 Kubernetes Operator,但裸机/Linux 手动安装流程缺失,Windows 用户只能通过 WSL2 + Docker 运行。
3. 文档的完整性仍有提升空间
部分示例代码缺少详细的配置说明,新用户需要参考官方网站(eidolonai.com)才能完整理解某些功能的用法。
4. Web UI 的依赖复杂度
Next.js Web UI 依赖 NextAuth.js + 多个环境变量配置,在生产环境中需要额外的安全加固配置。
Eidolon 的出现填补了一个重要的技术空白:此前,LangChain/LlamaIndex 虽然降低了 Agent 开发门槛,但它们的部署方案都相当原始——要么直接跑在开发者笔记本上,要么自己写 FastAPI 包装层。Eidolon 则直接提供了开箱即用的生产级部署方案,将 Agent 开发与 DevOps 实践无缝衔接。
从技术趋势来看,"AI Native 基础设施" 正在成为继 Kubernetes 之后,云原生领域的下一个主战场。AWS Bedrock、Azure AI Studio、Google Vertex AI 等商业方案已经在做类似的事情——而 Eidolon 代表了开源社区在这一方向上的重要探索。
图4:Eidolon Agent 完整工作流 — 从用户请求到多工具协作的端到端流程
Eidolon 是一个设计理念清晰、工程化程度高的 AI Agent 开发与部署框架。它最核心的价值在于:将"让 AI Agent 跑起来"这件事,从一个需要深度 DevOps 技能的工作,变成一个通过 YAML 配置 + Docker Compose 即可完成的操作。对于想要快速构建和部署生产级 AI Agent 应用的团队来说,Eidolon 是一个值得关注的技术选型。