基于 LangGraph 的企业级多 Agent 协作智能旅行规划助手,集成 Advanced RAG、MCP 协议、长期/短期记忆等核心能力。
- 🤖 多 Agent 协作架构 — 基于 LangGraph Handoffs 工作流编排,8 个专业 Agent 流水线协作完成旅行规划
- 🔍 Advanced RAG — Multi-Query 扩展 + HyDE 假设文档 + 混合检索(向量 + BM25)+ LLM 重排序
- 🛠️ MCP 协议集成 — 标准化工具访问,内置天气查询和搜索服务
- 🧠 智能记忆管理 — 短期对话记忆(Checkpointer)+ 长期用户偏好存储(Store)
- ⚡ 流式响应 — 基于 SSE 的实时流式输出,支持逐 Token 推送
- 🔄 回滚机制 — 支持任意步骤回退重规划,HandoffMiddleware 智能路由
- 📦 完整数据层 — PostgreSQL (pgvector) + Redis + ChromaDB 三层存储
┌─────────────────────────────────────────────────────────┐
│ Frontend (HTML/CSS/JS) │
│ SSE Stream + REST API │
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────┐
│ FastAPI Backend │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Chat API │ │Knowledge │ │ User API │ │
│ └────┬─────┘ └──────────┘ └──────────┘ │
│ │ │
│ ┌────▼─────────────────────────────────────────────┐ │
│ │ LangGraph Handoff Workflow │ │
│ │ │ │
│ │ Requirement → Destination → Transport → │ │
│ │ Accommodation → Dining → Itinerary → │ │
│ │ Budget → Report │ │
│ │ │ │
│ │ ┌─────────────┐ ┌──────────────┐ │ │
│ │ │ Router │ │ Subagents │ │ │
│ │ │ Classifier │ │ Flight/Train│ │ │
│ │ │ Explore │ │ Driving │ │ │
│ │ └─────────────┘ └──────────────┘ │ │
│ └───────────────────────────────────────────────────┘ │
│ │ │ │ │
│ ┌────▼───┐ ┌───▼───┐ ┌──▼──────┐ │
│ │Advanced│ │ MCP │ │ Memory │ │
│ │ RAG │ │Client │ │Manager │ │
│ └────┬───┘ └───┬───┘ └──┬──────┘ │
└───────┼─────────┼────────┼───────────────────────────────┘
│ │ │
┌───────▼─────────▼────────▼───────────────────────────────┐
│ Data Storage Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │PostgreSQL│ │ Redis │ │ ChromaDB │ │
│ │ (pgvector│ │ Cache │ │ Vector │ │
│ │ + RDBMS)│ │ + Queue │ │ Store │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└───────────────────────────────────────────────────────────┘
gogogoagent/
├── backend/
│ ├── app/
│ │ ├── agents/ # 多 Agent 系统
│ │ │ ├── handoffs/ # Handoffs 工作流 Agent
│ │ │ │ ├── requirement_agent.py # 需求收集
│ │ │ │ ├── destination_agent.py # 目的地推荐
│ │ │ │ ├── transport_agent.py # 交通规划
│ │ │ │ ├── accommodation_agent.py # 住宿规划
│ │ │ │ ├── dining_agent.py # 餐饮规划
│ │ │ │ ├── itinerary_agent.py # 行程生成
│ │ │ │ ├── budget_agent.py # 预算汇总
│ │ │ │ ├── report_agent.py # 报告生成
│ │ │ │ └── handoff_middleware.py # 回滚中间件
│ │ │ ├── router/ # Router 智能路由
│ │ │ │ ├── classifier.py
│ │ │ │ ├── explore_agent.py
│ │ │ │ ├── send_router.py
│ │ │ │ └── synthesizer.py
│ │ │ └── subagents/ # Subagents 工具调用
│ │ │ ├── flight_subagent.py
│ │ │ ├── train_subagent.py
│ │ │ ├── driving_subagent.py
│ │ │ └── transport_coordinator.py
│ │ ├── api/ # API 路由
│ │ │ ├── chat.py # 聊天接口 (SSE 流式)
│ │ │ ├── knowledge.py # 知识库管理
│ │ │ └── user.py # 用户管理
│ │ ├── core/ # 核心模块
│ │ │ ├── llm.py # LLM 初始化 (Qwen/DeepSeek)
│ │ │ ├── embeddings.py # 向量嵌入
│ │ │ ├── mcp_client.py # MCP 客户端
│ │ │ └── middleware.py # 全局中间件
│ │ ├── db/ # 数据库连接
│ │ │ ├── postgresql.py # PostgreSQL (pgvector)
│ │ │ ├── redis.py # Redis 缓存
│ │ │ ├── chromadb.py # ChromaDB 向量库
│ │ │ ├── models.py # ORM 模型
│ │ │ └── crud.py # 数据操作
│ │ ├── graph/ # LangGraph 工作流
│ │ │ ├── handoff_workflow.py # Handoffs 主工作流
│ │ │ ├── router_workflow.py # Router 工作流
│ │ │ ├── subagent_workflow.py # Subagent 工作流
│ │ │ └── state.py # 状态定义
│ │ ├── mcp_servers/ # MCP 工具服务
│ │ │ ├── weather_server.py
│ │ │ └── search_server.py
│ │ ├── memory/ # 记忆管理
│ │ │ ├── checkpointer.py # 短期对话记忆
│ │ │ └── store.py # 长期偏好存储
│ │ ├── rag/ # Advanced RAG
│ │ │ ├── query_optimizer.py # Multi-Query + HyDE
│ │ │ ├── hybrid_retriever.py # 混合检索
│ │ │ ├── reranker.py # LLM 重排序
│ │ │ ├── context_optimizer.py # 上下文优化
│ │ │ ├── indexer.py # 索引构建
│ │ │ ├── loader.py # 文档加载
│ │ │ └── splitter.py # 文档切分
│ │ ├── utils/ # 工具函数
│ │ ├── config.py # 配置管理
│ │ └── main.py # 应用入口
│ ├── alembic/ # 数据库迁移
│ ├── .env.example # 环境变量模板
│ └── pyproject.toml # 项目依赖
├── frontend/
│ ├── index.html # 主页面
│ ├── css/style.css # 样式
│ └── js/app.js # 前端逻辑
├── sql/
│ ├── init.sql # 数据库初始化
│ └── seed_data.sql # 种子数据
├── docker-compose.yml # Docker 编排
├── Dockerfile # 容器构建
└── .gitignore
- Python >= 3.11
- Docker & Docker Compose (用于 PostgreSQL、Redis、ChromaDB)
- Qwen API Key (通义千问)
git clone https://github.com/your-username/gogogoagent.git
cd gogogoagentdocker compose up -d这将启动以下服务:
| 服务 | 端口 | 说明 |
|---|---|---|
| PostgreSQL (pgvector) | 5432 | 关系型数据库 + 向量检索 |
| Redis | 6379 | 缓存 + 消息队列 |
| ChromaDB | 8000 | 向量数据库 |
cp backend/.env.example backend/.env编辑 backend/.env,填入你的 API Key:
LLM_PROVIDER=qwen
QWEN_API_KEY=your_qwen_api_key_here
QWEN_MODEL_NAME=qwen-maxcd backend
pip install -e .uvicorn app.main:app --host 0.0.0.0 --port 9000 --reload访问 http://localhost:9000 即可使用。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/chat/stream |
SSE 流式聊天 |
| POST | /api/chat |
同步聊天 |
| GET | /api/chat/conversations |
获取对话列表 |
| GET | /api/chat/history/{id} |
获取对话历史 |
| POST | /api/knowledge/upload |
上传知识文档 |
| GET | /api/knowledge/list |
获取知识库列表 |
| GET | /health |
健康检查 |
系统采用 Handoffs 工作流编排,8 个专业 Agent 按流水线协作:
用户输入 → Requirement Agent (需求收集)
→ Destination Agent (目的地推荐)
→ Transport Agent (交通规划)
→ Accommodation Agent (住宿规划)
→ Dining Agent (餐饮规划)
→ Itinerary Agent (行程生成)
→ Budget Agent (预算汇总)
→ Report Agent (报告生成) → 输出完整旅行规划
每个 Agent 执行完毕后通过 route_step 条件边自动路由到下一步,支持回退到任意步骤重新规划。
用户查询
│
├── Multi-Query 扩展 ──→ 生成多个相关查询
├── HyDE 假设文档 ──→ LLM 生成假设性答案
│
▼
混合检索
├── 向量检索 (ChromaDB) ──→ 语义相似度
└── BM25 检索 ──→ 关键词匹配
│
▼
LLM 重排序 ──→ 交叉编码器精排
│
▼
上下文优化 ──→ 去重 + 截断 + 排序
│
▼
增强生成
| 类别 | 技术 |
|---|---|
| 后端框架 | FastAPI |
| AI 框架 | LangChain + LangGraph |
| LLM | Qwen (通义千问) / DeepSeek |
| 数据库 | PostgreSQL (pgvector) |
| 缓存 | Redis |
| 向量数据库 | ChromaDB |
| 协议 | MCP (Model Context Protocol) |
| 前端 | HTML + CSS + JavaScript |
| 容器化 | Docker + Docker Compose |
| 可观测性 | LangSmith + Loguru |
MIT License