跳到主要内容

故障排查

它说凭据被拒绝了

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

设置 → 关于 → 日志会打开那个目录。报告问题时,失败前后五十行几乎总是够了 —— 粘之前先检查里面有没有密钥。