为规模而建
EDDI运行在Java 25和Quarkus上,利用虚拟线程(Project Loom)实现IO密集型操作的大规模并发。与Node.js事件循环不同,虚拟线程以最小开销提供真正的多线程并行。
为什么虚拟线程对AI代理很重要
现代AI代理从根本上说受限于I/O。
Java虚拟线程优雅地解决了这个问题。
性能亮点
- 虚拟线程,数百万轻量级线程用于并发LLM调用
- Quarkus运行时,云原生Java,支持开发模式热加载,为容器优化。相比传统JVM技术栈,Quarkus以更小的内存占用提供显著更高的吞吐量和更快的启动速度
- Loom 友好连接池,Agroal 连接池避免了在虚拟线程负载下可能影响传统连接池的 ThreadLocal 瓶颈
- NATS JetStream,事件驱动架构的水平扩展
- 双数据库,MongoDB或PostgreSQL,通过一个环境变量切换。单一Docker镜像同时支持两者
- SSE流式传输,通过Server-Sent Events实现实时聊天响应、群组讨论反馈和活跟日志流
- 一键安装,通过Docker Compose交互式向导部署EDDI + 数据库 + 初始代理
- Red Hat认证,在CI/CD中自动预检查的容器认证
上下文中的性能
没有任何运行时能在所有场景中胜出。Node.js在高度特定的纯I/O路由场景中可能优于Java,而Java在涉及CPU密集型任务的工作负载中始终保持领先,这正是AI代理所需要的。现代代理执行的是海量I/O(LLM API调用、向量查询)与密集计算(数据转换、路由逻辑、嵌入处理、置信度评估)的复杂组合。这种混合工作负载特征正是Quarkus虚拟线程发挥最大优势的场景。
EDDI的架构正是针对这一现实而优化:I/O密集的代理编排层采用带虚拟线程的Quarkus,并结合Loom友好的连接池(Agroal),避免传统连接池库在高虚拟线程并发下出现的ThreadLocal争用问题。