openclaw调用ollama托管的deepseek模型需先确保ollama已加载对应量化模型并运行服务,再配置config.yaml中provider为ollama、model为完整模型名、base_url为http://localhost:11434(无尾斜杠),最后适配deepseek不支持system角色的特性,将系统提示注入首条user消息。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用OpenClaw调用Ollama托管的DeepSeek模型,核心是让OpenClaw通过标准HTTP接口连接本地Ollama服务,并正确声明模型名与系统提示格式。跳过这一步直接写config.yaml,OpenClaw会报错“model not found”且不提示具体原因。
确认Ollama已加载DeepSeek模型
打开终端,运行ollama list,检查输出中是否包含类似deepseek-coder:6.7b-instruct-q4_K_M或deepseek-vl:1.0-q4_K_M的条目。如果没有,先执行ollama pull deepseek-coder:6.7b-instruct-q4_K_M下载——注意别漏掉冒号后的量化版本标识,Ollama对模型名大小写和后缀极其敏感。
运行ollama serve确保服务在前台启动(或sudo systemctl start ollama启用后台服务),再用curl http://localhost:11434/api/tags验证API可访问。返回JSON中必须有models数组且含目标模型,否则OpenClaw无法发现它。
配置OpenClaw使用Ollama模型
进入OpenClaw项目根目录,编辑config.yaml文件。
将llm:区块下的provider:设为ollama,model:填入Ollama中实际显示的完整模型名(例如deepseek-coder:6.7b-instruct-q4_K_M),base_url:设为http://localhost:11434。
【base_url末尾不能加斜杠】——加了会导致OpenClaw拼出http://localhost:11434/v1/chat/completions这种错误路径,Ollama只认/api/chat。
保存config.yaml后,在同一目录下执行python main.py启动OpenClaw。首次运行时会自动检测Ollama连接状态,若看到✅ Connected to Ollama at http://localhost:11434和✅ Model 'deepseek-coder:6.7b-instruct-q4_K_M' is available两行日志,说明配置成功。
适配DeepSeek的系统提示格式
DeepSeek系列模型(尤其是coder和vl版本)不支持OpenAI风格的role: system字段。OpenClaw默认发送的请求体含system角色,必须修改。
方法一:修改openclaw/llm/ollama.py中_format_messages()函数,把所有role == "system"的消息内容提取出来,拼接到第一条user消息开头,前面加### System:\n前缀,然后删掉原system条目。
方法二:在config.yaml里添加system_prompt: "You are a helpful coding assistant. Think step by step."字段,OpenClaw v0.3.2+会自动将其注入首条user消息——但注意,此字段值不能含换行符,否则Ollama解析失败返回500。
改完后重启python main.py,输入!test命令触发一次推理。如果返回正常响应且无invalid role报错,说明格式适配完成。











