必须精准绑定knowledgemicroagent层才能调用指定大模型:先启用该微代理,再硬编码litellmclient参数并确保model名准确,接着注入llm_model_name上下文,最后通过日志和curl验证生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让OpenClaw的知识库问答模块调用指定大模型,不是在全局设置里一键切换那么简单,必须精准绑定到KnowledgeMicroagent这一层,否则提问仍走默认模型路由。
确认KnowledgeMicroagent已启用
打开OpenClaw配置文件(通常为config.yaml或agent_config.py),找到microagents节点下的knowledge子项。确保enabled: true,若为false则后续所有模型指定均无效。
这一步跳过会导致知识库问答功能完全不触发,界面无响应也不报错,容易误判为前端问题。
在KnowledgeMicroagent中硬编码模型参数
进入microagents/knowledge/目录,打开__init__.py或agent.py,定位到初始化LLM client的位置。
将原本类似llm = LiteLLMClient()的调用,改为显式传入模型名与API端点:
llm = LiteLLMClient(model="deepseek-r1", api_base="https://maas.huaweicloud.com/v1", api_key="${HUAWEI_MaaS_KEY}")
【model字段必须与LiteLLM支持的模型标识完全一致】,例如DeepSeek-R1在LiteLLM中注册名为deepseek-r1,写成deepseek-r1-chat或deepseek_r1都会导致404错误。
覆盖默认提示词中的模型声明
KnowledgeMicroagent的系统提示词(通常存于prompts/knowledge_system.j2)中,可能包含类似{{ llm_model_name }}的Jinja变量。该变量若未被上下文注入,会回退为空字符串,从而触发LiteLLM的default fallback逻辑。
在调用KnowledgeMicroagent前,手动注入模型名上下文:
agent.invoke(knowledge_query, context={"llm_model_name": "deepseek-r1"})
这步漏掉,即使代码层指定了模型,提示词里仍可能混用其他模型生成的摘要,造成知识召回结果风格不一致。
验证模型是否真正生效
启动OpenClaw后,发起一次知识库查询,立即查看日志输出(如logs/agent.log)中形如[KnowledgeMicroagent] Calling LLM: deepseek-r1 at https://maas.huaweicloud.com/v1的记录。
若看到的是gpt-4o或claude-3-sonnet等非预期模型名,说明前三个步骤中至少有一处未落实。
直接curl测试端点:curl -H "Authorization: Bearer $HUAWEI_MaaS_KEY" -d '{"model":"deepseek-r1","messages":[{"role":"user","content":"hello"}]}' https://maas.huaweicloud.com/v1/chat/completions,确认服务端能正常响应,排除密钥或网络问题。










