Skip to content

Releases: agentscope-ai/agentscope-java

v1.0.7

14 Jan 06:29

Choose a tag to compare

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 Mono to suspend functions and Flux to Flow (#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 unified load_skill_through_path tool (#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:

    • OpenAI: Added support for Video URLs in OpenAIModel (#476) and configurable endpointPath for OpenAI-compatible APIs (#488).
    • DashScope: Added support for secure encrypted access to Aliyun models (#511).
  • Observability:

    • Added header support to TelemetryTracer, enabling authentication for observability platforms like Langfuse (#543).
  • Memory & Context:

    • Prompt Optimization: Added CompressPrompt optimization for auto-context memory (#457).
    • Mem0: Added agentId support for Mem0 storage operations (#539).
  • Spring & Framework:

    • Added chat completions API support to the Spring Web Starter (#382).
    • A2A: Added comprehensive examples for Agent-to-Agent (A2A) communication using Nacos registry (#458) and improved message handling with agent names (#467).
  • 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 snakeyaml dependency in favor of a lightweight YAML parser (#524) and bumped quartz to 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 ChatUsage metrics after memory compression (#540).

❤️ New Contributors

Full Changelog: v1.0.6...v1.0.7

v1.0.6

05 Jan 13:01

Choose a tag to compare

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() within PostReasoningEvent or PostActingEvent.
  • 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: ReasoningChunkEvent now 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 OpenAIConfig and simplified the OpenAIChatModel API for better usability (#427).
  • Customization:
  • Support for reasoningEffort field 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 Toolkit deep copy to isolate agent state (#438).
  • JSON: Centralized JSON processing with JsonCodec abstraction (#439).
  • Formatters: Extracted provider-specific logic into dedicated formatters (#428) and fixed OpenAI streaming chunk type detection (#436).
  • Bug Fixes:
  • Fixed handling of TextBlock in the last REASONING event (#419).
  • Fixed output attribute after callTool response (#443).
  • Fixed ToolResultBlock transient field issues (#455).

❤️ New Contributors

Full Changelog: v1.0.5...v1.0.6

v1.0.5

31 Dec 14:21

Choose a tag to compare

🎉 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

⚠️ Breaking Change: Session Data Storage
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 Session and StateModule API for type-safe state persistence (@AlbumenJ in #388)
  • Refactor: Toolkit and skillBox registration logic (@fang-tech in #377)
  • Cleanup: Remove deprecated a2a dependency and update docs (@LearningGp in #404)

✨ New Features

  • Nacos Integration: Add Nacos support for AgentScope A2A registry and discovery (@KomachiSion in #387)
  • RAG: Add ExternalApiReader for 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 subscribeOn for 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 msg constructor (@chiangzeon in #407)
  • Deps: Resolve boba-tea-shop dependency 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

26 Dec 09:14

Choose a tag to compare

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

Full Changelog: v1.0.3...v1.0.4

v1.0.3

19 Dec 11:30

Choose a tag to compare

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.CallToolResult to use a builder pattern and refine OpenAI seed parameter 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 items schema 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

Full Changelog: v1.0.2...v1.0.3

v1.0.2

11 Dec 09:44

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.0.1...v1.0.2

v1.0.1

08 Dec 07:42

Choose a tag to compare

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

Full Changelog: v1.0.0...v1.0.1

v1.0.0

30 Nov 15:21

Choose a tag to compare

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 @Tool annotations
  • 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

18 Nov 08:45

Choose a tag to compare

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

06 Nov 07:06

Choose a tag to compare

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