Releases: agentscope-ai/agentscope-java
v1.0.7
This release expands the ecosystem with comprehensive Ollama integration for local LLMs, introduces Kotlin Coroutine extensions for a more modern development experience, and significantly enhances the Skill and RAG systems with dynamic JAR loading and Tika document parsing.
🌟 Key Highlights
1. Comprehensive Ollama Integration
We have added full support for Ollama, enabling seamless integration with local Large Language Models (LLMs).
- Capabilities: Includes support for both Chat and Embedding APIs (#385).
- Documentation: Added comprehensive documentation to guide you through setting up and using Ollama with AgentScope (#492).
- Optimization: Improved test performance by replacing slow integration tests with fast unit tests (#544).
2. Kotlin Coroutine Extensions
For Kotlin developers, we have introduced a new extension layer to bridge the gap between Project Reactor and Kotlin Coroutines.
- Mechanism: Provides extensions to convert
Monotosuspendfunctions andFluxtoFlow(#376). - Impact: This allows for writing cleaner, more idiomatic Kotlin code when building agents, leveraging the power of structured concurrency.
3. Enhanced Skill Loading & RAG Support
The capability to manage external knowledge and tools has been significantly upgraded.
- Dynamic Skills: You can now load skills directly from external JAR files using
JarSkillRepositoryAdapter(#546). We also consolidated skill discovery tools into a unifiedload_skill_through_pathtool (#505). - RAG Parsing: Added support for Apache Tika, enabling the parsing of a wide variety of document formats for Retrieval-Augmented Generation (#538).
🚀 New Features
-
Model Enhancements:
-
Observability:
- Added header support to
TelemetryTracer, enabling authentication for observability platforms like Langfuse (#543).
- Added header support to
-
Memory & Context:
-
Spring & Framework:
-
Sub-Agents: Enhanced event forwarding mechanism to carry rich metadata (#529).
🛠️ Refactoring & Fixes
- Streaming: Added an option to filter "acting" chunks from the streaming output for cleaner UI integration (#553), and fixed duplicate message output issues (#487).
- Dependencies: Removed
snakeyamldependency in favor of a lightweight YAML parser (#524) and bumpedquartzto 2.5.2 (#437). - Bug Fixes:
- DashScope: Fixed missing additional headers and parameters in
DashScopeHttpClient(#481). - React: Enforced validation when pending tool calls exist (#499).
- RAG: Fixed RAG hooks not working and added logging for Bailian RAG failures (#542).
- Structured Output: Preserved
ChatUsagemetrics after memory compression (#540).
❤️ New Contributors
- @Alexxigang made their first contribution in #382
- @devnomad-byte made their first contribution in #385
- @zhangyunan1994 made their first contribution in #479
- @yangxb2010000 made their first contribution in #502
- @karsonto made their first contribution in #511
- @YangzeXie made their first contribution in #543
Full Changelog: v1.0.6...v1.0.7
v1.0.6
This release introduces significant enhancements to Human-in-the-Loop (HITL) interaction patterns and optimizes the streaming experience for tool usage. It also includes new integrations (Nacos), API simplifications, and various bug fixes.
🌟 Key Highlights
1. Comprehensive Human-in-the-Loop (HITL) Support
We have refactored the execution flow to support robust HITL scenarios. You can now suspend agent execution to await human input, confirmation, or modification, and then resume the process seamlessly.
- Mechanism: HITL is achieved via
stopAgent()withinPostReasoningEventorPostActingEvent. - External Tools: Added support for external tool execution with a suspension mechanism, allowing agents to "pause" while a tool (or human) performs an action asynchronously.
- Documentation: For a deep dive on implementation, please refer to the HITL Documentation.
- Example: Check out the new chat example with MCP tools and tool confirmation.
2. Enhanced Streaming: Incremental Tool Outputs
We have upgraded the streaming capabilities to support Real-time tool-use block emitting.
- Impact:
ReasoningChunkEventnow supports incremental returns for Tools. - For Developers: Please pay attention to the new output types in the stream. This feature allows for significant UI optimizations, such as displaying tool arguments or intermediate statuses to the user character-by-character as they are generated, rather than waiting for the full tool call to complete.
🚀 New Features
- Nacos Integration: Added AgentScope Nacos Spring Boot starter and A2A integration (#446).
- MCP Support: Added support for Model Context Protocol (MCP) builder configuration in the main config (#452).
- Model API Simplification: Removed
OpenAIConfigand simplified theOpenAIChatModelAPI for better usability (#427). - Customization:
- Support for
reasoningEffortfield in OpenAIChatFormatter (#444). - Support for customized tool result converters (#413).
- Support for customizing role numbers in the Werewolf example (#417).
- HTTP Transport: Switched default HTTP transport to JDK and enhanced its capabilities (#445).
🛠️ Refactoring & Fixes
- Tools: Added
Toolkitdeep copy to isolate agent state (#438). - JSON: Centralized JSON processing with
JsonCodecabstraction (#439). - Formatters: Extracted provider-specific logic into dedicated formatters (#428) and fixed OpenAI streaming chunk type detection (#436).
- Bug Fixes:
- Fixed handling of
TextBlockin the last REASONING event (#419). - Fixed output attribute after
callToolresponse (#443). - Fixed
ToolResultBlocktransient field issues (#455).
❤️ New Contributors
- @hujun-w-2 made their first contribution in #417
- @Howryann made their first contribution in #419
- @TornadoDragon made their first contribution in #436
- @wuji1428 made their first contribution in #433
- @alickreborn0 made their first contribution in #443
Full Changelog: v1.0.5...v1.0.6
v1.0.5
🎉 The 2025 Finale Release!
As we wrap up 2025, we are proud to present AgentScope Java v1.0.5. This marks our 9th release of the year. We extend our sincere gratitude to everyone who contributed code, feedback, and support to the AgentScope Java community over the past few months.
🚀 Key Highlights
- Universal Model Support: We have completely refactored the OpenAI request handling (replacing the SDK with a native HTTP client) to support all mainstream models from multiple providers.
- Enhanced Session Mechanism: The Session architecture has been redesigned to offer type-safe state persistence, better aligning with the Java ecosystem.
Warning
Since we have refactored the Session mechanism, previous methods for data storage may no longer be compatible.
Action Required: If you previously relied on Session for data storage, please refer to the upgrade instructions in our official documentation before updating.
📅 What's Changed
🛠 Core & Refactoring
- Refactor: Replace OpenAI SDK with native HTTP client for better compatibility (@JGoP-L in #393, @uuuyuqi in #338)
- Refactor: Redesign
SessionandStateModuleAPI for type-safe state persistence (@AlbumenJ in #388) - Refactor: Toolkit and
skillBoxregistration logic (@fang-tech in #377) - Cleanup: Remove deprecated
a2adependency and update docs (@LearningGp in #404)
✨ New Features
- Nacos Integration: Add Nacos support for AgentScope A2A registry and discovery (@KomachiSion in #387)
- RAG: Add
ExternalApiReaderfor third-party document parsing (@magicyuan876 in #318) - Scheduler: Add QuartZ scheduler module (@LoM-Klein in #369)
- Memory: Support self-hosted mem0 integration (@shiyiyue1102 in #403)
- Model: Explicitly assign values for thinking mode and search mode (@guanxuc in #380)
- Tools: Add thread-safe whitelist management and dynamic descriptions (@fang-tech in #379)
- Output: Support structured data dynamic definition (@chiangzeon in #357)
- AutoContext: Support custom context compress prompt (@shiyiyue1102 in #386)
🐛 Bug Fixes
- Stream: Use
subscribeOnfor blocking stream sources & respect StreamOptions config (@AlbumenJ in #410, #411) - Skill: Remove empty directory validation for
FileSystemSkillRepository(@fang-tech in #397) - Core: Fix path check with invalid paths (@guanxuc in #394)
- Msg: Fix NPE in
msgconstructor (@chiangzeon in #407) - Deps: Resolve
boba-tea-shopdependency issues (@LearningGp in #409)
❤️ Contributors
A huge thanks to all the contributors who made this release possible:
@Aias00, @Akika404, @AlbumenJ, @chiangzeon, @chickenlj, @Cirilla-zmh, @disaster1-tesk, @fang-tech, @flystar32, @goribun, @GTyingzi, @guanxuc, @guomo233, @JGoP-L, @jianjun159, @KomachiSion, @LearningGp, @LoM-Klein, @magicyuan876, @psxjoy, @qingTang0305, @shiyiyue1102, @shlokmestry, @uuuyuqi, @xuanmiss, @yangl, @yaohuitc, @zhangjiefan1992
Full Changelog: v1.0.4...v1.0.5
v1.0.4
What's Changed
- feat: enable dependabot by @AlbumenJ in #244
- feat: Support multimodal tool by @guanxuc in #241
- feat: add reasoning chunk and result filtering options to StreamOptions by @shlokmestry in #269
- refactor(a2a): migrate server properties to use Spring Environment to adapt spring boot 4. by @KomachiSion in #294
- feat: Compatible with XXL-Job 3.3.1+ by @yaohuitc in #298
- fix(agent):resolve msg construct method npe inMsg by @chiangzeon in #303
- feat(bom): Introduce agentscope-dependencies-bom by @guanxuc in #272
- feat(a2a): For issue#234, A2a Server support input multiple type message. by @KomachiSion in #304
- fix(core): Fix get text method when content is a List type by @guanxuc in #320
- feat(core): implement agent skill by @fang-tech in #88
- feat:mcp support queryParam by @qingTang0305 in #323
- feat(examples): support http request and response content compression by @uuuyuqi in #316
- feat(core): Enhance logging in StructuredOutputHandler by @guanxuc in #334
- fix(rag): remove needless content validation in QueryHistoryEntry constructor by @LearningGp in #345
- fix(core): Support oss protocol url by @guanxuc in #349
- feat(tool): add shell command build-in tool by @fang-tech in #270
- fix(core): Missing error handling for SSE response by @guanxuc in #359
- feat(a2a): For issue#234, A2aServer support control message content by configuration. by @KomachiSion in #364
- feat(rag): add HayStack RAG Integration by @Akika404 in #268
- feat: Add Built-in Agent Skill for CC & Cursor by @Aias00 in #224
- feat: auto context memory with plan note book by @shiyiyue1102 in #363
- feat(mcp):support higress tool search by @qingTang0305 in #337
New Contributors
- @shlokmestry made their first contribution in #269
- @flystar32 made their first contribution in #296
- @chiangzeon made their first contribution in #301
- @Akika404 made their first contribution in #268
Full Changelog: v1.0.3...v1.0.4
v1.0.3
What's Changed
- fix: Msg by @GTyingzi in #184
- feat(a2a): Support A2A protocol calling by A2aAgent. by @KomachiSion in #172
- fix(rag): Missing the dimension parameter for embedding by @guanxuc in #188
- feat(rag): OpenAI Embedding Support by @xuanmiss in #191
- feat(chat): Enhance message content retrieval and streaming output by @Aias00 in #193
- feat(#145): Add Quarkus integration with extension and starter by @JGoP-L in #185
- refactor: replace dashscope-sdk-java to native http request in model by @AlbumenJ in #123
- feat: Add LLM-friendly guide for AI code assistants (#148) by @JGoP-L in #186
- feat(core): opt memory concurrency and exception handling by @disaster1-tesk in #196
- feat: Allow finishing subtasks with a specified state and outcome. by @Aias00 in #199
- feat: update
McpSchema.CallToolResultto use a builder pattern and refine OpenAIseedparameter application. by @Aias00 in #201 - fix: remove parallel test config by @AlbumenJ in #203
- feat: add Reactor context propagation for tracing and dedicated tests by @Aias00 in #194
- feat(examples): add plan-notebook web application example by @LearningGp in #204
- refactor: Update Werewolf Game to Web Interation by @AlbumenJ in #202
- feat: Implement array and collection
itemsschema generation in ToolSchemaGenerator and add a corresponding test. by @Aias00 in #205 - feat: Implement AgentScope Micronaut Starter module by @JGoP-L in #189
- fix: Move Micronaut and Spring Boot starters under extensions by @JGoP-L in #212
- fix(tool): provide the agent with descriptions of all tool groups when using reset_equipped_tools (#210) by @guomo233 in #214
- feat(core): Add a security verification tool class and add a custom FanoutPipeline scheduler by @disaster1-tesk in #223
- feat: optimize auto context memory by @shiyiyue1102 in #213
- fix(core): fix InMemoryMemory deleteindex error add schedus builder support by @disaster1-tesk in #228
- feat(a2a): Support handle A2A request as a server and add a2a-spring-boot-starter. by @KomachiSion in #232
- fix(core): extract ExtendedModel and its simple-implement class by @fang-tech in #240
- feat: add sub-agent tool support for multi-turn conversation by @AlbumenJ in #209
- feat: support ag-ui by @AlbumenJ in #150
- refactor: refine project structure by @AlbumenJ in #243
New Contributors
- @GTyingzi made their first contribution in #184
- @KomachiSion made their first contribution in #172
- @guanxuc made their first contribution in #188
- @xuanmiss made their first contribution in #191
- @Aias00 made their first contribution in #193
- @JGoP-L made their first contribution in #185
- @disaster1-tesk made their first contribution in #196
- @guomo233 made their first contribution in #214
Full Changelog: v1.0.2...v1.0.3
v1.0.2
What's Changed
- fix: change rag&longtermmemory hook from prereasoning to pre call by @shiyiyue1102 in #156
- refactor(structured-output): change TOOL_CHOICE to deferred forcing mode and preserve tool history by @AlbumenJ in #160
- feat: Support MySQL Session Storage #152 by @uuuyuqi in #155
- feat:support auto context memory by @shiyiyue1102 in #163
- feat: add scheduler by @yaohuitc in #137
- feat: support agent.stream for structuredModel by @zhangjiefan1992 in #161
- feat: DashScopeChatModel add EnableSearch, To use web search by @yaohuitc in #169
- fix: current round summary by @shiyiyue1102 in #175
- feat(memory):support long term memory for ReMe by @shiyiyue1102 in #174
- extension dify and ragFLow rag by @qingTang0305 in #176
- feat(starter): Spring Boot Starter Integration by @jianjun159 in #168
- feat(example): add RoutingByToolCallsExample by @goribun in #177
- fix: update shade dependency list by @AlbumenJ in #178
- [Feature] milvuslite RAG Storage (#109) by @uuuyuqi in #179
- fix: fix repeated studio user message by @qingTang0305 in #181
- feat(AutoContextMemory): optimize current round msg compress by @shiyiyue1102 in #182
New Contributors
- @shiyiyue1102 made their first contribution in #156
- @uuuyuqi made their first contribution in #155
- @yaohuitc made their first contribution in #137
- @zhangjiefan1992 made their first contribution in #162
- @goribun made their first contribution in #177
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
- feat: add checkRunning parameter to control concurrent agent calls by @AlbumenJ in #111
- fix: installation docs by @AlbumenJ in #117
- feat: add ChatUsage to Msg metadata for token usage tracking by @AlbumenJ in #118
- refactor: reuse ObjectMapper to avoid repeated construction overhead. by @yangl in #121
- feat: enhance GenerateOptions with topK, seed and additional HTTP params by @AlbumenJ in #119
- feat: add build-in file operationg tool by @fang-tech in #89
- refactor: split examples by @AlbumenJ in #122
- refactor: move embedding to rag-simple by @AlbumenJ in #133
- feat(session): add support redis session storage by @jianjun159 in #142
- fix modifications to PostActingEvent in Hook not taking effect as expected by @LearningGp in #154
- fix: all-in-one should shade extensions by @AlbumenJ in #153
New Contributors
- @yangl made their first contribution in #121
- @jianjun159 made their first contribution in #142
Full Changelog: v1.0.0...v1.0.1
v1.0.0
The first stable release of AgentScope Java - an agent-oriented programming framework for building LLM applications.
Installation
Requires JDK 17+
<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope</artifactId>
<version>1.0.0</version>
</dependency>Highlights
- Multi-Model Support - DashScope, OpenAI, Anthropic, Gemini out of the box
- ReAct Agent - Built-in reasoning and acting loop with tool calling
- Annotation-based Tools - Define tools with simple
@Toolannotations - MCP Protocol - Native Model Context Protocol support
- Multimodal - Text, image, audio, and video content handling
- RAG - Knowledge retrieval with local vector store or Bailian integration
- Long-term Memory - Cross-session memory via Mem0 extension
- Multi-Agent Pipelines - Sequential, fanout, and message hub patterns
- Streaming & Hooks - Real-time output with execution lifecycle hooks
- AgentScope Studio - Visual debugging interface
Extensions
- agentscope-extensions-mem0 - Long-term memory
- agentscope-extensions-rag-simple - Local RAG
- agentscope-extensions-rag-bailian - Bailian knowledge base
- agentscope-extensions-studio - Visual debugger
v0.2.1
AgentScope Studio Integration
- Real-time Visualization: Added AgentScope Studio integration with real-time visualization capabilities for monitoring agent execution (#57)
RAG Support
- Comprehensive RAG Framework: Introduced full-featured RAG (Retrieval-Augmented Generation) support including:
- Embedding model integration
- Vector store implementations
- Document retrieval capabilities (#55)
Performance
- Non-blocking I/O: Improved model execution performance by using boundedElastic scheduler to prevent blocking I/O threads (#56)
v0.2.0
We're excited to announce the release of AgentScope Java v0.2.0, a major milestone that brings production-ready features, comprehensive multi-agent capabilities, and full alignment with the Python version.
Multi-Agent System
- MsgHub & Pipeline (#39, #36): Message broadcasting and orchestration for multi-agent collaboration
- PlanNotebook (#40): Structured multi-step task planning and execution
- Werewolf Game Example (#51): Complete multi-agent game with i18n support demonstrating advanced agent interactions
Advanced Tool System
- MCP (Model Context Protocol) Integration (#16): Connect to external tools and services
- Tool Streaming (#14): Real-time progress updates during tool execution
- Meta Tools & Tool Groups (#17, #42): Hierarchical tool organization with access control
- Parallel Tool Execution (#11): Concurrent tool calls for improved performance
Model Capabilities
- Multimodal Support (#25): Vision (Image) and Audio support for DashScope and OpenAI models
- Thinking Mode (#22, #24): Support for o1-style reasoning with ThinkingBlock
- Structured Output (#26, #37, #45, #46, #47): JSON schema-based response formatting with tool choice integration
- Timeout & Retry (#33, #35): Three-layer timeout architecture with exponential backoff retry
Agent Enhancements
- Agent Interruption (#15): Graceful agent interruption mechanism
- Context Summarization (#27): Auto-summarize when max iterations reached
- Stream API (#32): Reactive event streaming for real-time agent monitoring
- UserAgent Refactoring (#29): Comprehensive user interaction agent with builder pattern
Architecture Improvements
- Fully Reactive Execution (#28): Async-first architecture using Project Reactor
- Event-Driven Hooks (#13, #20, #41): Unified hook system aligned with Python implementation
- Sealed ContentBlock (#30): Type-safe message content using Java sealed classes
- SessionManager (#50): Automatic component naming and session management
- Formatter Restructuring (#45): Cleaner separation between DashScope and OpenAI formatters