Skip to main content

錯誤格式

串流開始之前發生的錯誤是 JSON,格式與 Anthropic 相同:
串流開始之後的錯誤,會以 SSE 事件出現在一個已經回傳 200 的回應中:
200 只代表這一回合已經開始。請務必處理 error 事件,並把「沒有以 message_stop 結束的串流」視為失敗的回合。

狀態碼

Agent 的查詢會限縮在呼叫金鑰所屬的 workspace 內,而且無論是「Agent 不存在」或 「存在但你看不到」,回報方式都相同 — 這樣就沒有人能藉此探測其他 workspace 的 Agent 名稱。如果你確定名稱正確,問題幾乎都出在金鑰上。

限制與時間

長時間執行但仍在輸出或使用工具的回合會繼續進行;執行環境只會中止真正失去網路連線、 或超過上限的回合。被這樣中止的回合仍保有接續指標,因此在同一段對話送出「繼續」即可 從中斷處接續。

用戶端設定

  • 逾時要設寬鬆。 預設的 HTTP 用戶端逾時(30 秒)會切斷正常的 Agent 工作。請至少 給 10 分鐘,並以串流方式逐步讀取。
  • 關閉會緩衝的代理。 任何會緩衝回應的中介層都會破壞串流。此端點會送出 Cache-Control: no-cache, no-transform
  • 重試要以對話為單位,而不是以請求為單位。 由於接續的回合會附加到持久的歷史紀錄, 盲目重試一個部分成功的回合可能造成重複工作。較好的做法是在同一個 conversation_id 上送出新的指示。
  • 連續回合之間要等待接續指標。 在串流剛結束就送出下一則訊息,可能在工作階段尚未 記錄前就接續對話,導致 Agent 靜默地失去上一回合的脈絡。詳見 接續對話

併發

每一段對話在單一沙箱中執行。對同一個 conversation_id 同時送出兩個回合,會共用該沙箱 並在對話紀錄上互相競爭。
同一段對話內請依序送出;要平行處理請跨對話。用 conversation_id 當 key 的 佇列,是最簡單且正確的用戶端設計。

可觀測性

每一個回合都會在該 Agent 上留下一筆執行紀錄 — 狀態、耗時與結果 — 並且會區分 API key 流量與網頁介面流量,因此你可以在 Agent 的活動頁面上篩選出自己整合的執行。失敗的回合 會保留錯誤訊息,通常比從串流回推更快找到原因。