mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-10 10:48:45 +00:00
301 lines
8.9 KiB
Plaintext
301 lines
8.9 KiB
Plaintext
---
|
||
title: 故障排除
|
||
description: 常見問題以及如何解決它們。
|
||
---
|
||
|
||
要調試 opencode 問題,請首先檢查其存儲在磁盤上的日誌和本地數據。
|
||
|
||
---
|
||
|
||
## 紀錄
|
||
|
||
日誌文件寫入:
|
||
|
||
- **macOS/Linux**:`~/.local/share/opencode/log/`
|
||
- **Windows**:按`WIN+R`並粘貼`%USERPROFILE%\.local\share\opencode\log`
|
||
|
||
日誌文件以時間戳命名(例如`2025-01-09T123456.log`),並保留最近的 10 個日誌文件。
|
||
|
||
您可以使用 `--log-level` 命令行選項設置日誌級別以獲取更詳細的調試信息。例如,`opencode --log-level DEBUG`。
|
||
|
||
---
|
||
|
||
## 貯存
|
||
|
||
opencode 將會話數據和其他應用程式數據存儲在磁盤上:
|
||
|
||
- **macOS/Linux**:`~/.local/share/opencode/`
|
||
- **Windows**:按`WIN+R`並粘貼`%USERPROFILE%\.local\share\opencode`
|
||
|
||
該目錄包含:
|
||
|
||
- `auth.json` - 身份驗證數據,例如 API 密鑰、OAuth 令牌
|
||
- `log/` - 應用程式日誌
|
||
- `project/` - 項目特定數據,例如會話和消息數據
|
||
- 如果項目位於 Git 存儲庫中,則它存儲在 `./<project-slug>/storage/` 中
|
||
- 如果不是 Git 存儲庫,則存儲在 `./global/storage/` 中
|
||
|
||
---
|
||
|
||
## 桌面應用程式
|
||
|
||
opencode Desktop 在後台運行本地 opencode 服務器(`opencode-cli` sidecar)。大多數問題是由行為不當的插件、損壞的緩存或錯誤的服務器設置引起的。
|
||
|
||
### 快速檢查
|
||
|
||
- 完全退出並重新啟動應用程式。
|
||
- 如果應用程式顯示錯誤屏幕,請單擊“**重新啟動**”並複制錯誤詳細信息。
|
||
- 僅限 macOS:`opencode` 菜單 -> **重新加載 Webview**(如果 UI 為空白/凍結,則有幫助)。
|
||
|
||
---
|
||
|
||
### 禁用插件
|
||
|
||
如果桌面應用程式在啟動時崩潰、掛起或行為異常,請首先禁用插件。
|
||
|
||
#### 檢查全局配置
|
||
|
||
打開全局配置文件並查找 `plugin` 密鑰。
|
||
|
||
- **macOS/Linux**:`~/.config/opencode/opencode.jsonc`(或`~/.config/opencode/opencode.json`)
|
||
- **macOS/Linux**(較舊的安裝):`~/.local/share/opencode/opencode.jsonc`
|
||
- **Windows**:按`WIN+R`並粘貼`%USERPROFILE%\.config\opencode\opencode.jsonc`
|
||
|
||
如果您配置了插件,請通過刪除密鑰或將其設置為空數組來暫時禁用它們:
|
||
|
||
```jsonc
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"plugin": [],
|
||
}
|
||
```
|
||
|
||
#### 檢查插件目錄
|
||
|
||
opencode 還可以從磁盤加載本地插件。暫時將它們移開(或重命名文件夾)並重新啟動桌面應用程式:
|
||
|
||
- **全局插件**
|
||
- **macOS/Linux**:`~/.config/opencode/plugins/`
|
||
- **Windows**:按`WIN+R`並粘貼`%USERPROFILE%\.config\opencode\plugins`
|
||
- **項目插件**(僅當您使用每個項目配置時)
|
||
- `<your-project>/.opencode/plugins/`
|
||
|
||
如果應用程式再次開始工作,請一次重新啟用一個插件,以找出導致問題的插件。
|
||
|
||
---
|
||
|
||
### 清除緩存
|
||
|
||
如果禁用插件沒有幫助(或者插件安裝被卡住),請清除緩存,以便 opencode 可以重建它。
|
||
|
||
1. 完全退出 opencode Desktop。
|
||
2. 刪除緩存目錄:
|
||
|
||
- **macOS**:Finder -> `Cmd+Shift+G` -> 粘貼`~/.cache/opencode`
|
||
- **Linux**:刪除`~/.cache/opencode`(或運行`rm -rf ~/.cache/opencode`)
|
||
- **Windows**:按`WIN+R`並粘貼`%USERPROFILE%\.cache\opencode`
|
||
|
||
3. 重新啟動 opencode 桌面。
|
||
|
||
---
|
||
|
||
### 修復服務器連接問題
|
||
|
||
opencode Desktop 可以啟動自己的本地服務器(默認)或連接到您配置的服務器 URL。
|
||
|
||
如果您看到 **“連接失敗”** 對話框(或者應用程式永遠無法通過啟動屏幕),請檢查自定義服務器 URL。
|
||
|
||
#### 清除桌面默認服務器 URL
|
||
|
||
在主屏幕中,單擊服務器名稱(帶有狀態點)以打開服務器選取器。在“**默認服務器**”部分中,單擊“**清除**”。
|
||
|
||
#### 從您的配置中刪除`server.port` / `server.hostname`
|
||
|
||
如果您的 `opencode.json(c)` 包含 `server` 部分,請將其暫時刪除並重新啟動桌面應用程式。
|
||
|
||
#### 檢查環境變量
|
||
|
||
如果您在環境中設置了 `OPENCODE_PORT`,桌面應用程式將嘗試將該端口用於本地服務器。
|
||
|
||
- 取消設置`OPENCODE_PORT`(或選擇一個空閒端口)並重新啟動。
|
||
|
||
---
|
||
|
||
### Linux:Wayland / X11 問題
|
||
|
||
在 Linux 上,某些 Wayland 設置可能會導致空白窗口或合成器錯誤。
|
||
|
||
- 如果您在 Wayland 上且應用程式空白/崩潰,請嘗試使用 `OC_ALLOW_WAYLAND=1` 啟動。
|
||
- 如果這讓事情變得更糟,請將其刪除並嘗試在 X11 會話下啟動。
|
||
|
||
---
|
||
|
||
### Windows:WebView2 運行時
|
||
|
||
在 Windows 上,opencode Desktop 需要 Microsoft Edge **WebView2 運行時**。如果應用程式打開為空白窗口或無法啟動,請安裝/更新 WebView2,然後重試。
|
||
|
||
---
|
||
|
||
### Windows:一般性能問題
|
||
|
||
如果您在 Windows 上遇到性能緩慢、文件訪問問題或terminal問題,請嘗試使用[WSL(適用於 Linux 的 Windows 子系統)](/docs/windows-wsl)。 WSL 提供了一個可以與 opencode 功能更加無縫協作的 Linux 環境。
|
||
|
||
---
|
||
|
||
### 通知不顯示
|
||
|
||
opencode Desktop 僅在以下情況下顯示系統通知:
|
||
|
||
- 在您的操作系統設置中啟用 opencode 通知,並且
|
||
- 應用程式窗口未聚焦。
|
||
|
||
---
|
||
|
||
### 重置桌面應用程式存儲(最後的手段)
|
||
|
||
如果應用程式無法啟動並且您無法從 UI 內部清除設置,請重置桌面應用程式的保存狀態。
|
||
|
||
1. 退出 opencode Desktop。
|
||
2. 查找並刪除這些文件(它們位於 opencode Desktop 應用程式數據目錄中):
|
||
|
||
- `opencode.settings.dat`(桌面默認服務器 URL)
|
||
- `opencode.global.dat` 和 `opencode.workspace.*.dat`(UI 狀態,如最近的服務器/項目)
|
||
|
||
快速找到目錄:
|
||
|
||
- **macOS**:Finder -> `Cmd+Shift+G` -> `~/Library/Application Support`(然後搜索上面的文件名)
|
||
- **Linux**:在 `~/.local/share` 下搜索上述文件名
|
||
- **Windows**:按`WIN+R` -> `%APPDATA%`(然後搜索上面的文件名)
|
||
|
||
---
|
||
|
||
## 尋求幫助
|
||
|
||
如果您遇到 opencode 問題:
|
||
|
||
1. **在 GitHub 上報告問題**
|
||
|
||
報告錯誤或請求功能的最佳方式是通過我們的 GitHub 存儲庫:
|
||
|
||
[**github.com/anomalyco/opencode/issues**](https://github.com/anomalyco/opencode/issues)
|
||
|
||
在創建新問題之前,請搜索現有問題以查看您的問題是否已被報告。
|
||
|
||
2. **加入我們的不和諧**
|
||
|
||
如需實時幫助和社區討論,請加入我們的 Discord 服務器:
|
||
|
||
[**opencode.ai/discord**](https://opencode.ai/discord)
|
||
|
||
---
|
||
|
||
## 常見問題
|
||
|
||
以下是一些常見問題以及解決方法。
|
||
|
||
---
|
||
|
||
### opencode 無法啟動
|
||
|
||
1. 檢查日誌中是否有錯誤消息
|
||
2. 嘗試使用 `--print-logs` 運行以查看terminal 中的輸出
|
||
3. 確保您擁有最新版本`opencode upgrade`
|
||
|
||
---
|
||
|
||
### 身份驗證問題
|
||
|
||
1. 嘗試使用 TUI 中的 `/connect` 命令重新進行身份驗證
|
||
2. 檢查您的 API 密鑰是否有效
|
||
3. 確保您的網絡允許連接到提供商的 API
|
||
|
||
---
|
||
|
||
### 型號不可用
|
||
|
||
1. 檢查您是否已通過提供商的身份驗證
|
||
2. 驗證配置中的型號名稱是否正確
|
||
3. 某些型號可能需要特定的訪問權限或訂閱
|
||
|
||
如果您遇到`ProviderModelNotFoundError`,您很可能是錯誤的
|
||
在某處引用模型。
|
||
模型應該像這樣引用:`<providerId>/<modelId>`
|
||
|
||
示例:
|
||
|
||
- `openai/gpt-4.1`
|
||
- `openrouter/google/gemini-2.5-flash`
|
||
- `opencode/kimi-k2`
|
||
|
||
要了解您可以訪問哪些模型,請運行`opencode models`
|
||
|
||
---
|
||
|
||
### 提供者初始化錯誤
|
||
|
||
如果遇到 ProviderInitError,您的配置可能無效或損壞。
|
||
|
||
要解決這個問題:
|
||
|
||
1. 首先,按照 [供應商指南](/docs/providers) 驗證您的提供商是否已正確設置
|
||
2. 如果問題仍然存在,請嘗試清除存儲的配置:
|
||
|
||
```bash
|
||
rm -rf ~/.local/share/opencode
|
||
```
|
||
|
||
在 Windows 上,按 `WIN+R` 並刪除:`%USERPROFILE%\.local\share\opencode`
|
||
|
||
3. 使用 TUI 中的 `/connect` 命令向您的提供商重新進行身份驗證。
|
||
|
||
---
|
||
|
||
### AI_APICallError 和提供商套件問題
|
||
|
||
如果您遇到 API 調用錯誤,這可能是由於過時的提供商套件造成的。 opencode 根據需要動態安裝提供商套件(OpenAI、Anthropic、Google 等)並將其緩存在本地。
|
||
|
||
要解決提供商套件問題:
|
||
|
||
1. 清除提供商套件緩存:
|
||
|
||
```bash
|
||
rm -rf ~/.cache/opencode
|
||
```
|
||
|
||
在 Windows 上,按 `WIN+R` 並刪除:`%USERPROFILE%\.cache\opencode`
|
||
|
||
2. 重新啟動 opencode 以重新安裝最新的提供商套件
|
||
|
||
這將強制 opencode 下載最新版本的提供商套件,這通常可以解決模型參數和 API 更改的兼容性問題。
|
||
|
||
---
|
||
|
||
### 複製/粘貼在 Linux 上不起作用
|
||
|
||
Linux 用戶需要安裝以下剪貼板實用程序之一才能使用複制/粘貼功能:
|
||
|
||
**對於 X11 系統:**
|
||
|
||
```bash
|
||
apt install -y xclip
|
||
# or
|
||
apt install -y xsel
|
||
```
|
||
|
||
**對於 Wayland 系統:**
|
||
|
||
```bash
|
||
apt install -y wl-clipboard
|
||
```
|
||
|
||
**對於無頭環境:**
|
||
|
||
```bash
|
||
apt install -y xvfb
|
||
# and run:
|
||
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
||
export DISPLAY=:99.0
|
||
```
|
||
|
||
opencode 將檢測您是否使用 Wayland 並更喜歡 `wl-clipboard`,否則它將嘗試按 `xclip` 和 `xsel` 的順序查找剪貼板工具。
|