The JVM's answer to 'deploy an AI agent without rewriting everything'
One @Agent annotation, twelve runtime adapters, and enough governance knobs to make your security team nod approvingly.

What it does
Atmosphere is a JVM framework that turns a Java class with @Agent into a streaming AI endpoint over WebSocket, SSE, gRPC, or WebTransport/HTTP3. It handles transport, reconnect, authorization, observability, and governance — but deliberately leaves compute and scheduling to whatever servlet container or framework you already run (Spring Boot, Quarkus, Tomcat, Netty, etc.).
The interesting bit
The runtime adapter SPI is where the diplomacy happens. Twelve adapters let the same @Agent code dispatch through Spring AI, LangChain4j, Google ADK, Anthropic’s native API, Cohere, or several others — and capability flags are contract-tested so adapters can’t quietly over-promise. The README is admirably frank about which adapters lack streaming, vision, or audio, and why.
Key highlights
- Protocol surfaces: MCP, A2A, AG-UI, plus Slack/Telegram/Discord/WhatsApp/Messenger via classpath modules
- Governance on the critical path: Policy admission, cost ceilings, PII rewriting, human-in-the-loop approvals with durable state, admin kill switches
- Durable execution: Hibernate long-running workflows with checkpointing; resume across JVM restarts without holding threads
- Memory layers: Per-conversation history, per-user long-term facts, and pluggable vector-store semantic recall
- Client SDKs:
atmosphere.jsfor React/Vue/Svelte/React Native, pluswasyncfor JVM clients
Caveats
- Some adapters are Spring Boot 3.5-only (Embabel, Spring AI Alibaba) or have buffered streaming limitations
- Not a serverless hibernation platform: the README explicitly says “a serverless agent platform is usually the better fit” for stateless, bursty, autonomous agents
- You bring your own model hosting, cron scheduling, and vector stores
Verdict Worth a look if you’re already running JVM infrastructure and need governed, multi-channel, human-in-the-loop agents without surrendering to a black-box platform. Skip it if you want fully managed hosting or your stack is Python-native.