遇到 503 暫時錯誤自動長重試,工作階段不中斷
你正請 AI 執行冗長的多步驟任務,最怕遇到遠端模型伺服器短暫壅塞。
以前只要碰上 503 Unavailable 這類短暫的模型介面錯誤,整個正在進行的工作階段(session,從啟動到結束的一整段對話歷程)就會被迫終止。現在代理人遇到這類暫時狀況,會透過指數退避(重試等待時間隨失敗次數拉長的做法)大幅延長重試期。即使服務發生短暫波動,也不會隨意中斷你的工作階段。
發布日期:2026-09-09
你正請 AI 執行冗長的多步驟任務,最怕遇到遠端模型伺服器短暫壅塞。
以前只要碰上 503 Unavailable 這類短暫的模型介面錯誤,整個正在進行的工作階段(session,從啟動到結束的一整段對話歷程)就會被迫終止。現在代理人遇到這類暫時狀況,會透過指數退避(重試等待時間隨失敗次數拉長的做法)大幅延長重試期。即使服務發生短暫波動,也不會隨意中斷你的工作階段。
每次啟動工具或切換帳號,現在都能迅速就緒。以前每次開啟命令列或在瀏覽器完成授權,都要先送出一趟網路請求確認身分;若是查詢遇到問題,整個登入程序就會卡住中斷,啟動時顯示的方案等級也常常閃爍消失。現在改為直接從儲存的憑證(存放在本機的登入身分證明)讀取資料,查詢失敗不再阻礙登入完成,畫面上的方案等級更維持穩定顯示。若是你剛從選定專案的企業帳號切換至個人帳號,舊的企業專案與授權細節現在會被徹底清除,不再因為殘留過期資料而跳出專案存取錯誤。
將指令串進自動化排程時,最講求乾淨俐落與明確回報。
啟用無頭模式(headless,沒有終端機視窗的非互動執行模式)搭配 -p 旗標時,現在送達最終答案便會迅速退出。背景任務與排程計時器受 --print-timeout 限制等待結束,但開發伺服器等常駐守護工作會持續運行而不被強制中止。每輪執行省下多達 200 ms 閒置延遲,並跳過生成無人查看的對話標題。遇到無人互動的實作計畫審查時會自動通過。若 --print-timeout 中途逾時,會回傳既有輸出並在 stderr 附帶警告成功退出,手動按 Ctrl+C 中斷則維持非零退出碼。嚴重錯誤在 stderr 加上穩定的 error: 標記,提示潛在截斷並解釋先前靜默結束的原因。
讓 AI 代勞查資料或動用本機工具時,安全把關更加清晰。抓取網址的預設權限從一律允許改為先問過你,除非預先授權,否則讀取網址前都會請求同意。工具審核提示也迎來翻新,明確點出審核項目——例如詢問 Run this command?、Allow access to this URL? 還是 Allow calling this tool?。編輯命令的快捷鍵僅在審核命令時提供,避免介面混淆。當審核原因不明顯時,下方會附上一行 Reason: 說明緣由,例如觸發了掛鉤(hook,在特定事件發生時觸發的攔截小程式)標記,或是涉及其他專案的檔案。
在終端機指定模型名稱時,背後的實際流向現在一清二楚。
命令列工具增強了模型選擇的稽核能力。當你輸入的模型名稱在後台被解析對應到另一款模型時,日誌都會詳實記錄具體轉換過程。無論是輸入別名對應到正式名稱、透過 --effort 旗標切換到不同推理程度的變體,或是先前儲存的舊模型因下架廢棄而被替換,日誌中都有跡可循。這讓你不必猜測背後到底跑的是哪一個版本,隨時都能追溯實際運行的模型。
管理擴充套件與隨附工具時,現在不再留下惱人的殘存檔案。過去重新安裝外掛時,來源端已經刪除的舊檔案仍會留在目錄裡;現在安裝會精確替換整個外掛管理目錄,且若嘗試從外掛自身的已安裝目錄再次執行安裝,會被直接拒絕以防目錄損壞。解除安裝外掛後,也不會在 config.json 中留下殘餘的啟用或停用項目。同時,外掛所定義的 MCP(Model Context Protocol,讓 AI 連接外部工具的協定)伺服器若使用相對路徑或未指定工作目錄,先前會依錯誤位置解析;現在一律以該外掛本身的目錄為基準進行解析,確保隨附腳本正常運行。
多工派發子代理處理複雜任務時,工具抓取與狀態切換更加可靠。先前在系統啟動時存在競爭問題,如果外部工具伺服器仍在初始化,子代理往往會撲空。現在 MCP(讓 AI 連接外部工具的協定)伺服器會確保初始化完成,讓子代理隨時能找到工具。此外,特別是在超長對話中,子代理在執行完畢後有時會卡在運行狀態;這不僅造成狀態誤判,還會讓原本排隊等候閒置時發送的訊息一路卡住,非得重啟程式才能送出。如今這兩項瑕疵都已修復,子代理在任務結束後會正確切換狀態並如期交付排隊訊息。
長時間在同一個工作階段中連續敲入指令,不再面臨記憶體越吃越腫的窘境。以前工具內部存在記憶體流失(程式結束運算後未及時釋放資源的現象)缺陷。只要在終端機中執行過任何命令,該命令的內部狀態就會被保留在記憶體中,直到整個工作階段(session,從啟動到關閉的完整使用過程)結束為止。這導致使用者若是開啟長期會話並執行大量指令,記憶體用量就會一路飆升。這次修復徹底清除了執行完畢後的殘留狀態,讓執行許多指令的長工作階段大幅降低記憶體消耗。
When asking AI to perform long multi-step tasks, the biggest worry is hitting brief congestion on remote model servers.
Previously, whenever encountering a transient model API error like 503 Unavailable, the entire ongoing session was forced to terminate. Now, when encountering such temporary situations, the agent significantly extends the retry period using exponential backoff (waiting longer between retries as failed attempts increase). Even during brief service fluctuations, your session will no longer be casually interrupted.
Launching the tool or switching accounts is now ready promptly every time. Previously, opening the CLI or completing browser authorization required sending a network request to verify your identity; if the lookup ran into issues, the entire sign-in process would freeze and halt, and the plan tier shown at startup often flickered and disappeared. Now, data is read directly from stored credentials (login identity proofs stored locally), so lookup failures no longer block sign-in completion, and the on-screen plan tier remains stably displayed. If you switch from a business account with a selected project to a personal account, old business project and license details are now thoroughly cleared, preventing project access errors caused by leftover stale data.
Chaining commands into automated workflows demands clean execution and explicit feedback.
When running in headless mode with the -p flag, the CLI now exits promptly once the final answer is delivered. Running background tasks and scheduled timers are waited on subject to --print-timeout, while persistent daemon tasks like development servers continue running without being forcefully terminated. Each turn cuts up to 200 ms of idle latency and skips generating conversation titles that nobody would see. Non-interactive implementation plan reviews now pass automatically. If --print-timeout expires mid-turn, it returns the partial output and exits successfully with a warning on stderr, while manual Ctrl+C interrupts still exit with a non-zero code. Fatal errors add a stable error: marker on stderr, noting potential truncation and explaining why previous runs ended silently.
Security guardrails are much clearer when having AI fetch data or invoke local tools. The default permission for fetching URLs has changed from always allowed to asking first, requesting approval before reading a URL unless pre-authorized. Tool approval prompts have also been revamped to specify exactly what is being approved—such as asking Run this command?, Allow access to this URL?, or Allow calling this tool?. The shortcut for editing commands is only offered when approving a command, preventing interface confusion. When the reason for approval is not obvious, a Reason: line is attached below explaining why, such as a hook flagging the action or a file belonging to a different project.
When specifying model names in the terminal, the actual underlying resolution is now crystal clear.
The CLI tool has enhanced its auditability for model selection. Whenever a model name you specify resolves behind the scenes to a different model, the logs faithfully record the specific conversion process. Whether resolving an alias to an official name, switching to a different reasoning variant via the --effort flag, or replacing a deprecated saved model, everything leaves a clear trail in the logs. This removes any guesswork about which version is running behind the scenes, allowing you to trace the active model at any time.
Managing plugins and bundled tools no longer leaves annoying leftover files behind. Previously, reinstalling a plugin left old files that were already deleted from the source inside the directory; now, installation replaces the managed plugin directory exactly, and attempting to install from the plugin's own installed directory is directly rejected to prevent corruption. Uninstalling a plugin also no longer leaves leftover enabled or disabled entries in config.json. Meanwhile, if MCP servers defined by plugins use relative paths or leave the working directory unset, they previously resolved against the wrong location; they now consistently resolve against the plugin's own directory, ensuring bundled scripts run properly.
Dispatching subagents for complex multi-tasking now offers more reliable tool discovery and state transitions. Previously, a startup race condition meant subagents could fail to find tools if external tool servers were still initializing. Now, MCP servers ensure initialization finishes so subagents can always find their tools. Additionally, especially in very large conversations, subagents sometimes appeared stuck in a running state after finishing; this caused incorrect status reporting and left messages queued for idle delivery stuck until restarting the application. Both issues are now resolved, so subagents properly transition their state and deliver queued messages on schedule once tasks finish.
Running continuous commands in the same session no longer leads to runaway memory bloat. Previously, the tool suffered from a memory leak where every executed terminal command retained its internal state in memory for the rest of the session. As a result, running many commands in extended sessions caused memory usage to surge continuously. This fix thoroughly clears residual state once commands finish, significantly reducing memory consumption in long sessions that run many commands.
Improved resilience to transient model API errors: the agent now retries errors such as `503 Unavailable` for much longer with exponential backoff, so a brief service hiccup no longer aborts your session.Improved sign-in and startup speed by reading your signed-in identity from the stored credential instead of making a network request on every launch and after browser consent; a failed identity lookup no longer prevents sign-in from completing, and the displayed plan tier no longer briefly disappears during startup.
Fixed sign-in failing with a project access error after switching from a business account with a selected project to a personal account; stale business project and license details are now fully cleared on personal sign-in.Improved headless (`-p`) runs to exit promptly once the final answer is delivered: the CLI waits for running background tasks and scheduled timers to finish, bound by `--print-timeout`, and leaves daemon background tasks such as dev servers running instead of terminating them.
Improved failure reporting in headless (`-p`) runs: fatal errors now appear on stderr with a stable `error:` marker, a note is printed when the response may be truncated, and runs that previously ended silently with no output now explain why.
Improved headless (`-p`) turnaround by cutting up to 200 ms of idle latency per turn and skipping the model call that generated a conversation title no one would see.
Changed what happens when `--print-timeout` expires mid-turn: the CLI now returns the partial output it has and exits successfully with a warning on stderr, instead of failing with a timeout error; interrupts such as Ctrl+C still exit non-zero.
Fixed headless (`-p`) runs stalling forever on implementation-plan approval that no one could give; non-interactive runs now proceed through plan review automatically.Improved tool approval prompts to say exactly what you are approving — for example `Run this command?`, `Allow access to this URL?`, or `Allow calling this tool?` — with the command-editing shortcut offered only when a command is being approved, and a `Reason:` line explaining why approval is being requested when it is not obvious, such as a hook flagging the action or a file belonging to a different project.
Changed the default permission for fetching URLs from always allowed to asking first, so the agent now requests approval before reading a URL unless you have granted access.Improved model selection auditability: the CLI log now records whenever a model name you specify resolves to a different model, such as alias resolution, `--effort` variant selection, or replacement of a deprecated saved model.Fixed plugin reinstalls keeping files that had been deleted from the source: installing a plugin now replaces its managed directory exactly, installing a plugin from its own installed directory is refused instead of corrupting it, and uninstalling a plugin no longer leaves its enabled/disabled entry behind in `config.json`.
Fixed MCP servers defined by plugins resolving relative or unset working directories against the wrong location; they now resolve against the plugin's own directory so plugin-bundled scripts run correctly.Fixed a startup race where subagents could fail to find tools from MCP servers that were still initializing.
Fixed subagents sometimes appearing stuck in a running state after they had finished — especially in very large conversations — which also left queued when-idle messages undelivered until restart.Fixed a memory leak where every finished terminal command kept internal state alive for the rest of the session; long sessions that run many commands now use significantly less memory.