Skip to content

Commit 683d644

Browse files
committed
docs(site): make runtime, channel, and admin counts match the code
Bring async-io.live into agreement with the repo: 9 AI runtimes (added Alibaba AgentScope and Spring AI Alibaba in Hero, Atmosphere, WhyAtmosphere); 5 messaging channels in CodeExample (web is the default endpoint, not a channel); replace the stale 25-REST-endpoints number with a stable descriptor; coverage line now reads 'nine runtimes' across Support, WhyAtmosphere, and the comparison table caption.
1 parent e5f7a4c commit 683d644

5 files changed

Lines changed: 66 additions & 43 deletions

File tree

website/src/components/Atmosphere.astro

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,20 @@ const pillars = [
2626
},
2727
{
2828
label: 'AI Runtimes',
29-
title: '7 backends, swap by dependency',
30-
description: 'Atmosphere is the infrastructure layer underneath your LLM library. Your @Agent and @AiTool annotations work identically across all backends.',
29+
title: '9 backends, swap by dependency',
30+
description: 'Atmosphere is the infrastructure layer underneath your LLM library. Your @Agent and @AiTool annotations work across every backend; capability flags are pinned by AbstractAgentRuntimeContractTest so adapter rows cannot drift from the running code.',
3131
items: [
32-
{ name: 'Built-in', detail: 'Atmosphere\'s zero-dependency OpenAI-compatible client. Supports function calling (up to 5 rounds), streaming, and structured output with Gemini, OpenAI, and Ollama out of the box.', url: 'https://github.com/Atmosphere/atmosphere', urlLabel: 'GitHub' },
33-
{ name: 'Spring AI', detail: 'Spring\'s official AI framework. ChatClient, RAG, VectorStore, and auto-configuration. Atmosphere bridges @AiTool to Spring AI\'s function calling system.', url: 'https://spring.io/projects/spring-ai', urlLabel: 'spring.io' },
34-
{ name: 'LangChain4j', detail: 'Java port of the LangChain ecosystem. Chains, AI services, and tool bridging. Atmosphere auto-detects LangChain4j on the classpath and registers tools.', url: 'https://docs.langchain4j.dev', urlLabel: 'langchain4j.dev' },
35-
{ name: 'Google ADK', detail: 'Google\'s Agent Development Kit for building multi-agent systems. Atmosphere integrates as a transport and protocol layer for ADK agents.', url: 'https://google.github.io/adk-docs/', urlLabel: 'Google ADK Docs' },
36-
{ name: 'Embabel', detail: 'Goal-driven agent framework by Rod Johnson (creator of Spring). Agents define goals and Embabel plans execution. Atmosphere provides the real-time delivery layer.', url: 'https://embabel.com', urlLabel: 'embabel.com' },
37-
{ name: 'JetBrains Koog', detail: 'Kotlin-native AI framework by JetBrains. Brings structured concurrency and Kotlin idioms to agent development. Atmosphere serves as the transport and protocol layer.', url: 'https://github.com/JetBrains/koog', urlLabel: 'GitHub' },
38-
{ name: 'Semantic Kernel', detail: 'Microsoft\'s enterprise-grade AI orchestration SDK. ChatCompletionService, plugins, memory, and planners. Atmosphere ships a Semantic Kernel runtime bridge so @Agent and @AiTool work across SK-based deployments.', url: 'https://learn.microsoft.com/en-us/semantic-kernel/', urlLabel: 'Microsoft Docs' },
32+
{ name: 'Built-in', detail: 'Atmosphere\'s zero-dependency OpenAI-compatible client. Function calling (up to 5 rounds), JSON mode, vision, audio, prompt caching, native retry. Works against OpenAI, Gemini, Ollama, or any OpenAI-compatible endpoint.', url: 'https://github.com/Atmosphere/atmosphere', urlLabel: 'GitHub' },
33+
{ name: 'Spring AI', detail: 'Spring\'s official AI framework. ChatClient, RAG, VectorStore, auto-configuration. Atmosphere bridges @AiTool to Spring AI\'s function calling system.', url: 'https://spring.io/projects/spring-ai', urlLabel: 'spring.io' },
34+
{ name: 'LangChain4j', detail: 'Java port of the LangChain ecosystem. Chains, AI services, streaming chat models, tool bridging. Atmosphere auto-detects LangChain4j on the classpath and registers tools.', url: 'https://docs.langchain4j.dev', urlLabel: 'langchain4j.dev' },
35+
{ name: 'Google ADK', detail: 'Google\'s Agent Development Kit. Multi-agent orchestration, sessions, the Runner execution engine. Atmosphere is the transport and protocol layer for ADK agents.', url: 'https://google.github.io/adk-docs/', urlLabel: 'Google ADK Docs' },
36+
{ name: 'JetBrains Koog', detail: 'Kotlin-native AI framework by JetBrains. Structured concurrency, typed tools, multi-agent orchestration, Bedrock cache control.', url: 'https://github.com/JetBrains/koog', urlLabel: 'GitHub' },
37+
{ name: 'Semantic Kernel', detail: 'Microsoft\'s enterprise-grade AI orchestration SDK. ChatCompletionService, kernel plugins, memory, planners. Tool calling, structured output, token usage.', url: 'https://learn.microsoft.com/en-us/semantic-kernel/', urlLabel: 'Microsoft Docs' },
38+
{ name: 'Alibaba AgentScope', detail: 'Alibaba\'s multi-agent framework. Structured output, conversation memory, token usage; agents are first-class with explicit tool dispatch managed by your code.', url: 'https://github.com/agentscope-ai/agentscope-java', urlLabel: 'GitHub' },
39+
{ name: 'Embabel', detail: 'Goal-driven agent framework by Rod Johnson, the creator of Spring. Declarative goals, planned execution, native PromptRunner; agent orchestration, tool calling, vision.', url: 'https://embabel.com', urlLabel: 'embabel.com' },
40+
{ name: 'Spring AI Alibaba', detail: 'Spring AI Alibaba ReactAgent. Structured output, conversation memory, prompt-driven tool selection through Spring AI\'s ChatClient surface.', url: 'https://java2ai.com', urlLabel: 'java2ai.com' },
3941
],
40-
extras: ['Portable @AiTool across all backends', 'Conversation memory', 'Structured output', 'Usage tracking'],
42+
extras: ['Portable @AiTool across all backends', 'Capability matrix CI-pinned', 'No code change to swap runtime'],
4143
},
4244
];
4345
---

website/src/components/CodeExample.astro

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,16 @@ const capabilities = [
3737
icon: `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3838
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
3939
</svg>`,
40-
title: '6 Channels',
41-
description: 'Web, Slack, Telegram, Discord, WhatsApp, Messenger. Set a bot token and the same @Command + AI pipeline works everywhere.',
40+
title: '5 Channels',
41+
description: 'Slack, Telegram, Discord, WhatsApp, Messenger &mdash; alongside the default browser endpoint. Set a bot token and the same @Command + AI pipeline works on every channel.',
4242
},
4343
{
4444
icon: `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
4545
<rect x="3" y="3" width="18" height="18" rx="2"/>
4646
<path d="M3 9h18M9 21V9"/>
4747
</svg>`,
4848
title: 'Admin Control Plane',
49-
description: 'Real-time dashboard, 25 REST endpoints, WebSocket event stream, and MCP tools for managing agents and runtimes.',
49+
description: 'Real-time dashboard, REST API for governance, runtimes, agents, A2A tasks, and flow graphs, WebSocket event stream, and MCP tools for managing agents.',
5050
},
5151
{
5252
icon: `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">

website/src/components/Hero.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
</div>
4646
<div class="stat-divider"></div>
4747
<div class="stat">
48-
<span class="stat-value">7 AI Runtimes</span>
49-
<span class="stat-label">Spring AI, LangChain4j, ADK, Embabel, Koog, Semantic Kernel, Built-in</span>
48+
<span class="stat-value">9 AI Runtimes</span>
49+
<span class="stat-label">Built-in, Spring AI, LangChain4j, ADK, Koog, Semantic Kernel, AgentScope, Embabel, Spring AI Alibaba</span>
5050
</div>
5151
<div class="stat-divider"></div>
5252
<div class="stat">

website/src/components/Support.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ const plans = [
9494
</p>
9595
</li>
9696
<li class="coverage-item">
97-
<span class="coverage-label">One contract, seven runtimes</span>
97+
<span class="coverage-label">One contract, nine runtimes</span>
9898
<p class="coverage-text">
9999
<code>policyDenyBlocksRuntimeExecute</code> is a build-time
100100
invariant for every adapter &mdash; you can't add a runtime

website/src/components/WhyAtmosphere.astro

Lines changed: 48 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const abstractedFeatures = [
1717
];
1818
1919
const atmosphereOnlyFeatures = [
20-
'Cross-framework @Agent portability — one codebase, seven runtimes',
20+
'Cross-framework @Agent portability — one codebase, nine runtimes',
2121
'Real-time streaming transport: WebSocket, SSE, WebTransport/HTTP3, gRPC, long-poll with automatic fallback',
2222
'@Coordinator + @Fleet multi-agent orchestration over A2A v1.0.0 (released spec)',
2323
'Durable HITL workflows — agent state survives JVM restart via CheckpointStore',
@@ -37,11 +37,11 @@ const atmosphereOnlyFeatures = [
3737
const lockInStory = [
3838
{
3939
without: 'One framework, chosen up front.',
40-
with: 'Seven frameworks, portable @Agent code. Swap the dependency when the winner changes.',
40+
with: 'Nine runtimes — Built-in plus eight framework adapters. Swap the dependency when the winner changes.',
4141
},
4242
{
4343
without: 'One LLM provider, locked into its pricing and SLA.',
44-
with: 'Any LLM provider supported by any of the seven frameworks. Move when pricing shifts, rate limits bite, or a new model lands.',
44+
with: 'Any LLM provider supported by any of the nine runtimes. Move when pricing shifts, rate limits bite, or a new model lands.',
4545
},
4646
{
4747
without: 'Rewrite the agent when the framework changes direction, goes EOL, or gets acquired.',
@@ -82,20 +82,12 @@ const frameworks = [
8282
summary: 'Agent Development Kit. Multi-agent orchestration, sessions, and the Runner execution engine.',
8383
bridge: 'atmosphere-adk',
8484
},
85-
{
86-
name: 'Embabel',
87-
short: 'Embabel',
88-
vendor: 'Embabel',
89-
language: 'Kotlin',
90-
summary: 'Goal-driven agent framework from the creator of Spring. Declarative goals, planned execution, native PromptRunner.',
91-
bridge: 'atmosphere-embabel',
92-
},
9385
{
9486
name: 'JetBrains Koog',
9587
short: 'Koog',
9688
vendor: 'JetBrains',
9789
language: 'Kotlin',
98-
summary: 'Kotlin-native AI framework. Structured concurrency, typed tools, and a composable agent DSL.',
90+
summary: 'Kotlin-native AI framework. Structured concurrency, typed tools, multi-agent orchestration, Bedrock cache control.',
9991
bridge: 'atmosphere-koog',
10092
},
10193
{
@@ -106,6 +98,30 @@ const frameworks = [
10698
summary: 'Microsoft\'s enterprise-grade AI orchestration SDK. ChatCompletionService, kernel plugins, memory, planners.',
10799
bridge: 'atmosphere-semantic-kernel',
108100
},
101+
{
102+
name: 'Alibaba AgentScope',
103+
short: 'AgentScope',
104+
vendor: 'Alibaba',
105+
language: 'Java',
106+
summary: 'Multi-agent framework from Alibaba. Structured output, conversation memory, and token usage on top of explicit tool dispatch managed in your code.',
107+
bridge: 'atmosphere-agentscope',
108+
},
109+
{
110+
name: 'Embabel',
111+
short: 'Embabel',
112+
vendor: 'Embabel',
113+
language: 'Kotlin',
114+
summary: 'Goal-driven agent framework from the creator of Spring. Declarative goals, planned execution, native PromptRunner.',
115+
bridge: 'atmosphere-embabel',
116+
},
117+
{
118+
name: 'Spring AI Alibaba',
119+
short: 'Spring AI Alibaba',
120+
vendor: 'Alibaba',
121+
language: 'Java',
122+
summary: 'Spring AI Alibaba ReactAgent. Structured output and conversation memory through the Spring AI ChatClient surface.',
123+
bridge: 'atmosphere-spring-ai-alibaba',
124+
},
109125
{
110126
name: 'Built-in',
111127
short: 'Built-in',
@@ -123,11 +139,13 @@ const frameworks = [
123139
<span class="section-label">Framework Support</span>
124140
<h2 class="section-title">One support contract. Every Java AI framework.</h2>
125141
<p class="section-description">
126-
The Java AI ecosystem has seven frameworks. Each one is moving fast, each
127-
one has its own release cadence, and each one could change direction
128-
tomorrow. Atmosphere is the <strong>runtime-abstraction layer</strong> that
129-
makes your <code>@Agent</code>, <code>@AiEndpoint</code>, and
130-
<code>@AiTool</code> code portable across all seven &mdash; swap the
142+
The Java AI ecosystem has eight third-party agent frameworks. Each
143+
one is moving fast, each one has its own release cadence, and each
144+
one could change direction tomorrow. Atmosphere is the
145+
<strong>runtime-abstraction layer</strong> that makes your
146+
<code>@Agent</code>, <code>@AiEndpoint</code>, and <code>@AiTool</code>
147+
code portable across all of them &mdash; nine total runtimes counting
148+
Atmosphere's own Built-in OpenAI-compatible client. Swap the
131149
dependency, keep the code. Async IO maintains the abstraction and the
132150
bridges; our support contract is the insurance policy against vendor
133151
lock-in.
@@ -158,7 +176,7 @@ const frameworks = [
158176
<div class="matrix-wrapper">
159177
<table class="matrix">
160178
<caption class="matrix-caption">
161-
At-a-glance: seven frameworks, one bridge layer, one support contract.
179+
At-a-glance: nine runtimes, one bridge layer, one support contract.
162180
</caption>
163181
<thead>
164182
<tr>
@@ -201,25 +219,28 @@ const frameworks = [
201219
<h3 class="valueadd-title">Abstracted, portable, and then some</h3>
202220
<p class="valueadd-lead">
203221
Atmosphere runs <strong>on top of</strong> each framework and its
204-
ecosystem &mdash; Spring for Spring AI, the LangChain4j chain
205-
library, Google ADK, Microsoft Semantic Kernel, JetBrains Koog, and
206-
Embabel's planning engine. The <strong>Built-in</strong> runtime is
207-
a zero-dependency OpenAI-compatible client for tests and local dev.
208-
Whichever you pick, you code against one surface &mdash;
209-
<code>@Agent</code>, <code>@AiEndpoint</code>, <code>@AiTool</code>
210-
&mdash; and you get <strong>more than any framework ships on its own</strong>.
222+
ecosystem &mdash; Spring AI, LangChain4j, Google ADK, Microsoft
223+
Semantic Kernel, JetBrains Koog, Alibaba AgentScope, Embabel's
224+
planning engine, and Spring AI Alibaba's ReactAgent. The
225+
<strong>Built-in</strong> runtime is a zero-dependency
226+
OpenAI-compatible client for tests and local dev. Whichever you
227+
pick, you code against one surface &mdash; <code>@Agent</code>,
228+
<code>@AiEndpoint</code>, <code>@AiTool</code> &mdash; and you get
229+
<strong>more than any framework ships on its own</strong>.
211230
</p>
212231
</div>
213232

214233
<div class="featurelists">
215234
<div class="featurelist featurelist-abstracted">
216235
<div class="featurelist-head">
217236
<span class="featurelist-label">Abstracted through the @Agent API</span>
218-
<h4 class="featurelist-title">Portable across all 7 runtimes</h4>
237+
<h4 class="featurelist-title">Portable across all 9 runtimes</h4>
219238
<p class="featurelist-sub">
220239
Every framework provides these. Atmosphere normalizes them
221240
behind one annotation surface, so your agent code is identical
222-
whether you run on Spring AI, Koog, or anything in between.
241+
whether you run on Spring AI, Koog, AgentScope, or anything in
242+
between &mdash; and the capability matrix is CI-pinned so the
243+
adapter rows can't drift from the running code.
223244
</p>
224245
</div>
225246
<ul class="featurelist-items">

0 commit comments

Comments
 (0)