尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

把飞书 AI 的 Base URL 改到 TaoToken:5 分钟打通瑞幸点单技能

把飞书 AI 的 Base URL 改到 TaoToken:5 分钟打通瑞幸点单技能 1. 飞书机器人点单链路里Base URL 到底卡在哪先说清楚这篇要解决的具体问题你在飞书里挂了一个 AI 助手我用的是 x-cmd 生态里的 x claw想让它帮你点一杯瑞幸生椰拿铁结果发现技能装上了、授权也做了但 AI 一到「理解你的自然语言 → 调用点单技能」这一步就开始装傻要么答非所问要么直接说无法调用工具。这个现象在飞书机器人接入第三方 AI 能力时非常典型。飞书本身只负责消息通道真正干活的是背后那个大模型。而 x-cmd 侧的技能注册本质上是把「点单」这个动作包装成一个可被模型调用的 function。模型能不能正确识别并触发这个 function取决于两件事一是模型本身有没有足够的工具调用tool calling能力二是你给模型配的 Base URL 和 Key 是不是指向了一个支持 function calling 的接口。很多人卡在第二步。默认情况下x-cmd 里的 AI 助手可能连的是某个公共端点或者你之前随手填的一个地址。这个地址如果不支持 OpenAI 兼容的 tools 参数模型就收不到技能描述自然也不会去调用。表现出来就是你问「帮我点一杯生椰拿铁」它回你「好的生椰拿铁是瑞幸的招牌饮品」——它在聊天但没在下单。所以这篇的核心动作就一个把飞书 AI 助手的 Base URL 改到 TaoToken让模型走一个稳定支持工具调用的通道然后把瑞幸点单技能注册进去最后用一次真实下单请求验证整条链路。适合谁看已经在飞书里跑着 x-cmd AI 助手、想接点单类技能但被配置卡住的人或者你还没装助手想从零走一遍「飞书 x-cmd TaoToken 瑞幸技能」的完整流程也可以照着做。全程不需要你懂模型底层只要会改配置文件、会发消息就行。我试过把 Base URL 从默认地址切到 TaoToken 之后同样的技能包模型从「只会聊」变成「会调工具」下单请求一次就通了。下面把每一步拆开讲。2. TaoToken 前置Key、Base URL 与 x-cmd 的对接位置在改配置之前先把 TaoToken 这边的东西准备好。你需要两样一个 API Key和一个 Base URL。API Key 去 TaoToken 控制台创建地址是 https://taotoken.net/api-keys 。创建的时候给它起个能认出来的名字比如feishu-luckin方便以后排查。创建完立刻复制页面刷新后就看不到了。Base URL 用 https://taotoken.net/api 注意这里不要加任何多余的路径后缀。很多 OpenAI 兼容客户端会自动在末尾拼/v1/chat/completions你如果手动写成https://taotoken.net/api/v1反而会拼成/api/v1/v1/...直接 404。这一点在 x-cmd 的配置里尤其容易踩因为 x-cmd 的 AI 模块对 base_url 的处理是「原样拼接」。接下来是 x-cmd 侧的对接位置。x-cmd 的 AI 助手配置通常落在用户目录下的配置文件中具体路径取决于你的安装方式。如果你用的是 x-cmd 的默认安装AI 相关配置一般在~/.x-cmd/ai/下面或者通过x ai子命令管理。你可以先跑一句x ai config list看看当前生效的配置项。如果输出里能看到base_url和api_key字段说明配置已经存在你只需要改值。如果什么都没有说明还没初始化需要先建。这里有个关键点x-cmd 的技能注册和模型配置是分开的两层。模型配置决定「用哪个大脑」技能注册决定「大脑会哪些动作」。Base URL 改错大脑就收不到技能清单技能没注册大脑就算再聪明也不知道有点单这回事。所以顺序是先配模型再注册技能。TaoToken 这边支持 OpenAI 兼容的接口格式包括tools和tool_choice参数这是点单技能能被调用的前提。你不需要额外开什么开关只要 Key 有效、Base URL 正确模型侧就具备工具调用能力。另外提醒一句不要把 Key 硬编码在会提交到 git 的文件里。x-cmd 的配置如果放在项目目录下记得加进.gitignore。我一般直接放在用户级配置里跟项目隔离。准备好 Key 和 Base URL 之后就可以进下一步改配置了。3. 可复制配置Base URL、Key 与技能注册片段这一节给可直接复制的配置片段。分两块模型接入配置和瑞幸点单技能注册。先说模型接入。x-cmd 的 AI 配置支持 JSON 格式你可以直接编辑配置文件也可以用命令行写入。推荐直接改文件因为字段多命令行容易漏。配置文件路径默认安装~/.x-cmd/ai/config.json如果文件不存在先创建目录mkdir -p ~/.x-cmd/ai然后写入以下 JSON。把sk-你的TaoTokenKey替换成你在控制台创建的那个 Key{ default_provider: taotoken, providers: { taotoken: { base_url: https://taotoken.net/api, api_key: sk-你的TaoTokenKey, model: claude-sonnet-4-20250514, timeout: 60, max_tokens: 4096 } }, features: { tool_calling: true, stream: true } }几个字段说明。base_url就是 https://taotoken.net/api 不要加/v1。model填你实际要用的模型 IDTaoToken 支持的模型列表可以在模型对话页面查地址是 https://taotoken.net/models 。tool_calling必须为true否则技能不会被触发。stream开着体验更好飞书里回复是逐字出来的。如果你更习惯用 TOMLx-cmd 也认。等价写法default_provider taotoken [providers.taotoken] base_url https://taotoken.net/api api_key sk-你的TaoTokenKey model claude-sonnet-4-20250514 timeout 60 max_tokens 4096 [features] tool_calling true stream true改完保存跑一句验证配置是否被读到x ai config get providers.taotoken.base_url正常应该输出https://taotoken.net/api。如果输出为空或者报错说明文件路径不对检查一下是不是写到了别的目录。接下来是瑞幸点单技能注册。技能包本身是一个 zipx-cmd 支持通过 URL 直接安装。在飞书对话里给 AI 助手发这句话请下载安装 My Coffee Skillhttps://unpkg.luckincoffeecdn.com/luckin/my-coffee-skilllatest/dist/my-coffee-skill.zip发完之后助手会去拉取技能包并注册。注册成功后它会返回一个技能列表里面应该能看到my-coffee-skill相关的条目。如果没看到说明技能包没装上检查网络能不能访问那个 unpkg 地址。技能注册完之后还需要授权。这一步 AI 代替不了你得自己去瑞幸咖啡 AI 开发平台登录账号创建一个授权 token然后把 token 发给助手。发的时候直接说「这是我的瑞幸授权 tokenxxx」就行。助手会把它存到本地凭证里后续调用点单技能时自动带上。到这里模型配置和技能注册都完成了。三件套齐了Base URL 是 https://taotoken.net/api Key 是你在 TaoToken 控制台创建的那个Model ID 是你选的模型。缺任何一个点单链路都跑不通。4. 验证请求一次真实下单与返回校验配置改完别急着直接下单先做一次轻量验证确认模型能正确调用技能。第一步在飞书里问助手一个需要调用技能才能回答的问题帮我看看附近有哪些瑞幸门店在营业如果模型配置正确、技能注册成功它会调用my-coffee-skill里的门店查询动作返回一个门店列表。返回内容里应该包含门店名称、距离、营业状态。如果它只是泛泛地回答「瑞幸门店很多你可以打开 App 查看」说明技能没被触发回到上一节检查tool_calling是否为true以及 Base URL 是否写成了带/v1的版本。第二步选一家门店发起真实下单请求。我当时的对话是这样的选第一家店来一杯生椰拿铁大杯冰默认糖度助手会做几件事确认门店、确认饮品规格、查你账户里的优惠券、算出实付价格。我那次它返回的是原价 ¥20自动用了一张 ¥9.1 的券实付 ¥10.9。这个价格是它从瑞幸官方系统查的不是编的。确认无误后它会生成一个支付二维码链接。点开链接用微信扫码付款。付款完成后问助手要取餐码取餐码出来了吗它返回取餐码我那次是「844」。到店报码取餐全程没打开瑞幸 App 或小程序。这里给一个校验返回是否正常的判断标准。正常的点单返回应该包含这几个字段门店 ID、饮品 SKU、规格杯型/冰量/糖度、优惠券抵扣金额、实付金额、支付链接。如果返回里缺了支付链接或者金额明显不对比如原价没抵扣说明技能调用链路上某一环出了问题优先查授权 token 是否过期。如果你想在命令行侧也验证一次模型连通性可以跑x ai chat --provider taotoken --message 你好测试连通正常会返回一句回复。如果报 401说明 Key 不对如果报连接超时说明 Base URL 或网络有问题。这一步能把「模型通不通」和「技能灵不灵」分开定位。5. 常见报错排查401、local proxy failed 与 choices 为空这一节列几个真实会撞上的报错以及对应的修法。401 Unauthorized。最常见。原因通常是 Key 写错、Key 过期、或者 Key 前面多了空格。检查~/.x-cmd/ai/config.json里的api_key字段确认是完整的sk-开头字符串没有换行、没有引号嵌套错误。如果 Key 是从网页复制的注意别把前后的空白也带进去。改完跑x ai chat --provider taotoken --message test验证。local proxy failed / connection refused。这个报错说明 x-cmd 尝试走本地代理但没连上。检查你的环境变量里有没有HTTP_PROXY或HTTPS_PROXY指向一个已经关掉的本地端口。如果有临时 unset 掉unset HTTP_PROXY HTTPS_PROXY然后重试。另外确认base_url是https://taotoken.net/api不是http://也不是带端口号的地址。reading choices: unexpected end of JSON input。这个报错通常出现在流式响应被中断的时候。原因可能是stream开着但网络不稳或者max_tokens设得太小导致返回被截断。先把stream改成false试一次如果能通说明是流式解析的问题。再把max_tokens调到 4096 以上。如果还不行检查模型 ID 是否拼写正确错误的模型 ID 有时会返回空响应体解析时就报这个错。OAuth / 授权相关报错。如果点单技能调用时返回授权失败说明瑞幸的授权 token 过期或没存上。重新去瑞幸 AI 开发平台生成一个 token发给助手。发的时候明确说「更新瑞幸授权 token」让它覆盖旧的。别只发一串字符模型可能不知道那是干什么的。技能列表为空。装完技能包后问助手「你有哪些技能」如果列表里没有 coffee 相关的说明技能包没注册成功。重新发一次安装指令注意 URL 要完整。如果 unpkg 地址访问不了可以先把 zip 下载到本地再用本地路径安装。排查的时候有个通用思路先确认模型通不通跑一句普通对话再确认技能在不在问技能列表最后确认授权有没有查 token。三层分开测比一股脑改配置快得多。6. 把链路固定下来后续维护与扩展配置跑通之后有几件事值得做能让这条链路长期稳定。第一把配置文件备份一份。~/.x-cmd/ai/config.json里存着 Base URL 和 Key换机器或者重装的时候直接拷过去就行。但注意别把备份传到公开仓库。第二Key 轮换。TaoToken 控制台可以创建多个 Key建议给飞书助手单独一个 Key跟其他用途隔离。这样万一某个 Key 泄露只吊销那一个不影响别的。轮换的时候改配置文件里的api_key字段重启一下 x-cmd 的 AI 服务即可。第三技能扩展。瑞幸点单技能只是其中一个。x-cmd 的技能机制是通用的你可以按同样的方式装其他技能包。装的时候注意技能之间的命名别冲突Base URL 和 Key 是全局的不用每个技能单独配。第四模型切换。如果你想让点单用响应快的模型、写代码用能力强的模型可以在配置里加多个 provider然后在对话时指定。比如{ providers: { taotoken-fast: { base_url: https://taotoken.net/api, api_key: sk-你的Key, model: claude-haiku-4-20250514 }, taotoken-strong: { base_url: https://taotoken.net/api, api_key: sk-你的Key, model: claude-sonnet-4-20250514 } } }点单这种轻量任务用 fast复杂推理用 strong。切换的时候在消息里带上 provider 名就行。如果你还没开始配建议先去 https://taotoken.net/api-keys 把 Key 建好然后照着第 3 节的 JSON 改配置。改完用第 4 节的验证步骤跑一遍确认模型能调技能。遇到报错就翻第 5 节按 401、proxy、choices 这几类对号入座。整条链路的核心其实就一句话Base URL 指向 https://taotoken.net/api Key 用 TaoToken 控制台创建的Model ID 填对技能就能被正确调用。剩下的就是照着对话走一遍取餐码到手。
返回列表