
OpenClaw goplaces 技能实战Google Places API CLI 的安装、配置与查询命令全解【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclawOpenClaw 以「技能Skill」为单位扩展 Agent 的动手能力goplaces是其中对接 Google Places APINew的 CLI 技能一条命令即可完成地点文本搜索、详情与评论查询、地址解析并支持--json输出用于脚本化。本文基于仓库中的 goplaces 技能定义完整讲清该技能的元数据契约、依赖声明、安装与环境变量配置、全部常用命令及参数语义并结合 OpenClaw 源码说明技能如何被解析、检测与修复读完即可在自己的 OpenClaw 环境中直接启用该技能。一、goplaces 技能定位为 Agent 提供 Places 查询能力goplaces 是一个「现代版 Google Places API (New)」的命令行封装其设计原则是默认输出人类可读文本加--json切换为脚本友好的 JSON。技能描述来自 SKILL.md 的 frontmatter为Query Google Places for text search, place details, resolve, reviews, or scriptable JSON via goplaces.在 OpenClaw 的技能体系里每个技能就是一个目录加一个SKILL.md文件frontmatter 声明元数据正文给出安装方式、配置要求与常用命令。skills/goplaces/目录下的这份 SKILL.md 即遵循该约定覆盖四类典型操作文本搜索search按关键词搜索地点支持营业状态、评分、数量等过滤与地理偏置、分页地址/地点解析resolve把「Soho, London」这类自由文本解析为结构化地点地点详情details按place_id拉取详情可附带评论--reviews脚本化 JSON任意查询加--json供 Agent 或管道程序消费。二、技能元数据frontmatter 与 OpenClaw 依赖契约先看 SKILL.md 的完整 frontmatter它是 OpenClaw 加载、校验和修复该技能的唯一声明来源--- name: goplaces description: Query Google Places for text search, place details, resolve, reviews, or scriptable JSON via goplaces. homepage: https://github.com/steipete/goplaces metadata: openclaw: emoji: requires: bins: [goplaces] env: [GOOGLE_PLACES_API_KEY] primaryEnv: GOOGLE_PLACES_API_KEY install: - id: brew kind: brew formula: steipete/tap/goplaces bins: [goplaces] label: Install goplaces (brew) ---各字段的作用字段作用name/description技能标识与一句话能力描述用于技能索引与模型侧展示metadata.openclaw.requires.bins声明运行前置系统必须存在goplaces可执行文件metadata.openclaw.requires.env声明必须注入的环境变量GOOGLE_PLACES_API_KEYmetadata.openclaw.primaryEnv标记主凭据变量供配置引导与状态检测优先检查metadata.openclaw.install可执行的安装规格install spec此技能提供 Homebrew 方式安装steipete/tap/goplaces装完后校验goplaces二进制存在这套契约并非装饰OpenClaw 的 frontmatter 解析器会真正校验安装规格。从源码看frontmatter 解析模块 中的parseInstallSpec支持brew、node、go、uv、download五种安装方式并对 brew formula 做安全校验——公式名必须匹配BREW_FORMULA_PATTERN以字母数字开头仅允许 . _ / -等安全字符拒绝以-开头、包含\或..的输入。steipete/tap/goplaces正是通过该校验后才会进入技能状态报告中的可安装项。当技能缺失依赖时doctor 命令会基于同一份契约生成修复建议。仓库中的 doctor skills 测试 恰好以 goplaces 为样例构造了「缺少二进制 缺少环境变量」的场景断言 doctor 输出包含如下提示2 allowed skills are not usable in this environment (missing binaries, env vars, or config). - calendar, places Disable unused skills: openclaw doctor --fix Inspect details: openclaw skills check --agent id or openclaw skills info name --agent id也就是说若你在某台机器上装了 OpenClaw 但没装goplaces、也没设置GOOGLE_PLACES_API_KEY运行openclaw doctor会明确告诉你该技能不可用、缺什么并给出openclaw doctor --fix或openclaw skills info goplaces --agent id的排查入口。三、安装通过 Homebrew 安装 goplaces技能声明的安装方式是 Homebrew第三方 tapbrew install steipete/tap/goplaces安装成功后goplaces进入 PATH满足 frontmatter 中requires.bins: [goplaces]的前置条件。仓库测试 onboard-skills.test.ts 中同样以name: goplaces的技能条目验证了技能入库流程说明该技能与 OpenClaw 的技能发现/入库链路是完整对接的。在容器化部署场景中OpenClaw 也给出了针对 goplaces 的专门说明。Docker VM 运行时文档 列出了镜像内置的 CLI 工具其中goplaces for Google Places并说明对于goplaces这类下载的 release 二进制需要在容器内确认其位置验证命令为docker compose exec openclaw-gateway which goplaces如果which查不到通常意味着该版本镜像未包含此二进制需要确认镜像版本或按文档说明补充下载。四、配置两个环境变量goplaces 的配置只有两个变量环境变量必需性说明GOOGLE_PLACES_API_KEY必需Google Places API 凭据frontmatter 中同时声明于requires.env与primaryEnvGOOGLE_PLACES_BASE_URL可选覆盖 API 基础地址用于测试或经由代理转发请求建议把GOOGLE_PLACES_API_KEY配置在 OpenClaw 运行环境例如 systemd 单元、Docker 环境变量或 shell profile中保证 Agent 执行技能时进程能继承到该变量——否则技能状态会因missing.env被判定为不可用。GOOGLE_PLACES_BASE_URL则适合本地 mock 服务或企业代理场景不改代码即可把全部 Places 请求指到自定义端点。五、常用命令与参数详解以下命令全部继承自 SKILL.md 的「Common commands」小节是日常使用的主力命令集。1. 文本搜索searchgoplaces search coffee --open-now --min-rating 4 --limit 5参数语义coffee搜索关键词建议加引号防止 shell 分词--open-now只返回当前营业中的地点--min-rating 4最低评分过滤示例取 4 分及以上--limit 5限制返回条数。2. 地理偏置搜索biasgoplaces search pizza --lat 40.8 --lng -73.9 --radius-m 3000--lat/--lng搜索中心点坐标示例为纽约一带--radius-m 3000以米为单位的搜索半径示例为 3 公里。地理偏置让搜索围绕给定坐标展开适合「我在某经纬度附近找店」这类 Agent 场景。3. 分页page-tokengoplaces search pizza --page-token NEXT_PAGE_TOKENPlaces 搜索的分页不靠页码而靠 token第一次搜索的响应会带回下一页 token把它原样填入--page-token即可继续拉取。脚本化流程通常是「首查 → 记录 token → 循环翻页」。4. 地址解析resolvegoplaces resolve Soho, London --limit 5把自由文本地名解析为结构化地点列表--limit限制候选数量。适合从用户口语化输入中拿到place_id再交给details命令深入查询。5. 地点详情detailsgoplaces details place_id --reviewsplace_idPlaces API 返回的地点唯一标识可来自 search/resolve 结果--reviews附带该地点的评论信息。6. JSON 输出scriptablegoplaces search sushi --json加--json后输出结构化 JSON可直接被jq或 Agent 代码解析。这是技能描述中「scriptable JSON」承诺的落点人机输出双模式是 goplaces 的核心设计。六、输出与过滤的细节注意事项原文档「Notes」小节给出三条对实操很关键的行为说明必须留意禁用彩色输出--no-color参数或NO_COLOR环境变量均可关闭 ANSI 颜色。重定向到文件或管道时建议显式关闭避免转义码污染 JSON/文本处理。价格等级取值价格过滤使用0..4五档从 free免费到 very expensive非常昂贵。脚本中按档位传值即可。类型过滤只取第一个--type由于 Places API 一次只接受一个类型--type即使传多个实际也只发送第一个值。需要多类型搜索时应分多次调用而非依赖单次命令。七、源码视角goplaces 技能在 OpenClaw 中的生命周期把前面各节串起来goplaces 在 OpenClaw 内经历的生命周期是加载与解析技能 frontmatter 解析器 读取 SKILL.md提取name、description、metadata.openclaw含requires与install规格并对 brew formula 等安装字段做安全校验状态检测技能状态模块如 status.ts 定义的技能状态报告按requires检查二进制与环境变量是否齐备缺项会归入missing.bins/missing.env诊断与修复openclaw doctor走 doctor-skills 逻辑 的测试所覆盖的路径把不可用技能按字母序压缩列出并提示openclaw doctor --fix自动禁用或安装入库与调用技能通过 onboard-skills 流程 等链路进入工作区技能集供 Agent 在会话中调用。理解这条链路后排查 goplaces 不可用的思路就是逐层对照frontmatter 声明的goplaces二进制在不在 PATH、GOOGLE_PLACES_API_KEY有没有注入、安装规格能否被 doctor 识别三问即可定位绝大多数问题。八、小结与适用边界goplaces 技能 一个SKILL.md 一个外部 CLI 二进制元数据负责「声明依赖与安装方式」CLI 负责「执行 Places 查询」上手三步brew install steipete/tap/goplaces→ 注入GOOGLE_PLACES_API_KEY可选GOOGLE_PLACES_BASE_URL→ 用search / resolve / details三类命令干活脚本化场景统一加--json关键行为备忘颜色输出可用--no-color关闭、价格档位为 0..4、--type只生效第一个值、分页依赖--page-token适用前提命令语义以当前仓库 SKILL.md 的声明为准实际参数全集取决于所安装 goplaces 版本遇到差异以goplaces --help为准。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考