Java 实现 Agent ,From AgentScope

AgentScope Java 支持多种模型、RAG 后端和扩展功能,各自需要不同的第三方 SDK。把所有依赖打包到一起会让项目变得臃肿,所以我们提供了两种引入方式:
-
All-in-one:一个依赖搞定,默认带 DashScope SDK 和 MCP SDK,快速上手
-
Core + 扩展:最小化核心包,按需加扩展模块,适合对依赖有严格要求的场景
大多数情况下用 all-in-one 就够了,需要精细控制依赖时再换成 core + 扩展。
要求:JDK 17+
Maven
<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope</artifactId>
<version>1.0.12</version>
</dependency>
核心流程
在深入各个概念之前,让我们先理解智能体是如何工作的。AgentScope 的核心是 ReAct 循环(Reasoning + Acting):
User Input (Message)
|
v
+-------------------------------------------------------------------------+
| ReActAgent |
| |
| +------------------------+ +------------------------+ |
| | Memory | | Toolkit | |
| +------------------------+ +------------------------+ |
| | | |
| v | |
| +------------------------------------------------------------+ |
| | 1. Reasoning | |
| | | |
| | +-----------+ +-----------+ +-------------+ | |
| | | Memory | --> | Formatter | --> | Model | | |
| | +-----------+ +-----------+ +-------------+ | |
| +------------------------------------------------------------+ |
| | |
| v |
| Need tool call? |
| / \ |
| Yes No |
| / \ |
| v v |
| +------------------------+ +------------------------+ |
| | 2. Acting | | Return final response | |
| | | +------------------------+ |
| | +---------+ | | |
| | | Toolkit | | | |
| | +---------+ | | |
| | | | | |
| | v | | |
| | Store in Memory | | |
| | | | | |
| | v | | |
| | Back to step 1 | | |
| +------------------------+ | |
| | |
+-------------------------------------------------------------------------+
|
v
Agent Response (Message)
流程说明:
-
Reasoning(推理):从 Memory 读取历史消息 → Formatter 转换格式 → Model 调用 LLM
-
Acting(行动):Toolkit 执行工具 → 结果存入 Memory → 返回继续推理
理解了这个流程,下面我们逐一介绍各个概念。
消息(Message)
解决的问题:智能体需要一种统一的数据结构来承载各种类型的信息——文本、图像、工具调用等。
Message 是 AgentScope 最核心的数据结构,用于:
-
在智能体之间交换信息
-
在记忆中存储对话历史
-
作为与 LLM API 交互的统一媒介
核心字段:
|
字段 |
说明 |
|---|---|
|
|
消息唯一标识符(自动生成 UUID) |
|
|
发送者名称,多智能体场景用于区分身份 |
|
|
角色: |
|
|
内容块列表,支持多种类型 |
|
|
消息时间戳 |
|
|
可选的结构化数据 |
内容类型:
-
TextBlock- 纯文本 -
ImageBlock/AudioBlock/VideoBlock- 多模态内容 -
ThinkingBlock- 推理过程(用于推理模型) -
ToolUseBlock- LLM 发起的工具调用 -
ToolResultBlock- 工具执行结果
--
更多推荐



所有评论(0)