在開發 AI Agent(人工智慧代理)時,我們經常會遇到一個痛點:雖然模型推理速度在提升,但整體的反應時間依然感覺很慢。這往往不是模型本身的問題,而是因為 Agent 的工作模式通常包含多個步驟,例如先思考、呼叫工具、獲取結果、再次推理,最後才輸出。
在傳統的 API 設計中,每一個步驟都必須透過 HTTP 請求與回應來完成。對於 junior 工程師來說,可以想像成每做一件事都要重新撥一次電話、確認身分、講完事情後掛斷,下一件事又要重新撥號。這種重複的網路往返時間(Round-Trip Time, RTT)以及每次建立連線所需的握手過程(Handshake),在複雜的多步驟工作流中會累積成巨大的延遲,成為系統效能的瓶頸。
為了克服這個問題,OpenAI 推出了基於 WebSocket 的執行模式。WebSocket 是一種在單一 TCP 連線中提供全雙工(Bidirectional)通訊的協定,也就是說,一旦連線建立,客戶端與伺服器之間就可以隨時互相傳送資料,而不需要每次都重新發起請求。
這次技術轉向的核心在於將無狀態的 HTTP 請求轉變為有狀態的持久化連線。在實務操作上,開發者可以先在連線建立初期就將系統提示詞(System Prompt)與工具定義(Tool Definitions)傳送給伺服器,完成所謂的連線預熱(Warm up)。隨後,所有的推理步驟、工具呼叫與中間過程都能在同一個連線中流暢地傳遞,消除了冷啟動(Cold Start)造成的延遲。
這種優化對 AI Agent 的實質影響非常顯著。根據 OpenAI 的測試數據,早期的生產環境應用顯示延遲最高可降低 40%。在實際應用場景中,如 Vercel 的 AI SDK、Cline 以及 Cursor 等程式碼編輯工具,在處理多檔案編輯或複雜工作流時,均觀察到了 30% 到 40% 的效能提升。此外,在高併發場景下,該模式能維持每秒約 1,000 筆交易的吞吐量,峰值甚至可達 4,000 TPS。
然而,引入 WebSocket 也為系統設計帶來了新的挑戰。與簡單的 HTTP 請求不同,維護持久連線意味著開發者需要處理連線生命週期管理(Connection Lifecycle Management),例如如何偵測斷線並重新連線。同時,在高併發壓力下,必須考慮背壓(Backpressure)處理,以防止伺服器或客戶端因為處理速度不一致而導致緩衝區溢位。
這項更新傳達了一個重要的工程觀點:提升 AI 系統的效能不應僅僅依賴於模型本身的參數優化或推理加速,底層傳輸層(Transport Layer)的通訊模式同樣至關重要。當 AI 應用從單次問答演進為複雜的代理工作流時,回歸到經典的狀態化連線設計,往往能帶來最直接的效能突破。
來源:infoq.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。