基于 LangGraph Agent 架构的 AI 旅行规划助手,8 个专业工具协同工作,从行程规划到打包清单,一站式搞定旅行全流程。
Agent 根据用户问题自动决策调用哪些工具、调用几次,复杂规划任务会串联多个工具一次性给出完整答案。
根据目的地、天数、旅行风格(慢节奏/深度/美食等)和预算档次,生成完整分日行程,含具体时间安排、景点顺序、午晚餐餐厅推荐、住宿区域选择、每天交通贴士和费用估算,由 DeepSeek 实时生成。
generate_itinerary支持对接 OpenWeatherMap 真实 API,同时内置主流城市模拟气象数据作为兜底。返回当前气温、湿度、风速、未来 7 天预报,并自动输出穿着建议与是否携带雨具等旅行贴士。
get_weather内置东京、巴黎、曼谷、巴厘岛等热门城市完整数据(景点门票、游览时长、避坑贴士、美食、住宿区域、交通方式)。未覆盖城市由 DeepSeek 实时生成,支持按兴趣关键词过滤排序。
get_attractions按住宿、餐饮、本地交通、景点门票、购物五个维度分项计算。支持经济 / 中等 / 豪华三档预算,内置 20+ 主流城市基准日费,自动换算为人民币,并附 10% 应急备用金和省钱建议。
calculate_budget内置 12+ 热门目的地中国护照签证信息,覆盖免签、落地签、电子签、申根签等类型,列出所需材料清单、办理时间线、官方渠道链接及重要注意事项,标注"以官方实时政策为准"。
check_visa内置 20+ 货币汇率,可通过目的地名自动推断目标货币,提供 100/500/1000/5000 元常用换算参考表。附当地消费习惯贴士,如日本无小费、泰国集市可砍价 20-30% 等实用信息。
convert_currency根据目的地、天数、季节、旅行类型(度假/商务/背包)和活动(潜水/登山/滑雪)生成分类清单,覆盖证件、电子设备、衣物、洗漱、医药、旅行便利品六大类,自动推荐行李箱尺寸。
generate_packing_list内置日语、泰语、韩语、法语等语言高频旅行短语,附罗马音/拼音发音指导。复杂表达调用 DeepSeek 翻译并推荐同场景相关用语,覆盖点餐、问路、购物砍价、紧急求助等场景。
translate_phrase「主力模型做规划生成,轻量模型做结构化辅助」双模型策略,在效果与成本之间取得最优平衡。
承担 Agent 主循环全部推理:理解用户旅行需求、决策调用哪些工具及顺序、整合多工具结果,最终生成结构清晰、语气友好的中文规划内容。行程生成任务由它独立完成,直接输出完整 JSON 逐日计划。
专门处理轻量化结构化任务:数据库未覆盖城市的景点信息实时生成、旅行短语的多语言翻译与发音指导、未知目的地的基础信息补全。温度为 0 时输出确定性 JSON,速度快、成本低。
系统通过 LangChain.js 的 ChatOpenAI 接口调用,任何兼容 DeepSeek API 格式的模型均可直接替换,只需修改 .env 中的两个变量即可切换,无需改动代码逻辑。
基于 LangGraph StateGraph 构建的 ReAct 模式 Agent,自主决策工具调用顺序,最多循环 15 步防止失控。
系统从本地 JSON 文件读取该用户的偏好(预算等级、旅行风格、兴趣爱好、饮食限制)、愿望清单、历史去过的地方,拼接进系统提示词。Agent 从一开始就了解这位旅行者,无需用户重复自我介绍。
Agent 主节点读取完整对话历史和系统提示,理解用户意图后从 8 个绑定工具中选择合适的工具调用。简单问题只调一次,复杂规划(如"东京5天行程")会串联 weather → attractions → itinerary 三个工具。
LangGraph 内置 ToolNode 接收工具调用请求,执行对应工具函数,将结果以 ToolMessage 格式追加到消息列表,控制权自动返回 Agent 节点判断是否继续调用其他工具。
所有工具结果收集完毕后,DeepSeek 将结构化数据转化为流畅的中文旅行规划内容,主动补充避坑建议和延伸推荐。通过 SSE 流式推送至客户端,用户看到第一个字的延迟通常在 1 秒以内。
用户偏好、愿望清单、历史旅行记录保存在 data/users/ 下的 JSON 文件,下次对话自动加载。通过 API 还可手动保存生成的行程计划,最多保留 20 条历史行程供随时查阅。
提供同步和 SSE 流式两种聊天模式,用户管理接口支持偏好、愿望清单、行程历史的完整 CRUD。
纯 JavaScript ESM,无需 TypeScript 编译步骤,npm install 后即可直接运行。