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 沙箱提供者,用于安全的代码或浏览器自动化。 将潜在危险的工具调用与主机系统隔离。

开发人员的典型工作流程

  1. 创建项目,使用 CLI:
    atmosphere new my-agent --template ai-chat   # 选择 Spring‑Boot starter
    cd my-agent
    LLM_API_KEY=… ./mvnw spring-boot:run
    
  2. 编写 @Agent 类。带有 @Prompt 注解的方法接收用户消息,并可以通过 StreamingSession 流式返回 token。@Command 方法暴露斜杠样式命令,@AiTool 方法成为 LLM 可调用的工具。
  3. 选择运行时 – 保留默认的内置适配器,或添加 --runtime spring-ai / --runtime langchain4j 以引入不同的 SPI 实现。
  4. 配置治理(可选)在 application.yml 中 – 设置成本限制、PII 编辑规则,或要求对某些工具进行人工审批。
  5. 运行 – 代理可通过以下 URL 访问:
    • ws://host/atmosphere/agent/my-agent(WebSocket 流)
    • http://host/atmosphere/agent/my-agent/mcp(MCP 协议)
    • 由 atmosphere-channels 模块生成的 Slack/Discord Webhook URL。
  6. 观察与重放 – 启用会话磁带,将每个 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)


TL;DR

Atmosphere 是一个生产级、JVM 原生的框架,可将带有 @Agent 注解的普通 Java 类转变为功能齐全的流式 AI 服务。它提供实时传输、持久化状态、策略驱动的治理、人工介入审批,以及与许多聊天模型提供者和消息通道的开箱即用连接器。如果您已经运行 Java 服务,并且需要一个受治理、有状态的 LLM 代理,可以与浏览器、Slack 或自定义 gRPC 客户端通信,Atmosphere 为您提供管道,让您可以专注于代理逻辑。


以上所有详细信息均直接取自存储库的 README;没有推断任何其他功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目