Skip to content

v2.0.4

Latest

Choose a tag to compare

@chickenlj chickenlj released this 08 Oct 03:40

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 returnDirect tool 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 / RunControl and explicit runtime context propagation (#3279).
  • Add request-scoped tool configuration and isolate tool visibility, streaming callbacks, and session skill resources (#3283).
  • Add opt-in sharedLocalWorkspace to 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-level getRuntimeContext(), and the deprecated RuntimeContextAware hook setter contract. RuntimeContext is 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.VERSION from 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 ToolInjection model is gone; ToolRequestConfig composes 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 returns null by default instead of HTTP_2. Downstream code calling this getter must add null-check handling to avoid NPE. Set httpVersion(HTTP_2) explicitly to preserve the previous behavior on plaintext HTTP URLs; https:// users are unaffected (#3214).
  • DashScopeMessage and OpenAIMessage no longer expose cacheControl (getter, setter, builder method). Message-level cache_control values 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 State marker 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_name and expose thinking output as ThinkingBlock (#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.keepTokens default (#3274, #3144).

Full changelog: v2.0.3...v2.0.4