跳至主要内容

故障排查

它說憑據被拒絕了

The model provider would not accept the request without credentials.
(status 401 Unauthorized)

要麼你選的那個 provider 沒有設金鑰,要麼設的那個對它無效。按順序查三件事:

  1. 到底選中的是哪個 provider —— config.toml 裡的 model,或者輸入框裡的選單。 指向一個你從沒配過 provider 的模型,是最常見的原因。
  2. env_key 指名的那個環境變量在 agent 執行的那個 shell 裡確實設了。桌面端是從它 保管金鑰的地方讀,不是從你的 shell 讀
  3. 這個金鑰屬於那一家。 一家的金鑰不是另一家的金鑰。

401 是特意不重試的:憑據不會因為再發一遍就變對。

模型清單是空的

模型面板和輸入框的選單都來自 provider 的 /v1/models。空清單意味著那個請求失敗了, 原因在 ~/.opencli/log

一個需要金鑰的 provider 在沒有金鑰時什麼都不返回,所以這條和上面的 401 通常是同一個問題。

它會回答,但從不碰我的文件

你的模型不調用工具。 這是最常見的失望,而且它不是設定錯誤 —— 有些模型就是不調。

測一下。五分鐘,一個固定任務。如果不過,那個模型就是 不適合幹這個,沒有任何設定能改變

它用 grep 而不是好好讀文件

同一個根源的溫和版本:一個沒往 agent 方向訓練過的模型,即使面前擺著文件工具,也會伸手 去夠 shell。 介面上沒有任何東西能補上這個。

一次後臺執行說在等我

它的工作目錄不是產品已知的那幾種 —— 不在工作區、不在部門目錄裡、也不是你按名字授權 過的地方。

要麼在派發面板裡允許這個目錄,要麼把任務移動到一個部門。它被扣住而不是被執行, 是因為一次執行可以寫它目錄裡的任何東西。

一個定時任務從來沒跑過

兩種可能:

  • OpenCLI 關著。 定時的活兒只在它開著時執行。
  • 它被扣住了,如上。被扣住的任務出現在等你授權下面。

對話老是自己壓縮

如果它壓縮完立刻又要壓縮,那長度不是來自對話 —— 是來自每次請求都帶的固定部分,主要是 你那些連接器的工具描述。四個連接器可以在你開口之前就佔掉一萬 token。

它會說一次,而不是每一輪都再來一遍。把這次對話用不上的連接器關掉,就是解法。

桌面端打不開

macOS:執行 xattr -dr com.apple.quarantine /Applications/OpenCLI.app,或者右鍵 → 打開

Windows:SmartScreenMore infoRun anyway

如果還是不行,可能是下載不完整 —— 拿文件大小跟 release 頁面核對一下。

agent 做了什麼我沒看見

產物只列出用 agent 的文件編輯工具做的改動。 它執行的 shell 命令寫的文件 —— heredoc、指令碼、git checkout —— 是真實的改動,但不會出現在那裡

在工作目錄裡跑 git status 才是可靠的答案。

我選了別的語言,介面還是英文

字典是在語言被選中時才去取的,所以有一瞬間會顯示英文。如果它一直是英文,說明那個 chunk 沒加載成功 —— 在桌面端的開發者工具裡看控制臺。

一句沒有翻譯的話永遠顯示英文,這是設計 —— 那是「翻譯還沒跟上」,不是故障。

日志在哪

~/.opencli/log

設定 → 關於 → 日志會打開那個目錄。報告問題時,失敗前後五十行幾乎總是夠了 —— 黏之前先檢查裡面有沒有金鑰。