三条入口路径(扣子、Claude Code、OpenClaw)的差别,说起来是一堆按钮,其实只差两件事: 谁提供模型算力,谁保管那把 API Key。 这一篇把两条线画清楚,再在本机真跑一遍体检,得出「你现在能走哪条路」。
这是全书第一篇,没有前置。它要做的事只有一件:让你手上有一个能装技能的环境。 后面的所有内容都建立在这一步之上——环境没通,后面全是纸上谈兵。 如果你的电脑上已经能跟某个智能体对话,这一篇可以快速扫过,只做最后那步自检。
一、三条路径只差两件事
技能这个东西,本质是一个文件夹加一个 SKILL.md 文件。谁都能读,谁都能改。 真正把人分成三档的,不是技能怎么写,是模型算力从哪来、钥匙放在谁手里。 这两件事一画出来,三条路径的取舍就没什么可纠结的了。
| 路径 | 谁出模型 | 钥匙在谁手里 | 你要装什么 |
|---|---|---|---|
| 扣子 | 平台 | 平台 | 什么都不用装 |
| Claude Code | 你订的模型服务 | 你 | Node 与一个终端 |
| OpenClaw | 你订的模型服务 | 你 | Node 与一台常开的机器 |
| 其他客户端 | 看情况 | 看情况 | 客户端本体 |
读这张表只需要看第三列。第三列写「平台」的,你不用管钥匙;写「你」的,你要自己管。 自己管钥匙有代价:要装环境、要充钱、要防泄露。换来的是能力和数据都在你自己手上。
二、扣子:把两件事都包了
扣子是网页版的智能体搭建平台。注册、登录、在网页里建一个智能体,技能在它的云端编辑。 它把模型和钥匙都接过去了,所以你面对的是一个表单,不是一台服务器。 这条路最省事的地方在于:你可以在完全不懂命令行的前提下,把技能这件事跑通一遍。 代价也要说清楚。技能存在别人的服务器上,你要拿到本地得走导出; 能调什么模型、能接什么工具,边界由平台定,不由你定。 所以它适合的场景很明确:先搞明白「技能到底是什么、怎么被触发」。 等你开始嫌它不够灵活、或者数据不方便往外发,再往下面两条路走,那时候你已经知道自己在要什么了。
三、Claude Code 与 OpenClaw:钥匙回到自己手里
这两条都要先装 Node,再自己填一个 API Key。装环境的门槛,就是从这里开始有的。 它们的差别在贴着什么东西工作。 Claude Code 贴在终端和代码仓库上:你在项目目录里启动它,它能读文件、改文件、跑命令。 它的技能可以放在用户目录,也可以放在项目目录——这一条后面讲作用域时会展开。 OpenClaw 贴在一台常开的机器上:它更像一个自己能待着的助手,你通过消息入口指挥它。 玩家喜欢它,是因为它可以一直在线,跑那些「我不在电脑前也要做」的活。 两条路的共同点比差别重要:技能都是本地文件夹,改完立刻生效。 没有上传、没有审核、没有等待。这一点是它们相对云端平台最大的优势。 书里还提了「其他路径」,指的是 Cursor、Windsurf 这一类也在加技能机制的客户端。 它们的方向是一致的:把「一个文件夹 + 一份说明」当成能力的载体。 所以这一课学的东西不会绑死在某一家上——换客户端,重新读一遍它的目录约定就行。
四、API Key 的三条纪律
API Key 是一串字符,代表「用这个账号的钱去调模型」。它等于钱,也等于权限。 第一条:只放环境变量,不写进任何文件。 环境变量是操作系统层面的键值对,程序运行时读得到,文件里看不到。 第二条:不进仓库、不进技能包。技能是要发给别人、传到社区的。 文件里写死一把钥匙,等于连钥匙一起发出去。这一课后面有一整节讲这件事。 第三条:一个用途一把,能吊销。所有活共用一把,出事时你只能全停。 分开之后,泄了哪把停哪把,其余照常跑。 这三条现在看是常识,真出事的时候九成是因为「当时图省事」。
五、启动之后先问一句
环境装完,第一件事不是写技能,是确认它看不看得见你的技能目录。 最省事的问法就是一句大白话:「你现在有哪些技能?」 它列出来了,说明目录读到了;它说一个都没有,说明要么路径不对,要么目录根本不存在。 这个自检比翻文档快,也比看日志快。以后每加一个技能,都可以这么问一次。
六、动手 Demo:三条入口路径,先量一下这台机器
这一节不猜,直接在本机量三件事:三条路径的硬门槛是什么、这台机器满足了几条、技能目录到底在不在。 量完会得到一张就绪度表。能判的当场判,判不了的写「不判」,不含糊。
# 后两条路径都要这三样,扣子不要
git --version
node -v
python -V
# 技能目录:三个客户端各认各的路径
ls ~/.claude/skills ~/.openclaw/skills ~/.codex/skills
实跑输出:
--------------------------------------------------------------------
三条入口路径,先量一下这台机器
--------------------------------------------------------------------
① 三条路径的硬门槛
--------------------------------------------------------------------
| 路径 | 要装什么 | 要什么账号 | 跑在哪 | 门槛 |
|---|---|---|---|:---:|
| 扣子 | 什么都不用装 | 手机号或微信 | 云端 | 最低 |
| Claude Code | Node 与一个终端 | 订阅或 API Key | 本地 | 中 |
| OpenClaw | Node 与一台常开的机器 | 自备 API Key | 本地或自托管 | 高 |
三条路径的差别全在「谁提供模型、谁保管钥匙」。
扣子把这两件事都包了,所以你什么都不用装;
另外两条把钥匙交回你手里,代价是环境要自己搭。
! Node 的具体版本要求三家不一样,也在变,以官方安装页写的为准。
② 这台机器上真跑一遍版本查询
--------------------------------------------------------------------
git [ok ] git version 2.55.0.windows.3
node [ok ] v22.22.2
python [ok ] Python 3.13.14
三条都在,说明 Claude Code 与 OpenClaw 的本地部分有底子。
! 版本号是这台机器的实况,不是书上的推荐值。换机器要重跑这三条。
③ 技能该放在哪:三个平台各说各的
--------------------------------------------------------------------
| 作用域 | 这台机器 | 路径 |
|---|---|---|
| Claude Code 个人 | 不在 | ~/.claude/skills |
| Claude Code 项目 | 不在 | <项目>/.claude/skills |
| OpenClaw | 不在 | ~/.openclaw/skills |
| Codex | 不在 | ~/.codex/skills |
四个目录一个都还没有——本机从没装过这三个客户端,属于干净状态。
扣子那条路径没有本地目录:技能存在它的云端,你在网页里编辑,
导出时可以下载成一个压缩包,解开就是同样的文件夹结构。
④ 就绪度:能判的判,判不了的直说
--------------------------------------------------------------------
| 路径 | 硬门槛 | 这台机器 | 还差什么 |
|---|---|---|---|
| 扣子 | 浏览器能打开 | 本沙箱不判 | 取决于你有没有账号 |
| Claude Code | Node 18 起 | Node 22,够 | 再补一个 API Key |
| OpenClaw | Node 18 起 | Node 22,够 | 再加一台常开的机器 |
「本沙箱不判」不是偷懒:扣子要的是浏览器里点两下,
命令行这边没有任何证据能证明你点得通。测不出来的就写测不出来。
! 三条路径选哪条只看一件事:你愿不愿意自己管一把钥匙。
! 不想管,选扣子;愿意管,选后两条;两条都想试,先装 Node。
⑤ 钥匙不进技能包
--------------------------------------------------------------------
[命令行原样 · 本沙箱不执行]
| # 环境变量里放钥匙(Claude Code 与 OpenClaw 都认这一套)
| export ANTHROPIC_API_KEY="sk-ant-..."
| export OPENAI_API_KEY="sk-..."
|
| # 技能包里永远只引用变量名,不写值
| # SKILL.md 里可以写:需要环境变量 SEARCH_API_KEY
| # SKILL.md 里不可以写:SEARCH_API_KEY=sk-xxxxxx
上面这两行属于本机 shell 配置,不是技能文件的一部分。
技能是要发给别人、传到社区的。文件里写死一把钥匙,等于把钥匙一起发出去。
这一课后面会有一整节讲安全,这里先把规矩立住。
第一张表看第三列:钥匙在平台手里的,你什么都不用装。 第二段是本机实况:git 2.55、Node 22、Python 3.13,三条都在。 这说明 Claude Code 与 OpenClaw 的本地部分有底子,不用从装 Node 开始。 第三段是四个技能目录的实际存在情况,一个都没有。 这不是坏事,说明这台机器从没装过这三个客户端,是干净状态。 第四段是就绪度表。扣子那行写「本沙箱不判」——它要的是浏览器里点两下, 命令行这边没有任何证据能证明你点得通。测不出来的就写测不出来,不编。 最后一段是钥匙的规矩:环境变量里放,技能包里只写变量名。
30 秒实验
- 在你自己的机器上跑一遍那四条命令,把版本号记下来。差哪条,就是你要补的第一步。
- 打开你的技能目录(可能还不存在),记下它的完整路径。后面每一篇都会用到这个路径。
- 问你的智能体一句「你现在有哪些技能」,看它怎么答。答不上来就说明目录还没接上。
常见误区
- 以为三条路径是「三个版本的同一样东西」。 它们跑的是同一套技能格式,但模型来源、数据存放位置、能力边界都不一样。 选之前先想清楚你在不在意这两件事。
- 把 API Key 写进 SKILL.md 里试跑。 试的时候确实能跑通,但这份文件从此不能给别人看,也不能进仓库。一次图省事,后面全是麻烦。
- 跳过「问一句有哪些技能」这步。 很多人装完就直接开始写技能,写完发现压根没被加载,然后怀疑是格式写错了。 先确认目录通不通,能省掉一大半排查时间。
自测三问(点开对答案)
1. 三条路径的分水岭是哪两件事? —— 谁提供模型算力、谁保管 API Key。扣子两件都包了,另外两条把钥匙交回你手里。 2. 为什么 API Key 要一个用途一把? —— 共用一把时,泄了只能全停;分开之后泄哪把停哪把,其余照常跑。能吊销比「不会泄」现实。 3. 装完环境后的第一个自检是什么? —— 问智能体「你现在有哪些技能」。它列得出来,说明技能目录读到了;列不出来,先查路径。下一篇进正题:从零建一个会议纪要技能,同一段转承稿跑两遍,看技能到底改变了什么。
- ☐ (本篇完,下一篇 1.2 跑通第一个技能)