第八節 模型與參數

8.1 模型選擇

設定 → 模型 分三頁:服務提供方(接入與 API Key)、參數設定(模型清單與參數)、路由策略(各場景用哪個模型,見 §8.2.1)。參數設定 頁列出所有可用模型:

  • 套餐額度下可見的模型(由服務端決定)
  • 你自己接入的模型(OpenAI / Anthropic / 阿裡雲通義 / 火山方舟 / 自建大型語言模型服務等)

每個工作區可以指定預設模型;每個會話也可以臨時切換。

「支持圖片輸入」標記:模型條目上有一個「支持圖片輸入」勾選項 —— 勾上後輸入框才允許貼上 / 拖入圖片隨訊息發送(見 §5.3.3)。內置模型表裡已標註的包括 qwen-3.8-27b 與瀾砥 N2.7 系列;自己接入的服務提供方可以手動勾。

選到不可用的模型不會再"靜默降級整個會話":此前給會話選了一個實際不可用的模型時,整條會話可能被悄悄換成別的模型接着跑、且沒有明確提示,後續所有訊息都受影響。現在這種情況會當場報出來,不會因為一次選擇把整個會話帶偏。

8.1.1 Provider 協議

設定 → 模型 → 服務提供方 編輯面板「類型」下拉支持三種協議:

類型 適用場景
AVL Delta 相容 內置 AVL-Zero 預設就用它;每輪只把"本輪新增內容"發給伺服器端,穩定歷史不重復回傳,配合前綴快取治理進一步省流量、省 token、提速
OpenAI(相容) OpenAI 官方接口、阿裡雲通義、火山方舟、Kimi、Moonshot、DeepSeek、自建 OpenAI 相容代理等
Anthropic Claude 官方接口、Anthropic 相容代理 — 用 x-api-key + anthropic-version 頭,支持工具呼叫、串流、思考鏈(extended thinking)、重試

「從 API 重新整理模型」按鈕會按所選協議自動派發,正常拉取對應模型清單。

Delta 端點自動安全降級:如果伺服器端暫未提供 Delta 接口(傳回 404/405/501),本次會話會自動一次性復原到標準的 chat/completions 協議,對話不中斷;真正的驗證類錯誤(401/403)則照常報錯,不會被降級掩蓋。

統計面板會顯示每次呼叫走的是哪種協議(OpenAI Chat / Anthropic Messages / AVL Delta)以及當時的用戶端版本號;發生 Delta 自動降級時,元訊息裡也能看出來。所有發往模型服務的請求都帶上了用戶端版本、協議識別與一個類瀏覽器 User-Agent,便於閘道側記錄檔與統計對賬。

未知模型名傳回 404 是正常的:Delta 端點對不認識的模型名傳回 404,這表示"沒有這個模型",不等於"路由缺失",不會被當成端點不可用而整體降級。

按伺服器端節流提示自動收速:模型服務在回應標頭裡給出速率限制訊息(剩餘額度 / 重設時間)時,用戶端會自適應放慢出站請求,把撞上 429 的概率壓下去,而不是硬撞之後再退避重試。

8.1.2 自定義請求標頭(僅限自己新增的服務提供方)

設定 → 模型 → 服務提供方 編輯面板底部的「進階選項」可展開,對於你自己新增的(非內置)服務提供方,新增了「自定義請求標頭」編輯區:可增刪多組 key / value,隨每次發往該服務提供方的請求逐條帶上,方便對接需要額外驗證頭、閘道識別或特殊版本頭的服務。

  • 生效範圍:OpenAI、Anthropic、AVL Delta(串流 + 非串流)四類請求路徑全部生效。
  • 順序與覆蓋:自定義頭在內置頭(驗證 / User-Agent / anthropic-version 等)之後應用,可覆蓋 Authorization / User-Agent 等預設頭;如果你不希望覆蓋,請避開同名 key。
  • 防注入:自動跳過空 key,並拒絕 key / value 中含換行(CR/LF)的條目,防止請求標頭注入。
  • 已知限制:自定義 Host 頭不生效(Go HTTP 堆疊要求改 req.Host 而非頭本身),如需改 Host 請通過反向代理實現。

內置服務提供方(AVL-Zero 等套餐額度)不暴露此入口,僅自定義服務提供方可編輯。

8.2 參數

每個模型可調參數:

  • Temperature:溫度,0–1,控制隨機性。
  • Top-P:核採樣上限,0–1。
  • 最大輸出 Token:單次回復長度上限;無硬性上限,可超出模型標稱值,以上游實際限制為準。
  • 串流:是否串流繪製(推薦啟用)。

參數同樣按工作區與模式分別儲存。

瀾砥 N2.6 / N2.7 的推薦採樣參數:內置 AVL-Zero 的瀾砥 N2.6 / N2.7 系列已一次性重設為 Temperature 1.0、Top-P 0.95(每個模型只重設一次,之後新拉取的同系列模型直接帶上這組值);你之後手動改過的值不會再被覆蓋。注意參數對話框裡的「重設為預設」對所有模型統一給 0.7 / 0.95。

以上參數統一在「參數設定」抽屜裡編輯 — 從「參數設定」頁和「服務提供方」對話框進入的是同一個面板。收斂到唯一編輯面是有原因的:此前兩處編輯面各存一份、互相覆蓋,改好的參數會被靜默抹掉;現在兩處同時修改按樂觀鎖校驗,衝突就近提示而不是無聲覆蓋。

8.2.1 模型路由策略:按場景選模型

設定 → 模型 → 路由策略 按場景決定用哪個模型,改動下一次呼叫即生效:

場景 可選策略 預設 說明
主會話 全域一致 / 跟隨會話 全域一致 「全域一致」所有會話共用一個「當前模型」;「跟隨會話」每個會話各自記住自己的模型,新增會話時快照當前全域選擇作為起點。會話自動改名跟主會話用同一個模型
子任務 跟隨主會話 / 跟隨人設 / 優先指定模型 跟隨主會話 「跟隨人設」用子代理定義(或委派時指定)的模型,沒有再用主會話模型;選「優先指定模型」時還要選不可用時復原到跟隨主會話還是跟隨人設
例行程序 跟隨主會話 / 自由選擇 / 優先指定模型 跟隨主會話 「自由選擇」用每個任務自己選的模型,只有這個策略下任務對話框裡才顯示模型選擇;任務沒選模型或指定模型不可用時跟隨主會話
Hook 跟隨主會話 / 優先指定模型 跟隨主會話 Hook 條目裡寫了 model 時以條目為準;指定模型不可用時跟隨主會話
sec.decompile / code.ask / 記憶自動提煉 隨機選擇 / 成本優先 / 效果優先 效果優先 只在已啟用且有 API Key 的瀾砥系列模型中選;沒有可用的瀾砥模型時改用當前會話的模型
自動修復 關閉 / 詢問後切換 / 自動切換 詢問後切換 選中的模型不可用或上游故障時,是否改用另一個啟用了同名模型的服務提供方;另有「切換後保持」開關(預設關),見 §8.2.4
  • 「優先指定模型」的候選:只列出已啟用、未下線、且服務提供方有可用 API Key 的模型。之前選中的模型後來被停用、下線或失去 Key 時,按鈕描黃並標「(不可用)」,呼叫時按復原方式選模型。
  • 成本 / 效果怎麼排:AVL-Zero 不提供定價,按型號命名推斷 —— Flash 最省、Mid 其次、標準檔最貴;版本越新效果越好;Preview 等預覽版排在同版本正式版之後。所有候選都配了價格時,成本優先按價格排。
  • 委派時指定的模型:主代理委派子任務時傳的 model 參數只在「跟隨人設」下生效,其餘策略下由設定決定。
  • 跟隨會話的回落:會話記的模型已失效(被刪 / 下線)時自動回落到全域選擇,不會卡住。
  • 「這一輪用哪個模型」由一處統一判定:介面、背景呼叫與終端機介面(TUI)得出的結果一致。「跟隨會話」下,會話若沿用的是建會話時替你挑的預設模型,會跟隨當前的預設模型設定變化;你明確選過的模型則原樣使用,即使它不可用也不會被悄悄換掉,而是交給「自動修復」處理。本機模式的會話只用你給它選的模型,不跟隨預設模型或全域選擇。
  • 應用自動發起的回合同樣按這套規則選模型:自動壓縮後的續跑、「繼續」補推、待辦核對、目標續轉、自愈、測試門禁與恢復中斷任務,都使用你為該會話選擇的模型,不會誤用其他服務提供方的模型。「全域一致」下的當前選擇也會儲存到配置中。

[!warning] 資料去向:code.ask 檢索到的程式碼片段、sec.decompile 的樣本位元組、記憶提煉的會話內容,會發給路由選中的瀾砥模型(通常是內置 AVL-Zero 雲端),不一定是當前會話的模型;工具結果裡的 provider / model 標明實際去向。要求資料不出當前會話所用的服務提供方時,啟用本機模式(見 §13.2.2)。

複製會話 / .zsession 匯入匯出都自動帶上模型欄位,跨設備 / 跨人交接不丟。匯出 .zsession 時一並打包子 Agent 工作記錄 — 主會話裡派出去的每個子任務當時怎麼做的、調了什麼也都會還原出來,跨機或發同事開啟後排查 / 復盤更完整。

匯入 / 重建更穩:修了「把會話匯入到新增工作區後不顯示、空白工作區卻誤報『已存在』」的問題(根因是寫入目標錯位 + 沿用原會話 ID 造成同 ID 跨工作區衝突),現在匯入 / 重建都能正常完成。

8.2.2 未啟用模型預設折疊

設定 → 模型 → 參數設定 每個服務提供方分組預設只顯示已啟用的模型,不再被一長串沒開的型號淹沒;組底部有「展開 N 個未啟用的模型」按鈕,點開看全部、可再收起。

  • 展開狀態按服務提供方各自記憶(僅本次開啟期間)。
  • 搜尋時自動繞過折疊:搜尋命中的未啟用模型照常顯示,不會被藏住。
  • 開關切換過程中行不閃跳。

8.2.3 模型 ID 中的斜槓原樣保留

像 openrouter/free、openai/gpt-4o、anthropic/claude-3.5-sonnet 這類 OpenRouter / Cloudflare 等使用的 vendor/model 命名方式,斜槓是上游官方分隔符。AVL Code 現在原樣保留 — 手動新增與重新整理兩條路徑都不會把斜槓改成連字元。

此前若你新增這類模型遇到「模型不存在」的報錯,重新整理一次模型清單即可復原(舊的壞條目會被換成正確的 ID)。

8.2.4 選中的模型不可用時「自動修復」

選中的模型可能因為服務提供方被刪除 / 停用、該提供方裡沒有這個模型、模型被停用或下線而不可用。設定 → 模型 → 路由策略 最後一行「自動修復」決定這時怎麼辦(上游故障時的備用切換同樣由它決定,見 §8.6):

策略 行為
關閉 直接報錯,不切換
詢問後切換(預設) 輸入框上方彈出確認條「切換備用模型?」,說明哪個服務提供方上的哪個模型不可用、可改用哪個提供方(同一模型),並提示備用通道可能走你自己的 key 或把內容發往不同上游;點「切換並傳送」用備選發出,點「不用」則訊息保留、暫不作答,改選模型後可以繼續生成
自動切換 不再詢問,直接改用備選,並提示「已自動改用 …」
  • 備選怎麼挑:只換到啟用了同名模型、未下線且配有可用 API Key 的其他服務提供方(按提供方順序取第一個),絕不換成別的模型。
  • 切換後保持(預設關,策略不為「關閉」時出現):啟用後,切換到的提供方會成為該會話(跟隨會話)或全域(全域一致)的模型選擇,直到你改選;關閉則只管當次執行,下一輪仍用原來的選擇。
  • 彈不了確認條的場景:隨行通訊、例行程序、Hook、子任務、自動續跑、上下文壓縮、記憶提煉、終端機介面(TUI)、恢復中斷任務等,在「詢問後切換」下不切換、直接報錯,並以提示說明場景、模型、原因與所用策略(同一場景同一模型 5 分鐘內只提示一次);若會話這一輪已經切換過,這些呼叫跟着用備選。恢復中斷任務會先預檢,起不來就不往會話裡寫訊息。
  • 本機模式:「自動切換」按「詢問後切換」處理 —— 不會自動切到外部服務,能彈確認條時仍由你決定。
  • 預設模型本身不可用時不走這裡,而是自動退到第一個啟用的模型。

8.2.5 思考強度(瀾砥 N2.7)

使用內置 AVL-Zero 的瀾砥 N2.7 系列(含 瀾砥 N2.7-Flash 這類帶後綴的變體)時,輸入區模型名右側會多出一個電池圖示按鈕,點開即可調節模型的思考強度:

檔位 說明
不思考 不思考,直接作答,最快
低 少量思考,適合簡單明確的任務
高(預設) 充分思考,適合大多數編碼任務
更高 更深入的思考,適合難題
全力以赴 思考預算拉滿,最慢、最耗用量
  • 滑軌兩端標「更快 / 更努力」;拖曳時只預覽、鬆手才儲存;鍵盤可用 {{kbd:←}} / {{kbd:→}}、{{kbd:Home}} / {{kbd:End}} 切換,{{kbd:Enter}} 或空格選中,{{kbd:Esc}} 收起;只有鍵盤操作時才出現焦點高亮環。
  • 按模型儲存:設定對使用該模型的所有會話生效,從下一條訊息起。沒設定過時顯示「高(預設)」,請求裡同樣按「高」發送;「恢復預設」回到未設定狀態。
  • 其它模型(包括自己新增的服務提供方裡的同名模型)不顯示這個按鈕。
  • 輔助呼叫恆不思考:上下文壓縮、會話自動改名、記憶提煉、Hook、sec.decompile / code.ask 等背景呼叫固定按「不思考」發送,不跟隨你的選擇。
  • 核對實際發了什麼:統計面板的協議行顯示本次呼叫實際發送的「思考強度 …」;上游拒收該參數時會自動去掉後重試,此時顯示「預設」。狀態列顯示的是你選的檔位,二者對不上時以統計面板為準。
  • 思考不再混進本文:個別請求沒帶上思考強度、模型把思考連同結束標記 </think> 寫進本文時,會自動把思考與本文拆開 —— 串流輸出期間可能先顯示在本文裡,結束後儲存的記錄與帶入下一輪的歷史都是拆好的。部分服務在不串流輸出時傳回的思考內容,也不再整段丟失。

8.3 多服務提供方兜底

如果你接入了多個服務提供方,AVL Code 支持設定優先級與兜底:第一服務提供方失敗 / 限流時自動切到第二服務提供方,避免單點。

8.4 上下文長度與折疊

不同模型上下文長度不同。AVL Code 會在接近上限時自動觸發歷史折疊(見第十七節),把早期訊息壓縮為摘要,確保對話可以無限延續。

8.5 自修正循環:發生錯誤自動換思路

AI 遇到錯誤時會按錯誤類型自動換政策接着自愈,而不是一條道走到黑。這套機制始終啟用、無需配置;自愈過程往對話裡注入的結果型內部訊息(auto_self_heal)不會顯示在對話中,你看到的仍是乾淨的正常輸出。上游報錯會先分流來源(請求側 / 閘道 / 上游服務提供方)與類別(認證 / 限流 / 配額 / 餘額 / 無可用通道 / 過載 / 伺服器端錯 / 上下文超限 / 內容被安全過濾等),再對症選擇修正政策:

修正政策 適用情形 處理方式
壓縮重試(transient_compact) 上下文超限 先折疊壓縮上下文再續跑(預設最多 2 次)
切換服務提供方(transient_fallback) 無可用通道 / 上游過載 / 上游認證失敗 掛起並提示切到備用服務提供方,確認後接着跑(預設最多 3 次,見 §8.6)
退避重試(backoff) 限流 / 超時 / 網路抖動 按退避節奏自動重試(預設最多 3 次)
交還你決定(terminal) 餘額不足 / 需重新登入 / 模型不存在 直接給出明確提示並停下,不盲目重試

即使伺服器端 5xx / 4xx 沒有錯誤詳情,也能憑狀態碼兜底走對應的自愈路徑。除了上游報錯,AI 自身產出的問題也會自愈:

  • 回復被長度截斷會自動從截斷處續寫(不重頭來),預設最多 3 次。
  • 思考繞圈(反復重復同一段推理)會被打斷,提示直接給結論或採取下一步動作。
  • 回覆停在半句(話沒說完就收尾、也沒繼續執行)或說了下一步卻沒動手(句末宣告「接下來我來……」卻沒有呼叫工具)時,自動推一次續跑,不必你再追問「怎麼停了」。判定看回復的最後一句:正常以句號收尾、向你提問、交還給你決定、客套收尾或清單收尾都不受影響。
  • 以上產出型自愈共用一個連續嘗試上限(預設 3 次,隨歷史成功率下調,見 §8.5.1),乾淨收尾後計數清零;撞到上限時提示「自動修復已放棄:… 連續幾輪沒能糾正 —— 需要人工介入」。
  • 回復被內容安全過濾會換個表述自愈。
  • 工具名不合規被上游拒絕時,會自動修正工具名後重試(幾種上游措辭——包括散文式報錯——都能識別)。
  • 同一處檢查 / 測試反復失敗或待辦長時間無進展時,會升級提示讓 AI 換思路(如考慮復原本次改動重來),而不是反復撞牆;到達上限後停下交還給你。

網路抖動專門優化:網路瞬斷 / 臨時掉線時會自動等網路復原再接着重試,而且這種「等網路回來」的等待不消耗重試次數——出門進電梯、Wi-Fi 抖一下這類情況不會平白把重試預算燒光。連線被重設、域名一時解析不了、交握中斷等連線級瞬斷也能被正確識別為網路問題,不再被籠統報成「模型發生錯誤」,省得你白去查上游配置。

自愈也會從歷史裡學習(見 §8.5.1):每類自愈的成敗會被記錄,下次據此動態調整允許嘗試的次數——歷史上幾乎沒救回來的,少試兩次就盡早交還給你;還能救的也不輕易放棄。

8.5.1 自愈次數隨歷史動態調整

自修正會參考過去的自愈成敗記錄(落盤在設定目錄的 self-heal-stats.json),對每一類自愈動態調整本次允許的嘗試次數:樣本不足(< 5 次)時用預設上限;歷史平滑成功率 < 20% 壓到 1 次、20–50% 減 1 次、≥ 50% 用滿預設。每類至少保留 1 次嘗試,歷史只會調低、不會調高於預設上限。

8.6 服務提供方自動備選

當某個服務提供方持續不可用(無可用通道 / 上游過載 / 上游側認證失敗)時,怎麼處理由 設定 → 模型 → 路由策略 的「自動修復」決定(見 §8.2.4):「關閉」直接報錯;「自動切換」不再詢問,直接換到備選並提示「已自動改用 …重試」;預設的「詢問後切換」則掛起本輪並在輸入框上方彈出一條切換確認條:

  • 只會切到同一個模型的另一個已啟用服務提供方(按配置順序選第一個真正包含該模型的,絕不降級到別的模型)。
  • 確認條文案形如「切換備用模型? 首選 {A} 暫時不可用,可改用 {B}(模型 {M})重試本輪」,並提示「⚠ 備用通道可能走你自己的 key(產生你的費用),或把內容發往不同上游」。
  • 點「切換並重試」即用新服務提供方無縫接着跑;點「不用」則放棄本次切換。