gogo-agent

项目整体架构与核心功能

GoGo 智能差旅助手(gogo agent) 是一个基于 多 Agent 协作架构 的企业级差旅管理系统,通过 AI 智能体串起「差旅申请 → 审批 → 行程规划 → 交通/酒店预订 → 报销」的全链路自动化流程。 语言/JDK:…

TL;DR

GoGo 智能差旅助手(gogo agent) 是一个基于 多 Agent 协作架构 的企业级差旅管理系统,通过 AI 智能体串起「差旅申请 → 审批 → 行程规划 → 交通/酒店预订 → 报销」的全链路自动化流程。 语言/JDK:…

GoGo 智能差旅助手(gogo-agent) 是一个基于 多 Agent 协作架构 的企业级差旅管理系统,通过 AI 智能体串起「差旅申请 → 审批 → 行程规划 → 交通/酒店预订 → 报销」的全链路自动化流程。 - 语言/JDK:Java 21 - 版本:1.0.0-SNAPSHOT - Agent 框架:AgentScope 1.0.12(ReAct 模式 + Hook 生命周期 + Tool/Skill/MCP 统一编排)(目前是基于1.0的,后面会改造成2.0) - 交互模式:SSE 流式推送 + Human-in-the-Loop

整体架构

分层视图

请求主流程(对话一次的旅程)

多智能体架构

技术栈

后端

分类 技术 版本 用途
语言/框架 Java / Spring Boot 21 / 3.4.0 主运行时
AI Agent AgentScope + agentscope-spring-boot-starter 1.0.12 ReAct 智能体、Tool/Skill/MCP/Hook 一体化
LLM DashScope(通义) 2.22.9 主模型与 Embedding
长期记忆 阿里云百炼 bailian20231229 AGENT_CONTROL
响应式 WebFlux (Reactor) - SSE 流式编排
上下文传递 TransmittableThreadLocal 2.14.5 Reactor 线程切换的 ThreadLocal 传播
ORM MyBatis-Plus 3.5.9 领域持久化
数据库 MySQL + Druid -/1.2.23 主库 + 连接池
缓存/协调 Redis (Spring Data Redis) - Session、中断广播、熔断状态、APIKey 缓存、RGH 登录态
鉴权 Sa-Token (+ Redis Jackson) 1.39.0 Token 认证、Redis 持久化
JSON Fastjson2 2.0.43 Agent 上下文 & Tool 参数序列化
文档解析 Apache POI 5.2.5 Word/Excel 知识库加载
敏感信息 houbb sensitive(core + logback) 1.7.0 日志与前端脱敏
测试 JUnit 5 + AssertJ - 单元/集成测试

前端

分类 技术 版本 用途
UI 框架 React 19 组件化
构建 Vite 8 开发/构建
语言 TypeScript 6 类型安全
组件库 Ant Design 6 基础 UI
状态管理 Zustand 5 简洁 store
富文本 react-markdown + remark-gfm 10 / 4 Agent 消息 Markdown
图表 Recharts 3 结果可视化
HTTP Axios 1 REST 调用

外部能力(Skill / MCP / RAG)

  • Skill Shell:tuniu-cli(⭐推荐,整合机票/酒店/门票/火车/邮轮/度假)、flight-manager、flyai、rolling-go-hotel、reimbursement
  • MCP:weather-mcp(阿里云网关)、orizn-visa-mcp(stdio 子进程)
  • RAG 知识库(3 个 Knowledge Bean,直出为 Spring Bean 供 Agent 链式注入):
  • attractionKnowledge — 景点(tourist_attraction.xlsx,GENERIC + AGENTIC)
  • corporateTravelPolicyKnowledge — 差旅政策(business_travel_policy.docx,AGENTIC)
  • corporateTravelGuidelinesKnowledge — 差旅指南(business_travel_guidelines.docx,AGENTIC)

模块划分

目录 关注点 不做什么
接入层 frontend/src UI 渲染、事件时间轴、流式渲染 任何业务规则计算
Web/API controller/ 协议转换(REST/SSE)、鉴权、SSE emitter 生命周期 业务规则、Agent 编排细节
Agent 编排 agent/ 多智能体协作、工具/技能挂载、Hook 拦截、意图路由 直接写领域数据库
业务领域 business/ 差旅单/审批/预订/政策/偏好/用户领域模型与持久化 感知 Agent / SSE
基础设施 config/ Bean 配置、鉴权、连接池、外部 SDK、MCP、Skill 领域逻辑

核心功能点

多 Agent 协作(8 个 ReActAgent + 2 个轻量 LLM 服务)

类型 名称 职责
ReAct MasterAgent 总协调入口,通过 SubAgentTool 路由到子智能体,承载长期记忆
ReAct QueryRewritingAgent 上下文补全 / 指代消解
ReAct IntentRecognitionAgent LLM 兜底意图识别(L3,
Plan-and-Execute ItineraryPlanAgent 行程规划,交通/酒店比价预订,含长期记忆
ReAct ItineraryManageAgent 差旅单 CRUD 与审批流转
ReAct ItineraryReviewAgent 六维审核(完整性/时间/出发目的地/预算/偏好/路径)
ReAct InfoAgent 政策/景点/签证/通用信息(3 RAG + MCP)
ReAct ReimbursementAgent 发票识别与报销单生成
轻量服务 ConversationTitleService 独立线程池异步生成会话标题
轻量服务 QuestionRecommendationService 每轮回复后生成推荐问题

三层意图识别(L1 → L2 → L3,命中即短路)

层级 实现 手段 软目标延迟
L1 IntentRuleMatcher 关键词 / 正则 < 50ms
L2 IntentVectorMatcher DashScope Embedding + InMemoryStore Top-1 < 100ms
L3 IntentRecognitionAgent LLM 单次调用兜底 LLM 延迟

配套 查询重写条件触发 + 单意图直跳 两项优化: - L1/L2 命中 → 完全跳过 QueryRewritingAgent(省一次 LLM) - 单意图 + 高置信 + 命中子智能体白名单 → 直跳子 Agent(省一次 MasterAgent 路由,节省 1–3s) - 三层结果统一为 IntentRecognitionResult(标注来源 RULE/VECTOR/LLM 与置信度),下游零改动

Hook 生命周期能力(13 个)

  • 进度可视化:ProgressNotifierHook 通过 SSE 实时推送 message / thinking / progress / travel_data / plan_update / user_interaction / agent-switch …
  • 持久化:SessionPersistenceHook、ActiveAgentPersistenceHook(会话续跑)、BookingPersistenceHook(tuniu 下单结果自动落库,对 LLM 透明)
  • 优雅中断:AgentExecutionRegistryHook + Redis Pub/Sub 广播,支持集群跨节点停止
  • 稳定性:ToolCircuitBreakerHook(熔断/半开/关闭三态 + 指数退避 + 显式关闭工具组,Redis 共享状态)
  • 多租户隔离:RghUserIsolationHook + RghTokenStore 隔离 RGH 登录态;FlightApiKeyHook / TuniuApiKeyHook 动态注入 API Key
  • Token 成本优化:CliResultCompressHook(MCP/CLI 结果去重压缩)+ SkillContentCollapseHook(历史技能正文折叠)
  • 上下文:DynamicTimeInjectionHook 动态注入当前时间

工具矩阵(14 个 @Tool 类)

  • 通用:UserInteractionTools(Human-in-the-Loop)、PolicyTools、DestinationLiveTools、QueryUserInfoTools、InfoQueryTools、ApiKeyTools
  • 差旅单:TravelOrderReadTools / WriteTools / CloneItineraryTools / TravelOrderConflictTools
  • 规划:ItineraryReviewTools、RoundtripPlannerTool(往返方案对比:去×住×返组合 / 时间价格归一化 / policy 软约束 / 偏好分合成 / 输出 4 类代表方案)
  • 预订:BookingReadTools
  • 报销:ReimbursementTools

外部能力集成

  • Skill Shell(5 个):tuniu-cli⭐(整合机票/酒店/门票/火车/邮轮/度假)、flight-manager、flyai、rolling-go-hotel、reimbursement
  • MCP(2 个):weather-mcp(Streamable HTTP)、orizn-visa-mcp(stdio 子进程;工具白名单降 token)
  • RAG(3 个 Knowledge Bean):attractionKnowledge / corporateTravelPolicyKnowledge / corporateTravelGuidelinesKnowledge;InfoAgent 采用 RAG 通道(语义问答)+ PolicyTools 通道(精确身份绑定) 双通道决策
  • 百炼长期记忆:MasterAgent / ItineraryPlanAgent 启用 AGENT_CONTROL 模式,系统自动注册 record_to_memory / retrieve_from_memory;配请求级 TravelPreferenceMemoryCache 避免重复 LLM 调用

差旅业务能力

  • 差旅政策合规:4 职级区间 × 3 城市等级 = 12 条规则,覆盖机票舱位 / 火车席别 / 酒店限额 / 星级 / 餐补 / 交通补贴 / 审批阈值 / 提前预订天数
  • 行程冲突检测:TravelOrderConflictTools 检测同员工时间重叠(同城重复 / 跨城物理不可能)+ 跨城通行合理性,输出 HIGH/MEDIUM/LOW 三级
  • 行程智能优化:RoundtripPlannerTool 双轨评分(LLM 偏好软判断 + 工具硬指标加权融合),多目标权衡输出 4 类代表方案
  • 外部预订统一落库:booking_record 统一存储机票/酒店/火车/门票/邮轮/度假,含内外部单号与状态;按 userId 租户隔离查询

交互与前端能力

  • SSE 流式协议 事件:message / thinking / progress / travel_data / plan_update / user_interaction / suggestions / agent-switch / interrupted / done
  • Human-in-the-Loop:UserInteractionTools 支持 text / select / multi_select / confirm / form / date / number 等 UI 类型;工具暂停→前端表单→用户提交→Agent Resume
  • 时间轴对话展示:前端按执行顺序渲染,思考/进度/结果混排
  • 搜索结果卡片:多数据源(tuniu / flight-manager / flyai / rolling-go-hotel)经 TravelDataNormalizer 归一化为统一卡片模型

基础设施能力

  • 集群部署:Redis Pub/Sub 广播中断、Redis 共享熔断状态、agentscope_session 表跨节点会话续跑
  • 鉴权:Sa-Token(Redis Jackson 持久化,30 天 Token,随机 128 位)
  • ThreadLocal 传播:TransmittableThreadLocal 解决 Reactor 线程切换的上下文丢失
  • 全链路脱敏:SensitiveMasker(houbb sensitive)覆盖日志 Converter 与前端响应,覆盖手机号 / 身份证 / 银行卡 / 邮箱 / API Key / 密钥键值对

数据模型(11 张核心表)

用途
agentscope_session AgentScope 会话状态多状态键存储
travel_order 差旅申请单(生命周期状态机 DRAFT→SUBMITTED→APPROVED/REJECTED→COMPLETED/CANCELLED)
approval_record 审批记录(关联差旅单)
user_profile 用户档案(常驻城市 / 职级 / 姓名拼音 / 邮箱 / 证件 / 手机 / 性别)
user_account 登录账号(含 USER/ADMIN 角色)
travel_policy_rule 差旅政策规则(职级区间 × 城市等级)
chat_conversation 对话会话(含 title / 逻辑删除)
chat_message 对话消息(含 role / feedback / extra JSON:progress / thinking / planTasks / travelData / timeline)
user_api_key 用户级第三方 API Key 加密存储
booking_record 外部预订统一记录(含内外部单号与状态)
user_preference 用户偏好条目(已迁移至百炼长期记忆,保留兼容)
版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。