跳转至

3.1 项目架构与代码架构图

学习目标

  • 了解整个项目的业务架构和业务逻辑
  • 了解整个项目的代码结构

一、项目架构(业务)

SmartVoyage 是一个智能旅行助手系统,旨在为客户提供旅行出游的一揽子解决方案,涉及景点、气象、行程、住宿、餐饮、纪念活动、行李统筹、特殊装备、保险等十多个领域的数据和规划、操作。传统旅行工具往往要求用户手动切换多个应用或网站,导致信息碎片化和时间浪费。本项目基于分布式 AI 架构,利用大语言模型(LLM)、MCP(Model Context Protocol,模型上下文协议,由 Anthropic 开源,用于模型与外部工具的集成)和 A2A(Agent-to-Agent 协议,代理间通信协议)实现无缝查询处理,结合数据库、爬虫和微服务,实现实时、准确的响应。

1 真实业务中的项目架构

真实项目架构是一个非常庞大的体系,由15个独立Agent和对应的MCP服务组成,由一个整体的调度Agent负责全局统筹。并且各个独立智能体之间有复杂的联系。

MCP3

2 整体框架(极简)

虽然这样的项目在技术和工程上有一定的高度,但是一是规模比较大,不方便用于教学;二是有太多纯业务代码,不方便大家了解这里使用的技术框架,所以教学上使用的项目脱胎于真实项目,做了相当的简化。

教学项目保留了原项目的技术骨架,删除了大量的重复业务逻辑,把原来的15个独立Agent压缩到两个。

MCP3

3 业务逻辑架构(细化)

Smartvoyage是基于A2A与MCP协议实现是一个多agent的旅游出行智能助手。以下是从业务层面的架构图。

天气和票务使用了完整的MCP+A2A框架。

增加了新的意图--景点推荐,实际项目中也有对应的MCP+A2A结构,这里简化成直接用大模型推理。

增加了兜底意图--其他,工程上必须考虑兜底方案,只要大量客户长时间使用的系统,必定有预期以外的情况发生。

MCP3

4 业务架构(详细)

image47566252773568748

二、代码结构

1 整体代码逻辑

smartvoyage是基于A2A与MCP协议实现是一个多agent的旅游出行智能助手。以下是从代码层面的架构图

MCP3

2 代码结构

MCP3

本次的项目实战流程:

① 配置基础环境(config.py) ② 初始化数据库(SQL 脚本) ③ 采集数据(spider_weather.py) ④ 完成 MCP 服务器(mcp_weather_server.py 和 mcp_ticket_server.py) ⑤ 完成A2A代理服务器(weather_server.py 和 ticket_server.py) ⑥ 完成路由服务器(router_A2Aagent_Server.py) ⑦ 完成客户端(main.py) ⑧ 启动服务进行联调

项目联调时各服务的启动顺序为:

  • 启动MCP 服务器(mcp_weather_server.py 和 mcp_ticket_server.py)
  • 启动代理服务器(weather_server.py 和 ticket_server.py)
  • 启动路由服务器(router_A2Aagent_Server.py)
  • 启动客户端(main.py)

本节小结

本节主要描述了smartVoyage的业务逻辑和代码架构。