
本文基于 ARGI 2.1.0-RC1(2026-10-08 上架 Maven Central)、Spring AI 2.0.1、Spring Boot 4.1.1、DeepSeek OpenAI 兼容端点实测编写(2026-10-10)。文中 star 数、贡献者数、制品清单均为当日 GitHub API 与 Maven Central 快照,开源项目动向变化快,以官方渠道为准。
上一篇追踪文结尾,我说别再等 SAA 2.0 了,改盯两个新阵地:AgentScope Starter 什么时候出、ARGI 长成什么样。今天交第二份作业,我把 ARGI 从 GitHub 拉到本地,真的跑了一遍。
结论不复杂:血统是真的,东西也能跑。但官方那条上手命令,第一步就把我绊倒了,想跑通得自己动针线缝三针。缝完这三针,我对它的判断反而比缝之前清楚。
血脉鉴定:这次我把 Maven Central 也翻了一遍
上次追踪靠的是 GitHub:README 自述 Fork 自 Spring AI Alibaba、曾用名 agentic-spring-ai、v1.1.2.3 的 release note 自称'Agentic Spring AI 1.x 补丁版本'、贡献者花名册几乎照搬。这次我多翻了一个地方,Maven Central,又挖出三环新证据。
第一环,BOM 模块一一同构。 SAA 最后一个版本的官方 BOM 管理着八个模块:agent-framework、graph-core、studio、sandbox、starter-agentscope、starter-a2a-nacos、starter-config-nacos、starter-graph-observation。ARGI 新坐标的 BOM 管理的也是八个:argi-agent-framework、argi-graph-core、argi-studio、argi-sandbox、argi-starter-agentscope、argi-starter-a2a-nacos、argi-starter-config-nacos、argi-starter-graph-observation。名字挨个对上,就是把 spring-ai-alibaba 前缀换成了 argi。这不是借鉴,是同一个人的 handwriting。
第二环,SAA 的家当整批托运。 ARGI 的旧坐标(曾用坐标 io.github.agentic-spring-ai)在 Maven Central 上躺着 150 多个制品。不只是核心模块,还有 tool-calling 全家桶(高德地图、百度搜索、钉钉、飞书、Tavily、Wikipedia 几十个工具 starter)和 document-reader 全家桶(arXiv、B 站、CSDN、语雀、Notion 的文档读取器)。这就是 SAA 攒了两年的家底,连库存带货架一起搬进了新仓库。
第三环,examples 里的身份证忘换了。 argi-examples 仓库是从 SAA 的 examples 仓库整体搬来的(1,248 个提交),chatbot 示例的提示词里,Agent 至今自称「SAA」;Agent 的注册名硬编码成 research_agent------从别的示例抄过来忘了改。更妙的是 examples 的 README 里,clone 命令写的还是旧组织名 agentic-spring-ai。搬家搬得急,门缝里处处是旧房子的痕迹。
顺带补一个平衡事实:SAA 的官方 Maven 坐标在 9 月 16 日还发过一个 1.1.2.4-security-fix 安全修复版,POM 里的发布者是 chickenlj 本人。GitHub 零提交、Central 仍有安全补丁------'事实性停滞'的准确含义,是功能维护停了、安全底线还守着。这个细节我上次没查到,这次补上。
先说清楚:ARGI 到底是干嘛的
身份说完,该说正题了:这东西到底是干嘛的。
官方定位一句话,Stateful agent runtime for Java applications,有状态智能体运行时。这话读三遍也未必有画面感。换 Java 老哥熟悉的说法,它想当 Agent 圈的 Flowable。写过工作流的老哥都懂那套东西:流程定义、节点、条件路由、状态持久化、中断恢复、人工节点。ARGI 把这套原样搬了过来,只是节点里跑的不是审批规则,是 LLM 调用和工具执行。
它管的事,对着我在 demo 里摸过的实物说:
- ReactAgent 自带「模型思考、调工具、喂结果、再思考」的循环。Spring AI 卖给你的是 ChatModel 和 ToolCallback 这些零件,循环得自己写;ARGI 给你装好的发动机,builder 一条链完事。
- 状态。MemorySaver 给对话存档,Agent 跑到一半挂了,能从检查点接着跑。Central 上那三个 argi-graph-persistence 制品(jdbc、redis、mongodb)干的就是这个,跟流程引擎存流程实例一个意思。
- 编排。五个 Agent 类型,React、Sequential、Parallel、Routing、Loop,外加图工作流的条件路由、并行、嵌套图。多 Agent 协作时你面对的是一张图,不是一坨消息总线代码。
- 人工介入。后面会看到的 Tool Request 卡片,就是 Agent 流程里的人工节点,工具执不执行,人说了算。
- 最后是 Studio,自带可视化调试,对话流、图结构、token 消耗都在界面上。
所以它跟 Spring AI 的分工是:Spring AI 管你怎么调模型,ARGI 管 Agent 流程怎么跑。名字里带 Graph 不带 Model,因为模型是别人家的(它直接吃 Spring AI 的 ChatModel),流程才是它自己的。
上手第一步:官方命令直接报错
ARGI 主 README 的快速上手写得挺像样,三步:clone 主仓库,./mvnw -DskipTests install;clone examples;然后 mvn -f examples/chatbot/pom.xml spring-boot:run,浏览器打开 localhost:8080/chatui/index.html。
我按顺序敲下去,心态是'这次应该挺顺'。然后就被教育了。第三步的报错来得干脆:
text
[ERROR] Non-resolvable import POM: The following artifacts could not
be resolved: io.github.agentic-spring-ai:agentic-spring-ai-bom:pom:2.1.0-dev
(absent): Could not find artifact
意思是 chatbot 示例要的依赖清单叫 agentic-spring-ai-bom、版本号 2.1.0-dev,哪儿都找不到。
根因说白了是搬家搬了一半。同一套代码,现在同时挂着三套 Maven 坐标:
| 阶段 | groupId | 制品名 | Central 现状 |
|---|---|---|---|
| SAA 官方 | com.alibaba.cloud.ai | spring-ai-alibaba-* | 1.1.2.x 线,9 月后只有安全补丁 |
| ARGI 旧坐标 | io.github.agentic-spring-ai | agentic-spring-ai-* | 1.1.2.3 / 2.0.0.0,150+ 生态制品 |
| ARGI 新坐标 | io.github.agentic-ai-java | argi-* | 2.1.0-RC1(10-08 起上架) |
主仓库的代码已经换上新门牌(当前开发版本号是 2.1.0-RC2-SNAPSHOT,RC2 都在路上),本地 install 出来的是新坐标;而 examples 里的 chatbot 还指着旧坐标的一个 2.1.0-dev------这个版本在 Central 上压根没发布过。README 的两步命令,各自都是对的,拼起来就是跑不通。行李分了三批托运,运单号还各不相同。
缝三针:坐标、包名、模型
要让 chatbot 活过来,我缝了三针。这也是 SAA 存量用户未来迁移时要走的同一条路,值得挨个看。
第一针,Maven 坐标换新。 把 chatbot 的 pom 里三处旧坐标换掉:BOM 从 agentic-spring-ai-bom:2.1.0-dev 换成 argi-bom:2.1.0-RC1(新坐标,10-08 刚上架 Central),依赖名从 agentic-spring-ai-agent-framework 换成 argi-agent-framework。纯文本替换,五分钟。
第二针,import 前缀替换。 RC1 制品的 Java 包名从 io.github.agentic.spring.ai 换成了 io.github.agentic.ai,把源码里的 import 前缀全局替换,完事。妙的是替换完之后 API 形态零改动,原来的装配代码长这样:
java
@Bean
public ReactAgent chatbotReactAgent(ChatModel chatModel,
ToolCallback executeShellCommand,
ToolCallback viewTextFile,
MemorySaver memorySaver) {
return ReactAgent.builder()
.name("SAA")
.model(chatModel)
.instruction(INSTRUCTION)
.enableLogging(true)
.saver(memorySaver)
.hooks(ShellToolAgentHook.builder()
.shellToolName(executeShellCommand.getToolDefinition().name())
.build())
.tools(executeShellCommand, viewTextFile)
.build();
}
写惯了 SAA 的老哥看这条 builder 链应该眼熟,name、model、instruction、saver、hooks、tools,一模一样。门牌换了三次,锁还是原来那把。 所说'Graph 血脉 API 亲缘最近',落到编译层面就是全局替换两个前缀的功夫。
第三针,模型 provider。 RC1 有个现实约束:官方只把 Core(agent-framework、graph-core、studio 等)搬到了新坐标,dashscope 的 provider starter 还在旧坐标上。我的解法是干脆绕开它。ReactAgent 的 model 方法吃的是 Spring AI 的 ChatModel 接口,那我直接引 Spring AI 官方的 openai starter,把 base-url 指向 DeepSeek 的 OpenAI 兼容端点,四行配置接上 deepseek-chat。这一针还带出个副产品:ARGI 的模型接入层就是 Spring AI 本身,provider 换血,编排层毫无感觉。它把自己定位在 Spring AI 之上做有状态编排,这个小细节就是证明。
三针缝完,mvn compile,35 秒,一次过。
跑起来之后:三件值得记的事
应用启动用了 0.98 秒。对话、工具、状态都正常工作,有三件事我想单独记一笔。
先说启动日志。chatbot 里那个 ReactAgent 初始化时,控制台把它的内部结构画了出来:START 到 condition,到 AGENT_MODEL 、AGENT_TOOL、几个 hook 节点,再到 END。每个 ReactAgent 底层都是一张编译好的图,SAA 的 Graph 内核原封不动。发消息时 SSE 事件流里每个事件都带一个 node 字段,告诉你当前走到图的哪个节点,附带 tokenUsage 统计。不用接什么观测组件,运行时自己就把这些吐出来了。
工具调用回路是真的。我在对话里让它执行 pwd:模型先客气了一句,发起 execute_shell_command 工具调用,AGENT_TOOL 节点真实执行,返回我的实际工作目录,模型再总结回复。DeepSeek 流式输出、ShellTool 持久会话、MemorySaver 检查点,全链路没有一处 mock。

chatui 界面上还会弹出 Tool Request 卡片,把工具调用晾在你眼前等人过目,human-in-the-loop 就这么默认开在对话流里。顺带一提,Studio 的 API 需要配 auth-token(配置键走 argi 前缀),不带头访问直接 401,RC1 新加的安全约束,工作正常。这个 token 在浏览器侧存的是 sessionStorage 而不是 localStorage,每开一个新标签页都得去 Studio Settings 里重填一次。第一次上手大概率会像我一样,盯着「No agents or graphs available」的空页面愣几秒才反应过来。
文档要泼点冷水。官网的 Quick Start 目前是个导航页,没有 Maven 坐标、没有命令、没有 provider 配置说明,加上前文 examples 的旧坐标、旧组织名,代码跑在文档前面。六周大的项目这样不丢人,但你上手它,现阶段主要靠读源码和 pom。
它和 AgentScope,是竞争还是分工

ARGI 的 extensions 里有一个模块特别扎眼:argi-starter-agentscope,把 AgentScope 做成了 ARGI 的可插拔 Starter,上架时间就在昨天(10-09)。我翻出它的 POM 看了依赖:io.agentscope 的 agentscope-core,锁定的版本是 1.0.12。
这个版本号有讲究。AgentScope 1.0.12 是 4 月 30 日发布的、1.x 线的最后一个版本;那之后 AgentScope 转向 2.0,形态全面转向 Harness,现在已经迭代到 2.0.4。ARGI 集成的其实不是今天的 AgentScope,是转向 Harness 之前那个'纯 Agent 内核'形态的 1.x,和 SAA v1.1.2.2 当年的集成一脉相承。
现在 Java AI 框架版图的四极算是齐了:Spring AI 是底座,AgentScope 是官方路线图钦定的 Agentic 引擎(Harness 形态),LangChain4j 走独立全栈,而 ARGI 接住了 Graph 工作流这条线。前三个在官方路线图里都有名分,ARGI 没有,它是前团队自发延续出来的'意外第四极'。两边的关系谈不上竞争,更接近分餐:Agentic 引擎路线归了 AgentScope,Graph 工作流路线进了 ARGI;extensions 里那个锁定 1.0.12 的 starter,像是留了个接口在桌上,谁也没把话说死。
该不该跟:三档判断
生产在跑 SAA 1.x 的: 维持上篇判断,别急着动。ARGI 是目前 API 亲缘最近的迁移目的地(import 前缀替换级),但今天的它是个 RC1 的搬家工地------三套坐标并存、examples 没跟上、文档是导航页。把「迁 ARGI」写进预案,触发条件看下面四个信号。
观望中的: 观察期信号我定了四条:2.1.0 GA 发布;三套坐标收敛成一套(examples 跟上主仓库改名);官方任何形式的表态(那份阿里云的演进链文章至今没提 ARGI);star 与第三方贡献的增长曲线。四条中两,再认真评估。
新立项的: 不用为 ARGI 改变任何决定。Agentic 优先直上 AgentScope,工作流优先老老实实 Spring AI 裸拼或 LangChain4j。ARGI 现在值得的是「放进观察名单并保持上手能力」,不是技术选型。
三部曲到这里收官。回到最初那个问题:SAA 消失了吗?我的答案还是那句,没有消失,是换了两个活法。Agentic 引擎的新家在 AgentScope,有阿里云的官方路线图背书;Graph 工作流的新家在 ARGI,有前团队的提交记录和 Central 上那 150 多个制品作证。10 月 8 日那天,AgentScope 发了 2.0.4,ARGI 发了 2.1.0-RC1,SAA 的 GitHub 安安静静。心脏和新址都在跳,只是不再用原来的名字跳了。