OpenClaw 插件开发新利器:5 分钟掌握 LLM Completion API 集成
——
OpenClaw 插件开发新利器:5 分钟掌握 LLM Completion API 集成
OpenClaw 最新发布的插件 SDK 正式引入 LLM Completion API,这意味着开发者无需自建 AI 基础设施,即可在插件中直接调用大语言模型能力。本文将带你快速理解这一功能的核心价值,并手把手完成首次集成。
—
为什么需要 LLM Completion API?
传统插件开发中,若想让功能具备智能对话或文本生成能力,开发者往往需要:
- 自行对接 OpenAI、Claude 等第三方 API
- 处理复杂的认证、限流和错误重试逻辑
- 维护多模型兼容的抽象层
OpenClaw 的新 API 将这些痛点一次性解决——通过标准化的插件接口,直接暴露底层 LLM 能力,让你专注于业务逻辑而非基础设施。
—
核心功能详解
1. 统一的模型调用接口
新版本 SDK 提供 llm.complete() 方法,屏蔽了不同 LLM 提供商的差异:
// 基础调用示例
const response = await openclaw.llm.complete({
model: "gpt-4", // 支持多模型切换
messages: [
{ role: "system", content: "你是一个专业的代码助手" },
{ role: "user", content: "解释这段代码的作用" }
],
temperature: 0.7, // 控制生成随机性
maxTokens: 2048 // 限制输出长度
});
console.log(response.content); // 获取模型回复
2. 流式响应支持
对于长文本生成场景,API 支持 Server-Sent Events (SSE) 流式输出:
// 流式调用,实时获取片段
const stream = await openclaw.llm.complete({
model: "claude-3-sonnet",
messages: [{ role: "user", content: "写一篇关于微服务的文章" }],
stream: true // 启用流式模式
});
for await (const chunk of stream) {
process.stdout.write(chunk.content); // 逐字输出
}
3. 内置上下文管理
API 自动处理对话历史的维护,支持两种模式:
| 模式 | 说明 | 适用场景 |
|:—|:—|:—|
| stateless | 每次调用独立,无历史记忆 | 单次问答、代码分析 |
| stateful | 自动维护多轮对话上下文 | 聊天机器人、交互式助手 |
// 启用状态化会话
const session = openclaw.llm.createSession({
model: "gpt-4",
systemPrompt: "你是专业的 DevOps 顾问"
});
// 多轮对话自动关联上下文
const reply1 = await session.send("如何优化 Docker 镜像?");
const reply2 = await session.send("刚才的方法对 CI/CD 有什么影响?");
—
快速开始:5 步完成集成
步骤 1:升级插件 SDK
更新到包含 LLM API 的最新版本
npm install @openclaw/plugin-sdk@latest
或使用 Yarn
yarn upgrade @openclaw/plugin-sdk@^2.5.0
步骤 2:配置模型凭证
在插件配置文件 openclaw.config.json 中添加:
{
"llm": {
"provider": "openai", // 或 "anthropic", "azure", "local"
"apiKey": "${OPENAI_API_KEY}", // 支持环境变量注入
"defaultModel": "gpt-4-turbo-preview",
"timeout": 30000 // 请求超时(毫秒)
}
}
步骤 3:声明权限
在插件清单 manifest.json 中申请 LLM 权限:
{
"permissions": [
"llm:complete", // 基础调用权限
"llm:stream", // 流式输出权限(可选)
"llm:session" // 状态化会话权限(可选)
]
}
步骤 4:编写业务代码
// src/handlers/codeReview.js
export async function reviewCode(codeSnippet) {
// 调用 LLM 进行代码审查
const result = await openclaw.llm.complete({
model: "gpt-4",
messages: [
{
role: "system",
content: "你是一位资深代码审查员,关注安全性、性能和可维护性。"
},
{
role: "user",
content: 请审查以下代码:\n\\\\n${codeSnippet}\n\\\`
}
],
responseFormat: { type: "json_object" } // 强制 JSON 输出
});
return JSON.parse(result.content);
}
步骤 5:本地测试
启动本地开发服务器
openclaw plugin dev
运行集成测试
openclaw test --scenario llm-integration
---
实战场景:构建智能文档助手
以下是一个完整的插件示例,自动为代码生成注释文档:
// manifest.json { "name": "smart-doc-generator", "version": "1.0.0", "permissions": ["llm:complete", "filesystem:read"], "commands": { "generateDocs": { "title": "生成智能文档", "handler": "src/generateDocs.js" } } }为以下 ${file.language} 代码生成 JSDoc 风格文档:\n${code}// src/generateDocs.js export default async function generateDocs(context) { const { selectedFiles } = context; for (const file of selectedFiles) { const code = await openclaw.fs.readFile(file.path); // 调用 LLM 生成文档 const documentation = await openclaw.llm.complete({ model: "claude-3-opus", messages: [{ role: "user", content:
}], temperature: 0.2 // 低温度确保输出稳定 }); // 写入文档文件 const docPath = file.path.replace(/\.js$/, '.md'); await openclaw.fs.writeFile(docPath, documentation.content); } return { success: true, generatedCount: selectedFiles.length }; }
---
常见问题解答 (FAQ)
Q1: LLM Completion API 支持哪些模型提供商?
目前支持 OpenAI (GPT-3.5/4)、Anthropic (Claude 系列)、Azure OpenAI 以及本地部署的 Ollama 模型。完整列表请参考 OpenClaw 文档。
Q2: 使用 API 会产生额外费用吗?
OpenClaw 平台本身不收取中间费用,但调用第三方 LLM 服务时,需自行承担对应提供商的 API 费用。建议配置用量限制:
{
"llm": {
"dailyQuota": 1000, // 每日最大请求数
"monthlyBudget": 50 // 月度预算上限(美元)
}
}
Q3: 如何处理模型调用失败或超时?
API 内置了指数退避重试机制,默认重试 3 次。你也可以自定义错误处理:
try {
const result = await openclaw.llm.complete({ / ... / });
} catch (error) {
if (error.code === 'LLM_RATE_LIMITED') {
// 触发限流,建议提示用户稍后重试
return { error: "当前请求过于频繁,请稍后再试" };
}
// 其他错误处理...
}
Q4: 能否在插件中同时使用多个模型?
可以。每次调用可独立指定 model 参数,实现多模型协作工作流:
// 先用轻量模型提取关键词
const keywords = await openclaw.llm.complete({ model: "gpt-3.5-turbo", ... });
// 再用强模型生成深度分析
const analysis = await openclaw.llm.complete({ model: "gpt-4", ... });
Q5: 本地开发时需要真实 API Key 吗?
不需要。OpenClaw CLI 提供模拟模式:
openclaw plugin dev --mock-llm
此时所有 LLM 调用返回预设的测试响应,方便离线开发和单元测试。
---
总结与下一步
LLM Completion API 的引入,标志着 OpenClaw 插件生态正式进入 AI-Native 时代。关键要点回顾:
| 能力 | 价值 |
|:---|:---|
| 统一接口 | 一行代码切换多模型 |
| 流式输出 | 实时响应,提升用户体验 |
| 会话管理 | 自动维护多轮对话上下文 |
| 权限控制 | 精细化管控插件 AI 能力 |
推荐行动:
1. 立即升级 SDK 体验新功能:npm install @openclaw/plugin-sdk@latest`
2. 阅读完整 API 参考:OpenClaw 文档
3. 在 OpenClaw 社区 分享你的 AI 插件创意
---
相关阅读
---