当前位置: 首页 > article >正文

Chapter 6:Graph 状态机深度实战

Chapter 6:Graph 状态机深度实战6.1 Graph 核心概念什么是 StateGraph?StateGraph 是 Spring AI Alibaba 的底层工作流引擎,它以有向图的形式描述 Agent 执行流程。与内置的四大 Agent 模式不同,StateGraph 提供了更灵活的自定义能力。┌─────────────────────────────────────────────────────────────┐ │ StateGraph │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │ │Node │────────▶│Node │────────▶│Node │ │ │ │节点 │ │节点 │ │节点 │ │ │ └─────┘ └─────┘ └─────┘ │ │ │ │ │ │ │ ┌─────────┘ │ │ │ ▼ │ │ ┌─────┐ │ │ │Edge │ 边(路由规则) │ │ └─────┘ │ │ │ │ ┌─────┐ │ │ │State│ 状态(节点间传递的数据) │ │ └─────┘ │ │ │ └─────────────────────────────────────────────────────────────┘核心组件组件说明Node(节点)执行单元,可以是 Agent、Tool、或自定义逻辑Edge(边)节点间的连接,决定路由规则State(状态)在节点间传递的共享数据Graph(图)节点和边的集合,构成完整工作流Graph vs 内置 Agent 模式维度内置 AgentStateGraph复杂度低(开箱即用)高(需要自定义)灵活性固定模式完全自定义适用场景标准场景复杂定制流程开发成本低高调试难度低中等6.2 StateGraph API 详解基础构建@ConfigurationpublicclassGraphConfig{@BeanpublicStateGraphmyWorkflow(ChatModelchatModel){returnStateGraph.builder()// 1. 定义状态.defineState(newMyState())// 2. 添加节点.addNode("start",newStartNode()).addNode("process",createProcessNode(chatModel)).addNode("evaluate",createEvaluateNode(chatModel)).addNode("end",newEndNode())// 3. 定义边(路由规则).addEdge("start","process").addConditionalEdge("evaluate",(state)-state.get("decision"),Map.of("continue","process","end","end"))// 4. 设置入口和出口.setEntryPoint("start").setFinishPoint("end")// 5. 编译.compile();}}状态定义publicclassMyStateimplementsMapString,Object{// 用户输入privateStringuserInput;// 处理结果privateStringprocessedResult;// 评估分数privatedoublescore;// 决策privateStringdecision;// 历史记录privateListStringhistory;// Getter/SetterpublicStringgetUserInput(){returnuserInput;}publicvoidsetUserInput(Stringinput){this.userInput=input;}publicStringgetProcessedResult(){returnprocessedResult;}publicvoidsetProcessedResult(Stringresult){this.processedResult=result;}publicdoublegetScore(){returnscore;}publicvoidsetScore(doublescore){this.score=score;}publicStringgetDecision(){returndecision;}publicvoidsetDecision(Stringdecision){this.decision=decision;}publicListStringgetHistory(){returnhistory;}publicvoidsetHistory(ListStringhistory){this.history=history;}}6.3 自定义节点实现Agent 节点publicclassAgentNodeimplementsNode{privatefinalReactAgentagent;privatefinalStringinputKey;privatefinalStringoutputKey;publicAgentNode(ReactAgentagent,StringinputKey,StringoutputKey){this.agent=agent;this.inputKey=inputKey;this.outputKey=outputKey;}@OverridepublicMyStateprocess(MyStatestate){Stringinput=state.get(inputKey);AssistantMessageresponse=agent.call(newUserMessage(input));// 更新状态state.put(outputKey,response.getText());state.put("lastAgent",agent.getName());returnstate;}}// 使用示例.addNode("analysis",newAgentNode(analysisAgent,"userInput","analysisResult"))Tool 节点publicclassToolNode

相关文章:

Chapter 6:Graph 状态机深度实战

Chapter 6:Graph 状态机深度实战 6.1 Graph 核心概念 什么是 StateGraph? StateGraph 是 Spring AI Alibaba 的底层工作流引擎,它以有向图的形式描述 Agent 执行流程。与内置的四大 Agent 模式不同,StateGraph 提供了更灵活的自定义能力。 ┌─────────────…...

01华夏之光永存・开源:黄大年茶思屋榜文解法「23期 1题」 【TDD空口信道高精度重构专项完整解法】

01华夏之光永存・开源:黄大年茶思屋榜文解法「23期 1题」 【TDD空口信道高精度重构专项完整解法】 一、摘要 无线通信空口信道估计与重构赛道,全球现代工程常规优化已触达绝对性能天花板,现有算法框架、信号分离逻辑、小样本补偿优化均已无任…...

在线抠图工具免费有哪些:2026 免费在线抠图工具对比实操记录,从需求到落地的完整方案

截至 2026 年,做在线抠图的免费工具大致有三类——网页快捷工具、专业修图软件的在线入口,以及微信小程序。其中小程序因为不用下载、点开就能用,在应急场景里占比越来越重。下面我会重点拆解一款叫抠图喵的微信小程序,先把它讲透…...

Chapter 5:循环执行模式(LoopAgent)

Chapter 5:循环执行模式(LoopAgent) 5.1 模式原理 什么是循环执行? LoopAgent 允许 Agent 反复执行,直到满足终止条件。这对于需要迭代优化、多轮评审、或动态调整的任务至关重要。与一次性执行的 Agent 不同,LoopAgent 引入了"评估-执行-再评估"的循环机制…...

tabulate多语言支持与UTF-8处理完全指南

tabulate多语言支持与UTF-8处理完全指南 【免费下载链接】tabulate Table Maker for Modern C 项目地址: https://gitcode.com/gh_mirrors/ta/tabulate tabulate是一款面向现代C的表格生成库,提供了强大的多语言支持与完善的UTF-8字符处理能力,帮…...

ComfyUI-Impact-Pack图像增强插件:为什么你的安装总是功能不全?完整解决方案来了

ComfyUI-Impact-Pack图像增强插件:为什么你的安装总是功能不全?完整解决方案来了 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, …...

别再让电机‘抽风’了!用Arduino和A4950实现直流减速电机的精准调速(附PID调参心得)

从电机“抽风”到丝滑运转:Arduino与A4950的PID调速实战指南 当你的直流减速电机突然开始不受控制地抖动、转速忽快忽慢时,那种挫败感我深有体会。这不是电机在“发脾气”,而是闭环控制系统中某个环节出了问题。本文将带你从现象诊断到参数优…...

拆解工厂物料管理四大核心难题:从采购到库存的工厂物料管理全流程优化

工厂物料管理是现代制造企业运营的生命线,其效率直接决定了企业的生产成本与市场竞争力。然而,许多企业在实际运营中面临着工厂物料管理的严峻挑战,尤其是在采购与库存这两个关键环节。低效的工厂物料管理会导致原材料积压、生产线停工待料、…...

终极cocur/slugify高级配置指南:掌握正则表达式、大小写控制和分隔符定制技巧

终极cocur/slugify高级配置指南:掌握正则表达式、大小写控制和分隔符定制技巧 【免费下载链接】slugify Converts a string to a slug. Includes integrations for Symfony, Silex, Laravel, Zend Framework 2, Twig, Nette and Latte. 项目地址: https://gitcode…...

Codex CLI教程(五) | MCP 之 Context7

Codex CLI教程(五) | MCP 之 Context7前言第一章:MCP 接入前置要求第二章:MCP 接入方式2.1 方式一:本地接入2.2 方式二:远程接入(推荐)前言 给 Codex 接入 Context7,常见…...

EAIA生产环境部署:如何设置定时任务和监控系统运行

EAIA生产环境部署:如何设置定时任务和监控系统运行 【免费下载链接】executive-ai-assistant 项目地址: https://gitcode.com/gh_mirrors/ex/executive-ai-assistant EAIA(executive-ai-assistant)是一款强大的AI助手工具&#xff0c…...

FastSpeech2代码实现原理:从Transformer到Variance Adaptor的深度解析

FastSpeech2代码实现原理:从Transformer到Variance Adaptor的深度解析 【免费下载链接】FastSpeech2 An implementation of Microsofts "FastSpeech 2: Fast and High-Quality End-to-End Text to Speech" 项目地址: https://gitcode.com/gh_mirrors/fa…...

Freyr-js技术架构深度解析:多服务集成与音频处理流程

Freyr-js技术架构深度解析:多服务集成与音频处理流程 【免费下载链接】freyr-js A tool for downloading songs from music streaming services like Spotify and Apple Music. 项目地址: https://gitcode.com/gh_mirrors/fr/freyr-js Freyr-js是一款功能强大…...

如何快速上手ReaLTaiizor:5分钟从零开始构建现代化UI

如何快速上手ReaLTaiizor:5分钟从零开始构建现代化UI 【免费下载链接】ReaLTaiizor ReaLTaiizor is a .NET WinForms control library that offers a wide range of components and is user-friendly and design-focused. 项目地址: https://gitcode.com/gh_mirro…...

Matterwiki部署实战:Docker容器化部署的完整流程

Matterwiki部署实战:Docker容器化部署的完整流程 【免费下载链接】Matterwiki A simple and beautiful wiki for teams 项目地址: https://gitcode.com/gh_mirrors/ma/Matterwiki Matterwiki是一款简单美观的团队协作维基工具,通过Docker容器化部…...

Firefox Focus性能调优技巧:7个方法让浏览器运行更流畅

Firefox Focus性能调优技巧:7个方法让浏览器运行更流畅 【免费下载链接】focus-android ⚠️ Firefox Focus (Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android 项目地址…...

生产排期与MES/ERP系统打通,实操方法详解:2026企业级智能体与超自动化集成实战指南

随着2026年全球制造业迈入“超自动化”深水区,生产排期(APS)与制造执行系统(MES)、企业资源计划(ERP)的深度打通,已不再是简单的接口联调,而是演变为以企业级智能体为核心…...

SwiftyCam手势交互指南:捏合变焦、滑动变焦、双击切换摄像头

SwiftyCam手势交互指南:捏合变焦、滑动变焦、双击切换摄像头 【免费下载链接】SwiftyCam A Snapchat Inspired iOS Camera Framework written in Swift 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftyCam SwiftyCam是一款受Snapchat启发的iOS相机框架&…...

终极指南:DevDocs如何通过用户画像实现个性化文档推荐

终极指南:DevDocs如何通过用户画像实现个性化文档推荐 【免费下载链接】devdocs API Documentation Browser 项目地址: https://gitcode.com/GitHub_Trending/de/devdocs DevDocs作为一款强大的API文档浏览器,不仅聚合了海量的技术文档资源&#…...

Process Phoenix进阶应用:多进程架构下的状态管理终极指南

Process Phoenix进阶应用:多进程架构下的状态管理终极指南 【免费下载链接】ProcessPhoenix Process Phoenix facilitates restarting your application process. 项目地址: https://gitcode.com/gh_mirrors/pr/ProcessPhoenix Process Phoenix是一款专注于A…...

Alpine-Chrome安全防护:深入理解seccomp配置与沙箱机制

Alpine-Chrome安全防护:深入理解seccomp配置与沙箱机制 【免费下载链接】alpine-chrome Chrome Headless docker images built upon alpine official image 项目地址: https://gitcode.com/gh_mirrors/al/alpine-chrome Alpine-Chrome是基于Alpine官方镜像构…...

mysql搭建项目管理系统数据库表设计与优化

PMS MySQL表设计应聚焦“人、事、时、物”四类关系:用户与权限分离(user/role/user_role三表)、任务状态机拆分(tasktask_status_log)、树形结构用parent_idpath替代闭包表、附件元数据与引用解耦(attachme…...

LED照明数字控制与MSP430微控制器应用实践

1. LED照明数字控制的核心原理LED照明系统的核心在于电流控制。与白炽灯不同,LED是电流驱动型器件,其亮度和色温直接取决于通过PN结的电流值。在实际工程中,我们通常采用恒流驱动方式,这源于LED的伏安特性曲线具有陡峭的非线性特征…...

Obsidian Border卡片式布局实战:打造个性化知识卡片系统

Obsidian Border卡片式布局实战:打造个性化知识卡片系统 【免费下载链接】obsidian-border A theme for obsidian.md 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-border Obsidian Border是一款专为Obsidian.md设计的高度可定制主题,通…...

终极现代C++表格制作神器tabulate:10分钟快速入门指南

终极现代C表格制作神器tabulate:10分钟快速入门指南 【免费下载链接】tabulate Table Maker for Modern C 项目地址: https://gitcode.com/gh_mirrors/ta/tabulate 在现代C开发中,高效创建美观、功能丰富的表格是数据可视化和报告生成的关键需求。…...

GoCaptcha 性能优化实战:如何在高并发场景下保持验证码生成效率

GoCaptcha 性能优化实战:如何在高并发场景下保持验证码生成效率 【免费下载链接】go-captcha 🖖 GoCaptcha: A high-performance, interactive behavior captcha library for Go. Supporting click, slide, drag-drop, and rotation modes to secure you…...

5分钟掌握Windows与Office智能激活:KMS_VL_ALL_AIO完整技术指南

5分钟掌握Windows与Office智能激活:KMS_VL_ALL_AIO完整技术指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在当今数字化工作环境中,Windows操作系统和Office办公套件…...

20260428给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Android14时给iperf3配置TMPDIR目录

cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins cat /sys/kernel/debug/gpio用户名/密码:root/rootDTS来自,kernel-pi-v1.0.tar.gz(226.7MB)https://vanxoak.yuque.com/wb353n/hd-rk3576-pi/mg1yh7k1hgmmgt…...

测试报告生成与可视化

测试报告生成与可视化:数据驱动的质量保障利器 在软件开发和测试过程中,测试报告是评估系统质量的核心依据。传统的测试报告往往以静态表格或文本形式呈现,不仅难以快速定位问题,还缺乏直观的数据洞察。随着大数据和可视化技术的…...

以太网实时性不好,载波监听机制可不背锅~

正文大家好,我是bug菌~最近跟同事聊到为什么现在的以太网还是够不上实时以太网呢?其中有个同事说了下主要是因为载波监听机制,导致发送的以太网数据存在碰撞,于是我又想了想,不对呀,现在不都是用交换机吗&a…...