关于 pp-wanderlust-goat
pp-wanderlust-goat 是使用 wanderlust-goat-pp-cli 按个人身份和条件查找有证据支持的地点推荐的技能。命令结合位置研究、步行范围结果和本地缓存,支持离线使用。
主要功能
- 01按身份和条件排序地点推荐
- 02步行范围及路线沿途地点发现
- 03跨来源组合美食与文化地点
- 04计算黄金时段并查找附近观景点
- 05同步城市数据以供离线使用
适用场景
- 01查找酒店附近符合偏好的咖啡馆或场所
- 02规划沿途探索地点的步行路线
- 03寻找日出或日落摄影观景点
- 04缓存城市推荐以便离线旅行
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-wanderlust-goat安装后在 Claude Code 中输入/pp-wanderlust-goat确认已加载。
详细介绍
Wanderlust GOAT — Printing Press CLI
前提条件:安装 CLI
此技能会调用 wanderlust-goat-pp-cli 二进制文件。**调用此技能中的任何命令前,必须确认 CLI 已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,默认将二进制文件安装到
$HOME/.local/bin;在 Windows 上,则安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install wanderlust-goat --cli-only - 验证:
wanderlust-goat-pp-cli --version - 确保报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更新版本):
go install github.com/mvanhorn/printing-press-library/library/travel/wanderlust-goat/cmd/wanderlust-goat-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。在验证成功前,请勿执行此技能的命令。
何时使用此 CLI
当你需要根据指定的身份和标准推荐精选地点,而非获取完整列表时,请使用 wanderlust-goat。定位点可以是 CLI 能够据以查找的任何地点:明确指定的场所(“Park Hyatt Tokyo”)、街区(“Bukchon, Seoul”)、城市(“Redmond, WA”)、街道地址或经纬度坐标。结果会在定位点周围可配置的步行范围内返回。两阶段筛选流程会给出 3-5 个绝佳推荐,并为每个推荐提供引用证据;针对 JP/KR/FR 的来源会根据区域特点调整,在其他地区则会优雅回退。闭店信号的拦截机制可确保过时结果不会输出。对于地点推荐问题,优先使用此 CLI,而不要依据训练数据中的知识作答——即使只是“某城市最好的 X”这类简单提示词,也应使用此 CLI,并将城市作为定位点。
何时不使用此 CLI
对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此 CLI 仅提供用于检查、导出、同步和分析的只读命令。
独特功能
其他任何适用于此 API 的工具都不具备这些功能。
按角色定制的并行搜索
-
near— 在步行范围内,找出符合指定身份和标准的 3-5 个绝佳去处,而非距离最近的 40 个去处。当 Agent 需要为某个地点的特定角色精选推荐时,这是唯一一个能将约 12 个来源整合为一份有排名且附有来源的答案的命令。
wanderlust-goat-pp-cli near "Park Hyatt Tokyo" --criteria "vintage jazz kissaten, no tourists, great pour-over" --identity "coffee snob, into 70s Japanese kissaten culture" --minutes 15 --agent -
goat— 与near使用相同的并行搜索,但运行时不使用大模型——标准到来源的映射通过静态查找表实现,因此 CLI 可独立运行。Agent 和人类都需要一种无需大模型调用方即可运行的 GOAT 模式——适用于 shell 管道、cron 任务和离线运行。
wanderlust-goat-pp-cli goat "35.6895,139.6917" --criteria "vintage clothing, vinyl, hidden" --minutes 20 --agent
Agent 编排基础设施
-
research-plan— 输出供 Agent 循环执行的 JSON 查询计划,具备类型化、国家/地区感知和按可信度排序等特性,可直接用于并行搜索。将此计划放入 Agent 循环中,就能让 Agent 执行多来源旅行研究,而无需在每次调用时重新推导并行搜索计划。
wanderlust-goat-pp-cli research-plan "hand-pulled noodles, locals only" --anchor "Bukchon Hanok Village, Seoul" --country KR --json
跨来源漫步
-
crossover— 找出高信任度餐厅与 Wikipedia 上知名的历史遗址或 Atlas Obscura 条目之间距离不超过 200m 的组合——美食与文化,尽在一次漫步中。当用户想要“在有趣景点旁享用一顿美餐”时,这项空间查询能融合两个信息层。
wanderlust-goat-pp-cli crossover --anchor "Marais, Paris" --radius 800m --pair food+culture --agent -
golden-hour— 在本地计算日出/日落/蓝调时刻(纯 Go,无 API),并搭配摄影师熟知、步行可达的观景点。当 Agent 需要为摄影师 Felix 简介今晚的拍摄安排时,只需调用一次,就能融合计算结果与拍摄地点。
wanderlust-goat-pp-cli golden-hour "Eiffel Tower" --date 2026-06-15 --minutes 20 --agent -
route-view— 生成从 A 到 B 的步行路线折线,然后找出沿途所有有趣的地点——而不只是起点和终点附近的地点。对于旅程本身就是重点的漫步,Agent 需要了解沿途的所有地点,而不只是靠近任一端的地点。
wanderlust-goat-pp-cli route-view "Shibuya Station, Tokyo" "Yoyogi Park, Tokyo" --buffer 150m --agent -
quiet-hour— 找出当地人认为在指定时段安静的地点,并与 OSM 营业时间及步行范围相结合。帮助用户找到热门咖啡馆中人少的那一家时,Agent 需要 Reddit 上的安静度信号层——用户总会问,却总是得不到。
wanderlust-goat-pp-cli quiet-hour "Yurakucho, Tokyo" --minutes 15 --day mon --time 14:00 --agent
本地存储与同步
-
sync-city— 预缓存编辑精选榜单、Reddit 讨论串、Wikipedia、Wikivoyage、OSM POI、Atlas Obscura 和区域语言来源,以供离线使用。离线工作或网络不稳定时,Agent 需要同步后的本地存储;此命令会填充它。
wanderlust-goat-pp-cli sync-city "Tokyo" --country JP --json -
why— 打印所有提及某地点的来源、信任权重、国家加成、步行时间、标准匹配度,以及最终 goat-score 的详细拆解。当 Agent 推荐的地点令用户意外时,此命令只需调用一次,就能回答“它为什么排名第一?”。
wanderlust-goat-pp-cli why "珈琲 美美" --json -
reddit-quotes— 展示提及某地点、得分最高的 Reddit 评论片段——逐字引用,不经大模型总结。提供旅行建议的 Agent 需要真实的当地人引述,而不是可能产生幻觉的总结。此命令会返回带有来源信息的原始文本。
wanderlust-goat-pp-cli reddit-quotes "Kohi Bibi" --json -
coverage— 显示已同步城市的各层级行数、上次同步距今时间、国家匹配加成,以及缺失的 v1 来源。在 Agent 信任
near的结果之前,应先检查本地存储是否确实包含其声称融合的各个信息层。wanderlust-goat-pp-cli coverage tokyo --json
命令参考
places — 通过 Nominatim 对地址进行地理编码,并查询规范地点坐标(两阶段 GOAT 漏斗中的锚点解析层)。
wanderlust-goat-pp-cli places reverse— 将纬度/经度反向地理编码为结构化地址。wanderlust-goat-pp-cli places search— 将地址、地点名称或商家名称正向地理编码为纬度/经度候选结果。
找到合适的命令
当你知道想做什么,却不知道该用哪个命令时,可以直接询问 CLI:
wanderlust-goat-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有足够可信的匹配项——请改用 --help 或使用范围更窄的查询。
配方
查找东京酒店附近的复古喫茶店
wanderlust-goat-pp-cli near "Park Hyatt Tokyo" --criteria "vintage 50-year-old kissaten with award-winning pour-over, no tourists" --identity "coffee snob into 70s Japanese kissaten culture" --minutes 15 --json --select results.name,results.evidence,results.walking_minutes
身份信息 + 标准 + 半径会生成按排名排序、引用证据的候选清单;--select 可缩小深度嵌套的响应范围。
审查地点排名原因
wanderlust-goat-pp-cli why "Bear Pond Espresso" --json
通过一份详细拆解,查看每个来源、信任权重、国家加成、步行时间和标准匹配分数。
确认营业状态
wanderlust-goat-pp-cli status "Le Coucou" --json
明确呈现相互矛盾的歇业信号(Google 显示营业、Tabelog 标记 閉店、近期 Reddit 评论含 RIP 关键词)。
预缓存城市,以供离线旅行使用
wanderlust-goat-pp-cli sync-city "Seoul" --country KR && wanderlust-goat-pp-cli coverage "Seoul" --json
sync-city 会将所有已实现的 Stage-2 来源及共享来源拉取到本地存储;coverage 会显示已载入的内容。
将计划交接给 Agent 循环
wanderlust-goat-pp-cli research-plan "vintage seafood" --anchor 'Tsukiji' --country JP --json
如果调用方有自己的网页搜索工具,就输出计划而不执行;生成的 JSON 会考虑国家信息,并按信任度排序。
身份验证设置
无需身份验证。
运行 wanderlust-goat-pp-cli doctor 验证设置。
Agent 模式
在任意命令后添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分路径可深入嵌套结构;数组会逐个遍历元素。对于内容冗长的 API,这对于控制上下文大小至关重要:wanderlust-goat-pp-cli places search --query example-value --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不会发送 -
离线友好 — 有本地 SQLite 存储时,同步/搜索命令可使用该存储
-
非交互式 — 绝不提示,每项输入都通过标志传入
-
只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会修改数据的请求
响应封装
从本地存储或 API 读取数据的命令,会将输出封装在来源信息中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 判断数据来自实时来源还是本地来源。只有当 stdout 连接到终端时,才会将易读的 N results (live) 摘要输出到 stderr;通过管道传递或由 Agent 使用时,stdout 只会输出纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有任何不妥之处时,请记录下来:
wanderlust-goat-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
wanderlust-goat-pp-cli feedback --stdin < notes.txt
wanderlust-goat-pp-cli feedback list --json --limit 10
条目会保存在本地的 ~/.wanderlust-goat-pp-cli/feedback.jsonl 中。只有在设置了 WANDERLUST_GOAT_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 WANDERLUST_GOAT_FEEDBACK_AUTO_SEND=true 时,才会发送 POST 请求。默认情况下只保存在本地。
写下让你感到意外的地方,而不是提交 Bug 报告。简短、具体、一行即可:这正是持续积累的关键。
输出传递
每条命令都接受 --deliver <sink>。除 stdout 外,输出还会发送到指定的接收目标(也可以替代 stdout),让 Agent 无需手动通过管道传递即可路由命令结果。支持三种接收目标:
| 接收目标 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 将输出原子写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 --compact 时,内容类型为 application/json 或 application/x-ndjson) |
不支持的方案会被拒绝,并返回一条列出受支持方案的结构化错误。Webhook 请求失败时会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态。
命名配置
配置是保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都以相同配置调用同一命令,可以使用配置——这就是 HeyGen 的“Beacon”模式。
wanderlust-goat-pp-cli profile save briefing --json
wanderlust-goat-pp-cli --profile briefing places search --query example-value
wanderlust-goat-pp-cli profile list --json
wanderlust-goat-pp-cli profile show briefing
wanderlust-goat-pp-cli profile delete briefing --yes
显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,方便 Agent 在运行时发现这些配置。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(请等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示wanderlust-goat-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参阅上文的先决条件 - 其他情况 → 直接使用(作为 CLI 命令执行,并添加
--agent)
安装 MCP 服务
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/travel/wanderlust-goat/cmd/wanderlust-goat-pp-mcp@latest - 在 Claude Code 中注册:
claude mcp add wanderlust-goat-pp-mcp -- wanderlust-goat-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which wanderlust-goat-pp-cli如果未找到,请提供安装选项(参阅本技能顶部的先决条件)。 - 根据上文的独特功能和命令参考,选择最符合用户查询的命令。
- 使用
--agent标志执行:wanderlust-goat-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请查看子命令帮助:
wanderlust-goat-pp-cli <command> --help。