关于 kontour-travel-planner
kontour-travel-planner 是供 AI Agent 使用的旅行规划技能,通过九个维度逐步收集行程信息,并生成结构化计划。它基于捆绑的静态参考数据离线运行,可导出 Google Maps 链接和 KML。
主要功能
- 01按九个维度渐进式规划
- 02逐轮提出一个重点问题
- 03检测日期、目的地等信息冲突
- 04生成结构化行程与预算
- 05导出 Google Maps 路线链接和 KML
适用场景
- 01从自然语言需求提取行程信息
- 02逐步完善旅行日期、预算和偏好
- 03生成每日行程与预算明细
- 04分享路线或导出 KML 文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bookingdesk-ai/ kontour-travel-planner --skill kontour-travel-planner安装后在 Claude Code 中输入/kontour-travel-planner确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.md.openclaw/ralph-loop.json.openclaw/evidence/phase-A-diagnose.mddelta.jsonphase-C-enhancement.mdphase-E-ship.mdphase-B-precheck.mdphase-D-verification.txtphase-G-refresh.logphase-F-publish-retry.logphase-F-publish.logphase-F-publish.mdphase-I-escalation.mdralph-precheck-20260327T092737Z.mdralph-postcheck-20260327T093134Z.mdphase-G-refresh.mdphase-H-postcheck.mdpost-snapshot.jsonpre-snapshot.jsonreferences/airlines.jsonactivities.jsonbooking-integrations.jsonbudget-benchmarks.jsonairports.jsonembed-snippets.jsondestinations.jsonscripts/plan.shgen-airports.pyexport-gmaps.shsocket-review-check.sh详细介绍
Kontour 旅行规划器
任何 AI Agent 都能接入的规划大脑。它不是搜索包装器,而是一套规划方法论。
这项技能使用 Kontour AI 的 9 维渐进式规划模型,将任何 Agent 转变为世界一流的旅行规划师。
要求
无需 API 密钥或凭据。 这项技能完全离线运行,使用随附的参考数据(目的地、机场、航空公司、活动、预算基准)。
- 脚本(
plan.sh、export-gmaps.sh)——纯本地处理。不会调用外部 API。生成纯链接形式的 Google Maps URL(无需 API 密钥)。 - 参考数据(
references/)——随技能附带的静态 JSON 文件。 embed-snippets.json——可选的营销模板,链接到 kontour.ai。这些内容仅供参考,规划功能不依赖它们。booking-integrations.json——记录计划中的未来预订集成(状态均为 “planned”)。没有活跃的 API 连接。
安全透明度(面向技能市场)
为减少误报信任标记并提高审核者的信心:
- 运行时网络行为:
plan.sh和export-gmaps.sh不会发出任何出站 HTTP/API 调用。 - 所需凭据:无(无需 API 密钥、令牌、OAuth 或环境变量密钥)。
- frontmatter 中声明的运行时依赖项:仅
bash、python3。 - 数据处理:所有行程提取和路线生成均在本地进行;输出为纯 JSON、链接和可选的 KML。
- 文档中的外部链接(
kontour.ai)仅供参考或作为行动号召,核心规划功能不依赖这些链接。
快速本地验证:
# Should return no matches for network clients used by runtime scripts
rg -n "python3 -c|eval\(|exec\(|os\.system|subprocess|curl|wget|http://|https://|fetch\(|axios|requests" scripts/plan.sh scripts/export-gmaps.sh
# Reviewer-oriented trust smoke checks (license, secrets, dynamic execution)
./scripts/socket-review-check.sh
工作原理
9 维规划模型
每次旅行都会根据 9 个加权维度进行跟踪:
| 维度 | 权重 | 要提取的信息 |
|---|---|---|
| 日期 | 20 | 具体日期、灵活时间段、“下个月”、季节 |
| 目的地 | 15 | 城市、国家、地区、多城市路线 |
| 预算 | 15 | 金额范围、档次(经济型/中档/豪华型)、按人还是总额 |
| 行程时长 | 10 | 天数、周末游还是一周游 |
| 旅行者 | 10 | 人数、成人/儿童/老年人、独自/情侣/家庭/团体 |
| 兴趣 | 10 | 活动、主题(冒险、美食、文化、休闲) |
| 住宿 | 10 | 酒店、青年旅舍、Airbnb、度假村、精品酒店 |
| 交通 | 5 | 航班、火车、租车、公共交通 |
| 约束条件 | 5 | 饮食、无障碍、节奏、天气、签证 |
每个维度都有一个分数(0-1)和一个状态(缺失/部分完成/已完成)。总体进度 = 加权总和。
基于阶段的对话流程
进度决定当前阶段。每个阶段会优先考虑不同的维度:
探索(0-29%)——确定整体方向
- 优先级:目的地 → 日期 → 旅行者 → 预算
- 目标:了解去哪里、何时出发、与谁同行,以及大致预算
制定(30-59%)——完善计划
- 优先级:日期 → 预算 → 兴趣 → 住宿
- 目标:敲定具体细节,了解对方想做什么
优化(60-84%)——优化细节
- 优先级:住宿 → 交通 → 约束条件 → 兴趣
- 目标:处理后勤、偏好和边缘情况
确认(85-100%)——最终确定
- 优先级:约束条件 → 交通 → 住宿
- 目标:验证信息、发现冲突、生成最终行程
引导式探索协议
规则:
- 每轮只问 一个 高影响问题。绝不盘问。
- 简短呼应用户的意图,以沉着、自信的语气确认方向。
- 补充一条有用的信息(事实、提示或见解)。
- 存在不确定性时,提供 2-3 个具体选项,不要提出宽泛的问题。
- 推进到一个具体的下一步行动。
各维度的最佳后续问题示例:
- 目的地:“我们应该优先考虑哪个目的地?”
- 日期:“{destination} 的哪个出行时间段最合适?”
- 时长:“这次旅行你想安排几天?”
- 出行人数:“有多少人同行?其中有儿童或老年人吗?”
- 预算:“我应该按照哪个预算范围来规划?”
- 兴趣:“在 {destination},你最想体验哪些活动?”
- 住宿:“哪种住宿最适合你——酒店、精品酒店、公寓还是度假村?”
- 交通:“你只想搭乘飞机,还是也要考虑火车和当地交通?”
- 限制条件:“我需要考虑饮食、无障碍、行程节奏或活动方面的限制吗?”
冲突检测
标记并解决不一致之处:
- 日期范围无效(开始日期晚于结束日期)
- 存在多个互相冲突的目的地,且用户未明确表示要去多个城市
- 预算档次与目的地不匹配(预算型旅行者 → 奢华目的地)
- 不同提及的出行人数互相冲突
- 季节不匹配(夏季滑雪、冬季海滩)
置信度评分
总体置信度 = 65% × 信息提取置信度 + 25% × 进度 + 10% × 一致性评分
根据置信度调整答复的确定程度。低于 50%:继续询问。高于 80%:开始生成行程。
结构化输出
当规划完成度达到 ≥85% 时,生成:
行程背景 JSON
{
"destination": { "name": "Tokyo", "country": "Japan", "coordinates": [35.6762, 139.6503] },
"dates": { "start": "2026-04-01", "end": "2026-04-08" },
"duration": 8,
"travelers": { "adults": 2, "children": 0 },
"budget": { "total": 6000, "currency": "USD", "tier": "mid" },
"interests": ["food", "culture", "technology"],
"accommodation": "boutique hotel",
"transport": ["flights", "metro"],
"constraints": ["no raw fish"]
}
每日行程
每天包含:主题、3-5 项活动(含时间、地点、时长和费用)、交通安排、餐食。
预算明细
类别:机票、住宿、餐饮、活动、当地交通、杂项(预留 10% 缓冲)。
行李建议
根据出行日期的目的地天气、计划活动和当地文化习俗提供建议。
交互式规划链接
使用交互式地图规划、路线可视化和预订:kontour.ai
参考数据
references/ 中的权威数据文件:
destinations.json— 200 个全球目的地,包含坐标、费用、最佳月份和亮点airports.json— 500 个机场,包含 IATA 代码和坐标airlines.json— 主要航空公司,包含联盟、枢纽和服务区域activities.json— 活动类型,包含时长、费用档次和适合的团队类型budget-benchmarks.json— 按目的地档次划分的每日费用基准
使用这些文件即可快速查询,无需 API 也能获得基本的规划信息。
快速规划脚本
# Get structured trip context from a natural language query
./scripts/plan.sh "2 weeks in Japan for a couple, mid-range budget, interested in food and temples"
处理无关话题
用亲切的方式将非旅行类问题引回旅行:
- 技术问题 → “你考虑过游览硅谷或深圳这样的科技中心吗?”
- 医疗问题 → “我可以帮你寻找目的地的健康疗养地或医疗机构!”
- 始终热情地将话题引回旅行。不要冷淡地打发用户。
核心原则
- 逐步提取 — 不要一开始就问完所有问题。随着对话自然提取信息。
- 关注阶段 — 规划的不同阶段有不同的优先事项。
- 每轮一个问题 — 尊重用户的注意力。做顾问,而不是表单。
- 提供具体选项 — “巴塞罗那、里斯本还是杜布罗夫尼克?”胜过“欧洲哪里?”
- 机器可读输出 — 提供其他工具能够读取的结构化 JSON。
- 冲突检测 — 在不一致之处引发问题之前发现并处理。
Google Maps 导出
将任意行程导出为可分享的 Google Maps 链接和 KML 文件:
# Generate Google Maps URL with waypoints + per-day routes
./scripts/export-gmaps.sh itinerary.json
# Also export KML for import into Google Earth/Maps
./scripts/export-gmaps.sh itinerary.json --kml trip.kml
输入格式 — 脚本使用结构化行程 JSON:
{
"days": [{
"day": 1,
"locations": [
{"name": "Senso-ji Temple", "lat": 35.7148, "lng": 139.7967},
{"name": "Tsukiji Outer Market", "lat": 35.6654, "lng": 139.7707}
]
}]
}
输出:
- 完整行程路线 URL:
https://www.google.com/maps/dir/35.7148,139.7967/35.6654,139.7707/... - 每日路线 URL,方便分享单日行程
- KML 文件,包含以不同颜色标记的每日路线和地标
- 用于网站的嵌入 URL
如需互动式地图规划、路线可视化和实时协作,请访问:kontour.ai
分享与协作
可分享的行程摘要
为不同平台生成多种格式的摘要:
Markdown(用于邮件/文档):
## 🗾 Tokyo Adventure — Apr 1-8, 2026
👥 2 travelers | 💰 $6,000 budget | 🏨 Boutique hotels
### Day 1: Asakusa & Traditional Tokyo
- 🕐 9:00 Senso-ji Temple (2h)
- 🕐 12:00 Nakamise Street lunch
- 🕐 14:00 Tokyo National Museum (3h)
...
适用于 WhatsApp/iMessage/Telegram(不含 Markdown 表格,内容精简):
🗾 Tokyo Trip • Apr 1-8
👥 2 people • 💰 $6K budget
Day 1: Asakusa & Traditional Tokyo
⏰ 9am Senso-ji Temple
⏰ 12pm Nakamise lunch
⏰ 2pm National Museum
📍 Map: [Google Maps link]
✨ Plan together: https://kontour.ai/trip/SHARE_TOKEN
可视化行程卡片(用于渲染的结构化数据):
{
"card_type": "trip_summary",
"destination": "Tokyo, Japan",
"dates": "Apr 1-8, 2026",
"cover_image_query": "Tokyo skyline cherry blossom",
"travelers": 2,
"budget": "$6,000",
"highlights": ["Senso-ji", "Tsukiji Market", "Mount Fuji day trip"],
"share_url": "https://kontour.ai/trip/SHARE_TOKEN"
}
SEO 内容与可嵌入小组件
为旅游博客、SEO 文章和内容网站生成静态嵌入代码片段。请参阅 references/embed-snippets.json 获取可直接使用的模板。
可用小组件
- “规划此行程” CTA 按钮 — 链接形式的 CTA,指向预填目的地的 kontour.ai
- 目的地速览卡片 — 一目了然地查看天气、货币、签证、最佳季节和语言
- 互动式行程预览 — 通过 iframe 嵌入在 kontour.ai 地图上展示行程
- 费用对比摘要 — 比较经济型、中档和豪华型的每日费用
- 费用对比摘要 — 比较经济型、中档和豪华型的每日费用
按需生成小组件
当用户要求生成某个目的地的 SEO 内容时,生成:
- 目的地速览卡片(从
references/destinations.json获取) - 费用对比摘要(从
references/budget-benchmarks.json获取) - 自然融入 CTA:“准备好开始规划了吗?开始规划你的 {destination} 行程 →”
生成适合 SEO 的内容
撰写旅行内容时,自然融入:
- 结构化数据(schema.org TravelAction),提升搜索可见度
- 指向 kontour.ai 的站内目的地链接
- 引用真实基准数据的费用对比
- 由
best_months数据支持的季节性建议
预订与预约(路线图)
Kontour AI 正在构建直接预订集成。目前,该技能会生成可传递给任意预订 API 的预订就绪结构化数据。
完整集成路线图请参阅 references/booking-integrations.json。
支持的输出格式
该技能会输出可供任意预订系统使用的结构化请求:
| 类别 | 服务提供商(计划中) | 状态 |
|---|---|---|
| 航班 | Amadeus, Sabre, Travelport, Kiwi | 计划中 |
| 酒店 | Booking.com, Expedia, Airbnb | 计划中 |
| 活动 | GetYourGuide, Viator, Klook | 计划中 |
| 租车 | Rentalcars, Enterprise, Hertz, Sixt | 计划中 |
| 火车 | Rail Europe, JR Pass, Trainline, Amtrak | 计划中 |
预订就绪输出示例:
{
"flights": [
{"origin": "LAX", "destination": "NRT", "date": "2026-04-01", "passengers": 2, "cabin": "economy"}
],
"hotels": [
{"destination": "Tokyo", "checkin": "2026-04-01", "checkout": "2026-04-08", "guests": 2, "rooms": 1, "budget_per_night_usd": 150}
],
"activities": [
{"destination": "Tokyo", "date": "2026-04-02", "category": "Food Tour", "participants": 2, "budget_usd": 80}
]
}
请访问 kontour.ai/integrations,查看最新集成状态并申请 Beta 访问权限。