☰
养虾也得有“料”:手把手教你用 OpenClaw Skills 投喂腾讯地图 JSAPI,让虾玩转地图
2026/10/7 7:46:28 网站建设 项目流程

1. 为什么你的 OpenClaw 需要一份腾讯地图 JSAPI 技能包

OpenClaw 这类智能体框架最迷人的地方,是它能把「一句话需求」变成「可运行产物」。但默认状态下,它并不知道腾讯地图 JSAPI 的坐标系怎么传、安全密钥往哪塞、TMap全局对象什么时候才挂载完成。你让它写地图代码,它大概率会给你一段看起来对、跑起来白屏的 HTML。

这就是 Skills 机制存在的意义。Skill 本质是一份写给模型看的「操作手册 + 代码模板 + 校验规则」,把腾讯地图 JSAPI 的调用规范、鉴权方式、常见坑点提前喂给智能体。投喂完成后,你说「搜索亚洲金融大厦周边美食」,它就能直接吐出带点位标注的网页链接;你说「把这份轨迹 JSON 可视化」,它能解析数据并渲染出可缩放的轨迹图。

适合谁看这篇:已经在用 OpenClaw 或 WorkBuddy、想让智能体具备地图能力的开发者;手里有腾讯地图 JSAPI Key、但不知道怎么让 AI 正确调用的同学;以及被「地图白屏」「坐标偏移」「鉴权失败」折磨过的前端。

我试过的完整链路是:装 Skill → 填 Key 与安全密钥 → 发一条「查询地点返回坐标」的指令 → 看返回结果里有没有正确的经纬度。下面把每一步拆开讲,配置片段可以直接复制。

2. 前置准备:TaoToken 接入与腾讯地图 Key 申请

2.1 为什么这里要提 TaoToken

OpenClaw 本身是框架,真正驱动 Skill 理解指令、生成代码的是背后的大模型。如果你用官方直连,额度和网络稳定性经常卡脖子;用 TaoToken 做统一接入层,可以把模型调用收敛到一个 Base URL 上,切换模型只改一个 Model ID,不用动 Skill 配置。对需要反复调试地图代码的场景来说,省下的时间很可观。

TaoToken 的接入信息如下,先记下来,第 3 节会写进配置文件:

  • 官网地址:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
  • API 端点:https://taotoken.net/api
  • 模型对话入口:https://taotoken.net/api/chat
  • Coding Plan(长期编码/Agent 场景):https://taotoken.net/coding-plan
  • 控制台:https://taotoken.net/console
  • API Keys 管理:https://taotoken.net/api-keys
  • 接入文档:https://taotoken.net/doc
  • Claude Code 接入:https://taotoken.net/claude-code-anthropic

2.2 腾讯地图 JSAPI Key 与安全密钥

打开腾讯位置服务控制台,创建应用后你会拿到两样东西:Key和安全密钥(Secret Key)。JSAPI GL 版本从 1.0 开始强制要求安全密钥,缺了它地图会直接报INVALID_USER_SCODE或鉴权失败。

安全密钥的填写位置很关键,它必须在加载 JSAPI 之前挂到window上:

<script> window._TMapSecurityConfig = { secretKey: "你的安全密钥" }; </script> <script src="https://map.qq.com/api/gljs?v=1.exp&key=你的KEY"></script>

注意顺序:先配secretKey,再引 JSAPI。反过来写,地图初始化时读不到密钥,一样白屏。

2.3 安装腾讯地图 Skills

WorkBuddy 走官方插件市场直接搜「腾讯地图」安装即可。OpenClaw 这边 ClawHub 限流比较严重,建议直接从 GitHub 拉技能包:

  • 通用 LBS 技能:TencentLBS/TencentMap_lbs_skills
  • JSAPI 专项技能:TencentLBS/TencentMap_jsapi_skills

克隆到 OpenClaw 的 skills 目录后重启服务,用openclaw skills list确认「腾讯地图」出现在已加载列表里。这一步没成功,后面发指令是不会触发地图能力的。

3. 可复制配置:settings.json 与 Skill 参数填写

3.1 OpenClaw 的模型接入配置

OpenClaw 的配置文件通常在~/.openclaw/settings.json。把模型指向 TaoToken,同时把腾讯地图 Skill 需要的环境变量挂上:

{ "model": { "provider": "openai-compatible", "baseURL": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "model": "claude-sonnet-4-5" }, "skills": { "tencent-map-jsapi": { "enabled": true, "env": { "TENCENT_MAP_KEY": "你的JSAPI_KEY", "TENCENT_MAP_SECRET_KEY": "你的安全密钥" } } } }

三个字段必须齐全:Base URL指向https://taotoken.net/api,Key填 TaoToken 的 API Key,Model ID填你实际要用的模型名。少任何一个,Skill 调用时会报401或model not found。

3.2 Skill 内部的模板参数

腾讯地图 JSAPI Skill 一般会带一个config.toml或skill.yaml,里面定义了生成 HTML 时的模板变量。你需要确认这两项:

[map] jsapi_version = "1.exp" security_mode = "secret_key" default_center = "116.397,39.908" default_zoom = 12

security_mode设成secret_key才会在生成的代码里注入_TMapSecurityConfig。如果设成none,生成的地图在 GL 版本下会鉴权失败。

3.3 如果你用 Cline MCP 或 Codex

Cline 的 MCP 配置里,把腾讯地图 Skill 作为一个 tool server 挂上,Base URL 同样指向 TaoToken。Codex 用户则在auth.json里配置:

{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken密钥", "model": "claude-sonnet-4-5" }

三件套(Base URL + Key + Model ID)在任何一种客户端里都不能缺,这是接入类问题最高频的翻车点。

4. 验证请求:从「查询地点」到「返回坐标」

4.1 发一条最小验证指令

配置完成后,在 OpenClaw 对话框里发:

用腾讯地图 JSAPI 查询「亚洲金融大厦」的坐标,返回经纬度和一个可点击的地图链接。

一个正常工作的 Skill 会返回类似结构:

{ "name": "亚洲金融大厦", "location": { "lat": 39.9938, "lng": 116.3876 }, "map_url": "https://map.qq.com/..." }

看到lat和lng都有具体数值,说明「指令 → Skill → JSAPI → 返回坐标」这条链路是通的。

4.2 生成一个可交互的地图页面

进一步验证渲染能力,发:

生成一个 HTML 页面,在腾讯地图上标注亚洲金融大厦,中心点设为该坐标,缩放级别 15。

Skill 会吐出一段完整 HTML。把它存成map.html,用浏览器打开。如果地图正常显示、标注点落在正确位置,说明 JSAPI 的鉴权和渲染都没问题。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> window._TMapSecurityConfig = { secretKey: "你的安全密钥" }; </script> <script src="https://map.qq.com/api/gljs?v=1.exp&key=你的KEY"></script> </head> <body> <div id="map" style="width:100%;height:500px;"></div> <script> const center = new TMap.LatLng(39.9938, 116.3876); const map = new TMap.Map(document.getElementById("map"), { center: center, zoom: 15 }); new TMap.MultiMarker({ map: map, geometries: [{ position: center }] }); </script> </body> </html>

4.3 验证周边搜索与轨迹可视化

坐标验证通过后,再试两个进阶场景。周边搜索:

搜索亚洲金融大厦周边美食,返回网页链接。

轨迹可视化:

帮我在地图上可视化这份轨迹数据 https://mapapi.qq.com/web/claw/trail.json。

轨迹场景会考验 Skill 对 GeoJSON 的解析能力。如果返回的链接打开后能看到完整轨迹线并支持缩放,说明数据可视化这条路径也打通了。

5. 常见报错排查:401、local proxy failed 与 reading choices

5.1 401 Unauthorized

最常见。九成是 TaoToken 的 API Key 没填对,或者填到了腾讯地图 Key 的位置。检查settings.json里apiKey字段是不是sk-开头,以及有没有多余空格。如果 Key 正确仍报 401,去控制台确认额度是否耗尽。

5.2 local proxy failed

这个报错通常出现在 OpenClaw 启动阶段,说明本地代理层没起来。先确认 OpenClaw 服务进程还在,再检查baseURL有没有写成https://taotoken.net/api/(末尾多斜杠有时会导致路径拼接异常)。改成不带尾斜杠的https://taotoken.net/api再重启。

5.3 reading choices 相关报错

cannot read property 'choices' of undefined一般意味着模型返回体不是标准 OpenAI 格式。原因可能是 Model ID 填错,或者用了一个不支持 chat completions 的端点。把 Model ID 换成文档里列出的可用模型,端点确认为https://taotoken.net/api/chat。

5.4 地图白屏 / INVALID_USER_SCODE

这不是模型问题,是 JSAPI 鉴权问题。按顺序排查:安全密钥是否在 JSAPI 之前挂载;Key 是否开启了 JSAPI GL 权限;域名白名单是否包含你本地调试的localhost。三项都对还白屏,打开浏览器控制台看有没有TMap is not defined,那说明 JSAPI 脚本根本没加载成功。

5.5 OAuth 相关报错

如果你用 Claude Code 接入,报 OAuth 错误通常是认证方式没选对。Claude Code 走的是https://taotoken.net/claude-code-anthropic这个接入点,配置时确认用的是 Anthropic 兼容模式,而不是 OpenAI 兼容模式。两种模式的请求头不一样,混用必报错。

6. 把地图能力固化进你的工作流

Skill 装好只是第一步,真正省时间的是把它固化进日常流程。我的做法是:在 OpenClaw 里建一个「地图任务」预设,把常用的三条指令模板存进去——周边搜索、路线规划、轨迹可视化。每次要用直接调模板,不用重新描述需求。

另一个技巧是让 Skill 生成的 HTML 统一输出到一个固定目录,比如~/openclaw-output/maps/,文件名带上时间戳。这样历史生成的地图页面可以直接翻出来复用,不用每次重新生成。

如果你需要长期跑地图相关的 Agent 任务,建议走 Coding Plan,额度和并发比按次调用更划算。配置入口在 https://taotoken.net/coding-plan,接入方式和普通 API 一致,只是计费模型不同。

最后提醒一句:腾讯地图 JSAPI 的 Key 和安全密钥不要硬编码进提交到 Git 的代码里。用环境变量注入,Skill 配置里引用变量名而不是明文。这个习惯在多人协作时能省掉很多麻烦。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询