所有頁面
本頁內容

Claude 0.9.0 新增

Claude 供應商透過 Claude Agent SDK,在中繼所在的機器上執行 Anthropic 的 Claude Code agent。OAR 會為每個對話啟動一個 worker 處理程序。不需要輸入 API 金鑰:Claude 使用中繼所在機器的 Claude 登入,而你可以從瀏覽器變更這個登入。

Claude Cloud 則是在 Anthropic 的沙箱中執行 Claude Code,而不是在你的機器上。它是另一個獨立的供應商,有自己的設定方式。0.9.18 新增 Claude API 以 Claude Console 的 API 金鑰(而非你的訂閱)執行同樣的 Claude 對話,而且 Claude 對話可以在兩者之間切換。

你需要什麼 #

  • 中繼所在機器上的 Claude 登入。中繼不儲存任何 Claude 金鑰;登入由 Claude CLI 保管,OAR 只負責驅動它。你可以從瀏覽器登入(見 Claude 帳戶),也可以在該機器上執行一次 claude。
  • 該機器上的 Claude Code CLI(claude),供瀏覽器登入和帳戶列使用。Claude 回合不需要它:回合執行的是 Agent SDK 隨附的 Claude Code 建置版本。OAR 可以幫你安裝 CLI,之後新的 session 就會使用這份 CLI。

Claude Code CLI 列 #

在 Settings → Providers → Claude(設定 → 供應商 → Claude)頂端有一列 Claude Code CLI,顯示 CLI 是否已安裝、版本、所在位置,以及是否為最新版本。按鈕會依狀態而不同:

按鈕 時機 作用
Install(安裝) 找不到 CLI 先請你確認(會列出指令和要寫入的資料夾),再以中繼的使用者身分執行 Anthropic 自家的安裝程式。在 Linux 和 macOS 上是 curl -fsSL https://claude.ai/install.sh | bash;在 Windows 上是 irm https://claude.ai/install.ps1 | iex。
Update(更新) 找到 CLI 執行 claude update。
Switch to native installer(切換至原生安裝程式) CLI 是用 npm 安裝在中繼使用者無法寫入的資料夾 執行 claude install。npm 版本會留在原處;在 PATH 上會優先使用原生版本。
Cancel(取消)/ Dismiss(關閉) 安裝進行中 / 安裝結束後 停止執行 / 清除結果。

安裝輸出會以 Install log(安裝記錄)即時串流到面板中。關閉設定後它仍會保留,也可以從另一台裝置觀看。同一個中繼一次只會執行一個安裝。你輸入的任何內容都不會送進 shell:指令是固定寫在中繼裡的。

OAR 會先在中繼的 PATH 上尋找 claude,再找 ~/.local/bin 和 /usr/local/bin。安裝或更新後,它會立刻改用新的執行檔,並在重新啟動後仍記得它,所以你不必重新啟動中繼。已在執行的 session 會繼續使用啟動時的執行檔。

啟用 #

Claude 預設為關閉。開啟 Settings → Providers → Claude,在 Claude SDK 下:

控制項 預設 作用
Enable Claude for New Chat model selection(在新對話的模型選擇中啟用 Claude) Off(關閉) 讓 Claude 成為 New Chat(新對話)中的選項,並執行模型探索。切換後立即生效,不必按 Save Claude settings(儲存 Claude 設定)。
Claude model ID(Claude 模型 ID) claude-sonnet-5 Claude 對話一開始使用的模型。按 Save Claude settings 套用。
Commit attribution(提交署名) OAR commit 和 pull request 中會寫什麼。見提交署名。同樣需要按 Save Claude settings。

控制項下方有一行文字說明 Claude 目前的狀態。關閉 Claude 時,尚未送出任何訊息的對話會移回預設供應商。已經開始的對話則繼續使用 Claude。

模型 #

啟用 Claude 時,會探索 Agent SDK 提供的模型,並把它們的 claude-* ID 加到選擇器中。用 Select Models → Claude SDK(選擇模型 → Claude SDK)選擇其中哪些要出現在輸入區;預設模型永遠保持啟用。

claude-opus-5[1m] 這類長上下文變體不會以獨立模型出現,而是在 New Chat 和輸入區中,以基礎模型 Context window(上下文視窗)下拉選單裡的 1M 項目顯示。

新模型隨 OAR 更新推出

探索是向 Agent SDK 隨附的 Claude Code 建置版本查詢,所以光是執行 claude update 不會讓新的 Claude 模型出現。新模型會隨 OAR 更新一起推出。

Claude 帳戶 #

CLI 列下方的帳戶列會顯示已登入的帳戶及其方案,例如 Account: dev@example.com · Max plan,或 Not logged in。

重新登入 #

  1. 按 Relogin(重新登入)。中繼會在它的機器上執行 Claude CLI 的登入程序。
  2. 畫面會出現 Open the Claude login page(開啟 Claude 登入頁面)連結,以及 Copy link(複製連結)按鈕。在任何裝置上開啟這個連結,並在 claude.ai 上授權。
  3. claude.ai 會顯示一組代碼。把它貼到 Paste the code from claude.ai(貼上 claude.ai 的代碼)欄位,然後按 Submit code(提交代碼)或 Enter。
  4. 面板會顯示 Logged in as …。這時會重新執行一次模型探索,所以你不必重新啟動中繼。

Cancel 會放棄這次登入。沒有人完成的登入會在 10 分鐘後結束。同一個中繼一次只會執行一個登入。登入會推送到每個開啟中的瀏覽器,所以你可以在一台裝置上開始、在另一台裝置上完成,關閉設定也不會讓它遺失。

中繼不保存任何 Claude 機密資訊。CLI 會把新的登入寫入中繼所在機器的 Claude 設定資料夾(~/.claude,或 CLAUDE_CONFIG_DIR 指定的資料夾)。

登出 #

Logout(登出)會開啟 Log out of Claude(登出 Claude),其中會顯示帳戶名稱,並說明有多少 Claude worker 正在執行。按 Log out(登出)確認。之後新的 Claude 回合都會失敗,直到你重新登入。

執行中的 session #

執行中的 Claude session 會繼續使用先前的帳戶,直到它的 worker 處理程序結束。新的 session 使用新帳戶。

提交署名 #

Claude Code 通常會在 agent 建立的 commit 中加上自己的 Co-Authored-By: Claude … 行,並在 pull request 內文中加上一行。OAR 讓你自己選擇:

選項 Commit Pull request
OAR(預設) 結尾為 Co-authored-by: Open Agent Relay (<model>) <no-reply@oar.sh>,括號中是模型名稱,例如 Claude Fable 5.1。 結尾為 🤖 Generated with [Open Agent Relay](https://oar.sh)。
Vanilla(原版) Claude Code 自己的那幾行。 Claude Code 自己的那一行。
Off 沒有署名行。 沒有署名行。

選擇 OAR 和 Off 時,commit 和 pull request 的文字中也不會出現 session 的連結。

在 Settings → Providers → Claude → Commit attribution(設定 → 供應商 → Claude → 提交署名)中為整個中繼設定這個選項。下拉選單下方會有一行範例,顯示 commit 會寫成什麼樣子。

依資料夾 #

Claude 對話的 🧠 上下文按鈕會顯示該對話資料夾的 Commit attribution,並附一個下拉選單:Inherit (provider: …)(繼承,供應商:…)、OAR、Vanilla 或 Off。在這裡的選擇適用於該資料夾中的每個 Claude session。Inherit(繼承)會改回整個中繼的設定。

變更會隨下一則訊息套用到執行中的 session。切換到 vanilla 會在回合之間重新啟動 session 的 CLI。Claude Cloud 對話同樣遵循整個中繼的設定。0.9.18 新增 Claude API 對話也是 Claude session,和其他 session 一樣遵循資料夾的選擇。0.9.17 新增 該資料夾中的 DeepSeek 對話也遵循資料夾的選擇,但 Vanilla 會當作 OAR 處理;DeepSeek 對話的全中繼設定在 DeepSeek 子分頁上。其他供應商不受影響。

背景指令上限 0.9.12 新增 #

Settings → Providers → Claude → Claude background command limit(設定 → 供應商 → Claude → Claude 背景指令上限)決定當 Claude 沒有替指令自訂逾時時,Claude 在背景執行的指令最多能跑多久,超過後 Claude Code 就會停止它。滑桿範圍是 30 分鐘到 8 小時,每格 30 分鐘;預設為 2 小時。按 Save Claude settings 儲存。Claude 仍可為單一指令要求最多 8 小時。

  • Claude 在前景執行的指令,2 分鐘後會移到背景,讓回合在指令執行時繼續進行,並連同其主控台顯示在任務面板中。
  • 以 sleep 開頭的指令和 subagent 的指令會留在前景,因此可能佔住回合直到上限。
  • Claude 會被告知這個上限,並被要求把長指令的完整輸出寫入記錄檔,而不是用管線傳給 tail 或 head;必須在 session 重新啟動後繼續存在的執行,則要用 nohup 以分離方式啟動。
  • CLI 在啟動時讀取上限:變更會套用到儲存之後啟動的 Claude session;執行中的 session 會保留原本的上限,直到重新啟動。Claude Cloud 對話不受影響;0.9.17 新增 DeepSeek 和 0.9.18 新增 Claude API 對話同樣執行 Claude Code,因此使用相同的上限。

OAR 會以 BASH_DEFAULT_TIMEOUT_MS 把上限傳給 Claude Code,並把 BASH_MAX_TIMEOUT_MS 設為 8 小時、CLAUDE_CODE_AUTO_BACKGROUND_TIMEOUT_MS 設為 2 分鐘。OAR 啟動的每個 Claude session 都會設定這三個變數,所以中繼環境中的同名變數不會有作用。

Reasoning effort 與思考 #

Reasoning effort #

reasoning effort 選擇器以訊息為單位:你可以在回合之間變更。它提供 none 以及模型回報的等級(low、medium、high、xhigh、max)。支援 xhigh 的模型會出現 Ultracode。它代表 xhigh 的 reasoning effort 加上多 agent 工作流程協調,會使用多得多的 token。

上下文視窗 #

對於有 1M 變體的模型,Context window 下拉選單會提供模型的預設視窗(顯示為 —,因為 SDK 的模型目錄沒有提供數值)和 1M。只以 1M 變體推出的模型就只提供這一項。

思考 #

🧠 上下文按鈕中還有兩個 Claude 專屬的控制項,以對話為單位設定:

控制項 選項 預設
Thinking(思考) On(開啟)、Off On
Thinking text(思考文字) Summarized(摘要)、Hidden(隱藏) Summarized

開啟思考或變更思考文字的設定,會在下一則訊息生效。關閉思考則在下一個 CLI session 生效。Hidden 只是隱藏文字;模型仍會思考,token 也照樣計算。真正能省 token 的控制項是 Off。

Claude 上特別好用的功能 #

  • 導正。 回合執行中送出的訊息會直接進入該回合;傳送按鈕會顯示 Steer(導正)。見回合與佇列和回合執行期間。
  • 模式。 plan 使用 SDK 自己的計畫模式,最後會出現由 Claude 計畫工具產生的 Plan ready(計畫已就緒)看板。見中繼模式。
  • 提問卡片。 Claude 的 AskUserQuestion 會變成卡片,也支援多選。見 ask_user。
  • 背景任務與 subagent。 轉到背景的指令、subagent、監控任務和工作流程,在啟動它們的回覆結束後仍會繼續執行,並顯示在輸入區的任務面板中。點 subagent 的標題可開啟它的完整紀錄。只有在背景執行的 subagent 可以單獨停止;在目前回合內執行的 subagent 會隨回合一起停止。Settings → General → Background task timeout(設定 → 一般 → 背景任務逾時)限制 session 只剩背景任務時還能持續執行多久,預設為 4 小時。
  • 精確的上下文明細。 🧠 按鈕會顯示 SDK 回報的各個類別。
  • 自動壓縮。 Claude 會自行壓縮過長的 session。🧠 對話框中有 Auto-compact window(自動壓縮視窗)滑桿:Auto(自動)、100k、150k、200k、300k、500k 或 1M。見壓縮對話。
  • 用量上限暫停。 碰到訂閱用量上限的回合會暫停,並在額度重設後繼續。見達到用量上限時。
  • Session 延續。 OAR 會儲存 SDK 的 session id,所以 worker 重新啟動後,對話可以接續進行。
  • 附件。 5 MB 以內的圖片會內嵌傳送。更大的圖片和其他檔案則以路徑提供,由 Claude 自行讀取。

Claude 回合的回覆下方沒有用量行。Claude 的方案上限請見 Check Usage(檢查用量)。

Session 存放位置 #

在檔案瀏覽器中,Session root(Session 根目錄)按鈕(🕵️)會開啟該 session 在 Agent SDK 專案區域中的專屬資料夾,位於 ~/.claude/projects 內(或 CLAUDE_CONFIG_DIR 內)。對話紀錄是該資料夾旁邊的 .jsonl 檔案。這個資料夾只有在 session 有 subagent 或工具結果檔案時才會建立,所以剛開始不久的對話,這個資料夾可能是空的。刪除對話時,也會刪除它的對話紀錄。

環境變數 #

在中繼啟動時所用的環境中設定這些變數。

變數 作用
CLAUDE_CONFIG_DIR 取代 ~/.claude 的 Claude 設定資料夾:存放登入,也是查找 session 資料夾的位置。
CLAUDE_CODE_EXECUTABLE worker 使用的 Claude Code 執行檔,取代 Agent SDK 隨附的建置版本。從面板安裝或更新時會自動幫你設定。
CLAUDE_CODE_AUTO_COMPACT_WINDOW 覆寫自動壓縮視窗。滑桿下方那行文字會把它標示為來源。由 Claude Code 自己讀取;session 在 tmux 下執行時,為中繼設定的值不會傳到 Claude Code(見哪些變數會傳到 agent)。
BASH_DEFAULT_TIMEOUT_MS、BASH_MAX_TIMEOUT_MS、CLAUDE_CODE_AUTO_BACKGROUND_TIMEOUT_MS 0.9.12 新增 不從中繼的環境讀取:OAR 會依背景指令上限為每個 Claude session 設定這些變數。
CLAUDE_CODE_OAUTH_TOKEN 取代 CLI 登入檔的登入 token,用於 Claude Cloud 和本機的 Claude 對話(它們的 CLI 會優先使用它,而不是登入檔)。0.9.17 新增 只有 Claude 和 Claude Cloud 的 worker 會取得它;在 tmux 下,是透過只有中繼使用者能讀取的檔案傳遞;其他供應商的 worker(包括 DeepSeek 的)一律不會取得。
ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 0.9.17 新增 不會傳給 worker。Claude 對話使用 Claude 登入執行,絕不會使用中繼環境中的金鑰;0.9.17 之前,Claude Code 會優先使用這類金鑰而非登入。Claude API 對話使用 Settings → Providers → Claude API(設定 → 供應商 → Claude API)中儲存的金鑰執行,絕不使用這些變數。

0.9.18 新增 訂閱對話絕不會使用 API 金鑰執行。 只要 Claude Code 自己的某個設定提供了 API 金鑰,它就會優先使用該金鑰,而不是你的 Claude 登入:~/.claude/settings.json 或對話資料夾 .claude/settings*.json 中的 env.ANTHROPIC_API_KEY、apiKeyHelper,或 Console 登入。這類對話以前會用該金鑰執行,費用由金鑰擁有者支付。現在,回合會在 Claude Code 啟動時停止,並附上一則註記,指出來源和要移除的設定,以及代碼 relay.subscription-key-source。Claude Code 在啟動後稍待片刻才會送出第一個模型請求,因此最多只會有一個模型請求先以該金鑰送出。若要用 API 金鑰執行對話,請使用 Claude API 及其計費切換。

疑難排解 #

問題 該怎麼做
New Chat 中沒有 Claude 在 Settings → Providers → Claude 中開啟 Enable Claude for New Chat model selection。
CLI 列顯示 Not installed(未安裝),或帳戶列無法讀取帳戶 瀏覽器登入和帳戶列需要中繼所在的機器上有 claude。按 Install,或自行安裝後重新開啟設定。
Not logged in,或回覆說 Claude 無法驗證身分 在失敗的回覆上按 Claude settings(Claude 設定),再按 Relogin(或在該機器上執行 claude)。然後重新傳送訊息。
登入已過期 同上。執行中的 session 會保留舊的 token,直到它的 worker 結束;登入後重新傳送訊息。
回覆提到計費、訂閱或組織 檢查面板顯示的帳戶:它的訂閱、付款方式,以及組織是否允許使用 Claude Code。Relogin 可以改登入其他帳戶。
回合因用量上限而暫停 等待額度重設,或使用橫幅上的 Resume now(立即繼續)或 Cancel。見達到用量上限時。
選擇器中沒有新模型 模型來自 SDK 隨附的 Claude Code 建置版本;新模型隨 OAR 更新推出,而不是透過 claude update。
0.9.18 新增 Claude Code took an API key for this subscription turn (source "…"), so the turn was stopped(relay.subscription-key-source) 從 Claude Code 設定(~/.claude/settings.json,或資料夾的 .claude/settings*.json)的 env 中移除 ANTHROPIC_API_KEY、移除 apiKeyHelper,或登出 Console 登入,然後重新傳送訊息。若要用設定中儲存的金鑰執行對話,請把它切換為 API 金鑰。
Relogin 在 Windows 上失敗 登入流程是為 Linux 和 macOS 設計的;在 Windows 上只能盡力而為。請改在終端機中執行 claude。