返回列表

部落格

超越 SSH:為什麼 WebSocket 更適合 AI 程式設計智能體

SSH 為互動式人工工作階段設計,AI 程式設計智能體需要不同的東西。這裡解釋 WebSocket 為何是更好的選擇。

發布於 標籤: 工程 / 架構 / 對比 / SEO
部落格

繼續查看該欄目下的產品與工程更新。

瀏覽此分類

「為什麼不直接 SSH 到 Mac?」——這是開發者第一次聽說從手機控制 Claude Code 時的典型反應。

SSH 成熟、安全、無處不在。但 AI 程式設計智能體的互動模式與互動式 Shell 有根本區別,這些差異疊加後會導致更差的體驗。

互動模型不匹配

SSH 設計於 1995 年,面向一種模型:人坐在終端機前,輸入指令,讀取輸出。工作階段是互動式同步的。

AI 程式設計智能體顛覆了這一模型:

SSH(互動式 Shell)AI 智能體控制
工作階段時長數分鐘到數小時的主動使用數小時到數天,多為閒置監控
人類注意力持續間歇性——收到通知時查看
輸入模式頻繁按鍵偶爾提示 + 審批決策
輸出模式回應你的指令長時間自主輸出流,掃讀而非細讀
關鍵事件你在盯著所以能看到不盯著就可能錯過

問題 1:無推播通知

AI 程式設計的最佳工作流程是:發送任務 → 放下手機 → 收到完成通知 → 查看繼續。

SSH 無法做到第三步。SSH 協定沒有向行動裝置推播通知的機制。

WebSocket 方案: 伺服器監控 Claude Code 輸出和 hook 事件,偵測到完成或審批請求時,透過 WebSocket 推送結構化事件,iOS 應用將其轉為原生推播通知。

問題 2:iOS 背景行為

iOS 會積極暫停背景應用。SSH 用戶端進入背景約 30 秒後網路連線被中斷,重新開啟時「broken pipe」。Mosh 稍好但仍無法解決通知問題。

WebSocket 方案: 伺服器緩衝終端機輸出,不受用戶端連線狀態影響。iOS 應用回到前景後自動重連,多階段狀態恢復(0.2s、0.7s、1.5s),同時關鍵事件在應用暫停時也能以推播通知送達。

問題 3:工作階段狀態管理

多個並行任務時,SSH 需要手動 tmux attach -t session-a,逐個切換、檢查、中斷連線——在手機鍵盤上操作很痛苦。

WebSocket 方案: 伺服器將工作階段管理暴露為結構化命令。iOS 應用顯示工作階段清單和狀態,點擊切換,建立新工作階段時可瀏覽 Mac 檔案系統選擇路徑。

問題 4:智能體事件語意

SSH 傳輸原始位元組,不理解終端機中發生的事情。Claude Code 有 hook 系統在特定事件觸發指令碼,但 SSH 沒有乾淨的方式路由這些事件。

WebSocket 方案: 伺服器透過 HTTP POST 接收 hook 事件,解析、去重(3 秒視窗),透過同一 WebSocket 連線推送到 iOS 應用。一條連線,多種資料類型。

問題 5:認證與存取控制

SSH 認證在行動端使用不便:iOS 金鑰管理不方便、需要設定 sshd、連接埠轉送需要額外配置。

WebSocket 方案: Tactic Remote 使用 API Key 認證。區域網路連線 API Key 可選,Cloudflare Tunnel 連線必須。Mac 應用產生 32 字元隨機金鑰,透過 QR 碼傳輸。

SSH 仍然更好的情境

  • 管理多台伺服器
  • 需要檔案傳輸(SFTP/SCP)
  • 使用非 Claude 工具
  • 需要連接埠轉送
  • 合規要求 SSH

架構圖

iPhone App                    Mac Server                    Claude Code
    │                             │                              │
    │  WebSocket (ws:// or wss://)│                              │
    │◄───────────────────────────►│  tmux send-keys              │
    │  • Terminal I/O             │─────────────────────────────►│
    │  • Session commands         │  tmux capture-pane           │
    │  • Event stream             │◄─────────────────────────────│
    │                             │                              │
    │  Push notification          │  HTTP POST /hook             │
    │◄────────────────────────────│◄─────────────────────────────│
    │  (via WebSocket event)      │  (Claude Code hook scripts)  │
    │                             │                              │

關於 Mosh

Mosh 使用 UDP 改善了行動 SSH 體驗(網路漫遊、連線持久性、本機回顯),但仍不解決核心問題:無推播通知、無智能體事件感知、無結構化工作階段管理。

結論

問題不是「SSH 還是 WebSocket」的抽象協定對比,而是「你的工作流程需要什麼互動模型」。

管理伺服器和執行互動命令,SSH 是正確的協定。控制一個自主執行的 AI 智能體、需要間歇性關注和推播通知,專為此設計的 WebSocket 架構能解決 SSH 無法解決的問題。

立即體驗 Tactic Remote

用手機遠端操作程式開發 Agent

連線到 Mac、Windows 或 Linux 電腦上的 Claude Code、Codex 等 Agent,在 iPhone 或 iPad 上查看進度並傳送下一個請求。