OpenClaw【二、集成本地模型】
将 OpenClaw(一个开源的自动化爬虫与Agent框架)与本地 Ollama 部署的大模型集成,核心在于利用 Ollama 提供的 OpenAI 兼容 API。OpenClaw 通常设计为支持 OpenAI 协议,因此只需将其配置指向本地的 Ollama 服务即可。
以下是基于 2026 年主流版本的详细集成流程:
第一阶段:准备 Ollama 环境 (服务端)
在配置 OpenClaw 之前,必须确保 Ollama 服务已就绪且模型适合 Agent 任务。
1. 启动 Ollama 服务
确保 Ollama 正在运行。
# 终端执行
ollama serve
默认监听地址:http://127.0.0.1:11434
2. 选择并优化模型 (关键步骤)
OpenClaw 作为 Agent,需要模型具备较强的指令遵循能力和函数调用 (Function Calling) 能力。
- 推荐模型:
qwen2.5:7b(中文好),llama3.1:8b(通用强),mistral-nemo。 - 拉取模型:
ollama pull qwen2.5:7b
3. 创建高上下文专用模型 (可选但推荐)
爬虫任务通常涉及长网页内容,默认模型的上下文(Context Window)可能不足(通常为 4k 或 8k)。建议创建一个 32k 上下文的版本:
- 新建文件
Modelfile:FROM qwen2.5:7b PARAMETER num_ctx 32768 SYSTEM "You are a helpful web scraping assistant. Always output valid JSON when requested." - 构建新模型:
记住这个模型名称ollama create qwen2.5-agent -f Modelfileqwen2.5-agent,稍后配置要用。
第二阶段:配置 OpenClaw (客户端)
OpenClaw 的配置方式取决于其版本(CLI 交互式或配置文件)。以下是两种主流方法。
方法 A:通过环境变量配置 (最通用,推荐 Docker/脚本使用)
OpenClaw 通常读取标准的环境变量来连接 LLM 提供商。
-
设置环境变量:
在运行 OpenClaw 之前,导出以下变量:# 指定提供商类型为 openai (因为 Ollama 兼容 OpenAI 协议) export LLM_PROVIDER=openai # 基础 URL 指向 Ollama 的 v1 接口 (注意末尾的 /v1) export OPENAI_BASE_URL=http://127.0.0.1:11434/v1 # API Key (Ollama 本地不需要真实 key,填任意非空字符串,如 'ollama') export OPENAI_API_KEY=ollama # 指定要使用的模型名称 (必须与 ollama list 中的名称一致) export LLM_MODEL=qwen2.5-agent -
启动 OpenClaw:
openclaw run <your_task>
方法 B:修改配置文件 (config.json 或 .env)
如果你使用配置文件管理,找到 OpenClaw 的配置目录(通常在 ~/.openclaw/config.json 或项目根目录)。
配置示例 (config.json):
{
"llm": {
"provider": "openai",
"base_url": "http://127.0.0.1:11434/v1",
"api_key": "ollama-local-key",
"model": "qwen2.5-agent",
"parameters": {
"temperature": 0.7,
"max_tokens": 4096,
"stream": true
}
},
"features": {
"enable_function_calling": true,
"enable_rag": true
}
}
注意:enable_function_calling 对于 OpenClaw 提取结构化数据至关重要,确保你的 Ollama 模型支持此功能(Qwen2.5 和 Llama 3.1 均支持)。
第三阶段:验证集成
在正式运行爬虫任务前,先进行连通性测试。
1. 测试 API 连通性
使用 curl 确认 OpenClaw 能访问 Ollama:
curl http://127.0.0.1:11434/v1/models
如果返回 JSON 列表包含你的模型,说明网络通畅。
2. 运行 OpenClaw 简单任务
创建一个简单的测试任务(例如提取某新闻标题),观察日志:
openclaw run --url "https://news.example.com" --task "Extract the main headline and date."
观察重点:
- 无报错: 没有出现
Connection refused或401 Unauthorized。 - 响应速度: 本地模型首字生成时间 (TTFT) 应在秒级。
- 输出质量: 检查是否正确提取了数据。如果模型胡言乱语,可能是上下文不够(回到第一阶段调整
num_ctx)或温度参数过高。
第四阶段:高级场景与故障排查
场景 1:跨机器部署 (Docker 中的 OpenClaw 连接 宿主机的 Ollama)
如果 OpenClaw 运行在 Docker 容器中,而 Ollama 运行在宿主机:
- 宿主机配置: 设置
OLLAMA_HOST=0.0.0.0:11434并重启 Ollama。 - 防火墙: 确保宿主机防火墙允许 11434 端口。
- 容器配置:
- Linux:
base_url设为http://host.docker.internal:11434/v1或宿主机 IP。 - Mac/Win:
base_url设为http://host.docker.internal:11434/v1。
- Linux:
常见错误及解决方案
| 错误现象 | 可能原因 | 解决方案 |
|---|---|---|
Connection refused |
地址错误或 Ollama 未启动 | 检查 URL 是否包含 /v1;确认 ollama serve 正在运行。 |
401 Unauthorized |
API Key 为空 | 在配置中填入任意字符串作为 api_key (如 ollama)。 |
Context length exceeded |
网页内容太长,超出模型限制 | 在 Modelfile 中增大 num_ctx 并重新 ollama create。 |
Model not found |
模型名称不匹配 | 运行 ollama list 核对名称,确保配置中的 model 字段完全一致。 |
| 输出格式错误 (JSON 解析失败) | 模型指令遵循能力弱 | 换用更强的模型 (如 Qwen2.5-14B);在 System Prompt 中强调 "Output ONLY JSON"。 |
总结流程图
+-----------------------+
| 开始集成流程 |
+----------+------------+
|
v
+-----------------------+
| 1. 准备 Ollama 环境 |
| - 安装并启动服务 |
| - 命令: ollama serve |
+----------+------------+
|
v
+-----------------------+
| 2. 获取模型 |
| - 命令: ollama pull |
| (推荐: qwen2.5:7b) |
+----------+------------+
|
+------> [需要长上下文吗?] ------+
| |
(否) (是)
| |
| +-----------------------------+
| | 创建自定义 Modelfile |
| | - 设置 PARAMETER num_ctx |
| | - 命令: ollama create |
| +--------------+--------------+
| |
+<--------------------------------+
|
v
+-----------------------+
| 3. 配置 OpenClaw |
| --------------------- |
| Provider: openai |
| Base URL: |
| http://...:11434/v1 |
| API Key: ollama |
| Model: <你的模型名> |
+----------+------------+
|
v
+-----------------------+
| 4. 验证连通性 |
| - curl 测试 /v1/models|
| - 检查是否返回模型列表|
+----------+------------+
|
v
+-----------------------+
| 5. 运行 OpenClaw 任务 |
| - 执行爬虫指令 |
| - 观察日志输出 |
+----------+------------+
|
v
+-----------------------+
| 集成成功! |
+-----------------------+
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/19724629

浙公网安备 33010602011771号