Release Notes
本页记录 AgentScope Java 2.0 各版本的具体变更。从 1.x 升级的整体迁移指南请见 V1 迁移指南。
2.0.1
发布日期:2026-08-05
AgentScope Java 2.0.1 是 2.0.0 GA 之后的首个维护版本,重点补齐模型提供商生态、完善 Harness 子 agent HITL 权限与稳定性,并修复一批生产场景中的关键问题。
新增
核心 / Agent
Middleware 支持执行优先级排序:
MiddlewareBase.order(),数值越高越外层;ReActAgent.Builder.build()会在注册完成后稳定降序排序 (#2532, #2449)新增 Session 上下文清理 API:
ReActAgent/HarnessAgent支持在不换 session 的情况下清空模型可见对话上下文 (#2499, #2496)暴露
ReActAgent状态缓存清理 API,便于长生命周期实例主动释放缓存 (#2572)HITL 恢复权限确认时发射
UserConfirmResultEvent,可与前置RequireUserConfirmEvent通过replyId关联 (#2511)Anthropic 支持配置
disable_parallel_tool_use(#2257)
模型提供商
新增 OpenAI 兼容扩展包,为三方兼容厂商提供统一适配基础 (#2208)
新增 DeepSeek 一等公民模型提供商(
deepseek:<model>、DEEPSEEK_API_KEY)(#2307, #2211)新增 GLM(智谱 AI)提供商与专用 formatter (#2316)
新增 MiniMax OpenAI 兼容提供商 (#2299)
Harness / 工具
远程子 agent 支持事件流转发与 HITL resume (#2559)
异步工具结果等待支持按
taskId精确等待 (#2529)支持通过
AGENTSCOPE_WORKSPACE环境变量配置默认工作区,便于镜像打包 (#2310)
AG-UI
Spring Boot Starters
重构
Kubernetes 沙箱存储迁移至 agent-sandbox CRD / 控制器模型,由集群侧负责沙箱生命周期与预热池 (#2308)
修复
核心 / Agent
onModelCallmiddleware 对文本 delta 的变换会正确应用到最终消息,修复原生结构化输出读到陈旧文本的问题 (#2469, #2385)ReActAgent.close()解绑 state-saver,避免优雅停机注册表堆积导致 OOM (#2322, #2321)ReActAgent.close()解绑ShutdownStateSaver,修复内存泄漏 (#2384)用户中断正确标记为 interrupted reason (#2260)
写入 agent 状态文件时容错畸形 Unicode,避免
UnmappableCharacterException(#2255, #2204)转发 reasoning middleware 事件(如
InboxMiddleware的HintBlockEvent)到streamEvents()(#2179, #2160)
模型提供商
DashScope:将
qwen3.8-max路由到多模态端点 (#2553)OpenAI:流式分支用
Flux.defer包裹,使重试能重新发起 HTTP 请求 (#2079)OpenAI:遇到
[DONE]哨兵正确终止流 (#2104)OpenAI:丢弃非 chunk 的 summary 事件消息,避免内容重复 (#2367)
OpenAI:
OpenAIMessageConverter规范化name字段 (#2346)OpenAI AutoConfiguration:api-key 改为可选 (#2175)
Ollama:正确遵循
stream标志 (#2415)Anthropic:
ToolChoice.None正确映射为禁止工具调用(此前误映射为强制调用)(#2232, #2221)模型提供商优化与兼容性调整 (#2474)
Harness 工具 沙箱
远程子 agent 转发事件时正确打上
taskId(#2575)Memory prompt guidance 受 disable 标志门控 (#2565)
子 agent 结束事件在父 agent 完成前发出,避免事件丢失 (#2544)
派生子 agent 强制继承父级 DENY 权限规则 (#2477)
Skill promotion 过程中保留
RuntimeContext(#2465)子 agent 强制执行 Plan Mode (#2377)
拒绝 workspace 路径穿越(如
../)(#2358)链式 compaction 保留先前摘要,避免丢失用户意图 (#2360)
保留 skill 隔离与工具结果历史 (#2319)
RemoteFilesystem递归 glob 能匹配搜索根目录下的文件 (#2343)FilesystemTool 可选参数标记为
required=false(#2227)优化 shell-execute 的
working_directory参数与工具使用提示 (#2107)声明式子 agent 继承父级
modelExecutionConfig/toolExecutionConfig(#2252)修正
sessionId参数描述 (#2195)
存储 / 传输
Spring Boot / Examples
修复 Spring Boot starter 包名错误 (#2264)
示例改用原始 DashScope 模型名(去掉无效
dashscope:前缀)(#2318)修正 skill 示例资源路径 (#2250)
改进文档与示例 (#2508)
文档
README 补充 Agent Evolution 到 Java 2.0 特性列表 (#2494)
补充 model builder customizer 文档 (#2092)
模型文档更新 (#2100)
修正 README 文档链接与 Release Notes URL (#2099)
更新 AG-UI 文档 (#2274)
2.0.0 (GA)
发布日期:2026-07-10
AgentScope Java 2.0.0 正式发布(General Availability)。这是从 1.x 到 2.0 的首个正式版本,标志着 AgentScope Java 从"透明开发"迈向"系统工程"的里程碑。
2.0 版本核心设计概要
AgentScope Java 2.0 围绕"让智能体稳定完成任务"这一目标进行了系统性升级,核心设计如下:
双层 Agent 架构
ReActAgent:无状态的推理核心,提供"推理 → 工具调用 → 回复"的 ReAct 循环。2.0 中 Agent 实例完全无状态,所有 per-call 可变状态通过 Reactor Context 透传,同一实例可安全并发服务多个
(userId, sessionId)组合HarnessAgent:在 ReActAgent 之上通过 Middleware 与 Toolkit 两个扩展通道,叠加工作区、记忆、沙箱、子 agent、技能与计划模式等工程化基础设施——核心推理循环原样保留,只叠加不替换
消息与事件流
统一的 ContentBlock 消息模型(TextBlock DataBlock ToolUseBlock ToolResultBlock HintBlock 等),配合 streamEvents() 返回的 28 种类型化 AgentEvent,让 Agent 的执行过程可展示、可交互、可干预。前端 UI 可实时跟随文本增量、工具调用、用户确认等全生命周期事件
权限系统
全新的 PermissionEngine 为工具调用建立"允许 用户审批 拒绝"三态决策机制。根据静态规则、工具类型和输入内容综合判断,敏感操作自动进入 HITL 审批流程
Middleware 扩展机制
五阶段洋葱 + 管道混合模型(onAgent onReasoning onActing onModelCall onSystemPrompt),在保持核心框架稳定的同时,为日志追踪、安全检查、业务策略、上下文注入等提供灵活的扩展点
上下文工程
结构化压缩保留任务目标、当前状态、关键发现与下一步计划;超大工具结果自动落盘,上下文仅保留占位符;文件读写内置缓存并强制"先读后改"策略
Workspace 执行环境抽象
将"Agent 做什么"与"在哪里执行"解耦。本地文件系统、Docker 容器、Kubernetes、E2B 云沙箱等执行后端统一到同一套接口。内置预热池机制,适配 RL rollout 等并行场景
模型容错
统一的 Credential + ModelRegistry 抽象,覆盖 Qwen OpenAI Anthropic Gemini DeepSeek / Ollama 等主流模型。可配置最大重试与备用模型,主模型不可用时自动切换
企业级分布式部署
DistributedBackend 一键配置(Redis OSS MySQL PostgreSQL COS),AgentStateStore 按 (userId, sessionId) 自动分桶持久化。Session 跨副本恢复、沙箱状态快照、子 agent 跨副本路由
协议互通
内置 A2A(Agent-to-Agent)与 MCP(Model Context Protocol)协议支持,以及 AG-UI 协议适配,覆盖智能体间通信与前端展示的标准化需求
多智能体编排
声明式子 agent 规格定义(YAML Markdown),运行时按需 agent_spawn agent_send,支持同步阻塞与后台委派两种模式。子 agent 事件流可实时转发到父 agent 的 streamEvents()
技能系统
四层 Skill 合成(Classpath FileSystem Nacos / Marketplace)+ SkillFilter 细粒度过滤 + 自学习闭环(propose → curate → promote)
自 RC5 以来的变更
以下为 2.0.0-RC5(2026-07-07)至 GA 版本之间的增量变更。
新增
当 HITL 拒绝所有工具调用时触发
AllToolsDeniedEventhook,方便应用层监听和处理全拒绝场景 (#2083)wait_async_results增加防护机制,防止反复长时间阻塞等待 (#2093)新增
PostgresDistributedStore,支持 PostgreSQL 作为 HarnessAgent 的分布式后端 (#2054)Spring Boot Starter 新增 OpenAI、DashScope、Anthropic 模型的 builder customizer,简化自动配置 (#2045)
修复
核心 / Agent
seedSystemMsg改为 reactive 实现,避免在 NIO 线程上调用block()(#2086)PERMISSION_ASKING 状态的结果消息中正确包含 ASKING 状态的 ToolUseBlock (#2082)
通过
activateOnSkill字段正确激活 SkillToolGroup (#2057)用户中断时保存 agent 状态,防止会话丢失 (#1970)
模型提供商
Harness 工具 沙箱
外部工具执行现在正确产生 suspended 结果 (#2071)
Plan Mode 下允许 SkillLoadTool,通过将
isReadOnly提升到 AgentTool 接口实现 (#2067)中断孤儿子 agent:当 AgentSpawnTool 的父订阅取消时正确中断子 agent (#2064)
MemoryFlushMiddleware 移除不必要的 ReActAgent 类型限制 (#2078)
ROOTED 模式下将以
/开头的路径解析为相对于 workspace (#2049)workspace projection 前预先部署 marketplace 技能 (#2059)
Kubernetes
hydrateWithArchive中 null exit code 视为成功 (#1915)恢复持久化状态时使用更新后的 WorkspaceSpec (#1928)
AgentRun MCP 响应支持嵌套 JSON 和 banner 前缀 (#1930)
Docker workspaceRoot 使用解析后的 workingDir (#2033)
Channel
OutboundAddress 中包含 PeerKind,修复群组消息路由 (#2060)
A2A
合并流式文本 chunk,避免碎片化 (#2058)
2.0.0-RC5
发布日期:2026-07-07
重大变更
模型提供商模块化 —— OpenAI、Gemini、Anthropic、DashScope、Ollama 模型提供商从
agentscope-core拆分为独立的agentscope-extensions-model-*扩展模块。应用需添加对应扩展依赖 (#1890, #1916, #1947, #1972)
新增
所有模型提供商(OpenAI、DashScope、Gemini、Anthropic)统一支持
DataBlock多模态内容,覆盖单 agent、多 agent 和工具结果路径 (#1933)原生结构化输出(Structured Output)与工具调用协同工作 —— 支持模型原生 JSON Schema 约束 (#1904)
DashScope 模型支持原生结构化输出 (#1935)
McpClientBuilder新增httpRequestCustomizer,支持动态 token 注入(如 OAuth 刷新)(#1992)AguiEvent对齐 AG-UI 协议规范,补全缺失事件类型 (#1862)子 agent 可选技能白名单过滤 (#1873)
NacosSkillRepository支持knownSkillNames(#1853)新增
CosAgentStateStore、CosBaseStore、CosDistributedStore,支持腾讯云 COS 状态持久化 (#1857)ChatUsage暴露 cached prompt tokens (#1868)
修复
核心 / Agent
用户中断恢复时持久化 agent 状态 (#2008)
正确连线 fallback model 到
ReActAgent(#1851)修复
ReActAgent流式事件 block end 顺序 (#1829)在加入 agent 上下文前更新
ToolResultBlock状态 (#1886)复用 classpath skill JAR 文件系统,避免资源泄漏 (#1981)
修复
serializeOnKey在Flux.create回调中的 gate 泄漏 (#1796)
模型提供商
将
thinkingBudget映射到 OpenAI 兼容 API 请求 (#2028)修复 Anthropic 流式 thinking event 处理 (#1943)
保留
OllamaOptionsfromOptions/toBuilder中的executionConfig(#2011)DashScope thinking 模式下降级强制 tool choice (#1882)
Harness / 沙箱
修复远程快照状态反序列化 —— Jackson 往返后重新注入
RemoteSnapshotClient(#2013)修复 THROTTLED 记忆保存模式在每次请求新建实例时失效 (#1788)
通过 wakeup dispatch 传播
userId(#2001)message bus 心跳改用
boundedElastic调度器 (#1974)避免
fromAgent重复注册GracefulShutdownMiddleware(#1952)转义
ShellPathPolicy返回路径中的空格 (#2031)YAML 解析失败时回退到简单键值提取 (#2027)
ls命令报告沙箱文件大小 (#1838)归一化 Windows
list_files路径 (#1892)LocalFilesystem.edit()将\r\n归一化为\n(#2020)CompositeFilesystem将"."视为根路径 (#1830)校验
working_directory防止命名空间逃逸 (#1834)未配置分布式
AgentStateStore时回退到LocalFilesystemSpec(#1841)修复 Kubernetes
hydrateWithArchiveWebSocket 竞态导致exit=null(#1903)容忍 wrapped sandbox base64 下载 (#1866)
移除
AgentRunsandbox API 版本前缀 (#1891)E2B sandbox 新增 connect JSON codec 支持 (#1844)
链路追踪 / 可观测性
从 Reactor
ContextView读取父 OTel Context,修复OtelTracingMiddleware孤立 span (#1940)修复
OtelTracingMiddleware子 span 看不到正确父 span (#1909)将 Reactor context 传播到 chunk event hooks (#1923)
子 Agent
A2A
AG-UI
传播 run input 和 frontend tools (#1895)
其他
Middleware
doFlush包装Mono.defer防止提前求值 (#1880)Nacos auto-configurations 改为 opt-in(
matchIfMissing=false)并修复 A2A server-addr 覆盖 (#1709)DataAgent 补充
ObjectMapperbean (#1993)
文档
明确流式事件
blockId语义 (#2016)改进模型提供商文档 (#1986)
移除无效的
ChatResponse.isLast引用 (#1921)修复多副本 Redis 示例 —— 声明 jedis 依赖并补充
stateStore(#1869)修复
MemoryCompactionExample展示 memory 文件并触发 compaction (#1978)
2.0.0-RC4
发布日期:2026-06-18
新增
Agent harness 支持异步工具执行和通知,包括 message bus、async tool registry 和 scheduled wakeup dispatching (#1802)
Agent 调用新增 String/Message 便捷重载;所有 formatter 支持
HintBlock(#1802)持久化 spawn registry 支持子 agent 跨副本路由和 session 恢复 (#1817)
DynamicSkillMiddleware实现ToolkitAware,支持动态接收解析后的 toolkit (#1828)Kubernetes sandbox 支持向 Pod 注入环境变量 (#1789)
修复
修复 Kubernetes 文件上传中的 SIGKILL 竞态条件,使用两阶段 archive 策略 (#1826)
修复超时子 agent 未在重试时中断导致的资源泄漏 (#1784)
修复复制
RuntimeContext时丢失 typed attributes (#1813)修复 MySQL utf8mb4 字符集下
JdbcStore表初始化失败 (#1781)Session JSONL offload 改为幂等,防止重复写入 (#1774)
修复
TelemetryTracer中 OpenTelemetry context 传播 (#1799)修复
OllamaChatModel获取 tool choice 时 options 为 null 导致 NPE (#1803)补充
LocalSandboxSnapshot缺失的 Jackson 注解 (#1825)修复 sandbox glob 不支持
**/递归模式 (#1684)修复
SkillFilter使用 composite ID 而非 skill name 匹配 (#1771)允许
MultiModalTool使用自定义默认视觉模型 (#1701)
文档
修复 middleware 文档中错误的 hook 签名 (#1835)
修复文档示例中引用不存在的
.sandboxContext()(#1792)修复 v2 文档中
getToolName()→getToolCallName()(#1760)文档站点新增 AI 上下文菜单
2.0.0-RC3
发布日期:2026-06-11
新增
AgentResultEvent—— 新增事件类型,在 agent 调用完成后、AgentEndEvent之前发出,携带最终Msg结果。streamEvents()的消费方可直接从事件流中获取最终结果,无需额外订阅Mono<Msg>返回值CustomEvent—— 通用可扩展事件,用于中间件向前端推送应用级通知(状态变更、团队变更等),无需为每种业务场景新增AgentEventType。内置 well-known name:state_updated、team_updatedHintBlockEvent—— 一次性 hint block 事件,用于传递团队消息、后台工具结果、用户中断等完整内容,区别于需要流式拼接的 text/thinking blockWorkspacePathNormalizer—— 文件路径归一化工具,将绝对路径转换为 workspace 相对路径。根据当前文件系统模式(本地 / 沙箱)注册前缀,避免跨模式误匹配工具事件携带
toolCallName——ToolCallDeltaEvent、ToolCallEndEvent、ToolResultDataDeltaEvent、ToolResultEndEvent、ToolResultTextDeltaEvent均新增toolCallName字段,消费端不再需要缓存 start 事件的名称映射
变更
call()与streamEvents()共享执行核心 —— 新增内部buildAgentStream方法作为call()和streamEvents()的统一实现,确保onAgentmiddleware 链在所有调用路径上一致触发。call()从事件流中提取AgentResultEvent获得结果,移除了旧的独立agentImpl逻辑分布式部署下 session 状态始终从 store 加载 ——
activateSlotForContext在配置了AgentStateStore时,每次调用开头从 store 重新加载状态和权限引擎,避免分布式环境中同一 sessionId 漂移到不同机器时读到过期本地缓存ToolResultEvictionMiddleware时机修正 —— 从onActing(此时状态尚未写入,导致空操作)迁移到onReasoning,确保工具结果已持久化后再执行淘汰LocalFilesystem路径解析简化 —— 重构路径解析逻辑,减少冗余代码
修复
修复
RuntimeContext在测试中未设置userId导致用户隔离不准确的问题
2.0.0-RC2
发布日期:2026-06-09
新增
projectWritable模式(LocalFilesystemSpec)—— 开启后,agent 的文件写入按路径自动路由:工作区元数据(MEMORY.md、agents/、skills/等)写到 workspace,其余文件(代码、配置等)直接落到项目目录。适合代码生成类 agent。详见 文件系统 · 项目可写模式Permission 系统运行时切换 —— 新增
HarnessAgent.setPermissionMode()/getPermissionMode(),支持在运行时按 session 动态调整权限模式子 agent 事件流转发 ——
streamEvents()现在实时转发子 agent 的中间事件(TextBlockDelta、ToolCallStart等),每个事件携带source路径标识来源AgentEvent.source来源标识 —— 所有AgentEvent新增source字段,在同一事件流中区分 main agent 事件(source = null)和 sub agent 事件(source = "main/researcher"等路径格式),消费端无需额外状态即可分流处理Compaction / Memory 定制 prompt 和 model ——
CompactionConfig和MemoryConfig新增.model()和.prompt()builder 方法,允许为上下文压缩和记忆提取指定独立的轻量模型和自定义 prompt,不再强制使用 agent 主模型Qwen 3.7 模型支持 ——
ModelRegistry新增dashscope:qwen3.7-plus等 Qwen 3.7 系列模型的解析支持直接与子 agent 对话 —— 支持通过
agent_send直接向已声明的子 agent 发送消息并获取响应,无需经过父 agent 的推理循环Channel 模块 —— 新增
agentscope-extensions-channel系列模块,实现 IM 平台接入(钉钉、飞书、企业微信、GitHub、GitLab),内置 ChatUI 提供开箱即用的对话界面DistributedBackend统一接口 —— 新增DistributedBackend抽象,收敛分布式部署所需的所有存储组件(AgentStateStore、BaseStore、SandboxSnapshotSpec)为一键配置。内置RedisDistributedBackend、OssDistributedBackend、MysqlDistributedBackend等实现,通过HarnessAgent.builder().distributedBackend(backend)一行完成分布式后端接入,不再需要分别配置 stateStore、baseStore、snapshotSpec
变更
Agent 完全无状态改造 ——
ReActAgent不再持有任何可变的 per-session 状态,所有可变状态封装在内部CallExecution中通过 Reactor Context 透传。同一 agent 实例可安全并发服务多个(userId, sessionId)组合Session 接口全面改为
AgentStateStore—— 移除SessionManager、StatePersistence等旧接口,统一使用AgentStateStore(内置InMemoryAgentStateStore、JsonFileAgentStateStore、RedisAgentStateStore、MysqlAgentStateStore),按(userId, sessionId)二元组自动分桶持久化BaseStore接口包名迁移 ——BaseStore及相关接口从旧包迁移到新包路径,使用旧 import 的代码需要更新Extension 模块坐标整合 —— 部分扩展包 Maven 坐标调整,按职能重新归类。例如
agentscope-extensions-session-redis合并为agentscope-extensions-redis(同时包含RedisAgentStateStore、RedisStore、RedisSnapshotSpec等)。使用旧坐标的 pom 需要更新<artifactId>Sandbox 实现从 harness 内核拆出 —— Docker、Kubernetes、E2B、Daytona、AgentRun 等沙箱后端的实现从
agentscope-harness内核移至独立扩展包(agentscope-extensions-sandbox-*)。harness 内核仅保留SandboxFilesystemSpec等抽象接口,不再传递具体实现依赖。如需使用沙箱需额外引入对应扩展包,例如 Docker 沙箱需添加agentscope-extensions-sandbox-dockerPlan Mode 优化增强 —— 改进计划文件持久化与恢复机制,优化
plan_enterplan_writeplan_exit工具链的交互体验,增强 HITL 审批流程的稳定性Skill 自进化增强 —— 优化技能提案(
ProposeSkillTool)、审批(SkillCurator)与晋升(SkillPromoter)闭环,改进技能匹配精度与跨会话复用效果DashScopeHttpClient请求超时与重试策略调整ModelRegistry模型解析逻辑优化AgentState序列化格式更新
修复
修复
PermissionContextState在跨 session 恢复时的状态丢失问题修复
agentscope-all中缺失 4 个 sandbox 扩展模块(sandbox-kubernetes、sandbox-agentrun、sandbox-daytona、sandbox-e2b)的问题
2.0.0-RC1
发布日期:2025-05-28
首个 2.0 Release Candidate。包含从 1.x 的全部架构升级:
Harness 工程化(workspace、记忆、技能、子 agent、Plan Mode、上下文压缩)
企业级分布式部署(多租户隔离、沙箱执行、权限管控、会话恢复)
底层框架重构(事件流、消息模型、Middleware、HITL)
完整的 1.x → 2.0 变更列表请见 V1 迁移指南。