voyage

agent
Security Audit
Warn
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 13 GitHub stars
Code Warn
  • process.env — Environment variable access in packages/voyage-mcp/server.ts
  • process.env — Environment variable access in playwright.config.ts
  • network request — Outbound network request in public/sw.js
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Voyage — AI Travel OS MVP. Plan trips as real itineraries with map, daily routes, and AI actions.

README.md

English | 中文

Voyage · Travel OS

Voyage is an AI-native Travel OS.
不是攻略生成器,不是长篇 Markdown 机器,也不是臃肿的 OTA 销售平台。
它的使命是:让一个真实的人,真的敢拿 Voyage 去完成一次旅行。

用户输入一句简单愿望:

“从桂林去重庆玩 3 天,2 个人,预算 2500,喜欢美食和夜景,不想每天走太多路。”

Voyage 在几秒钟内生成一个真实的、结构化的、带高德坐标与路网、受天气感知、可持久化、随时可修改的完整旅行项目。

用户旅途中只需说:

  • “明天太累了” → 减少长距离攀爬,步行自动转打车与轻轨;
  • “今天下雨了” → 触发 Rain Plan,露天步道平滑置换为室内三峡博物馆;
  • “今天省 100 块” → 打车智能回退为地铁,餐饮结构微调;
  • “推迟一小时” → 节点整体顺延,重新校准各段交通;

每一个自然语言指令,都会被编译成经过 Zod 校验的结构化 TravelAction,生成量化对比报告(TripChangeSet)呈现在 Diff 审阅弹窗中,待用户确认后才应用。


界面预览

先和 Agent 把需求聊清楚,确认后再生成真实路线;生成之后仍然可以在行程里继续调整。

1. 对话式规划 · 边聊边形成旅行画像

对话式规划:左侧对话,右侧实时更新的路线画像

2. 行程工作区 · 看哪一天就只显示哪一天

左侧只显示选中当天的行程,右侧地图只画当天的标记与路线;每条路线标注来源(高德实时 / 估算)。

行程工作区:单日聚焦的行程列表与地图

3. 当天行程 + AI 助手 · 旅途中直接改

顶部直接给出「下一站」与一键导航,不需要自己解读整屏信息;右侧助手可以按天改行程,且只生成提案,需在 Diff 里确认才会写回。

当天行程的下一站卡片与 AI 助手面板

4. 我的旅行 · 所有行程项目

我的旅行列表

5. 数据源设置 · 密钥只在服务端

只显示每项能力「是否已配置」,不显示也不接收密钥值,避免凭据暴露到浏览器。

API 与数据源设置页,只展示配置状态

功能亮点

  • Agent 主动牵引 + 工具调用可见:今天页顶部根据行程事实(未来下雨、空白天、超预算、步行过长、未查报价、行前待办)主动给出可点击的下一步建议;Agent 回答时自动调用 15 个真实工具(高德 POI / 路线 / 天气 / 社交证据 / 报价),调用轨迹以徽标展示在回复卡中。LLM 只能生成提案,应用必须由你在 Diff 中确认。
  • 多轮追问:今天页的 AI 调整带最近 8 轮上下文——「再少一点」「换成下午」这类追问可以直接说。
  • 攻略一键导入(小红书 / 抖音 / 微信):在规划对话框里直接粘贴小红书/抖音链接(短链也行),自动抓取正文、由高德逐个核实地点、生成时按链接原文顺序排进每天并画到地图上,同时生成打卡清单;也可在探索页检索小红书爆款笔记或粘贴任意平台的攻略原文。打钩一个地点,对应任务自动划掉。
  • 单一创建路径:一句话说出想去哪,Agent 追问缺的日期与人数,确认后生成真实路线;画像面板随时可手填。
  • 探索页集成:美食、住宿、活动的实时发现与「已收录」列表统一在探索页的类别 tab 中,发现结果可直接落到地图或行程。
  • 单日聚焦:看哪一天就只显示哪一天的列表与路线,「全部」一键切回全程视图。
  • 移动端完整导航:底部导航「行程 / 今天 / 地图 / 更多」,分享按钮手机可见;非行程页(我的旅行 / 设置)有全局底栏。
  • 规划会话不再怕刷新:会话 ID 持久化在本机、对话保存在服务端;回到规划页可「继续上次规划」,失效会话如实提示并清理。
  • 运维加固:付费接口(高德 / TikHub / LLM / 飞猪 / 规划)按调用方滑动窗口限流,超限返回 429 + Retry-After(单实例内存实现);服务端结构化 JSON 日志覆盖降级与失败路径;访客工作区按 TTL 自动清理(默认 30 天,VOYAGE_GUEST_TTL_DAYS 可调,0 关闭)。

核心四大阶段 (Four Pillars)

阶段 职责定位 核心能力
1. Plan 行程规划与时间轴生成 目的地真实 POI 聚合,按地理就近聚类,自动排布正餐、游览时长与预算分布。
2. Explore 真实探索与商户发现 实时高德 POI 检索,支持“室内、夜景、免费、少走路”等精准标签筛选,杜绝伪造评分与空头价格。
3. Adapt 动态适应与差异审阅 全局 Command Bar (Cmd+K) 随时唤起,修改前量化展示步行减量、交通置换与费用差值,支持 10 步随时 Undo。
4. Travel 现场执行控制台 (Today) 移动端优先单手操作:实时锁定下一站目标、出发与到达倒计时、直连高德 App 真实导航。

技术架构

UI Components (Next.js 15 App Router · React 19 · Tailwind v4 · Radix UI · Motion · dnd-kit)
      ↓
State & Control Layer (Zustand: useTripStore · useUiStore · useHistoryStore · CommandBar)
      ↓
AI Action & Diff Engine (TravelAction 3.0 · ActionPlanner · ActionExecutor · TripDiffModal)
      ↓
Travel Intelligence (Route Matrix · Transport Scoring · RAG Planning Context)
      ↓
Knowledge Engine (Hybrid Keyword + pgvector · Freshness · Confidence · Provenance)
      ↓
Service Facades & Routing Engine (RoutingService · WeatherContext · BookingIntent)
      ↓
Server Boundary (API Routes with 'server-only' secrets isolation)
  ├── AMap REST (POI Search, Geocoding, Walking/Driving/Transit Directions, Polylines)
  ├── OpenAI-compatible LLM (Chat Completions: Qwen, DeepSeek, GPT-4o)
  └── Supabase (Secure RLS bound to auth.uid() + In-Memory Fallback)

快速启动

cd voyage
npm install
npm run dev

浏览器打开 http://localhost:3002

验证命令

npm run lint         # ESLint 代码规范检查 (0 errors, 0 warnings)
npm run typecheck    # TypeScript 严格类型检查 (0 errors)
npm test             # Vitest 单元与集成测试 (221 tests passed)
npm run build        # 生产环境 Turbopack 打包编译
npm run test:e2e     # Playwright 端到端验证 (25 条,含移动端导航与会话恢复)

环境变量配置 (.env.local)

环境变量 说明 缺省行为
NEXT_PUBLIC_AMAP_KEY 高德 JS API Key (Web 客户端) 未配置时自动降级为 SVG 矢量投影底图
NEXT_PUBLIC_AMAP_SECURITY_CODE 高德 JS API 安全密钥 配合 JS Key 使用
AMAP_SERVER_KEY 高德 Web 服务服务端 REST Key 未配置时走精选真实地点库与 Haversine 估算
LLM_BASE_URL OpenAI 兼容的大模型 API 根地址 (如方舟/DeepSeek) 未配置时自动切入规则引擎
LLM_API_KEY 服务端模型 API Key 保护在服务端,绝不向浏览器泄露
LLM_MODEL 模型名称 (如 deepseek-v3, gpt-4o-mini) 默认 gpt-4o-mini
EMBEDDING_BASE_URL OpenAI-compatible Embeddings API 根地址 未配置时 RAG 自动降级为关键词/本地知识检索
EMBEDDING_API_KEY Embedding API Key 仅服务端使用
EMBEDDING_MODEL 1536 维 Embedding 模型 未配置时不执行语义向量检索
NEXT_PUBLIC_SUPABASE_URL Supabase 项目地址 未配置时自动无感运行在内存 Demo 模式
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase 客户端匿名密钥 严格受 0002_rls_secure.sql 行级安全控制
TIKHUB_API_KEY TikHub 社交检索(小红书 / 抖音 / 微博 / 微信搜一搜) 未配置时社交证据如实显示为不可用
VOYAGE_GUEST_TTL_DAYS 访客工作区过期天数 默认 30,设为 0 关闭自动清理

文档索引


联系作者

使用中遇到问题、想提建议、或者想聊聊这个项目,欢迎直接加微信:

作者微信二维码

也可以在 GitHub Issues 里留言。微信个人二维码会定期更换,若扫码失效请先提 Issue。


开源协议

License: MIT

本项目基于 MIT License 开源。

Reviews (0)

No results found