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

多Agent协作示例--请假审批系统(基于Spring AI Alibaba)

多 Agent 协作请假审批系统 技术设计文档基于 Spring AI Alibaba(通义千问)+ 手动 ReAct 循环 + SSE 实时追踪,把传统「Web 表单 + 审批页」业务改造为对话式体验。用户只和一个主 Agent 聊天,主 Agent 在后台自动调度收集、审批、查询三个子 Agent 完成业务闭环。1. 项目定位项说明业务场景员工请假申请 + 审批原流程用户在前端填写表单 → 保存草稿 / 提交 → 管理员在另一个页面审批新流程用户只和主 Agent 对话,字段在对话中被提取并落库,审批也通过自然语言完成核心挑战对话式拿到结构化数据、角色隔离、可追溯可视化解法Supervisor + 子 Agent 工具化 + 手动 ReAct + SSE + 读写分离2. 技术栈层选型作用运行时JDK 17基础环境框架Spring Boot 3.3.5Web / 依赖注入 / 事务AI 编排Spring AI 1.0.0ChatModel、ToolCalling、消息抽象大模型Spring AI Alibaba DashScope Starter 1.0.0.3(qwen-plus)通义千问对接数据访问Spring Data JPA + MySQL 8持久化工具库Lombok 1.18.34去除样板代码前端原生 HTML + fetch 流式读取极简 SSE 消费推送SseEmitter(text/event-stream)Agent 过程实时可视化3. 整体架构3.1 分层层组件职责接入层/api/chat+ SSE接收对话、流式返回事件编排层Supervisor Agent理解意图 + 路由,唯一面向用户子 Agent 层Collector / Approver / Query职责单一、被 Supervisor 通过工具调用工具层@Tool注解方法封装业务能力,内置权限硬校验服务层LeaveFormService / FormQueryService写服务 + 读服务分离持久化层JPA Repository落库 MySQL3.2 调用关系示意Browser ──POST /api/chat──▶ AgentChatController │ ▼ AgentOrchestrator │ ▼ Supervisor (ManualReActAgent) / │ \ ▼ ▼ ▼ callCollector callApprover callQuery (@Tool 方法) │ │ │ ▼ ▼ ▼ Collector Approver Query (子 ManualReActAgent) Agent Agent Agent │ │ │ ▼ ▼ ▼ FormCollector FormApprover FormQuery (业务工具层) Tools Tools Tools │ │ │ ▼ ▼ ▼ LeaveFormService FormQueryService (应用服务) │ │ └──────── JPA ─────────┘ │ ▼ MySQL4. Agent 角色矩阵Agent是否面向用户可调用工具权限要求典型场景Supervisor是callCollector / callApprover / callQuery无(自身不操作业务)所有用户输入的第一站Collector否saveDraft / submitAPPLICANT新建请假、补字段、提交Approver否listPending / getForm / approveAPPROVER查待办、通过或驳回Query否listMyApplications / listMyApprovals / searchByStatus / getDetail / getTimeline只读,按角色自动裁剪查询范围查「我有哪些」「走到哪了」4.1 设计原则原则体现单一职责每个子 Agent 只做一件事,工具集互不重叠读写分离业务 Agent 只写数据;只读查询集中到 Query Agent身份隔离工具入口有 requireXxx 硬校验,LLM 即使被诱导也无法越权可观测所有过程事件(思考、工具调用、交接)都通过 SSE 推给前端5. 数据模型5.1 leave_form(请假主表)字段类型是否索引含义idVARCHAR(64)主键uuid 前 8 位applicantVARCHAR(64)是申请人姓名leave_typeVARCHAR(32)否年假 / 病假 / 事假start_dateVARCHAR(32)否yyyy-MM-ddend_dateVARCHAR(32)否y
http://www.gsyq.cn/news/1400509.html

相关文章:

  • TranslucentTB:解决Windows任务栏透明化安装失败的终极指南
  • 从IIC时序到电压值:用逻辑分析仪调试STM32驱动ADS1115的全记录
  • 免费解锁百度网盘高速下载:baidu-wangpan-parse终极使用指南
  • 5分钟掌握XUnity.AutoTranslator:让Unity游戏秒变中文版的终极神器
  • 从结构化到面向对象:系统架构设计方法的核心演进
  • AI代理支付自动化:Ramp CLI如何重构金融基础设施与威胁Visa模式
  • 网络通信:套接字编程全解析
  • 【CGLIB】如何使用 `FixedValue` 回调来固定返回某个值,而不调用原方法?
  • 2026年4月推拉窗批发厂家推荐,吊趟门/断桥门窗/系统门窗/断桥窗沙一体外开窗/断桥铝合金门窗,推拉窗门店怎么选择 - 品牌推荐师
  • 为什么说售后服务能力是选择Agent厂商的关键?深度解析企业级AI智能体落地避坑指南
  • 从心跳脚本到AI CLI工作者监督系统:进程守护与健康检查实战
  • 跨境电商产品变体匹配:LLM、Embedding、CV与规则引擎的混合架构实践
  • 【运维心得】彩色喷墨“只打彩色不打黑”?一招搞定
  • 提取矩阵特定多列元素
  • 网页聊天室-测试报告
  • 现代作品集重构指南:从展示到论证,打造高价值个人品牌
  • 别再只用if-else了!用Simulink Relay模块给你的控制逻辑加个‘防抖’缓冲区(附C代码生成分析)
  • 宿迁泗洪县黄金 白银 名表 名包 银元 奢侈品回收就选金佑福 - huangjinhs
  • 超时重试:设置请求超时与自动重试机制(Retry策略),爬虫优雅降级之道:超时重试机制的深度实践与源码解析
  • skynet——服务发现学习
  • 腾讯元宝复制带符号文字怎么快速删改?手贱星人有救了!这款“AI导出鸭”气哭CTRL+C/V党
  • 用Unity和C#实现人群疏散模拟:手把手教你搭建社会力模型(附完整代码)
  • WSL2 吃掉我 25GB C 盘空间:一次完整的排查与回收记录
  • AI框架选型新指标:用行为承诺度量化项目健康度
  • UniApp 快速集成个推推送(UniPush2.0)完整实战教程
  • 谁在定义AI硬件的2026?
  • 告别命令行!ESP32-S3安全三件套(Flash加密+Secure Boot V2+NVS加密)的图形化工具配置避坑指南
  • 【Linux】Ext 系列文件系统
  • MTKClient 从入门到精通:联发科设备刷机与逆向工程完全指南
  • 新手避坑指南:在RHEL 6.10上安装Cadence IC618和Verdi 2018.09的完整流程(含依赖库检查)