什么?DeepSeek 可以点瑞幸了?
昨晚刷到瑞幸开放了 AI 平台,MCP、CLI、Skill 一整套都放出来了。

先说清楚:本文确实有点标题党。DeepSeek 这个模型本身点不了任何东西,也连不上瑞幸的服务器。真正干活的是三个东西拼在一起:
- 瑞幸 Skill:说明书,也是一只手。
SKILL.md里写着”在瑞幸怎么点单”,真正去调瑞幸服务的脚本也在里面。查门店、搜商品、下单,靠的都是它。 - OpenCode:执行器。它负责读这份说明书,把你的话拆成一串动作,然后按顺序把脚本跑起来。
- DeepSeek:脑子。它负责听懂”帮我点杯生椰拿铁”,判断要不要调用这个 Skill,先走哪一步,参数该怎么填。
所以更准确的说法是:DeepSeek 当大脑,OpenCode 做调度,瑞幸 Skill 提供能力包。这一套拼起来,确实把咖啡点出来了。
瑞幸到底开放了什么
我去翻了官方文档(open.lkcoffee.com/docs)。瑞幸这次不是只做了个 CLI 页面,而是 MCP Server、CLI、Skill 三条线一起给。
这三条线用的是同一套能力,只是入口不一样:
- MCP 把点单拆成一组标准工具,让 agent 直接 function call;
- CLI 是现成的命令行客户端,瑞幸已经帮你封装好;
- Skill 是一份可以塞进你自己 agent 的”点单说明书”。
我这次走的是 Skill。无论从哪条线进,底层大概都绕不开这几个动作:
| 能力 | 干什么 |
|---|---|
queryShopList | 查门店列表 |
searchProductForMcp | 按你的描述匹配商品 |
queryProductDetailInfo | 查商品详情、规格 |
previewOrder | 预览订单 |
createOrder | 创建订单 |
queryOrderDetailInfo | 查订单详情 |
cancelOrder | 取消订单 |
连起来看,就是你在 App 里点单的那条路:选店 → 选品 → 选规格 → 确认订单 → 下单。瑞幸只是把这条路从 App 里抽了出来,变成任何 agent 都能接的能力。
还有一个很重要的东西:token。登录之后拿到,MCP、CLI、Skill 共用,和你的瑞幸账号会话绑定。官方也写得很直接:严禁泄露或分享。

这不是一个可以贴在群里的 demo key。它背后是你真实的账号权限,可以查门店,也可以下单、花钱。后面配置的时候它会落到本地,所以别把它提交进任何公开仓库。
第一步:让 OpenCode 用上 DeepSeek
OpenCode 是一个跑在终端里的开源 agent。它支持自定义模型,也支持加载 Skill。
也可以不用 OpenCode。只要 agent 支持 Skill,Qoder、Claude Code、Codex 这些客户端也能走类似思路。

先配置 DeepSeek。存 key 这一步用 auth login,这样密钥不会写进配置文件:
opencode auth login
# 选 Other
# Provider ID 填:deepseek
# 粘贴你的 DeepSeek API key
然后在全局配置 ~/.config/opencode/opencode.json 里加一段 provider,告诉 OpenCode:这个 deepseek 是一个 OpenAI 兼容接口。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"deepseek": {
"npm": "@ai-sdk/openai-compatible",
"name": "DeepSeek",
"options": {
"baseURL": "https://api.deepseek.com",
},
"models": {
"deepseek-chat": { "name": "DeepSeek Chat" },
},
},
},
}
点杯咖啡是个很轻的 tool calling 任务,deepseek-chat 足够,也便宜。要是你更看重工具调用的稳定性,换成手上更强的模型名就行。
不想折腾终端,也可以在 OpenCode 的 GUI 里配,思路一样。
第二步:把瑞幸的 Skill 装进 OpenCode

现在装 Skill 已经很省事了。最简单的方式,是直接在 agent 对话框里让它下载:
请下载安装 My Coffee Skill:
https://unpkg.luckincoffeecdn.com/@luckin/my-coffee-skill@latest/dist/my-coffee-skill.zip
跑起来
启动 OpenCode,先让它查一下附近门店。

看起来没问题。再让它往前走一步:
帮我在最近的门店点一杯冰美式

DeepSeek 读懂瑞幸这份 Skill 后,替我做了一串决定。OpenCode 按 Skill 里写好的步骤,把上面那张表里的能力跑了一遍:
- 先找最近的门店;
- 搜”冰美式”,匹配到商品;
- 确认规格,把”少冰”填进去;
- 生成订单预览,把价格、门店、规格摆到我面前;
- 停在这里,等我确认;
- 我点头,订单创建。
整个过程里,我没打开 App,没选门店,也没拖那个甜度滑块。我说了一句话,剩下的它自己走完,只在该花钱的那一步把我叫回来。

有意思的不是这杯咖啡
我自己打开 App 点一杯生椰拿铁,也就几十秒。论效率,绕这一圈完全不划算。
但这件事好玩的地方,本来就不在咖啡。
它提醒我一件事:很多原来只能在 App 里完成的动作,正在被拆成 Skill、MCP 这样的标准件,放出来让别的 agent 接。

过去我们说手机是入口,因为服务都锁在各自的 App 里。打车在 App 里,点咖啡在 App 里,订酒店、买票、查订单,也都在 App 里。App 是墙,也是门。
Agent 出来之后,这堵墙开始松动。
人不一定非要进 App。你说一句话,agent 去调能力,能力再去碰服务。最后只在关键节点,比如支付、取消、改地址,把你叫回来确认一下。手机还在,但它从”入口”退成了”遥控器”:确认、支付、收通知。
这里还有一层差别。
用瑞幸官方 CLI,是瑞幸给你配好了一整套东西:它的客户端,它定的流程,你照着用。
用 OpenCode + DeepSeek 接瑞幸 Skill,则是你自己的 agent、你选的模型,长出了一只会点咖啡的手。
瑞幸只负责把能力暴露成标准协议。你用哪个模型、哪个 agent runtime,它不关心,也不需要关心。这也是 Skill / MCP 这类开放协议真正解耦的地方:它不只把”能力”和”入口”分开了,也把”能力”和”模型”分开了。
所以严格说,不是”DeepSeek 会点瑞幸了”。
是瑞幸把点单这件事做成了一个谁都能接的标准件。今天接它的是 DeepSeek,明天可以是任何一个模型、任何一个 agent。
咖啡只是个开始。接下来还有多少服务会从 App 里被这样拆出来,这件事更值得盯着。
