OpenClaw 模型設定優先權層級

我明明設定好 glm-4.7-fresh 為預設模型 

可到 telegram 跑的又是另外一個, 

改來改去,一直摸不清楚 

乾脆叫 Claude 教我😅

底下就是他教的 :

 

OpenClaw 的模型覆蓋邏輯是由上至下(數字越大優先權越高):

優先序 層級名稱 影響範圍 關鍵檔案位置
P4 Session Override 最高優先:只影響該次對話 (例如特定的 TG 私訊) sessions.json 中的 modelOverride
P3 Agent Models 影響特定 Agent 的可用清單 (白名單) ~/.openclaw/agents/main/agent/models.json
P2 Agent Defaults 全域預設:沒被指定時,大家通用的模型 openclaw.jsonagents.defaults.model
P1 Global Providers 最底層:所有可用的連線資訊 (電話簿) openclaw.jsonmodels.providers

💡 白話概念對照表

如果用「打電話」來比喻,邏輯會非常清楚:

層級 作用描述 生活比喻
Global Providers 定義「我有哪些模型可用」 電話簿:存了所有人的號碼
Agent Defaults 設定「平常優先打給誰」 快速撥號:沒想太多就撥這支
Agent Models 規定「這個 Agent 准許打給誰」 白名單:這支分機只能打某些號碼
Session Override 指令「這通電話我要改撥另一支」 手動撥號:這次強行指定號碼

🔍 實戰場景分析(老漁的 .94 案例)

為什麼你設定了 glm-4.7-fresh 為預設,TG 跑的卻是另一個?

  • 全域設定 (P2):你確實把 primary 設成了 73-glm
  • 群組對話 (龍蝦指揮所):正常跟隨 P2,所以使用的是 glm-4.7-flash
  • TG 私訊 (P4):你的 TG DM 因為之前可能下過指令或紀錄,被 Override 鎖定在了 74-lfm2/lfm2:24b
    解決方法:在 TG 對話中輸入 /model 指令重新切換,或是直接去 sessions.json 把該 Session 的 modelOverride 刪掉。

🚀 疑難排解:我想改模型,該動哪裡?

你的目標 修改路徑
改所有人的預設模型 修改 openclaw.jsonagents.defaults.model.primary
改某個特定對話的模型 在 TG 中下指令,或修改 sessions.jsonoverride 欄位
新增/移除可用模型 兩處都要改

1. openclaw.json (連線資訊)

2. agent/models.json (權限清單)

老漁碎碎念筆記

以前踩過的坑就是「只改了 openclaw.json 但沒改 agent/models.json」。

記住: 沒進 Agent 的白名單,全域設定再怎麼改,Agent 也看不到那個模型!

 

發佈留言

93 − = 88
Powered by MathCaptcha

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料