// State键更新策略配置示例
KeyStrategyFactory keyStrategyFactory = () -> {
HashMap<String, KeyStrategy> keyStrategyHashMap = new HashMap<>();
keyStrategyHashMap.put("document_content", new ReplaceStrategy());
keyStrategyHashMap.put("content_analysis_result", new ReplaceStrategy());
return keyStrategyHashMap;
};
public interface NodeAction {
Map<String, Object> apply(OverAllState state);
}
-
简单边:定义固定的、无条件的流程路径
.addEdge("content_analysis", "compliance_check");
-
条件边:根据当前State中的信息动态决定流程走向
.addConditionalEdges("human_review", new ReviewDecisionDispatcher())
@Configuration
publicclass DocumentReviewGraphConfiguration {
@Bean
public StateGraph documentReviewGraph(ChatClient.Builder chatClientBuilder) {
StateGraph stateGraph = new StateGraph();
// 定义节点
stateGraph.addNode("content_analysis", new ContentAnalysisNode(chatClientBuilder));
stateGraph.addNode("compliance_check", new ComplianceCheckNode(chatClientBuilder));
stateGraph.addNode("risk_assessment", new RiskAssessmentNode(chatClientBuilder));
stateGraph.addNode("human_review", new HumanReviewNode());
// 定义边
stateGraph.addEdge("start", "content_analysis");
stateGraph.addEdge("content_analysis", "compliance_check");
stateGraph.addEdge("compliance_check", "risk_assessment");
stateGraph.addEdge("risk_assessment", "human_review");
// 条件边 - 根据人工审核结果路由
stateGraph.addConditionalEdges("human_review",
new ReviewDecisionDispatcher());
return stateGraph;
}
}
-
Agent包含太多可用Tool时,模型决策困难 -
多轮对话下,消息上下文过长影响回复质量 -
复杂任务需要多个专业领域协作
-
组织协同困难:跨团队需要维护同一份代码 -
可用性难保证:一个智能体问题可能导致整个系统崩溃 -
安全风险:内存与上下文共享导致权限边界模糊
-
Nacos 3.1.0:引入A2A注册中心功能,提供轻量化的Agent服务注册与发现能力 -
Spring AI Alibaba 1.0.0.4+:集成Nacos,提供开箱即用的Agent注册、发现与负载均衡能力
-
Supervisor Agent:会话入口,根据对话属性委托子智能体处理 -
Consult Agent:处理咨询类问题 -
Business Agent:处理业务类问题 -
Feedback Agent:处理反馈类问题
<dependencies>
<!-- 引入A2A Server starter -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-a2a-server</artifactId>
<version>${spring.ai.alibaba.version}</version>
</dependency>
<!-- 引入A2A Nacos 注册中心 -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-a2a-registry</artifactId>
<version>${spring.ai.alibaba.version}</version>
</dependency>
</dependencies>
-
改造传统JSON + 组装调用方式,基于Py4j实现"Code+泛化调用"机制 -
采用Spring Boot技术栈,整合Spring AI生态及Spring AI Alibaba能力 -
通过内部评测平台和观测平台实现全链路评测与观测
-
翻译/数据提取任务:Qwen3-Turbo(低延迟优先) -
思考/动态代码生成:Qwen3-Coder(强化代码能力) -
通用场景:按需调用各个平台提供的Qwen、DeepSeek等模型
-
System Prompt:配置化、动态化的系统提示词 -
Inference Segment:推理段落 -
Round:复杂任务执行时的轮次总结和目标定义 -
Express:Agent返回给用户的内容 -
Thought:Agent执行时的思考内容 -
Code:生成的代码
-
感知区:接收外部信息,进行语言解析、场景分析、数据增强 -
认知区:处理用户需求并生成对应代码 -
运动区:承担复杂任务,内部循环逐步完成任务 -
表达区:将内部信息传递给外部
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-bom</artifactId>
<version>1.0.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
</dependencies>
@RestController
publicclass SimpleAgentController {
privatefinal ChatClient chatClient;
public SimpleAgentController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/chat")
public String chat(@RequestParam String message) {
return chatClient.prompt()
.user(message)
.call()
.content();
}
}
登录查看剩余 70% 内容