跳到主要内容

故障排查

它说凭据被拒绝了​

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:SmartScreen → More info → Run anyway。

如果还是不行,可能是下载不完整 —— 拿文件大小跟 release 页面核对一下。

agent 做了什么我没看见​

产物只列出用 agent 的文件编辑工具做的改动。 它执行的 shell 命令写的文件 —— heredoc、脚本、git checkout —— 是真实的改动,但不会出现在那里。

在工作目录里跑 git status 才是可靠的答案。

我选了别的语言,界面还是英文​

字典是在语言被选中时才去取的,所以有一瞬间会显示英文。如果它一直是英文,说明那个 chunk 没加载成功 —— 在桌面端的开发者工具里看控制台。

一句没有翻译的话永远显示英文,这是设计 —— 那是「翻译还没跟上」,不是故障。

日志在哪​

~/.opencli/log

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