# GoGo 智能差旅助手 — 开发进展文档
# 一、项目概述
GoGo 智能差旅助手是一个基于多 Agent 协作架构的企业级差旅管理系统,通过 AI 智能体为用户提供从差旅申请、审批、行程规划、预订到报销的全流程自动化服务。
项目名称:gogo-agent 版本:1.0.0-SNAPSHOT JDK 版本:Java 21
# 二、技术架构
# 2.1 后端技术栈
| 技术 | 版本 | 用途 |
|---|---|---|
| ------ | ------ | ------ |
| Spring Boot | 3.4.0 | Web 框架 |
| AgentScope | 1.0.12 | AI Agent 框架(ReAct 模式) |
| MyBatis-Plus | 3.5.9 | ORM 持久层 |
| MySQL | - | 主数据库 |
| Redis | - | Session 存储 / Agent 中断广播 / ApiKey 缓存 |
| Sa-Token | 1.39.0 | 认证鉴权 |
| Druid | 1.2.23 | 数据库连接池 |
| WebFlux (Reactor) | - | 响应式流编排 |
| TransmittableThreadLocal | 2.14.5 | 跨线程上下文传播 |
| Fastjson2 | 2.0.43 | JSON 处理 |
| DashScope | - | LLM 模型服务(阿里云通义/百炼长期记忆) |
| Apache POI | 5.2.5 | Word/Excel 知识库文档解析 |
| RAG | AgentScope 原生 | 景点/政策/指南知识库检索( AGENTIC 模式) |
# 2.2 前端技术栈
| 技术 | 版本 | 用途 |
|---|---|---|
| ------ | ------ | ------ |
| React | 19.2.6 | UI 框架 |
| Vite | 8.0.12 | 构建工具 |
| TypeScript | 6.0.2 | 类型安全 |
| Ant Design | 6.4.4 | UI 组件库 |
| Zustand | 5.0.14 | 状态管理 |
| react-markdown | 10.1.0 | Markdown 渲染 |
| Recharts | 3.8.1 | 图表可视化 |
| Axios | 1.18.0 | HTTP 客户端 |
# 2.3 系统架构图
用户 → [React 前端] → SSE/REST → [Spring Boot 后端]
│
┌─────┴──────┐
│ ChatController │
└─────┬──────┘
│
┌─────────┴─────────┐
│ AgentPipelineService │
└─────────┬─────────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
QueryRewritingAgent IntentRecognitionAgent MasterAgent
│
┌──────────┬───────────┬───────────────┤───────────────┐
│ │ │ │ │
ItineraryManage ItineraryPlan Reimbursement InfoAgent BookingAgent
Agent Agent Agent
│
ItineraryReview
Agent
外部能力挂载:
- SubAgentTool:MasterAgent 通过 subAgent 工具调用各子智能体
- SkillBox:tuniu-cli / flight-manager / flyai / rolling-go-hotel / reimbursement
- MCP:weather / orizn-visa
- 百炼长期记忆:MasterAgent / ItineraryPlanAgent AGENT_CONTROL 模式
# 三、核心模块开发进展
# 3.1 Agent 智能体系统
项目采用多 Agent 协作架构。严格意义上的 ReActAgent 共有 9 个;另有 2 个名字带「Agent」后缀的能力(ConversationTitleAgent / QuestionRecommendationAgent)是轻量 LLM 调用服务(@Service + 单次 fastModel.stream),不参与多轮推理与工具调度,详见下表后的说明。
# 9 个 ReActAgent
| 智能体 | 职责 | 状态 |
|---|---|---|
| -------- | ------------------------------------------ | ------- |
| QueryRewritingAgent | 用户问题改写(上下文补全、指代消解) | ✅ 已完成 |
| IntentRecognitionAgent | 多意图识别与分类(规则+RAG+LLM) | ✅ 已完成 |
| MasterAgent | 总协调入口,意图路由与结果整合,承载百炼长期记忆 | ✅ 已完成 |
| ItineraryManageAgent | 差旅单生命周期管理(申请/审批/查询/取消) | ✅ 已完成 |
| ItineraryPlanAgent | 行程规划、交通/酒店搜索比价与预订,承载百炼长期记忆 | ✅ 已完成 |
| ItineraryReviewAgent | 行程方案六维结构化审核(完整性/时间/出发目的地/预算/偏好/路径) | ✅ 已完成 |
| BookingAgent | 预订执行(出票/订房/订火车票)及已有预订取消,与 ItineraryPlanAgent 平级 | ✅ 已完成 |
| ReimbursementAgent | 发票识别与报销单生成 | 未完成 |
| InfoAgent | 差旅政策/景点/签证/通用信息查询(3 RAG 知识库 + 双通道 + MCP) | ✅ 已完成 |
# 2 个轻量 LLM 服务(仅作 Agent 命名,非 ReActAgent)
提示词文件仍以
*-agent-system.md命名(历史沿用),但实际实现是单次 LLM 调用的@Service,不计入上述 ReActAgent 数量。这两个任务均为纯文本生成、无需工具调用、无需多轮推理,套 ReActAgent 包装会带来不必要的开销,因此直接走fastModel.stream(...):
| 提示词文件 | 实际实现 | 职责 | 调度方式 |
|---|---|---|---|
| --- | --- | --- | --- |
conversation-title-agent-system.md | ConversationTitleService(@Service + @Async("titleTaskExecutor")) | 根据用户问题 + 意图识别结果异步生成对话标题 | 独立线程池 titleTaskExecutor 异步触发,单次 fastModel.stream |
question-recommendation-agent-system.md | QuestionRecommendationService(@Service) | MasterAgent 返回后生成下一步推荐问题(关键词按场景使用) | MasterAgent 完成时由 ChatController.sendSuggestionsThenComplete 调用,单次 fastModel.stream |
Agent 执行流水线(条件式,详见 3.9):
用户消息 → L1/L2 快速意图识别 →(命中→直接调度 / 未命中→QueryRewritingAgent 改写→完整 L1/L2/L3)→ 单意图直跳子智能体 或 MasterAgent 路由
重要架构决策:
BaseSubAgent抽象基类已沉淀统一 Hook 注入、toolExecutionContext、ToolConfig、长期记忆构造等通用能力,避免各 Agent 重复实现(BaseSubAgent.java)- MasterAgent 通过
SubAgentProvider+SubAgentConfig注册子智能体为可调用的"工具",配合forwardEvents(false)避免子智能体事件冒泡 - BookingAgent 独立为与 ItineraryPlanAgent 平级的 ReActAgent,负责用户确认方案后的实际预订执行
# 3.2 Agent 生命周期 Hook
| Hook | 功能 | 状态 |
|---|---|---|
| ------ | ------ | ------ |
| ProgressNotifierHook | 通过 SSE 实时推送执行进度、搜索结果、Plan 变化到前端 | ✅ 已完成 |
| SessionPersistenceHook | Agent 多轮对话记忆持久化(MySQL) | ✅ 已完成 |
| ActiveAgentPersistenceHook | 活跃 Agent 状态持久化,支持会话续跑 | ✅ 已完成 |
| AgentExecutionRegistryHook | Agent 执行注册与优雅中断 | ✅ 已完成 |
| AgentExecutionLoggerHook | Agent 执行过程日志记录 | ✅ 已完成 |
| ToolCircuitBreakerHook | 工具维度熔断(半开探测 + 指数退避 + 显式关闭工具组) | ✅ 已完成 |
| AbstractShellApiKeyHook | Skill Shell 命令 ApiKey 注入抽象基类 | ✅ 已完成 |
| FlightApiKeyHook | 飞行相关 Skill 的 API_KEY 动态管理 | ✅ 已完成 |
| TuniuApiKeyHook | 途牛 Skill 的 API_KEY 动态管理 | ✅ 已完成 |
| RghUserIsolationHook | rolling-go-hotel Skill 多用户登录状态隔离 | ✅ 已完成 |
| BookingPersistenceHook | 预订记录自动落库(解析 tuniu 下单/取消 CLI 结果写入 booking_record,对 LLM 透明) | ✅ 已完成 |
| CliResultCompressHook | MCP/CLI 工具结果压缩(去重 structuredContent + 去空/黑名单字段 + 紧凑序列化,降 token) | ✅ 已完成 |
| SkillContentCollapseHook | 历史技能正文折叠(SKILL.md 正文完成使命后折叠为占位符,避免每轮 reasoning 重放) | ✅ 已完成 |
| DynamicTimeInjectionHook | 动态时间注入(每轮 LLM 推理前插入当前时间 system 消息,保持主 system prompt 前缀稳定以利用百炼隐式缓存) | ✅ 已完成 |
| ~~PreferenceInjectionHook~~ | ~~用户偏好自动注入 Agent 上下文~~ | ~~已移除,改为由 Agent 通过 retrievefrommemory 主动召回~~ |
| ~~McpResultDedupHook~~ | ~~MCP 结果去重(早期版本)~~ | ~~已由 CliResultCompressHook 取代,未装配~~ |
# 3.3 工具系统
# 通用工具
UserInteractionTools— Human-in-the-Loop 主动提问(支持 text/select/multi_select/confirm/form/date/number 等 UI 类型)PolicyTools— 差旅政策精确查询(querytravelpolicy/checktravelpolicy)DestinationLiveTools— 目的地实时天气/新闻(已注册到TOOLCIRCUITBREAKER_GROUP)QueryUserInfoTools— 用户常驻城市/档案/偏好查询InfoQueryTools— 通用信息检索ApiKeyTools— 统一 API_KEY 入口(含 tuniu-cli 凭证管理)- ~~
DestinationInfoTools~~ — ~~目的地信息查询~~ (已删除,景点查询改为通过Knowledge直出 Bean +RAGMode.AGENTIC) - ~~
UserPreferenceTools~~ — ~~用户偏好读取与记录~~ (已移除,改为通过百炼长期记忆recordtomemory/retrievefrommemory管理)
# 差旅单工具
TravelOrderWriteTools— 差旅单 CRUD 操作(创建/提交审批/修改/取消)TravelOrderReadTools— 差旅单查询CloneItineraryTools— 行程复制TravelOrderConflictTools— 差旅单冲突检测(checktravelorder_conflicts:时间重叠 + 跨城交通衔接合理性,配合CityTransitTimeService城市间通行时长推断)
# 规划工具
ItineraryReviewTools— 行程方案审核工具集ItineraryPlannerTool— 往返行程规划客观计算引擎(plan_roundtrip:去×住×返组合 / 时间价格归一化 / policy 软约束 / 偏好分合成,输出 4 类代表方案;由原 roundtrip-planner Python skill 平移为进程内 @Tool,去掉 python3/shell 依赖)
# 预订工具
BookingReadTools— 外部预订记录查询(querybookingrecord,按 userId 租户隔离,支持按单号 / 业务类型 / 状态过滤)BookingWriteTools— 预订写操作(取消预订等)
# 3.4 Skill 外部能力
| Skill | 功能 |
|---|---|
| ------- | ------ |
| tuniu-cli ⭐推荐 | 途牛旅行统一助手(机票/酒店/门票/火车票/邮轮/度假产品) |
| flight-manager | 机票搜索与预订(FlightApiKeyHook 动态注入 KEY) |
| flyai | 备用机票/火车票搜索与预订 |
| rolling-go-hotel | 酒店搜索与预订(RollingGo 平台,RghUserIsolationHook 多用户隔离) |
tuniu-cli已统一整合 tuniu-flight / tuniu-hotel / tuniu-ticket / tuniu-train / tuniu-cruise 等单独服务,优先使用。 原travel-planner/roundtrip-planner行程优化 skill 已下沉为进程内 Java 工具RoundtripPlannerTool(plan_roundtrip),不再以 Python skill 形式存在。
# 3.5 RAG 知识库
| Knowledge Bean | 数据源 | 模式 | 用途 |
|---|---|---|---|
| ---------------- | -------- | ------ | ------ |
attractionKnowledge | tourist_attraction.xlsx | GENERIC + AGENTIC 双模式 | 景点 RAG 检索 |
corporateTravelPolicyKnowledge | businesstravelpolicy.docx | AGENTIC | 差旅政策语义问答(通道 1) |
corporateTravelGuidelinesKnowledge | businesstravelguidelines.docx | AGENTIC | 差旅注意事项与行为准则 |
RAG 中间层(Knowledge/GenericRAGHook)已删除,Knowledge 改为直出 Spring Bean,由 InfoAgent 链上直接
.knowledge(...)注入。
# 3.6 前端系统
| 组件 | 功能 |
|---|---|
| ------ | ------ |
| ChatWindow | 主聊天窗口,SSE 实时流式响应(已重构为时间轴顺序展示) |
| AgentMessageBlock | Agent 回复块(Markdown 渲染 + 链接新窗口打开) |
| Sidebar | 侧边栏(历史会话列表) |
| LoginPage | 登录页面(Sa-Token 认证) |
| ProcessingPanel | Agent 执行进度面板 |
| ProgressCard | 进度卡片(步骤/状态可视化) |
| TravelResultCard | 搜索结果展示卡片(酒店/机票/火车,多数据源格式归一化) |
| BookingResultCard | 预订结果展示卡片(下单/取消结果可视化) |
| UserInteractionCard | 用户交互卡片(表单/选择/确认/工具确认) |
| AdminApprovalPage | 管理员审批页面(审批列表与决策操作) |
| MyTravelPage | 我的差旅页面(差旅单列表与详情查看) |
| PreferencePage | 用户偏好设置页面(差旅偏好管理) |
前端通信方式:SSE(Server-Sent Events)实时推送,支持以下事件类型:
message— Agent 文本回复(流式)thinking— Agent 思考过程progress— 执行进度步骤travel_data— 搜索结果数据(酒店/机票/火车票)plan_update— 任务计划变化user_interaction— 用户交互请求suggestions— 推荐问题agent-switch— 当前 Agent 切换interrupted— 中断通知done— 完成信号
# 3.7 业务模块
| 模块 | 功能 | 状态 |
|---|---|---|
| ------ | ------ | ------ |
| auth | 用户认证(Sa-Token + Redis) | ✅ 已完成 |
| chat | 对话与消息历史持久化 | ✅ 已完成 |
| order | 差旅单管理 | ✅ 已完成 |
| booking | 外部预订记录管理(机票/酒店/火车/门票/邮轮/度假统一存储) | ✅ 已完成 |
| approval | 审批记录管理 | ✅ 已完成 |
| approval | 对接钉钉审批回调 | 🚧 待开发 |
| policy | 差旅政策规则引擎(职级×城市等级) | ✅ 已完成 |
| preference | 用户偏好设置(前端页面 + API + 百炼长期记忆) | ✅ 已完成 |
| rag | RAG 知识检索 | ✅ 已完成(GENERIC + AGENTIC) |
| user | 用户档案管理 | ✅ 已完成 |
# 3.8 基础设施能力
- 集群支持:通过 Redis Pub/Sub 实现跨节点 Agent 中断广播(✅已完成)
- 会话持久化:AgentScope MysqlSession 存储多轮对话历史(✅已完成)
- 优雅中断:支持用户"停止生成"操作,Agent 可在任意 ReAct 循环中被安全终止(✅已完成)
- Tool Suspend/Resume:Human-in-the-Loop 支持,Agent 暂停等待用户输入后继续执行(✅已完成)
- PlanNotebook:任务规划可视化,前端实时展示子任务进度(✅已完成)
- ThreadLocal 传播:TransmittableThreadLocal 解决 Reactor 线程切换时上下文丢失(✅已完成)
- 工具级熔断:ToolCircuitBreakerHook 实现熔断/半开/关闭三态,支持指数退避与显式工具组关闭(✅已完成)
- 百炼长期记忆:MasterAgent/ItineraryPlanAgent 启用
AGENTCONTROL模式,系统自动注册recordtomemory/retrievefrom_memory(✅已完成) - 请求级记忆内容缓存:当前请求内重复
retrievefrommemory命中缓存,避免重复 LLM 调用(✅已完成) - rgh 用户隔离:rolling-go-hotel Skill 通过
RghUserIsolationHook+RghTokenStore实现多用户登录态隔离(✅已完成) - 行程冲突检测:
TravelOrderConflictTools检测同一员工时间重叠(同城重复/跨城物理不可能)与跨城交通衔接合理性,分 HIGH/MEDIUM/LOW 三级输出(✅已完成) - 行程智能优化:
ItineraryPlannerTool(plan_roundtrip)采用双轨评分(LLM 软判断偏好分 + 工具硬指标加权融合),在时间/价格/偏好多目标间权衡并给出 4 类代表方案对比;已由原 roundtrip-planner Python skill 平移为进程内 Java @Tool,去掉 python3/shell 依赖(✅已完成) - 外部预订记录管理:
BookingPersistenceHook监听 tuniu 下单/取消 CLI 结果,解析外部单号与状态写入booking_record(对 LLM 透明);BookingReadTools供用户按租户隔离查询(✅已完成) - 上下文 token 优化:
CliResultCompressHook(MCP/CLI 结果去重压缩)+SkillContentCollapseHook(历史技能正文折叠)显著降低多轮 reasoning 的 LLM 输入 token(✅已完成) - 全链路敏感信息脱敏:
SensitiveMasker基于 houbb sensitive 框架,对日志(SensitiveMaskingConverter)与前端返回中的手机号/身份证/银行卡/邮箱/API Key/密钥键值对自动脱敏(✅已完成) - 依赖注入规范统一:全局 33 个 Spring Bean 统一从构造器注入改为字段注入(
@Autowired/@Value/@Qualifier),含构造逻辑/副作用的下沉到@PostConstruct(✅已完成) - 意图种子语料外置:L2 向量库种子语料从硬编码迁移至
intent-seed.yml,经IntentSeedExamplesProperties绑定,与 L1 规则分层去重(✅已完成) - 动态时间注入与百炼缓存:
DynamicTimeInjectionHook在每轮 LLM 推理前向 inputMessages 插入当前时间 system 消息,保持主 system prompt 前缀稳定,利用百炼隐式缓存降低 LLM 调用成本(✅已完成)
# 3.9 意图识别与查询重写优化
针对「每次对话都要跑 QueryRewriting + IntentRecognition + MasterAgent 三次 LLM」的高延迟高成本问题,做了分层短路 + 条件触发 + 单意图直跳三项优化。
# 三层意图识别(L1 → L2 → L3)
由 IntentRecognitionRouter 编排,命中即短路,尽量绕开大模型:
| 层级 | 实现 | 手段 | 软目标延迟 |
|---|---|---|---|
| ------ | ------ | ------ | ----------- |
| L1 | IntentRuleMatcher | 关键词/正则规则匹配 | < 50ms |
| L2 | IntentVectorMatcher | DashScope Embedding + InMemoryStore 向量相似度 Top-1 | < 100ms |
| L3 | IntentRecognitionAgent | LLM 兜底(Model.stream 单次调用,无 ReActAgent 循环/memory 开销) | LLM 延迟 |
IntentRecognitionAgent合并了「工厂配置 + Agent 实现」,@Scope("prototype")保证每个 session 独立实例、中断状态互不污染。- 三层结果统一为
IntentRecognitionResult(标注来源 RULE/VECTOR/LLM 与置信度),包装成与 LLM 输出同构的 JSON,下游 MasterAgent/流水线零改动。 - L2 种子语料外置
intent-seed.yml,刻意剔除 L1 能命中的表达(避免冗余),由IntentRouterSeedExamplesTest离线校验 L1/L2 不重叠。
# 查询重写条件触发 + 单意图直跳
AgentPipelineService 把「查询重写」从必经步骤改为「仅在 L1/L2 未命中时才触发」的条件步骤:
用户消息
│
├─ 用原始问题跑 L1/L2 快速识别(不触发 L3)
│ │
│ ├─ 命中 ─► 跳过查询重写,直接调度
│ │
│ └─ 未命中 ─► QueryRewritingAgent 改写 ─► 重走完整 L1/L2/L3 ─► 调度
│
└─ 调度决策:
单意图 + 高置信 + 命中子智能体白名单 ─► 直跳对应子智能体(跳过 MasterAgent)
否则 ─► 走 MasterAgent 路由
- 省一次改写 LLM:高频、表达清晰的请求(L1/L2 直接命中)完全跳过 QueryRewritingAgent。
- 省一次 MasterAgent 推理:单意图高置信直跳子智能体,节省 1-3 秒额外延迟与一次模型调用;仅多意图/低置信/需澄清的请求才付出 MasterAgent 路由代价。
- continuation 场景另有
executeFromIntentRecognition(跳过改写)/executeMasterAgentDirectly(跳过改写+识别)两条快捷入口。
# 四、数据库设计(已完成)
| 表名 | 用途 |
|---|---|
| ------ | ------ |
agentscope_session | Agent 会话状态持久化 |
travel_order | 差旅申请单 |
approval_record | 审批记录 |
user_profile | 用户档案(常驻城市、职级、证件、航班偏好) |
user_account | 用户登录账号 |
travelpolicyrule | 差旅政策规则(4 职级区间 × 3 城市等级) |
chat_conversation | 对话会话 |
chat_message | 对话消息(含 feedback / progress / thinkingByAgent / planTasks / travelData / timeline) |
userapikey | 用户级第三方平台 API Key(tuniu 等凭证) |
booking_record | 外部预订记录(机票/酒店/火车/门票/邮轮/度假统一存储,含内外部单号与状态) |
user_preference | 用户偏好条目(已弃用,迁移至百炼) |
# 五、已完成的关键特性
- 多 Agent 协作流水线:QueryRewriting → IntentRecognition → Master → SubAgents 三级串行流水线
- 多意图支持:单次用户输入可识别并按顺序处理多个意图
- Human-in-the-Loop:Agent 可通过结构化 UI 向用户主动提问并暂停等待
- 实时进度推送:通过 SSE 将 Agent 思考过程、工具调用、搜索结果实时展示给用户
- 搜索结果可视化:机票/火车票/酒店搜索结果以卡片形式展示,支持多数据源(tuniu-cli / flight-manager / flyai / rolling-go-hotel)格式归一化
- 差旅政策合规检查:基于职级和城市等级的自动预算与舱位限制;InfoAgent 实现「RAG 通道(语义问答)+ PolicyTools 通道(精确身份绑定)」双通道决策
- 百炼长期记忆:通过
AGENT_CONTROL模式自动注册记忆工具,MasterAgent/ItineraryPlanAgent 主动召回差旅偏好 - 请求级记忆内容缓存:当前请求生命周期内
retrievefrommemory结果缓存,避免重复 LLM 调用 - 工具级熔断:ToolCircuitBreakerHook 实现工具维度的熔断/半开/关闭,半开期失败显式关闭工具组
- rgh 多用户隔离:rolling-go-hotel Skill 通过 Hook + TokenStore 隔离多用户登录态
- 对话历史持久化:完整的会话管理、历史消息存储与恢复(含 progress / thinkingByAgent / planTasks / travelData / timeline 等结构化扩展)
- 集群部署支持:Redis 中断广播 + 跨节点会话恢复
- 自动会话标题生成:由
ConversationTitleService在独立线程池titleTaskExecutor异步生成对话标题(轻量 LLM 服务,非 ReActAgent) - 时间轴对话展示:前端对话 UI 重构为按执行顺序的时间轴流式展示
- 推荐问题按场景化使用:助手抛出澄清/选择题时禁止硬塞"确定/确认",等待用户整体确认/修改时才优先用快速操作关键词
- 行程冲突检测:提交/修改差旅单时自动检测与已有生效单的时间重叠与跨城交通衔接冲突,分级告警供 LLM 决策
- 行程智能优化:
ItineraryPlannerTool(plan_roundtrip)双轨评分(LLM 软判断偏好分 + 工具硬指标),多目标权衡输出 4 类代表方案对比;由 Python skill 平移为进程内 Java @Tool - 全链路敏感信息脱敏:基于 houbb sensitive 框架,日志与前端输出中的身份证/手机号/银行卡/邮箱/密钥自动脱敏
- 依赖注入规范统一:全局 Spring Bean 由构造器注入统一改为字段注入,副作用下沉
@PostConstruct - 意图识别与查询重写优化:L1/L2/L3 三层分层短路 + 查询重写条件触发 + 单意图高置信直跳子智能体,高频请求可省去改写与 MasterAgent 两次 LLM 调用(详见 3.9)
- 外部预订记录管理:
BookingPersistenceHook自动将 tuniu 下单/取消结果落库booking_record,BookingReadTools供用户按租户隔离查询预订 - 上下文 token 优化:MCP/CLI 结果去重压缩(
CliResultCompressHook)+ 历史技能正文折叠(SkillContentCollapseHook),压降多轮对话的 LLM 输入 token
# 六、项目统计
- 后端 Java 文件:144 个(
src/main) - 代码规模:后端 Java 约 19,532 行(
src/main)+ 测试约 359 行;前端 TS/TSX 约 5,076 行;Agent Prompts 1,137 行;YAML 配置 291 行 - ReActAgent 智能体:9 个(新增 BookingAgent 预订执行)
- 轻量 LLM 服务(Agent 命名):2 个(
ConversationTitleService/QuestionRecommendationService,仅作 Agent 命名,非 ReActAgent) - Agent 工具:15 个工具类(含
TravelOrderConflictTools行程冲突检测、ItineraryPlannerTool往返规划、BookingReadTools预订查询、BookingWriteTools预订写入) - Skill 外部能力:5 个(travel-planner 已下沉为 Java 工具
ItineraryPlannerTool) - 生命周期 Hook:14 个有效装配(新增
DynamicTimeInjectionHook) - RAG 知识库:3 个(GENERIC + AGENTIC 双模式)
- 前端组件:12 个核心组件(新增 AdminApprovalPage / BookingResultCard / MyTravelPage / PreferencePage)
- 数据库表:11 张
- System Prompt:11 个 Markdown 文件(新增 booking-agent-system.md)
# 七、todo
1、通过A2A接入发票识别、做自动报销 2、基于AgentScope-Java 2.0做重构及改造 3、可观测性