ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

WorkBuddy+EdgeOne+TaoToken:一个下午上线全功能地图应用的配置与部署实录

WorkBuddy+EdgeOne+TaoToken:一个下午上线全功能地图应用的配置与部署实录 1. 从“手工查坐标”到一句话生成地图应用WorkBuddy 前端地图开发实录我做图像解说项目那阵子经常要验证地理坐标。流程特别原始打开地图网页版搜一个地点右键看坐标复制粘回代码里跑一遍。一个下午可能就耗在几十次“搜索—复制—粘贴”上。后来我换了个思路把需求直接丢给 WorkBuddy让它生成一个能搜索地址、点击地图解析坐标、还能做路线规划的前端页面。结果十几分钟后一个完整的地图应用就出现在工作区里左侧三个 Tab右侧地图实时渲染搜索“故宫”回车地图飞过去标记点弹出编号气泡点击地图任意位置经纬度和反向解析地址实时出现。这就是 WorkBuddy 这类对话式开发工具和“让 AI 帮我改代码”最大的区别。后者是你还在掌舵前者是你说目的地它负责开船。你不需要先想清楚“用什么框架、要不要后端、跨域怎么处理”它直接开始干。对于前端地图应用这种“看起来简单、实际坑不少”的场景WorkBuddy 的价值不在于写代码快而在于它知道该写什么代码JSONP 绕开跨域、Haversine 离线测距、动态 SVG 图标零图片依赖这些决策它自己就做了。但功能做完只是第一步。真正让这个地图应用“能给别人用”的是部署。纯前端 HTML 文件理论上扔到任何静态托管都能跑可实际操作起来“理论上”后面通常跟着一长串坑域名、SSL、Nginx、反向代理、CORS国内服务器还得备案。我最后用的是 EdgeOne Pages通过 MCP 工具一键上传十几秒后返回一个 HTTPS 链接全球 CDN 加速不需要域名、不需要备案、不需要服务器。朋友打开就能用手机浏览器也一样。这篇文章要讲的就是这条完整链路WorkBuddy 生成前端地图应用、EdgeOne 部署上线、再接入 TaoToken 统一 Key/API 通道。我会给出可复制的config.toml与settings.json骨架、EdgeOne 部署参数以及接口连通性验证动作。目标很明确让你一个下午复现一个可访问的地图应用并且把模型调用通道也理顺。适合谁看如果你是会一点前端、但不想在部署和配置上耗太多时间的人或者你已经在用 WorkBuddy、Cline、Claude Code 这类工具想找一个统一的 API 通道来管理 Key 和模型再或者你只是想知道“对话式开发 静态托管 统一网关”这套组合到底怎么落地这篇都能跟做。下面按实际链路一步步来先讲 TaoToken 的前置准备再进 WorkBuddy 配置、EdgeOne 部署、连通性验证和排错。2. TaoToken 前置准备统一 Key 与 API 通道的配置骨架在讲 WorkBuddy 和 EdgeOne 之前先把 TaoToken 这一层说清楚。因为整个链路里地图应用本身是纯前端的但你在开发过程中会用到模型能力——比如让 WorkBuddy 生成代码、让 Claude Code 帮你改配置、或者用 Cline 做 MCP 工具调用。这些工具如果各自配一套 Key、各自记一套 Base URL管理起来很乱。TaoToken 的作用就是把这些调用统一到一个通道上一个 Key、一个 Base URL模型 ID 按需切换。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。注意 API 地址后面不加 UTM 参数直接用它作为 Base URL 就行。你需要先去控制台创建一个 API Key路径是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。创建完 Key 之后先别急着往 WorkBuddy 里填建议先用模型对话页面验证一下 Key 是否可用https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 。这一步能省掉后面很多“到底是 Key 错了还是配置错了”的排查时间。TaoToken 的接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面会列出当前支持的模型 ID 和对应的 Base URL 写法。这里要强调一个原则Base URL、API Key、Model ID 这三件套必须一起出现缺一个都会导致 401 或者 model not found。很多新手只填了 KeyBase URL 还用默认的结果请求发到别的地方去了报错也看不懂。如果你用的是 Claude Code 这类工具TaoToken 也提供了对应的接入方式参考 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeutm_campaignrewrite 。它的核心还是那三件套Base URL 指向 TaoToken 的 API 地址Key 用你创建的 KeyModel ID 按文档里支持的填。Claude Code 的配置文件通常是settings.json下面我会给出一个骨架。对于长期编码和 Agent 场景如果你打算把 WorkBuddy、Cline、Codex 这些工具都挂到同一个通道上可以考虑 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。它的意义在于把多个工具的调用额度统一管理不用每个工具单独充值、单独看余额。不过这一篇的重点是地图应用的生成和部署Coding Plan 只是顺带提一下你按自己实际用量决定。现在给出两个可复制的配置骨架。第一个是config.toml适合支持 TOML 配置的工具比如某些 CLI 或 MCP 客户端# TaoToken 统一通道配置骨架 # 路径按你实际工具的配置目录调整这里以通用结构示意 [provider] name taotoken base_url https://taotoken.net/api api_key sk-你的TaoTokenKey model 按文档填支持的ModelID [provider.options] timeout 60 max_retries 2第二个是settings.json适合 Claude Code、Cline 这类用 JSON 配置的工具{ provider: taotoken, baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoTokenKey, model: 按文档填支持的ModelID, timeout: 60000, retries: 2 }注意baseUrl结尾不要多加/v1或者/chat/completions具体路径由工具自己拼接。如果你不确定先看接入文档里的示例或者用模型对话页面发一条测试消息确认通道通了再往工具里填。这一步做完TaoToken 的前置就齐了一个 Key、一个 Base URL、一个 Model ID后面 WorkBuddy 和 EdgeOne 的配置都会围绕这三件套展开。3. WorkBuddy 生成地图应用与 EdgeOne 部署参数配置这一节是核心操作部分。先讲 WorkBuddy 怎么生成地图应用再讲 EdgeOne 部署参数最后把 TaoToken 的配置嵌进去。整个过程不需要你写完整代码但需要你把需求说清楚并且把配置文件放对位置。WorkBuddy 的工作方式我在前面提过你说一句话它直接开始干。但“直接干”不等于你什么都不用管。为了让生成的地图应用能顺利部署到 EdgeOne你需要在需求里明确几个约束纯前端单文件、不依赖后端、地图 SDK 用 CDN 引入、API 调用走 JSONP。这些约束不是必须的但加上之后后面部署会省很多事。我的实际 Prompt 大概是这样帮我做一个地图应用纯前端单 HTML 文件可以搜索地址、点击地图解析坐标、做路线规划。地图 SDK 用 CDN 引入接口调用用 JSONP 处理跨域。生成后我要部署到 EdgeOne Pages。WorkBuddy 会生成一个index.html里面包含地图初始化、搜索模块、坐标解析、路线规划、历史记录、距离测量这些功能。生成完之后你不需要手动去改代码但需要检查两个地方一是地图 SDK 的 CDN 引用是否完整二是 API Key 的占位符是否明显。如果它用了YOUR_KEY这种占位符你替换成自己的地图 Key 就行。接下来是 EdgeOne 部署。EdgeOne Pages 的部署方式有几种控制台上传、CLI 部署、MCP 工具部署。如果你用 WorkBuddy 的 MCP 集成可以直接在对话里说“部署到 EdgeOne”它会调用deploy_html工具上传。但如果你要手动配置或者想把这个流程固化下来就需要一份部署参数。下面是一个 EdgeOne Pages 的部署配置骨架你可以放在项目根目录命名为edgeone.json或者按 EdgeOne 的实际要求命名{ projectName: mcp-geo, entryFile: index.html, buildCommand: , outputDir: ., env: { MAP_API_KEY: 你的地图Key }, headers: { Cache-Control: public, max-age3600 } }这里有几个参数要解释。projectName是 EdgeOne Pages 上的项目名建议用英文小写加连字符比如mcp-geo。entryFile是入口文件纯前端项目就是index.html。buildCommand留空因为不需要构建。outputDir是.表示当前目录就是输出目录。env里可以放地图 Key但注意纯前端项目的环境变量最终会暴露在浏览器里所以不要放敏感信息。headers里设置缓存策略静态资源缓存一小时比较合适。如果你用 CLI 部署命令大概是这样的# 安装 EdgeOne CLI按官方文档为准 npm install -g edgeone-cli # 登录 edgeone login # 部署当前目录 edgeone deploy --project mcp-geo --dir .部署成功后CLI 会返回一个 HTTPS 链接格式类似https://mcp.edgeone.site/share/xxxx。这个链接就是你的地图应用地址全球 CDN 加速HTTPS 加密手机浏览器也能直接打开。现在把 TaoToken 的配置嵌进来。WorkBuddy 本身如果支持自定义模型通道你可以在它的设置里填 TaoToken 的 Base URL 和 Key。如果不支持也没关系TaoToken 主要影响的是你开发过程中用到的其他工具比如 Claude Code 帮你改配置、Cline 做 MCP 调用。下面是一个把 TaoToken 和 EdgeOne 部署结合起来的settings.json示例适合 Claude Code 或类似工具{ provider: taotoken, baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoTokenKey, model: 按文档填支持的ModelID, mcpServers: { edgeone: { command: npx, args: [-y, edgeone-mcp-server], env: { EDGEONE_PROJECT: mcp-geo } } } }这个配置的意思是模型调用走 TaoToken 通道MCP 工具里挂一个 EdgeOne 的 server用来执行部署动作。注意mcpServers里的command和args要按 EdgeOne MCP 的实际包名和参数填这里只是结构示意。如果你用的是 Cline配置位置在 Cline 的 MCP 设置里结构类似把baseUrl、apiKey、model三件套填对就行。还有一个细节WorkBuddy 生成的地图应用里如果用了腾讯地图的 WebService API跨域问题要靠 JSONP 解决。这个 WorkBuddy 会自动处理你不需要手动改。但如果你自己改代码记得不要用fetch直接调 WebService API否则浏览器会拦截。JSONP 的原理是把 API 调用包装成script标签的 URL服务端返回一段 JS 代码调用你指定的回调函数这样数据就绕过了跨域限制。WorkBuddy 生成的代码里通常会用 Promise 包一层让异步调用可以await可读性很好。部署参数和配置骨架都齐了之后下一步就是验证。不要跳过验证直接说“应该能用了”因为 401、local proxy failed、reading choices 这些报错大部分都是配置没对齐导致的。下一节讲具体的验证动作和成功结果。4. 接口连通性验证与部署成功结果确认配置写完部署命令跑完接下来要做的是验证。验证分两层第一层是 TaoToken 通道是否通第二层是 EdgeOne 部署是否成功、地图应用是否可访问。这两层都过了才算真正跑通。先验证 TaoToken 通道。最简单的方式是用模型对话页面发一条测试消息打开 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 在输入框里写“你好测试通道”发送。如果返回正常回复说明 Key 和 Base URL 没问题。如果报 401说明 Key 错了或者没带上如果报 model not found说明 Model ID 填错了如果报连接超时检查网络和 Base URL 是否写成了https://taotoken.net/api。如果你更喜欢用命令行验证可以用curl发一个请求。注意这里只是验证通道具体路径按接入文档里的示例来curl -X POST https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: 按文档填支持的ModelID, messages: [{role: user, content: 测试}] }如果返回 JSON 里有choices字段说明通道通了。如果返回{error: {message: Invalid API key}}那就是 Key 的问题。这一步过了之后再去验证 WorkBuddy 或 Claude Code 里的配置。在 Claude Code 里你可以让它执行一个简单任务比如“读取当前目录下的 index.html 并告诉我文件大小”如果它能正常调用模型并返回结果说明 TaoToken 通道在工具里也生效了。接下来验证 EdgeOne 部署。部署完成后CLI 或 MCP 工具会返回一个 HTTPS 链接。你把这个链接复制到浏览器打开应该能看到地图应用界面。检查几个点地图是否正常渲染、搜索框输入“故宫”回车后地图是否飞过去、点击地图是否出现坐标、路线规划 Tab 是否能画出路线。如果地图不显示打开浏览器开发者工具看 Console 里有没有报错。常见的是地图 Key 无效或者 SDK 没加载成功。如果部署返回的链接打不开先检查部署日志。EdgeOne Pages 的部署日志会显示上传了哪些文件、有没有报错。如果日志显示上传成功但链接 404检查entryFile是否写成了index.html以及文件是否在outputDir指定的目录里。如果日志显示上传失败检查项目名是否重复、CLI 是否登录成功。成功的结果应该是这样的你打开链接地图加载出来搜索“故宫”回车地图飞到北京标记点弹出编号气泡气泡里写着“故宫博物院”。点击地图任意位置坐标框里出现经纬度和反向解析的地址。切换到路线规划起点终点填两个地方选择驾车地图上画出蓝色路线旁边显示预计距离和用时。历史记录里保存了最近 20 条坐标关掉浏览器再打开还在。距离测量用 Haversine 算法离线计算不调 API零延迟。如果你用的是 WorkBuddy 的 MCP 部署返回链接的格式可能是https://mcp.edgeone.site/share/xxxx。这个链接全球 CDN 加速国内访问延迟在几十毫秒以内。你可以把链接发给朋友他们打开就能用不用安装任何东西。手机浏览器也一样因为地图 SDK 本身有移动端适配你的页面又没有固定宽度布局天然响应式。验证通过之后建议做一件事把部署链接和配置文件一起记下来。因为后面你可能会迭代功能重新部署时要用到同样的项目名和配置。WorkBuddy 有开发记忆功能下次新开对话时它会读取记忆文件直接接上上次的状态。你不需要重复解释项目背景只需要说“继续扩展 mcp-geo 的功能加个距离测量”它就知道代码在index.html里用的是腾讯地图 SDK上次部署到了 EdgeOne Pages。验证这一步看起来简单但它是区分“配置写完了”和“真的能用了”的关键。很多人卡在 401 或者 local proxy failed就是因为跳过了验证直接去用工具结果报错也看不懂。下一节把常见报错和排查方法列出来你遇到问题可以对照着查。5. 常见报错排查401、local proxy failed、reading choices 与 OAuth这一节按真实报错来。你在配置 TaoToken、WorkBuddy、EdgeOne 的过程中大概率会遇到下面几类问题。我把报错原文和排查路径对应起来你遇到时直接对照。第一类401 Unauthorized。报错原文通常是{error: {message: Invalid API key, type: invalid_request_error}}或者401 Unauthorized。原因很直接Key 错了、Key 没带上、或者 Key 和 Base URL 不匹配。排查步骤先确认apiKey字段填的是sk-开头的完整 Key没有多余空格再确认baseUrl是https://taotoken.net/api没有写成别的地址最后去控制台看这个 Key 是否被禁用或删除。如果 Key 是对的但还报 401检查请求头里Authorization字段的格式应该是Bearer sk-xxxx不要漏掉Bearer。第二类local proxy failed。这个报错通常出现在你用了本地代理工具或者 MCP 客户端的时候。报错原文可能是local proxy failed: connection refused或者proxy error: cannot connect to upstream。原因是你本地的代理配置和 TaoToken 的 Base URL 冲突了或者代理工具没启动。排查步骤先检查你的工具配置里有没有proxy字段如果有把它去掉或者改成null再检查系统环境变量里有没有HTTP_PROXY、HTTPS_PROXY如果有临时取消掉再试最后确认你的网络能直接访问https://taotoken.net/api可以用curl -I https://taotoken.net/api看返回状态码。第三类reading choices。这个报错通常出现在模型返回结果解析的时候原文可能是Cannot read property choices of undefined或者reading choices。原因是请求返回的 JSON 结构和你工具预期的结构不一致。常见情况是 Base URL 写错了请求发到了别的端点返回的不是标准格式或者 Model ID 填错了服务端返回了错误信息而不是正常的choices数组。排查步骤先用curl直接发一个请求看返回的 JSON 里有没有choices字段如果没有看error字段里的具体信息如果有choices但工具还报错检查工具的版本是否支持你用的模型格式。第四类OAuth 相关报错。如果你用的是 Claude Code 或者某些需要 OAuth 登录的工具可能会遇到OAuth token expired或者OAuth callback failed。原因是你之前用 OAuth 登录过现在切到 TaoToken 的 Key 认证但工具还在用旧的 OAuth 流程。排查步骤在工具设置里找到认证方式切换成 API Key 模式如果找不到切换选项删除旧的认证缓存文件重新配置。Claude Code 的配置通常在~/.claude/settings.json或者项目目录下的settings.json检查里面有没有残留的 OAuth 字段。除了这四类还有一个常见问题是 EdgeOne 部署后链接 404。报错原文可能是404 Not Found或者The page you are looking for could not be found。原因通常是entryFile写错了或者文件没有上传到正确的目录。排查步骤检查edgeone.json里的entryFile是否是index.htmloutputDir是否是.检查部署日志里上传的文件列表确认index.html在里面如果用的是 MCP 部署确认deploy_html工具读取的文件路径是否正确。还有一个容易忽略的问题地图应用部署成功后地图不显示或者搜索没反应。打开浏览器开发者工具看 Console 和 Network。如果 Console 报Invalid map key说明地图 Key 无效或者没替换占位符如果 Network 里看到 API 请求被 CORS 拦截说明 JSONP 没生效检查代码里是不是用了fetch而不是 JSONP如果地图 SDK 加载失败检查 CDN 链接是否完整。排查的核心思路是先确认 TaoToken 三件套Base URL、Key、Model ID对齐再确认 EdgeOne 部署参数项目名、入口文件、输出目录对齐最后确认地图应用本身的 Key 和跨域处理。每一步都用最小化验证TaoToken 用模型对话页面验证EdgeOne 用返回链接验证地图应用用浏览器开发者工具验证。不要跳步不要假设“应该没问题”。如果你在排查过程中发现是配置结构的问题回到第 3 节对照config.toml和settings.json骨架重新检查。如果你不确定 Model ID 填什么去接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 查当前支持的列表。如果你需要重新生成 Key去 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。排错这件事最怕的是同时改多个地方改完不知道是哪个生效了。一次只改一个变量改完立刻验证。6. 把地图应用接入 TaoToken 通道后的长期用法地图应用部署上线之后事情还没完。你可能会继续迭代功能比如加卫星图切换、加夜间模式、加多点测距、加历史记录导出。这些迭代如果每次都重新配置一遍工具效率很低。更合理的做法是把 TaoToken 通道固定下来让 WorkBuddy、Claude Code、Cline 这些工具都走同一个入口Key 和 Base URL 只维护一份。具体怎么做如果你用 Claude Code 做长期编码把settings.json放在项目根目录里面填好 TaoToken 的三件套。这样每次打开项目Claude Code 自动读取配置不需要重新登录。如果你用 Cline 做 MCP 工具调用在 Cline 的 MCP 设置里填同样的三件套再把 EdgeOne 的 MCP server 挂上部署动作就可以在对话里直接触发。如果你用 Codex 或者类似的 CLI 工具检查它的auth.json或者配置文件把 Base URL 指向https://taotoken.net/apiKey 填 TaoToken 的 KeyModel ID 按文档填。对于长期编码和 Agent 场景如果你发现自己每天都要调用很多次模型可以考虑 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。它的作用是统一管理多个工具的调用额度不用每个工具单独充值。不过这一篇的重点是地图应用的生成和部署Coding Plan 只是给你一个长期使用的选项按实际用量决定就行。回到地图应用本身。WorkBuddy 的开发记忆功能在这里很有用。每次对话结束后它会自动把关键信息写到工作区的记忆文件里今天做了什么、用了什么技术方案、改了哪些文件、部署到哪个地址。下次新对话打开时它先读取这些记忆文件然后直接接上上次的状态。所以你迭代时不需要重复解释项目背景只需要说“继续扩展 mcp-geo 的功能加个距离测量”它就知道代码在index.html里用的是腾讯地图 JavaScript SDK WebService API纯前端单文件上次部署到了 EdgeOne Pages。这种体验在传统开发流程里几乎不可能实现。如果是两个人协作你至少要有一份 README、一份 CHANGELOG、一个 Git commit history新接手的人要花半天时间读代码才能进入状态。但 WorkBuddy 只需要几秒钟。而且它不只是记得上次做了什么还记得上次为什么这么做。比如第一次对话里你提供了地图 API Key它作为默认值写进了代码后续对话里它从来没有问过你“Key 是什么”因为记忆里已经有了。如果你想把这条链路分享给别人或者在其他项目里复用建议把三个东西整理成一份可复制的清单第一TaoToken 的三件套Base URL、Key、Model ID第二EdgeOne 的部署参数项目名、入口文件、输出目录第三WorkBuddy 的 Prompt 模板纯前端单文件、CDN 引入、JSONP 跨域、部署到 EdgeOne。这份清单不需要很复杂但有了它你下次做类似项目时一个下午就能复现。最后说一个实际经验。我试过把十个需求塞进一条消息里发给 WorkBuddy它当然也能处理但注意力会被分散每个功能的完成度可能就不如逐个推进。而如果你一次只提一件事它会在这个功能上“深挖”把所有相关的边界条件、交互细节、异常处理都考虑到位。这个策略在长期迭代里特别有用一次一个功能部署一次验证一次记忆一次。积累下来项目会越来越完整而你的配置和通道始终是那一套。如果你还没开始建议先从最小闭环做起用 WorkBuddy 生成一个最简单的单页地图部署到 EdgeOne拿到可访问链接再用 TaoToken 的模型对话页面验证通道。这个闭环跑通之后再加功能、再加工具、再加配置。不要一上来就追求全功能先把链路走通后面都是增量。
返回列表