atmosphere
JVM AI Agent 运行时框架,通过 SPI 抽象层让同一套 @Agent 代码无缝运行在 Spring AI、LangChain4j、Anthropic 等 12 种后端之上,支持 MCP/A2A/AG-UI 三大协议和 WebSocket/SSE/gRPC 实时传输。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
JVM AI Agent 运行时框架,通过 SPI 抽象层让同一套 @Agent 代码无缝运行在 Spring AI、LangChain4j、Anthropic 等 12 种后端之上,支持 MCP/A2A/AG-UI 三大协议和 WebSocket/SSE/gRPC 实时传输。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象一下这个场景:你的团队花了两周时间,用 Spring AI 精心打造了一个具备工具调用、多轮对话、人为审批功能的 AI Agent,顺利上线。但第三周,产品经理提出:「Anthropic 的 Claude 效果更好,要切换过去。」于是你和团队迎来了连续一周的加班——新的 SDK、新的 API 风格、新的流式接口、新的工具定义方式,所有代码几乎重写了一遍。
这不是虚构的场景。在 2025 年的 Java AI 生态中,开发者的确面临这样的困境:Spring AI、LangChain4j、Google ADK、Microsoft Semantic Kernel……每一个框架都能力出色,但每一个框架也都有自己的 API 抽象。选了一个,就等于锁定了一个供应商的演进路线。
Atmosphere 解决的就是这个问题:一次编写,任意框架运行。
Atmosphere 的前身是同名实时通信框架(atmosphere-framework),自 2008 年起维护,最初用于解决浏览器长连接推送问题,在 WebSocket 还没有被标准化的年代就已经提供了跨浏览器的实时能力。2024 年,随着 AI Agent 浪潮兴起,Async-IO 团队将这套实时通信基础设施重新定位为 JVM AI Agent 运行时,在原有流式传输层之上叠加了 Agent 抽象、协议兼容和治理能力。
项目由 Java Champion Jean-François Arcand(Async-IO 创始人)主导,Apache 2.0 许可,目前在 GitHub 拥有 3796 颗星,保持活跃开发状态。
Atmosphere 的架构精髓在于 AgentRuntime SPI(Service Provider Interface)。开发者使用 @Agent 注解定义 Agent,运行时通过 SPI 发现并加载具体的 Adapter:
12 个运行时适配器,涵盖主流框架:
| 适配器 | 框架 |
|---|---|
| Built-in | OpenAI 兼容客户端(零依赖,开发测试用) |
| Spring AI | Spring AI |
| LangChain4j | LangChain4j |
| Anthropic | Anthropic Claude |
| Google ADK | Google Agent Development Kit |
| Microsoft | Semantic Kernel |
| JetBrains Koog | Koog |
| Alibaba | Spring AI Alibaba ReactAgent |
| AgentScope | AgentScope |
| Embabel | Embabel 规划引擎 |
| ADK | ADK(另一种) |
传输层(5 种实时传输):
三大 Agent 协议:
此外还有 Slack、Telegram、Discord、WhatsApp、Messenger 等 IM 渠道适配器。
普通的 @Agent 在 Atmosphere 中实际上是 Deep Agent(深度 Agent),默认携带一整套能力:
write_todos 工具,动态维护任务清单并实时推送给客户端ls、read_file、write_file、edit_file、glob、grep治理与安全:
开发体验:
# 安装 CLI
brew install Atmosphere/tap/atmosphere
# 生成 AI Chat 脚手架(默认 Spring AI)
atmosphere new my-agent --template ai-chat
# 一键运行示例团队(多 Agent 协作)
atmosphere run spring-boot-multi-agent-startup-team
# 切换运行时适配器
atmosphere new my-agent --template ai-chat --runtime spring-ai
atmosphere new my-agent --template ai-tools --runtime langchain4j --force
# 导入 Agent Skill
atmosphere import https://github.com/anthropics/skills/blob/main/skills/frontend-design/SKILL.md
Agent 代码示例:
@Agent(name = "my-agent", description = "What this agent does")
public class MyAgent {
@Prompt
public void onMessage(String message, StreamingSession session) {
session.stream(message);
}
@AiTool(name = "lookup", description = "Look up data")
public String lookup(@Param("query") String query) {
return dataService.find(query);
}
}
这个 @Agent 类同时注册:浏览器端点、MCP 端点、A2A 端点、AG-UI 端点、Slack/Telegram 等渠道。一次定义,全通道暴露。
部署门槛:Atmosphere 是 类库 + CLI 工具,没有 Docker 镜像,不提供一键部署。需要 Java 21+ 环境,通过 Maven 或 Gradle 将 atmosphere-*/.jar 引入项目。配套的 CLI 工具依赖 Java 运行时。Native Image(GraalVM)构建已在部分示例中验证通过(spring-boot-chat、quarkus-chat)。
框架锁定风险仍在:虽然 SPI 层做了抽象,但每个 Adapter 的能力边界取决于底层框架。Spring AI 不支持的功能,即使在 Atmosphere 层也无法魔法般解锁。
学习曲线陡峭:56 个模块,大量 SPI 接口,文档虽然详尽,但初次上手需要理解的概念(harness、checkpoint、scope、coordinator)仍然偏多。
非独立服务:它不是一个「平台」或「中间件」,而是一个「类库」。部署者需要自己管理 Servlet 容器(Tomcat/Jetty/Netty/Undertow/Quarkus/Spring Boot 均可作为 host)。
K8s 支持缺失:缺少 Helm Chart 或 K8s Manifest,生产微服务化部署需要自行编写。
文档语言:官方文档以英文为主,对中文开发者有一定门槛。
2024-2025 年,AI Agent 框架在 Python 生态已相当成熟(LangChain、AutoGen、CrewAI),但 Java/JVM 生态长期缺乏一个一站式运行时。Atmosphere 的出现填补了这个空白:
| 维度 | 评分 |
|---|---|
| 架构设计 | ⭐⭐⭐⭐⭐ SPI 抽象层设计精妙,模块化程度极高 |
| 功能完整性 | ⭐⭐⭐⭐⭐ 12 个适配器 + 5 种传输 + 3 大协议,生态齐全 |
| 代码质量 | ⭐⭐⭐⭐ Apache 2.0 + 契约测试 + CI/CD 流程完善 |
| 文档质量 | ⭐⭐⭐⭐ 官方文档详细,但英文为主 |
| 社区活跃度 | ⭐⭐⭐⭐ 持续更新,配套 homebrew/sdkman 包管理 |
| 部署便捷性 | ⭐⭐ 类库形式,无容器支持,需要 Java 功底 |
| AI 相关度 | ⭐⭐⭐⭐⭐ 专注 AI Agent 运行时,覆盖完整 Agent 生命周期 |