
【OpenClaw】接入豆包教程(2/12 更新)
因为接入微信容易被封。 我突然想到豆包的语音交互很棒啊,所以就想着能不能接入豆包? 从技术上来讲,可以通过豆包–coze–openclaw–coze–豆包。 搞了一个多小时,终于通了!
原理
在Coze上创建一个智能体,然后发布到豆包,即可使用豆包强大的声音交流方式。
基本原理:豆包--coze--openclaw--coze--豆包
步骤
打开Coze进入智能体开发
https://code.coze.cn/home?from_source=https%3A%2F%2Fwww.coze.cn%2Fcollection
打开如下图。

点击右上角的「回到旧版」。
创建小龙虾对话流
创建智能体:

编写信息

然后,点击右上角,更改类型,选择「对话流」:

出现了,选择添加「对话流」,点击一下:

点击「官方示例」,选择libai,「复制并添加」:

页面就成这样了:

点击「对话流配置」,进入编辑,因为官方给的东西其实已经过时了,很多功能用不了,如下:

把这个节点的模型改成 「豆包角色扮演模型」,然后点击右上角发布。我们先试试可行性。

对话一下,看起来可以用。

点击右上角发布,先进行首次发布,从而让我们豆包可以用它(现在还没有接入小龙虾),只是测试这个功能是否可用。

选择发布到「豆包」

发布之火,可以跳转去对话。

点击「立即对话」,可以跳转到豆包对话。

很好,现在其实我们并没有接入OpenClaw,只是做了一个技术验证,下面我们开始真正的接入OpenClaw。
启动Http
打开GateWay里的这个配置:

或者手动修改配置文件: ~/.clawdbot/clawdbot.json

记得重启gateway,然后进行下面的测试,看看是否正常:
curl -X POST http://127.0.0.1:18789/v1/chat/completions
-H "Authorization: Bearer xxxxxx你的token" \
-H "Content-Type: application/json" \
-d '{
"model": "openclaw",
"user": "doubao",
"messages": [
{
"role": "user",
"content": "你好"
}
]
}'
如果结果正常输出,那么就说明我们的配置生效了,开始下一步。

内网穿透
这里有两个思路:
1、直接去🐟买一个内网穿透工具,一个月几块钱,然后用内网穿透工具绑定 18789端口
2、如果你是云服务器,有公网IP,那就直接访问公网IP:18789
完成了这个操作之后我们开始核心步骤了。
Coze小龙虾对话流修改
回到最开始的小龙虾对话流,把大模型节点去掉,然后加一个HTTP请求节点以及一个代码节点,然后连起来。

如下:

点击HTTP请求节点,选择导入:

导入的Curl如下,其实就是「启动Http」章节类似的代码,只不过,ip需要替换一下:
curl -X POST http://你的公网IP或者域名:18789/v1/chat/completions
-H "Authorization: Bearer xxxxxx你的token" \
-H "Content-Type: application/json" \
-d '{
"model": "openclaw",
"user": "doubao",
"messages": [
{
"role": "user",
"content": "你好"
}
]
}'
导入成功之后,就是这样:

点击右上角的 > 按钮,测试一下是否返回结果。如果有结果返回,就说明是正常的。
然后点击Edit Json,我们需要把每一次发给豆包的信息都发送给OpenClaw:

选中content,输入{会弹出下面的系统变量弹窗:

选择「USER_INPUT」:

这里注意一下,如果 ‘user’这个变量你没有改(比如我就是 coze),那么所有你从 coze 发过去的消息都在一个会话里。
如果你想要分多个会话,可以把上面的 user,使用变量 conversation_name。
点击代码节点,把输入和输出改为如图所示:

然后在代码里写入:
async function main({ params }: Args): Promise<Output> {
try {
const input = params.openclaw;
const bodyStr = typeof input === 'object' ? input.body : input;
if (!bodyStr) throw new Error('无有效body内容');
// 极简二次解析(最多两层,适配偶尔的双层转义)
let data = JSON.parse(bodyStr);
if (typeof data === 'string') {
data = JSON.parse(data);
}
const message = data?.choices?.[0]?.message?.content || "No response";
return { reply: message, success: true };
} catch (e) {
console.error('解析失败:', e);
return { reply: "解析OpenClaw返回内容失败", success: false };
}
}
最后回到结束节点,选中「reply」变量。

很好,基本快完成了,我们点击测试「试运行」。

结果如下,说明已经快成了!

点击右上角发布工作流,然后发布小龙虾🦞!

开始对话吧,你会发现,已经变了!

‼️权限设置(十分重要)
默认发布的时候,是公开,但是OpenClaw是运行在你自己的电脑或者服务器上的,还是得小心,最好设置为「私密」,只有你自己的豆包账号才能对话。

Next-下一步
- 新增图片、文件之类的上传功能