哈喽,大家好!
我是阿星👋
龙虾本身是没有搜索能力的。你可以利用tavily search skills搜索,也可以用openclaw的brave search websearch tool 进行搜索(后者是要钱的,前者可能有点时效问题)。国内新闻搜索还是在这里推荐kim。
好处对比如下:
今天我们就来学习一下
如何在openclaw中进行kimi搜索配置,一次搜出几十个网页。
配置步骤
第一步:获取 API Key
去 Moonshot 开放平台 注册账号,创建一个 API Key,格式是 sk-...。
第二步:修改配置文件
直接把下面这段话发给openclaw:
打开 ~/.openclaw/openclaw.json,添加以下内容:
{
"tools": {
"web": {
"search": {
"enabled": true,
"provider": "kimi",
"kimi": {
"apiKey": "sk-你的key填这里",
"baseUrl": "https://api.moonshot.cn/v1"
}
}
}
}
}
国内用
api.moonshot.cn,海外用api.moonshot.ai。
第三步:重启 Gateway
保存配置后重启 Gateway 生效。
常见问题
搜索能用,但结果答非所问、乱答一通
现象 :让 agent 搜索某个话题,它说"搜到了",但给出的内容和你问的完全不相关,像是在瞎编。
原因 :OpenClaw 的 Kimi 搜索实现有个 bug。Kimi 的 $web_search 是服务端内置函数,工作流程是:
-
- OpenClaw 发请求给 Kimi,带上
$web_search工具声明
- OpenClaw 发请求给 Kimi,带上
-
- Kimi 返回一个搜索凭证(在
tool_calls[0].function.arguments里)
- Kimi 返回一个搜索凭证(在
-
- OpenClaw 应该把这个凭证 原封不动 传回去
-
- Kimi 用凭证去取搜索结果,返回最终答案
但 OpenClaw 的代码错误地从 data.search_results(一个通常为空的顶层字段)构造 tool result,导致传回去的是空数据,Kimi 只能瞎编。
解决办法 :
-
- 修改
/opt/openclaw/src/agents/tools/web-search.ts,找到buildKimiToolResultContent函数,删掉它
- 修改
-
- 找到调用它的地方(大约 1104 行),改成直接用
toolCall.function.arguments作为 content:
messages.push({ role: "tool", tool_call_id: toolCallId, name: toolCall.function?.name ?? "$web_search", content: toolCall.function?.arguments ?? "{}", // 原样回传 }); - 找到调用它的地方(大约 1104 行),改成直接用
-
- 在
/opt/openclaw目录执行pnpm build重新编译
- 在
-
- 重启 Gateway
修复后搜索就正常了。
ok,我是阿星,
更多AI应用,我们下期再见。