OpenClaw 接入大模型 API 完整教程:2026 Skills 开发从零到跑通

上周 OpenClaw Skills 生态突然爆了,我 timeline 全是各种花式 Skill 展示。说实话一开始我是拒绝的------又一个平台?但看到有人用它接了 GLM5 做微信 Bot,还有人搞了个 Three.js 可视化 Skill,我坐不住了,花了两天时间从零把 OpenClaw 接上大模型 API 跑通了。

OpenClaw 接入大模型 API 的核心步骤:注册账号 → 创建 Skill → 配置 LLM Provider(填入兼容 OpenAI 协议的 API 地址和 Key)→ 编写 Skill 逻辑 → 测试发布。 最关键的一步是 LLM Provider 配置,选对 API 服务能省掉 80% 的麻烦。

先说结论

步骤 耗时 难度 踩坑概率
注册 + 环境配置 10 分钟
创建第一个 Skill 5 分钟
配置 LLM Provider 15 分钟 ⭐⭐⭐
编写 Skill 逻辑代码 30-60 分钟 ⭐⭐
调试 + 发布 20 分钟 ⭐⭐

配置 LLM Provider 这步坑最多,下面重点讲。

环境准备

你需要准备:

  • OpenClaw 账号(官网注册,目前开放申请)
  • 一个兼容 OpenAI 协议的 API Key(后面会讲怎么选)
  • Node.js 18+(本地调试用)
  • 你喜欢的编辑器(我用 Cursor)

先装 OpenClaw CLI:

bash 复制代码
npm install -g @openclaw/cli
openclaw login

登录成功会在终端看到你的用户名,这步没啥坑。

方案一:直接用各家官方 API

最直觉的做法------拿到哪家模型的 Key 就填哪家的。

创建一个 Skill 项目:

bash 复制代码
openclaw create my-first-skill --template llm-basic
cd my-first-skill

项目结构长这样:

bash 复制代码
my-first-skill/
├── skill.yaml # Skill 元信息
├── src/
│ └── index.ts # 主逻辑
├── package.json
└── .env # API 配置

编辑 skill.yaml,配置 LLM Provider:

yaml 复制代码
name: my-first-skill
version: 0.1.0
description: "我的第一个 OpenClaw Skill"

providers:
 llm:
 protocol: openai-compatible
 base_url: "https://api.openai.com/v1"
 model: "gpt-5"

然后在 src/index.ts 里写核心逻辑:

typescript 复制代码
import { defineSkill, llm } from '@openclaw/sdk';

export default defineSkill({
 name: 'smart-summary',
 description: '输入一段文字,返回结构化摘要',

 async handler(input: { text: string }) {
 const response = await llm.chat({
 model: 'gpt-5',
 messages: [
 { role: 'system', content: '你是一个擅长结构化摘要的助手,输出用 markdown 格式。' },
 { role: 'user', content: `请为以下内容生成结构化摘要:\n\n${input.text}` }
 ],
 temperature: 0.3,
 });

 return {
 summary: response.choices[0].message.content,
 model: response.model,
 tokens: response.usage?.total_tokens,
 };
 }
});

本地测试:

bash 复制代码
openclaw dev
# 另开终端
curl -X POST http://localhost:3800/invoke \
 -H "Content-Type: application/json" \
 -d '{"text": "OpenClaw 是一个开放的 AI Skills 平台..."}'

问题来了:直连官方 API,延迟波动很大,我测了几次 GPT-5 的响应时间在 800ms-3000ms 之间飘。而且不同模型要分别申请 Key、分别配置。我想在 Skill 里根据任务复杂度动态切换模型------简单任务用 DeepSeek V3 省钱,复杂任务用 Claude Opus 4.6------就得维护好几套配置,烦死了。

方案二:用聚合 API 一套配置搞定

折腾了一圈,最省事的方案是用聚合 API。我现在用的是 ofox.ai它是一个 AI 模型聚合平台,一个 API Key 可以调用 GPT-5、Claude Opus 4.6、Gemini 3、DeepSeek V3、GLM5 等 50+ 模型,兼容 OpenAI 协议,低延迟直连无需代理,支持支付宝付款

配置改动非常小,skill.yaml 只需要改 base_url

yaml 复制代码
providers:
 llm:
 protocol: openai-compatible
 base_url: "https://api.ofox.ai/v1" # 聚合接口,一个 Key 用所有模型
 model: "gpt-5"

.env 文件:

bash 复制代码
OPENCLAW_LLM_API_KEY=your-ofox-api-key

这样一来,Skill 代码里可以随意切换模型,不用动任何配置:

typescript 复制代码
import { defineSkill, llm } from '@openclaw/sdk';

export default defineSkill({
 name: 'adaptive-qa',
 description: '根据问题复杂度自动选择模型的问答 Skill',

 async handler(input: { question: string; mode?: 'fast' | 'quality' }) {
 // 简单模式用 DeepSeek V3 省钱,质量模式用 Claude Opus 4.6
 const model = input.mode === 'quality' ? 'claude-opus-4.6' : 'deepseek-v3';

 const response = await llm.chat({
 model,
 messages: [
 { role: 'system', content: '你是一个专业的技术问答助手。' },
 { role: 'user', content: input.question }
 ],
 temperature: 0.5,
 stream: true, // OpenClaw 支持流式输出
 });

 let fullContent = '';
 for await (const chunk of response) {
 fullContent += chunk.choices[0]?.delta?.content || '';
 }

 return {
 answer: fullContent,
 model_used: model,
 };
 }
});

整个调用链路是这样的:

graph LR A[用户请求] --> B[OpenClaw Platform] B --> C[你的 Skill] C --> D[ofox.ai 聚合网关] D --> E[GPT-5] D --> F[Claude Opus 4.6] D --> G[DeepSeek V3] D --> H[GLM5] D --> I[Gemini 3]

同一个 Key、同一个 base_url,Skill 代码里只改 model 字段就能切换,部署后不用重新配置环境变量。

踩坑记录

坑 1:skill.yaml 里的 model 字段和代码里的 model 参数冲突

我一开始在 skill.yaml 配了 model: "gpt-5",代码里又传了 model: 'deepseek-v3',结果请求一直走 GPT-5。查了半天文档才发现 skill.yaml 里的 model 如果写了,会强制覆盖代码层的参数。解决办法:yaml 里不写 model 字段,或者设成 model: "auto",让代码层自己控制。

坑 2:流式输出的 SSE 格式问题

OpenClaw 的 Skill handler 返回流式内容时,需要显式声明 streaming: true。我第一版没加,前端收到的是一坨 Buffer 乱码。正确姿势:

typescript 复制代码
// skill.yaml 里加上
output:
 streaming: true

坑 3:超时设置太短

OpenClaw 默认的 Skill 执行超时是 30 秒,但如果模型生成内容比较长(比如写一篇千字总结),很容易超时。在 skill.yaml 里改:

yaml 复制代码
runtime:
 timeout: 120 # 单位秒,建议设到 120

坑 4:本地 dev 模式和线上行为不一致

openclaw dev 跑的是本地 Node 环境,有些系统级环境变量线上没有。我一度把 API Key 写死在代码里调试,差点提交上去。正确做法是用 .env + openclaw secrets set 管理线上密钥:

bash 复制代码
openclaw secrets set LLM_API_KEY "your-key-here"

发布上线

调试没问题后,一行命令发布:

bash 复制代码
openclaw publish

发布后在 OpenClaw 的 Skills 市场能看到你的 Skill,其他开发者可以直接调用。也可以设成私有模式自己用。

小结

OpenClaw 接入大模型 API 本身不难,核心就是配好 LLM Provider。只用一个模型的话直连官方 API 就够了;跟我一样想在 Skill 里灵活切换多个模型,用聚合 API 改一个 base_url 最省事。

2026 年 Skills 生态刚爆发,现在进场还算早。我已经把那个自适应问答 Skill 跑起来了,接下来准备搞一个结合 Function Calling 的工具链 Skill,有进展再写。

有问题评论区聊,特别是踩到新坑的同学------这玩意更新太快,说不定下周又有新坑等着我们。

相关推荐
flyfox2 小时前
Kiro AI IDE 深度使用指南:从入门到高效开发
前端·人工智能·ai编程
爱吃水煎包2 小时前
Agent Skills:从“只会聊天”到“独当一面”
ai编程
与虾牵手2 小时前
一个写了 5 年 Python 的人去学 Rust,第一周差点把键盘砸了
ai编程
不可能的是2 小时前
我是怎么搞清楚 Claude Code 每天用了多少 token
aigc·ai编程·claude
GISer_Jing2 小时前
AI Agent交互模式深度解析:浏览器书签&插件进行AI对话
前端·人工智能·aigc·交互
AI_Ming2 小时前
注意力机制拓展-大模型知识点(程序员转行AI大模型学习)
算法·ai编程
wheelmouse77882 小时前
AI 时代的 Git 进阶术:如何优雅地让多个 Agent 并行开发
人工智能·git·ai编程
柯儿的天空2 小时前
【OpenClaw 全面解析:从零到精通】第007篇:流量枢纽——OpenClaw Gateway 网关深度解析
人工智能·gpt·ai作画·gateway·aigc·ai编程·ai写作