Repository navigation
AgentScope Java 2.0.4 adds OpenAI Responses API support, a redesigned AgentScope Service, new channel and storage integrations, and stronger isolation for concurrent agent runs, tools, and skills.
Added
Core / Models
- Add the OpenAI Responses API module (#3078).
- Support
returnDirecttool results to short-circuit the reasoning loop (#2891). - Expose detailed chat usage token metrics and model-fallback failover listeners (#3215, #3145).
- Support Anthropic bearer token authentication (#3038).
- Add a type-safe Jev System One client, Spring Boot starter, and example middlewares (#3240).
Harness / Tools / Storage
- Add per-run execution control with
AgentRun/RunControland explicit runtime context propagation (#3279). - Add request-scoped tool configuration and isolate tool visibility, streaming callbacks, and session skill resources (#3283).
- Add opt-in
sharedLocalWorkspaceto filesystem specs (#3247). - Allow disabling built-in web tools and injecting an HTTP client into them (#3075, #3103).
- Add configurable MCP metadata propagation per server and tool (#3255).
- Add MongoDB storage extension (#2698).
- Automatically prune old E2B native snapshots per sandbox (#2555).
Service / Channels
- Introduce the redesigned AgentScope Service implementation (#3080).
- Add Personal Weixin iLink channel integration (#3184).
- Add DingTalk HTTP callback receive mode alongside Stream mode (#3177).
- Add pluggable channel access-token storage and inbound-event deduplication, with idle eviction for bot-loop guards (#3182, #3175).
- Expose inbound channel media messages as neutral metadata (#3180).
Refactored
Core / Runtime
- Remove the unused message role parameter (#3045).
- Removed
activeRc, agent-levelgetRuntimeContext(), and the deprecatedRuntimeContextAwarehook setter contract.RuntimeContextis now passed explicitly through middleware and tool parameters (#3279). - Removed Harness repository context suppliers and the context-less skill-promotion overload. Explicit context is carried through skill lookup, creation, edits, resource operations, archiving, and security rollback; context-less repository operations use the default namespace (#3279).
- Derive
Version.VERSIONfrom the Maven project version (#3087). - Migrate the documentation site to Mintlify while preserving legacy URLs and restoring hosted language switching (#3081, #3082, #3276).
Core / Tools / Skills
- Removed shared skill activation and toolkit-binding APIs in favor of explicit request/session state. Deleted public types:
RegisteredSkill,ToolkitAware,agui.model.ToolMergeMode,ToolInjection. Deleted members:setInternalChunkCallback,syncToolGroupStates,isSkillActive,replaceMetaActiveGroups(#3283). - AG-UI's borrow-mutate-restore
ToolInjectionmodel is gone;ToolRequestConfigcomposes external schemas with the agent registry per invocation (#3283).
Model Providers
- Pass Gemini tool parameter schemas directly as native JSON Schema (#3051).
HttpTransportConfig#getHttpVersion()now returnsnullby default instead ofHTTP_2. Downstream code calling this getter must add null-check handling to avoid NPE. SethttpVersion(HTTP_2)explicitly to preserve the previous behavior on plaintext HTTP URLs;https://users are unaffected (#3214).DashScopeMessageandOpenAIMessageno longer exposecacheControl(getter, setter, builder method). Message-levelcache_controlvalues are no longer emitted or migrated.
Fixed
Core / State / Concurrency
- Isolate concurrent invocation contexts and cancellation of individual running or queued executions (#3279); prevent cross-session tool and skill interference (#3283).
- Fix version-0 state migration CAS conflicts, atomically return JDBC unconditional-write versions, and cache versions after unconditional writes (#3165, #3220, #3236).
- Evict slot versions with the state cache, avoid deserializing the
Statemarker interface, and persist state after empty agent results (#3074, #3048, #3049). - Preserve failed summary termination state and handle synchronous model-fallback failures (#2757, #3149).
- Emit tool-result events for denied HITL calls and support custom denial reasons (#3104, #2546).
- Make JSON Schema generation thread-safe (#2796).
Model Providers
- Preserve reasoning details from all streaming chunks and thought signatures across JSON persistence round-trips; remove redundant OpenAI tool metadata (#3128, #2910, #2914).
- Move cache control to content blocks (#2878).
- Decouple DashScope streaming from thinking mode, allow custom multimodal endpoint detection, and offload blocking embedding SDK calls (#3137, #3163, #3265).
- Correct Gemini token usage accounting (#3034).
- Serialize Ollama tool-result names as
tool_nameand expose thinking output asThinkingBlock(#3093, #3146).
Harness / Sandbox / Integrations
- Preserve non-UTF-8 file uploads and expose session workspace paths in prompts (#2456, #3020).
- Rebind Kubernetes remote snapshots on state resume and preserve wrapping newlines in commands (#3025, #3204).
- Improve Docker sandbox native file transfer and reject truncated downloads (#2923).
- Keep MCP connections open for AgentRun sandboxes that are not owned by the caller; preserve image URLs in MCP tool results (#2302, #3053).
- Allow path separators in JDBC sandbox-shaped slot IDs (#3233).
- Preserve AG-UI tool results after permission resume, assign unique IDs to discontinuous text segments, and clear active-run markers before terminal signals (#3100, #3010, #3109).
- Propagate WeCom send rejections as stream errors (#3173).
- Use modular core and AG-UI dependencies in Spring Boot starters (#3156).
- Normalize Milvus L2 retrieval scores and escape WordReader Markdown table cells (#3070, #3169).
Documentation
- Add bilingual Agent Harness building guides and rebuild AgentScope Service product guides (#3139, #3136).
- Document Jev structured decision integration and correct the documented
CompactionConfig.keepTokensdefault (#3274, #3144).
Full changelog: v2.0.3...v2.0.4