西安市网站建设_网站建设公司_代码压缩_seo优化
2026/1/17 2:45:38 网站建设 项目流程

用AutoGen Studio做个旅游规划AI:完整项目实战教程

1. 引言

1.1 业务场景描述

在现代生活中,个性化旅游规划已成为高频需求。用户希望获得符合预算、时间安排和兴趣爱好的行程建议,但手动查找信息耗时费力。传统推荐系统往往缺乏灵活性,难以应对复杂多变的用户需求。

借助AI代理(Agent)技术,我们可以构建一个能够自主思考、调用工具、协同工作的智能系统,自动完成从目的地推荐到行程安排的全流程任务。本教程将带你使用AutoGen Studio实现一个完整的旅游规划AI助手。

1.2 痛点分析

当前旅游规划存在以下问题:

  • 信息分散:需在多个平台查询交通、住宿、景点等数据
  • 个性化不足:通用推荐无法满足特定偏好(如亲子游、徒步旅行)
  • 动态调整困难:天气变化或突发情况难以实时响应
  • 多目标权衡复杂:预算、时间、舒适度之间需要平衡

现有方案通常依赖规则引擎或单模型问答,缺乏“推理+执行”的闭环能力。

1.3 方案预告

本文将基于内置vLLM部署的Qwen3-4B-Instruct-2507模型服务的 AutoGen Studio 镜像环境,通过低代码方式搭建一个多智能体协作系统,包含:

  • 规划师 Agent:负责整体行程设计
  • 搜索 Agent:调用外部工具获取实时信息
  • 评审 Agent:对生成方案进行评估与优化

最终实现一个可交互、可扩展、支持动态反馈的旅游规划AI工作流。


2. 环境准备与模型验证

2.1 检查本地大模型服务状态

本镜像已预装 vLLM 并启动 Qwen3-4B-Instruct-2507 模型服务。首先确认服务正常运行:

cat /root/workspace/llm.log

输出应包含类似如下内容,表示模型已加载成功并监听8000端口:

INFO: Started server process [12345] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: OpenAI API provider listening on http://0.0.0.0:8000/v1

若未看到日志,请检查容器资源分配是否充足(建议至少 8GB 显存)。

2.2 WebUI 访问与测试

打开浏览器访问 AutoGen Studio WebUI,默认端口为8080。进入主界面后,按照以下步骤配置模型连接。

2.3 配置 Assistant Agent 的模型参数

2.3.1 进入 Team Builder 页面

点击左侧菜单栏的Team Builder,选择默认的AssistantAgent进行编辑。

2.3.2 修改 Model Client 参数

在模型客户端设置中填写以下参数:

字段
ModelQwen3-4B-Instruct-2507
Base URLhttp://localhost:8000/v1
API KeyEMPTY(vLLM 默认无需密钥)

保存配置后,可通过内置聊天窗口发送测试消息,例如:

“你好,请介绍一下你自己。”

预期返回结果为模型的自我介绍,表明通信链路畅通。


3. 构建旅游规划智能体团队

3.1 设计多Agent协作架构

我们采用分层协作模式,定义三个核心角色:

  • Planner Agent:主导任务分解与流程控制
  • Searcher Agent:执行网络搜索、获取天气/票价等信息
  • Reviewer Agent:质量把关,提出改进建议

三者通过消息传递机制协同工作,形成“提出→执行→评审”循环。

3.2 创建 Planner Agent

3.2.1 新建 Agent

在 Team Builder 中点击 “Add New Agent”,命名为TravelPlanner

3.2.2 设置行为描述(System Message)
你是一个专业的旅游规划师 AI。你的任务是根据用户的出行需求(如目的地、天数、预算、兴趣等),制定详细的每日行程计划。 你需要: 1. 分析用户需求,明确关键约束条件; 2. 将任务拆解为若干子任务(如查景点、排路线、定酒店); 3. 协调其他 Agent 完成信息收集; 4. 整合并输出结构化行程表,包括时间、地点、交通方式、费用估算等。
3.2.3 配置模型与能力
  • 使用相同的Qwen3-4B-Instruct-2507模型
  • 启用Allow Delegation,允许其向其他 Agent 发送请求
  • 开启Human Input Mode(可选),便于人工干预

3.3 创建 Searcher Agent

3.3.1 新建 Agent:InfoSearcher

该 Agent 负责调用工具获取外部信息。

3.3.2 系统提示词配置
你是 Travel Planning System 的信息检索专家。你的职责是根据 Planner 的请求,使用工具获取准确的实时信息。 你可以使用的工具有: - web_search(query): 执行网络搜索,返回前3条相关结果摘要 - get_weather(location): 查询指定城市的当前及未来三天天气 - get_flight_prices(origin, dest, date): 获取航班价格范围 - get_hotel_options(location, check_in, budget): 获取符合条件的酒店列表 请确保每次只调用最必要的工具,并以简洁格式返回结果。
3.3.3 工具注册说明

虽然 AutoGen Studio 当前版本不支持自定义 Python 函数注入,但我们可以通过 Playground 手动模拟工具调用逻辑。后续可通过导出代码并在本地项目中集成真实工具。

3.4 创建 Reviewer Agent

3.4.1 新建 Agent:QualityReviewer
3.4.2 系统提示词配置
你是旅游行程的质量审查官。你的任务是对 TravelPlanner 提交的初步方案进行审核,重点关注: - 时间安排是否合理(避免过于紧凑或空闲) - 地点分布是否集中(减少无效交通) - 是否符合用户预算 - 是否覆盖用户兴趣点 - 是否考虑天气因素 请以建设性语气提出修改建议,最多列出3条改进意见。如果方案优秀,直接回复“通过”。

4. 在Playground中测试旅游规划流程

4.1 新建 Session

进入Playground页面,点击 “New Session”,选择之前创建的团队(Team),添加TravelPlanner作为初始参与者。

4.2 输入用户需求示例

发送以下请求开始对话:

我想下个月带家人去杭州玩三天,预算每人3000元,喜欢自然风光和美食,不喜欢购物团。请帮我规划一下行程。

4.3 观察多Agent协作过程

系统将自动触发以下流程:

  1. TravelPlanner接收请求,分析需求,生成任务清单:

    • 查询杭州必游景点(西湖、灵隐寺、龙井村等)
    • 获取近期天气预报
    • 推荐适合家庭的餐厅
    • 安排每日行程节奏
  2. TravelPlannerInfoSearcher发起委托请求:

    请查询下周杭州的天气情况和西湖周边人均100元内的特色餐馆。

  3. InfoSearcher返回模拟结果(实际环境中应由插件实现):

    天气:晴转多云,气温18~26°C,适宜户外活动。 餐厅推荐: - 楼外楼(西湖醋鱼):人均90元 - 知味观·味庄:人均110元 - 西湖国宾馆·紫薇厅:人均150元
  4. TravelPlanner整合信息,生成初版行程草案。

  5. QualityReviewer审核后反馈:

    建议:第二天下午安排稍显紧张,建议将龙井村采茶体验延后一小时;晚餐可优先推荐楼外楼。

  6. TravelPlanner修正方案并输出最终行程。

4.4 输出样例(简化版)

### 杭州三日亲子游行程(预算:3000元/人) #### 第一天:西湖文化之旅 - 上午:断桥残雪 → 白堤 → 平湖秋月 - 午餐:楼外楼(西湖醋鱼、东坡肉) - 下午:乘船游湖(三潭印月)→ 雷峰塔 - 晚餐:知味观·味庄 - 住宿:西湖边精品民宿(¥600/晚) #### 第二天:茶乡体验日 - 上午:灵隐寺祈福 - 下午:龙井村参观茶园,体验手工炒茶 - 晚餐:农家乐(龙井虾仁、土鸡煲) #### 第三天:城市休闲 - 上午:中国丝绸博物馆 - 下午:河坊街自由活动(非购物导向,侧重民俗展示) - 返程

5. 关键实践问题与优化建议

5.1 常见问题及解决方案

问题现象可能原因解决方法
Agent 不响应或卡住模型响应超时或上下文过长调整max_tokens,限制历史消息长度
工具调用失败缺少真实工具接口导出至本地项目,集成真实 API
回复偏离主题system message 不够明确加强角色定义,增加约束条件
多轮对话混乱缺乏状态管理启用GroupChat模式,引入主持人 Agent

5.2 性能优化建议

  1. 启用缓存机制:对于频繁查询的信息(如景点介绍),可在本地建立轻量数据库避免重复搜索。
  2. 限制最大轮次:防止无限循环讨论,可在配置中设定max_round=10
  3. 异步处理:在高级部署中,使用 Celery 或 Redis 实现非阻塞任务调度。
  4. 模型降级策略:当高负载时,可切换至更小模型处理简单任务。

5.3 扩展方向

  • 接入真实工具链:结合 SerpAPI、WeatherAPI、Amadeus 等提供真实数据支持
  • 持久化存储:将用户历史偏好存入数据库,实现个性化记忆
  • 语音交互:集成 TTS/STT 模块,打造全模态助手
  • 移动端适配:封装为微信小程序或 App 内嵌组件

6. 总结

6.1 实践经验总结

通过本次实战,我们验证了 AutoGen Studio 在快速构建多Agent系统方面的强大能力:

  • 低代码优势显著:无需编写大量胶水代码即可完成 Agent 编排
  • 角色分工清晰:通过 system message 精确控制每个 Agent 的行为边界
  • 调试便捷:Playground 提供直观的消息追踪与交互测试功能
  • 模型兼容性强:成功对接本地 vLLM 部署的 Qwen3 模型,摆脱云端依赖

同时也要认识到其局限性:目前工具扩展仍需依赖外部系统模拟,在生产环境中建议导出为标准 AutoGen 项目进行深度定制。

6.2 最佳实践建议

  1. 先原型后工程:利用 Studio 快速验证想法,再迁移到代码项目中完善
  2. 明确角色边界:每个 Agent 的职责应单一且互斥,避免责任重叠
  3. 重视提示词设计:system message 是 Agent 行为的“宪法”,必须严谨编写
  4. 逐步迭代优化:从单轮对话开始,逐步加入评审、反馈、修正机制

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询