Install
openclaw skills install @dengjiawei1226/trip-planner-0to1从 0 到 1 制作一份完整的自由行出行攻略,覆盖需求采集、多源资源调研(小红书 MCP + 地图 + Web 搜索)、方案决策、Markdown 行程书产出、交互式 Todo 网页(本地存储 + 可选云端同步)、一键部署到静态托管的端到端工作流。适用于东南亚海岛、日本、欧洲自驾、美洲公路旅行等任何自由行场景。触发词:出行攻略、行程规划、自由行、做攻略、旅游计划、travel plan、itinerary、行程单、Todo 清单、旅行规划、路线规划、trip planning、旅行攻略。
openclaw skills install @dengjiawei1226/trip-planner-0to1把一次出行攻略从「一张机票 + 模糊的目的地」做到「结构化行程书 + 可勾选的 Todo 网页 + 跨设备同步」,全流程标准化、可复用。
Phase 1 需求澄清 → 时间/人数/预算/硬需求/风格偏好
Phase 2 资源调研 → 小红书 MCP + 地图 + Web 搜索
Phase 3 方案决策 → 住宿/交通/一日游/餐厅 四大决策
Phase 4 行程书草稿 → Markdown 逐日行程 + Plan B
Phase 5 Todo 清单 → 紧急/次紧急/已完成 三段 + 装备
Phase 6 交互式网页 → index.html(Leaflet 地图 + Todo + 进度条)
Phase 7 数据同步 → localStorage 兜底 + 可选云端同步
Phase 8 部署 & 预览 → 本地预览 / 静态托管 / 公网分享
不要自己脑补,缺信息就直接问。
<destination>-<user1>-<user2>,全小写用 - 分隔xiaohongshu server)推荐作为第一信源,中文攻略帖的"避坑信息"密度远高于 Google。
安装(开源版 xpzouying/xiaohongshu-mcp,GitHub 13k+ star):
# 方式 A:Docker(最简单)
docker pull xpzouying/xiaohongshu-mcp
wget https://raw.githubusercontent.com/xpzouying/xiaohongshu-mcp/main/docker/docker-compose.yml
docker compose up -d
# 默认暴露 http://localhost:18060/mcp
# 方式 B:二进制
# macOS Apple Silicon 下载:
# https://github.com/xpzouying/xiaohongshu-mcp/releases → xiaohongshu-login-darwin-arm64
# 先运行 login 工具扫码登录,再运行主程序
./xiaohongshu-login-darwin-arm64
./xiaohongshu-mcp-darwin-arm64
MCP 配置(写入 AI 客户端的 mcp.json / settings):
{
"mcpServers": {
"xiaohongshu": {
"url": "http://localhost:18060/mcp",
"description": "小红书内容检索与发布"
}
}
}
常用工具:
| 工具 | 用途 |
|---|---|
search_feeds | 搜"XX目的地攻略"、"XX踩坑"等长尾词 |
get_feed_detail | 拿到笔记正文 + 评论区(评论才是金矿!) |
list_feeds | 首页刷热门帖 |
user_profile | 深挖专业博主的历史笔记 |
搜索关键词模板:
<目的地> 避坑<目的地> 最新攻略 <年份><目的地> <月份> 天气<目的地> 防宰<目的地> 物价<景点名> 值不值得去陷阱识别:90% "精品一日游"帖子是商业推广,看评论区 + 发帖时间筛真实内容。详细筛选标准见 references/research-prompts.md。
查实际行车距离和时间,不要信小红书文字描述。可选工具:
| 工具 | 特点 |
|---|---|
Google Maps API(google-maps-api skill) | 全球覆盖,数据权威,需 API Key |
| 高德 / 百度 Maps API | 国内数据更准 |
| OpenStreetMap Nominatim | 免费无 Key,但覆盖与准确性一般 |
gmaps.to / maps.app.goo.gl 手工比对 | 快速验证两点时间 |
经验:默认路线可能非最快,手工对比至少 2 条备选路线。山区/岛屿尤其明显(海岸线绕远反而比内陆快)。
详细提示词模板见 references/research-prompts.md。
按优先级处理,早定早安心:
是否有酒店会籍?
├─ 是 → IHG/Marriott/Hilton/GHA 官网直订(升房 + 早餐 + 酒廊)
└─ 否 → Agoda + Booking + Trip.com + Kayak 四方比价
└─ 含早?免费停车?步行到景点?取消政策?
产出:<目的地>酒店比价_<日期>.md 对比表格,金额同时标本币 + CNY。
self-drive, meet at jump-off vs with hotel pickup —— 能省不少钱文件名:<目的地><出行方式>行程_v<N>_<日期>.md
骨架参考:references/templates/itinerary-template.md
关键段落:
Todo 分三段(顺序有讲究):
紧急 (urgent) → 需要 1-3 天内处理的(订酒店/锁名额/买行李额)
次紧急 (important) → 出发前搞定即可(下载保单/买防晒/买转换插头)
已完成 (done) → 已预订/已购买的,作为"备忘证据"不删除
每条 Todo 必须有:
买当地 SIM 卡<small>:具体去哪买、多少钱、对应哪条行李data-id 唯一(u0-uN / i0-iN / d0-dN 分段命名)装备清单 / 行李清单单独一个 <ul id="todoPack">,便于出发前最后核对。
模板:references/templates/index-skeleton.html
核心能力:
N / 总数、百分比、渐变条flying 动画 → DocumentFragment 重排)已保存 / 已同步到云端 / 离线关键 CSS(Todo 沉底动画):
.todo-item {
transition: background .2s, opacity .3s, transform .3s;
/* ⚠️ 不要用 transition: all,会让 hover 卡顿 */
}
.todo-item.flying { opacity: 0.35; transform: scale(0.98); }
关键 JS(勾选沉底):
todoItems.forEach(item => {
item.addEventListener('click', () => {
const willBeDone = !item.classList.contains('done');
item.classList.toggle('done');
saveTodos();
const ul = item.parentElement;
if (willBeDone) {
item.classList.add('flying');
setTimeout(() => { ul.appendChild(item); item.classList.remove('flying'); }, 220);
} else {
const firstDone = ul.querySelector('.todo-item.done');
item.classList.add('flying');
setTimeout(() => {
if (firstDone && firstDone !== item) ul.insertBefore(item, firstDone);
else ul.appendChild(item);
item.classList.remove('flying');
}, 180);
}
});
});
完整可拷贝代码:references/templates/todo-sync.js。
默认策略(0 服务器成本):localStorage + URL 分享,够 95% 场景用。
跨设备同步可选方案(按集成难度从易到难):
gist 权限)references/templates/todo-sync.js 的 Gist 变体GET /b/<binId> + PUT /b/<binId>references/templates/todo-sync.jsreferences/self-host-sync.md)references/cloudflare-workers-sync.md选型建议:
| 场景 | 推荐 |
|---|---|
| 一个人出行 | A(localStorage) |
| 两人共享,不想折腾 | C(JSONBin.io) |
| 已有 GitHub 账号 | B(Gist) |
| 有 Cloudflare 账号 + 想免运维 | E(Workers KV) |
| 有自己的 VPS | D(自建) |
# 原生 Python 临时 server
python3 -m http.server 8000
# 或 Node
npx serve .
| 平台 | 特点 | 自定义域名 |
|---|---|---|
| Cloudflare Pages | 免费无限流量,CI/CD 自动部署 | ✅ |
| Vercel | Next.js 友好,预览 URL 丰富 | ✅ |
| Netlify | 表单 / 函数开箱即用 | ✅ |
| GitHub Pages | 公开仓库免费 | ✅ |
| 自己 VPS + nginx | 完全控制 | ✅ |
?v=20260501,避免用户看到旧版本完整一份攻略应包含:
<slug>行程_v<N>.md 行程书(必须)index.html 指挥页(必须)icons/ SVG 图标集(可选,Lucide / Heroicons)transition: all —— 改成显式 transition: background, opacity, transform,否则 hover 卡顿fragment.appendChild 避免多次 reflowreferences/workflow-checklist.md —— 8 个 Phase 的 DoD 检查清单references/research-prompts.md —— 小红书 / WebSearch 提示词模板库references/templates/itinerary-template.md —— 行程 Markdown 骨架references/templates/index-skeleton.html —— 交互式网页骨架references/templates/todo-sync.js —— Todo 同步完整 JS(含 localStorage / Gist / JSONBin 三种后端)references/cloudflare-workers-sync.md —— Cloudflare Workers KV 同步服务示例references/self-host-sync.md —— 自建 40 行同步服务示例Built 2026-04-24. 沉淀自一次完整的东南亚自由行攻略制作实践。