AgentScopeJava 2.0.0正式发布,生产级AI架构落地
AgentScope Java 2.0.0 正式发布 GA 版本了。
我之前写过好几篇这个系列——框架入门、Middleware 怎么用、Memory 系统、跟 LangChain4j 怎么选。每次写的时候都会在文末加一句"RC 版本不代表正式 GA,生产环境自己掂量"。现在这句话终于可以删了。
这篇文章不是把 release notes 翻译一遍。聊聊 GA 版本到底意味着什么,以及 2.0 整套架构走到今天,哪些设计是我觉得真正值得关注的。
GA 和 RC 的区别在哪
RC 是"功能做完了,你们帮忙试试有没有坑"。GA 是"我们认为这个东西可以上生产了"。
从 RC4 到 GA 这一步,功能层面没有大的新增。更多是稳定性收尾、文档补齐、API 定稿。但心理上的意义不一样——团队内部敢在自己的业务系统上用了,你给老板汇报的时候也不用加"目前还在 RC 阶段"这个免责条款了。
2.0 的架构到底长什么样
我从 RC1 一路跟过来,现在回头看,2.0 的核心设计可以用一句话概括:让 Agent 可靠地完成任务。
不是"让 Agent 能聊天",不是"让 Agent 能调工具"——这些 1.x 就能干。2.0 要解决的是"在生产环境里,Agent 接到一个任务,能不能稳定地跑完,出了问题能不能兜住"。
围绕这个目标,架构分成了几层。
双层 Agent:推理归推理,工程归工程
2.0 把 Agent 拆成了两层:
ReActAgent 是推理核心。它只做一件事:reason → tool call → respond 的 ReAct 循环。2.0 里它彻底无状态了,所有可变状态通过 Reactor Context 透传。一个实例可以并发服务多个用户和会话,不用每次 new。
HarnessAgent 在 ReActAgent 外面套了一层工程基础设施。比如:Workspace、Memory、沙箱、子 Agent、Skill、Plan Mode——这些跟"推理"本身无关,但在生产环境里缺一不可的东西,全在这一层。
事件流:Agent 不再是黑盒
2.0 统一了消息模型:ContentBlock 体系下有 TextBlock、DataBlock、ToolUseBlock、ToolResultBlock、HintBlock 等类型,每种消息都能结构化表达。
更重要的是 streamEvents() 接口,可以触发 28 种 AgentEvent。从 Agent 开始执行、每轮推理、每次工具调用、用户确认、到最终结果,全生命周期可观测。前端 UI 可以实时跟进文本增量、工具调用进度、HITL 审批请求。
我之前写 RC3 那篇专门聊过事件流的演进——从 RC1 引入基础架构,到 RC2 让子 Agent 事件也能流出来,到 RC3 补上结果事件和自定义事件。GA 版本在这块没有新增事件类型,但把之前几个 RC 里的事件时序问题都修了。
权限系统:不是所有工具都能随便调
这个是我觉得 2.0 里最容易被忽略但最重要的设计之一。
PermissionEngine 对每次工具调用做一个三态判定:允许、需要用户审批、拒绝。判定依据包括静态规则、工具类型、输入内容分析。敏感操作自动走 Human-in-the-Loop 审批流程。
在 demo 里你不需要这个——反正就你一个人在用。但在生产环境里,你的 Agent 可能会调到一个删除数据库的 API,或者给用户发一封邮件。没有一个权限层挡着,出事是早晚的。
Middleware:五个位置,想插哪插哪
这个我之前写了一整篇,可以翻回去看看。说的是:五阶段洋葱 + 流水线混合模型:onAgent、onReasoning、onActing、onModelCall、onSystemPrompt。日志、追踪、限流、安全检查、主备模型切换——都可以依赖 Middleware 实现,Agent 本身的代码完全可以一行不用动。
GA 版本里 Middleware 接口稳定了,RC 阶段那几个关于执行时序的 bug 都修了。
其他还有好几个地方值得说一说的
Context Engineering:上下文超长的时候做结构化压缩:保留任务目标、当前状态、关键发现和下一步计划,把超大的工具结果落盘只留占位符。文件工具强制"先读再改"策略,内置缓存减少重复 IO。
Workspace 抽象:本地文件系统、Docker、Kubernetes、E2B 云沙箱,一套接口。还内置了预热池,支持并行 RL rollout 场景。
模型容错:统一的 Credential + ModelRegistry,覆盖 Qwen,OpenAI, Anthropic,Gemini, DeepSeek, 也支持Ollama的自建模型。同时可配置最大重试次数和备用模型,主模型挂了自动 failover。
分布式部署:一行 DistributedBackend 配置,支持 Redis,OSS,MySQL ,PostgreSQL,COS。AgentStateStore 依据 (userId, sessionId) 自动进行分桶隔离,同时还支持跨副本 session 恢复、沙箱快照、子 Agent 跨副本路由。
协议互通:内置 A2A,MCP,AG-UI 协议适配。Agent 之间的标准化通信和前端渲染需求都覆盖了。
多 Agent 编排:声明式子Agent 定义(YAML,Markdown),运行时 agent_spawn,agent_send,支持同步阻塞和后台委派两种模式。子Agent 的事件流可以实时转发到父 Agent。
Skill 系统:四层Skill组合(Classpath,FileSystem,Nacos, Marketplace)+ SkillFilter 细粒度过滤 + 自学习闭环。
从 RC1 到 GA,提供了哪些功能
RC1(2026-06-03):核心架构落地:HarnessAgent、Workspace、Middleware、分布式 Session、多租户隔离
RC2(2026-06-09):Agent 无状态改造、DistributedBackend、子 Agent 事件流转发、运行时权限切换
RC3(2026-06-11):AgentResultEvent,CustomEvent,call,streamEvents 统一执行核心
RC4(2026-06-18):异步工具执行和通知、持久化子 Agent 注册表、跨副本路由
GA(2026-07-10):稳定性收尾、API 定稿、文档补齐
每个 RC 都在补一个生产场景的缺口。异步执行、权限热切、子 Agent 持久化、事件流完善——这些不是"酷炫的新 feature",是"真正长期跑在服务器上才会遇到的问题"。
谁应该关注这个版本
之前因为"还在 RC 阶段"而没敢用,现在可以认真评估了,特别适合的几个场景如下:
核心系统是 Java,不想为了 Agent 引入一个 Python 服务
Agent 需要自主规划多步任务,不是简单的问答
需要生产级的安全控制——权限、沙箱、审计
要上 K8s 做分布式部署,需要 session 恢复和跨副本路由
想做多 Agent 协作,需要标准化的 Agent 间通信
如果只是"给 Spring Boot 项目加个 AI 问答",LangChain4j 或 Spring AI 可能更轻量。选型的事我在对比那篇里聊过了,这里就不赘述了。
升级指南
官方提供了 V1 迁移指南,从 1.x 升上来的建议先好好看一遍,架构变化非常大。
从 RC4 升 GA 应该很平滑,核心 API 没有 breaking change。
如果新入坑的话,直接看 Quickstart,版本号写 2.0.0。Going to Production 那篇文档建议也读一下,里面讲了分布式部署、权限配置、模型容错这些生产相关的话题。
<dependency><groupId>io.agentscope</groupId><artifactId>agentscope-harness</artifactId><version>2.0.0</version></dependency>
写这个系列大半年了。从第一篇文章"Java 也能做 AI Agent"的疑问,到现在"2.0 GA 了,可以上生产了"的确认,看着一个框架从骨架到血肉一步步成型,这种体验挺好的。
Java 生态的 AI Agent 基础设施,去年这时候还是荒漠,现在至少有一条成熟的路可以走了。至于这条路能走多远,就看社区和生态能不能跟上。
