GGitHub采集材料
Atmosphere:构建可治理的 JVM AI Agent
发布时间未知 · 北京时间
智能体应用
有实践材料可继续查看
代码仓库安装说明使用说明示例代码
原文与观测指标
1 个来源GGitHub
查看原文 Atmosphere:构建可治理的 JVM AI Agent
Atmosphere星标3,824采集时的累计值
每小时增长待观察星标 / 小时 · 观测区间平均值
最近提交10-23 07:28提交时间不是项目发布时间
发布时间:未知 · 首次发现 10-27 15:46 · 北京时间
指标采集:10-27 15:46 · 指标已取得
项目文档有线索安装说明有线索使用说明有线索示例有线索
仅反映文档与示例线索,未实际运行项目。
摘要
Atmosphere 为 JVM 应用提供可跨 AI 框架复用的 Agent 运行时,支持通过 WebSocket、SSE 等方式流式输出,并提供工具调用治理、人工审批、长任务恢复和运行观测等能力。
摘要由 AI 生成,请以原文为准。观测历史 · 最近 1 条 展开 / 收起
缺失不计为零;增长只比较同一指标来源的有效记录,按实际间隔折算每小时。上游缓存可能延迟数值更新。
| 采集时间 · 北京时间 | 指标 | 数值 | 来源 | 状态 |
|---|---|---|---|---|
| 10-27 15:46:40 | Star | 3,824 | GitHub 公开页面 | 已取得 |
采集原文 展开 / 收起
atmosphere
Portable AI agent runtime for the JVM. One @agent class runs on Spring AI, LangChain4j, Anthropic, or 9 more behind one SPI. Token stream…
项目说明 展开 / 收起
Atmosphere The real-time engine for AI agents on the JVM. Tokens flow from the LLM runtime to the client through a broadcaster you can filter, gate, and observe — over WebSocket, SSE, long-polling, or gRPC, and out through MCP, A2A, and AG-UI. A plain @Agent is a full deep agent, batteries-included, and Atmosphere handles reconnect, authorization, and governance. Atmosphere is built for teams that need AI agents to behave like production services: streaming over real transports, guarded before every tool call, observable by tenant and run, and portable across AI frameworks without rewriting the endpoint. Why Atmosphere Need What Atmosphere provides Stream to real clients WebSocket, SSE, long-polling, and gRPC run through one broadcaster pipeline as always-on defaults; WebTransport over HTTP/3 is optional Swap AI integrations One AgentRuntime SPI with twelve runtime adapters and contract-tested capability flags Ship a deep agent A plain @Agent is batteries-included — memory, a plan (write_todos), a virtual filesystem, and sub-agent delegation (task), on by default via the harness Govern execution Policy admission, @AgentScope, human approval, plan-and-verify, cost ceilings, PII rewriting, and admin kill switches Pause for humans Durable HITL approvals hibernate without holding a thread, persist workflow state, and resume through REST approval surfaces Resume long runs Durable sessions, run IDs, replay buffers, checkpoints, and reconnect-safe continuation Observe and replay An opt-in session tape records session-boundary AI events (SQLite-durable) — reconstruct a run or a coordination tree with no model call, then distill a smaller model from it Expose the same agent everywhere Browser endpoints plus MCP (stateless RC on the MCP 2026-07-28 spec, sessions back to 2024-11-05), A2A, AG-UI, Slack, Telegram, Discord, WhatsApp, and Messenger modules Scope Atmosphere is a real-time, event-driven framework, not an agent-hosting platform. We ship the primitives your application uses at runtime; the host you choose (Tomcat, Jetty, Netty, Undertow, Quarkus, Spring Boot, or any servlet container) owns compute and scheduling. Payment rails and commerce primitives are out of scope. Compared to the agent-platform stack vocabulary that has emerged around offerings like Cloudflare Agents, AWS Bedrock Agents, and Vertex AI Agents: Layer What Atmosphere ships Provided by your stack Streaming transport atmosphere-runtime over WebSocket, SSE, long-polling (always-on defaults), gRPC, plus optional WebTransport/HTTP-3 (needs jetty-http3-server or reactor-netty-http on the classpath plus a dev cert) — Runtime dispatch atmosphere-ai AgentRuntime SPI + 12 adapters with contract-tested capability flags Model hosting (we call providers; we do not host weights) Orchestration @Coordinator, AgentFleet, handoffs, conditional routing, an event-sourced coordination journal with causal lineage, result evaluation, and durable hibernating Workflow<S> over CheckpointStore (Temporal-backed if you add atmosphere-checkpoint-temporal) — durable step execution, not wall-clock triggering Cron / wall-clock scheduling (your container scheduler or a dedicated scheduler fires the workflow) Memory AiConversationMemory per-conversation history and LongTermMemory per-user facts — in-memory, or durable SQLite/Redis via atmosphere-durable-sessions{-sqlite,-redis} — plus SemanticRecallInterceptor for BYO vector-store recall Managed vector stores (use Spring AI's VectorStore, LangChain4j embeddings, or your own) Governance Policy admission, @AgentScope, plan-and-verify, PII redaction, cost ceilings, durable HITL approvals, admin kill switches — Protocol surface MCP, A2A, AG-UI, Slack/Telegram/Discord/WhatsApp/Messenger channel adapters — Code execution atmosphere-sandbox SandboxProvider SPI + DockerSandboxProvider default Browser automation, headless Chromium SDK atmosphere.js (React, Vue, Svelte, React Native, vanilla TS), wasync (JVM client) — The differentiator is the streaming + JVM + governance combination: long-lived stateful agent sessions over real-time transports, with policy admission on the critical path. For stateless, bursty, autonomous agents that should hibernate when idle, a serverless agent platform is usually the better fit. For human-in-the-loop, multi-channel, governed agents inside an existing JVM stack, Atmosphere is the right fit. Quick Start Run a sample brew install Atmosphere/tap/atmosphere # Or: curl -fsSL https://raw.githubusercontent.com/Atmosphere/atmosphere/main/cli/install.sh | sh atmosphere run spring-boot-multi-agent-startup-team Create an app atmosphere new my-agent --template ai-chat cd my-agent LLM_API_KEY=your-key ./mvnw spring-boot:run Swap the runtime adapter # Built-in is the default. --runtime spring-ai scaffolds the app against the # Spring AI adapter instead (a CLI overlay injects its Maven dependencies). atmosphere new my-agent --template ai-chat --runtime spring-ai # Use --force when a sample already pins a runtime adapter. atmosphere new my-agent --template ai-tools --runtime langchain4j --force Import a skill atmosphere import https://github.com/anthropics/skills/blob/main/skills/frontend-design/SKILL.md cd frontend-design LLM_API_KEY=your-key ./mvnw spring-boot:run @Agent One annotation declares the agent. Modules on the classpath decide which endpoints and integrations are registered. @Agent(name = "my-agent", description = "What this agent does") public class MyAgent { @Prompt public void onMessage(String message, StreamingSession session) { session.stream(message); } @Command(value = "/status", description = "Show status") public String status() { return "All systems operational"; } @Command(value = "/reset", description = "Reset data", confirm = "This will delete all data. Are you sure?") public String reset() { return dataService.resetAll(); } @AiTool(name = "lookup", description = "Look up data") public String lookup(@Param("query") String query) { return dataService.find(query); } } Modul