AHP 在做什麼?把 AI Agent session 從單一視窗裡拆出來
當你在 Terminal 下了指令,換到 VS Code 卻要重新對話;當視窗一關,跑了一半的長任務直接灰飛煙滅。Microsoft 推出的 AHP (Agent Host Protocol) 草案,試圖將 Agent Session 從 UI 視窗剝離,建立跨 Client 同步的狀態基礎設施。
作者
Seer
日期
2026-07-28
如果你每天都在用 AI coding agent,這幕畫面你一定不陌生:
你在 Terminal 用 CLI 工具叫 Agent 跑一個大規模重構,跑到一半想開 VS Code 看產出的檔名與變更,結果發現 VS Code 裡的 Agent 視窗根本不知道 Terminal 剛剛做了什麼;你手賤把 Terminal 視窗關掉,那個跑了十幾分鐘的 Agent session 就跟著煙消雲散。接著你想試試某款 Desktop App,發現它又是另一個完全封閉的生態系。
同一個模型,換個介面就像換了個宇宙。
現階段 AI coding agent 最讓人抓狂的體驗,問題往往不是出在前端 UI 刻得不夠漂亮,而是狀態(Session)、終端機(Terminal)與 Client 介面被硬生生綁在一起。
Microsoft 最近開源的 microsoft/agent-host-protocol(簡稱 AHP),切入的角度非常精準:AHP 不是要再造一個 AI agent UI,而是要把 Agent session 從單一視窗裡抽出來,交給獨立的 Host 管理。
---
AHP 是什麼?
用官方 README 的一句話摘要:
"A synchronized, multi-client state protocol for AI agent sessions."
簡單來說,AHP (Agent Host Protocol) 定義了一套輕量且獨立的服務協定(Standalone Sessions Server),讓不同的 Client(不論是 VS Code、CLI 工具、桌面應用程式或網頁介面)能夠透過統一的協定連線到 Host,並看到完全同步的 Agent session 狀態。
過往的架構是「一個 UI 視窗內建一個 Agent 引擎」,Client 與 Session 是一對一死綁的;而 AHP 的核心思維,是把 Session 拿出來變成基礎設施(Infrastructure Layer)。
README 中對其設計本質的描述更精確:
"A portable, standalone server protocol that gives multiple clients a synchronized view of AI agent sessions through immutable state, pure reducers, and write-ahead reconciliation."
這意味著無論你從 CLI 送出指令,還是在 VS Code 點擊按鈕,底層的狀態變更都是透過寫前協調(Write-ahead reconciliation)與不可變狀態(Immutable state)同步給所有連接的 Client。
---
拆解 AHP 的四大核心設計
深入看 AHP 的架構規範,會發現它為解開「平行宇宙」設計了幾個關鍵機制:
1. 頻道機制 (Channels) 與狀態訂閱
在 AHP 的溝通模型中,資源被拆解成不同的 URI 頻道(Channels)。Client 可以根據需求訂閱特定的狀態資源,支援 Lazy loading:
ahp-root://:頂層 Host 狀態 ahp-session:/<uuid>:特定 Session 的整體狀態 ahp-chat:/<uuid>:對話脈絡與 Message 歷程 ahp-terminal:/<id>:獨立的終端機通道 * ahp-changeset:/<id>:代碼變更與檔案編輯紀錄
這種設計讓輕量級 Client 不需要一口氣拿走所有歷史資料,而是能按需訂閱;至於 session list,則是另外用 RPC 方式抓取並同步。
2. Terminal 是第一等公民 (First-Class Citizen)
許多 Coding Agent 最怕「長時間執行的背景任務」(例如 Dev Server、Blaze/Cargo Build、測試套件)。在傳統 Client 中,UI 一關掉,下屬的 Terminal process 就跟著斷頭。
AHP 的規範中特別強調:
"Terminals are a first-class subscribable resource in AHP... Terminal state is separate from session state. A terminal persists independently of the session that created it."
在 AHP 的架構下,Terminal 獨立於 Session 存在。不論是 Shell session 還是背景開發伺服器,它都不再只是某個視窗附屬的暫時物件。Client 重新連線後,可以重新 Claim 或 Subscribe 該 ahp-terminal 頻道,接回這條終端機的狀態與輸出。
3. 斷線重連與 Replay 機制 (Reconnect / Replay)
網路中斷或編輯器重啟是常態。AHP 在生命週期規範(Lifecycle Spec)中納入了明確的追補機制:
當 Client 重新連線時,會發送包含 clientId 與 lastSeenServerSeq(最後收到的伺服器序號)的 Reconnect 請求。AHP Host 會評估差異: Replay:若差異在可追補範圍內,Host 會回傳錯過的 Action Envelopes,讓 Client 無縫重播恢復狀態。 Snapshot:若斷線太久或狀態落差過大,Host 會直接發送完整的狀態快照(Snapshot)讓 Client 重新對齊。
這確保了「隨開隨走、隨接隨讀」的開發體驗,長任務不再因為視窗關閉而付諸東流。
---
AHP vs. ACP:分工到底在哪裡?
很多人看到各種新協定出爐,第一反應常常是:「這跟 ACP (Agent Communication Protocol) 有什麼不一樣?」
AHP 的文件在 docs/guide/ahp-and-acp.md 中給出了一個非常清晰的分界:
"AHP is a coordination layer. ACP is a communication layer."
ACP (Agent Communication Protocol):解決的是 1 對 1 的通訊。關注 Client 怎麼把 Prompt 送給 Agent、Agent 怎麼 call tool、怎麼回傳 stream response。 AHP (Agent Host Protocol):解決的是 N 個 Clients 共享 shared agent sessions 的協調問題。關注的是狀態同步、多端訂閱、Terminal 存活與連線生命週期。
AHP 是 agent-agnostic 的。它不綁定特定 agent runtime 或 backend tool vocabulary,專注做好「多端狀態協調者」(Coordination Layer)的角色。
flowchart TB H["AHP Host Server: sessions, terminals, replay, channels"] V["VS Code"] -->|"AHP protocol"| H C["CLI / AHPX"] -->|"AHP protocol"| H D["Desktop Client"] -->|"AHP protocol"| H
---
目前落地的真實狀態:VS Code Reference Implementation
這不是純粹寫在紙上的白皮書。在目前公開的資料中,已經能找到明確的落地痕跡:
根據 AHP 的 docs/guide/implementations.md 與 VS Code 原始碼:
- VS Code 已經是 Reference Implementation:VS Code 的 Agent Host 是 AHP 官方參考 Server 實作,程式碼落腳於 VS Code repo 的
src/vs/platform/agentHost/node/。 - VS Code 內建 Client:VS Code 內部已經包含能夠與 AHP Host 互動的 Agent Sessions client code。
- 多語言 SDK 鋪路:生態系中已經出現 Rust、TypeScript、Kotlin、Swift、Go 等語言的 Client Library,以及
AHPX這類 CLI 工具雛形。
---
冷靜看待:邊界與未竟之業
看到這裡,你可能會想:「太好了,所以現在所有 AI 工具都打通了嗎?」
請先慢著太樂觀。
我們必須非常明確地劃清目前的實作邊界:
AHP 目前仍是 Draft / Under Active Development 階段,絕非已經定案的業界通用標準。 沒有直接證據顯示 ChatGPT Desktop 或 Claude Desktop 採用了 AHP。 Codex CLI 與 Claude Code CLI 也還沒有透過 AHP 達成全面互通。 AHP 並沒有奇蹟般地解決所有複雜的 Context Sync 或 Git 衝突問題。
目前能下的客觀結論只有一個:如果未來有更多 Client 廠商與 CLI 工具願意接入同一套 AHP 協定,理論上有機會大幅收斂現今割裂的平行宇宙體驗。
---
結語
AHP 真正有價值的地方,不是業界又多了一個英文縮寫的協定名詞,而是它提示了一個關鍵的架構轉向——把 Agent Session 從 UI 視窗的附屬品,拉回基礎設施層。
當 Agent 開始承接越來越多動輒執行數小時的長任務,把 Session 與 Terminal 交給獨立的 Host 代管,讓 VS Code、CLI 與各種 Client 隨時加入或離開觀測,才是軟體工程走向成熟應有的樣貌。這張草案能走多遠,值得持續關注。
Signals
Visits
--
Waiting for Cloudflare metrics.