Atmosphere/atmosphere
Portable AI agent runtime for the JVM. One @Agent class runs on Spring AI, LangChain4j, Anthropic, or 9 more behind one SPI. Token streaming, tool calls, human approvals, and governance over WebSocket, SSE, gRPC, or WebTransport/HTTP3. Speaks MCP, A2A, and AG-UI.
Atmosphere – JVM 上 AI 代理的实时引擎
它是什么 – 一个以 Java 为中心的框架,让您可以像运行普通 Web 服务一样运行深度 AI 代理。它处理了大多数 LLM 支持的代理所需的管道:通过实时传输进行流式响应、持久化状态、治理(策略、成本限制、PII 编辑)、人工介入审批,以及多通道暴露(WebSocket、SSE、gRPC、Slack、Discord、…)。核心库位于 Maven Central(org.atmosphere:atmosphere‑runtime),并在 npm 上发布了配套的 JavaScript 客户端(atmosphere.js)。
核心概念及其如何组合
| 概念 | Atmosphere 提供的功能 | 对 AI 代理的重要性 |
|---|---|---|
| @Agent 注解 | 将类声明为 AI 代理。该注解会自动连接内存、规划工具、虚拟文件系统、子代理委派和命令端点。 | 您无需编写样板代码即可获得深度代理。 |
| 流式传输 | 单个广播器可以提供 WebSocket、Server‑Sent Events、长轮询、gRPC 和可选的 HTTP/3 WebTransport。 | 客户端可以像聊天 UI 一样接收逐 token 的输出,即使在防火墙或移动网络之后也是如此。 |
| AgentRuntime SPI | 可插拔的适配器(atmosphere-ai、atmosphere‑spring‑ai、atmosphere‑langchain4j、Anthropic、Cohere 等)将 @Agent 调用转换为底层 LLM 提供者。 |
无需更改代理代码,即可从 OpenAI 切换到 Gemini、Ollama 或自定义模型。 |
| 治理层 | 策略准入、@AgentScope、成本上限、PII 编辑、紧急停止开关和计划与验证器。 |
确保代理在调用工具或花费 token 之前遵守组织规则。 |
| 持久化会话与检查点 | 基于 SQLite 或 Redis 的对话内存、长期事实、重放缓冲区,以及检查点存储(可选的 Temporal 支持)。 | 代理可以休眠、在重启后存活,并在人工审批步骤后恢复。 |
| 多通道适配器 | 内置模块可将相同的代理暴露给 MCP、A2A、AG‑UI、Slack、Telegram、Discord、WhatsApp、Messenger 和浏览器控制台 UI。 | 一个代码库即可支持 Web 聊天、内部工具和消息机器人。 |
| 沙箱执行 | atmosphere-sandbox SPI,带有默认的 Docker 沙箱提供者,用于安全的代码或浏览器自动化。 |
将潜在危险的工具调用与主机系统隔离。 |
开发人员的典型工作流程
- 创建项目,使用 CLI:
atmosphere new my-agent --template ai-chat # 选择 Spring‑Boot starter cd my-agent LLM_API_KEY=… ./mvnw spring-boot:run - 编写 @Agent 类。带有
@Prompt注解的方法接收用户消息,并可以通过StreamingSession流式返回 token。@Command方法暴露斜杠样式命令,@AiTool方法成为 LLM 可调用的工具。 - 选择运行时 – 保留默认的内置适配器,或添加
--runtime spring-ai/--runtime langchain4j以引入不同的 SPI 实现。 - 配置治理(可选)在
application.yml中 – 设置成本限制、PII 编辑规则,或要求对某些工具进行人工审批。 - 运行 – 代理可通过以下 URL 访问:
ws://host/atmosphere/agent/my-agent(WebSocket 流)http://host/atmosphere/agent/my-agent/mcp(MCP 协议)- 由
atmosphere-channels模块生成的 Slack/Discord Webhook URL。
- 观察与重放 – 启用会话磁带,将每个 AI 事件存储在 SQLite 中。之后,您可以在不调用模型的情况下重建运行,这对于调试或提炼较小的模型很有用。
谁应该使用 Atmosphere?
| 情境 | 建议选择 |
|---|---|
| 现有的 JVM 服务(Spring Boot、Quarkus、Netty 等)需要有状态、受治理的代理,并具有实时流式传输。 | Atmosphere – 即插即用,无需重写。 |
| 短期、无状态的机器人,可以在无服务器环境中运行(例如 Cloudflare Workers)。 | 无服务器代理平台更简单;Atmosphere 的持久性会过度设计。 |
| 需要人工介入、审计轨迹和合规证据(PII、成本上限、OWASP Agentic Top 10)的团队。 | Atmosphere 的治理模块和管理控制台提供内置证据。 |
| 已经使用 Spring AI 或 LangChain4j 的项目,希望保留相同的模型/提供者,但添加流式传输、多通道和策略执行。 | 添加对应的 atmosphere‑spring‑ai 或 atmosphere‑langchain4j 适配器。 |
优势与限制(如 README 所述)
优势
- 统一的实时传输层(WebSocket、SSE、gRPC、可选的 HTTP/3)。
- 深度代理默认值(内存、规划、虚拟 FS、子代理),并具有精细的控制。
- 可插拔的运行时适配器 – 您可以交换 OpenAI、Anthropic、Cohere 或任何与 Spring‑AI 兼容的提供者。
- 强大的治理:策略准入、成本/PII 限制、计划与验证、持久化 HITL。
- 多通道暴露(MCP、A2A、AG‑UI、Slack、Discord 等),无需额外代码。
- 开源,Maven Central + npm 发布,CI 徽章显示积极测试。
限制 / 范围
- 它不是托管平台;您必须提供 servlet 容器(Tomcat、Jetty 等)和任何计算资源。
- 付款/商务功能不在范围内 – 您仍然需要自行管理 LLM 计费。
- 某些适配器有版本限制(例如,
atmosphere‑spring‑ai‑alibaba仅适用于 Spring Boot 3.5)。 - 框架专注于 JVM 语言;非 JVM 生态系统需要单独的桥接。
快速参考链接(来自 README)
- 文档网站 – https://atmosphere.github.io/docs
- Maven Central – https://central.sonatype.com/artifact/org.atmosphere/atmosphere-runtime
- npm 包 – https://www.npmjs.com/package/atmosphere.js
- CLI 安装 –
brew install Atmosphere/tap/atmosphere或单行安装脚本。 - 关键模块 –
atmosphere-runtime、atmosphere-ai、atmosphere-agent、atmosphere-mcp、atmosphere-channels、atmosphere-admin、atmosphere-sandbox。
TL;DR
Atmosphere 是一个生产级、JVM 原生的框架,可将带有 @Agent 注解的普通 Java 类转变为功能齐全的流式 AI 服务。它提供实时传输、持久化状态、策略驱动的治理、人工介入审批,以及与许多聊天模型提供者和消息通道的开箱即用连接器。如果您已经运行 Java 服务,并且需要一个受治理、有状态的 LLM 代理,可以与浏览器、Slack 或自定义 gRPC 客户端通信,Atmosphere 为您提供管道,让您可以专注于代理逻辑。
以上所有详细信息均直接取自存储库的 README;没有推断任何其他功能。
相关
- 项目
- 项目
- 项目
- 项目