CLI / TUI / Web
源码版本v2026.7.20
職責
界面層是使用者接觸 agent 的另一組入口(除網關訊息平台外):CLI(hermes_cli/,命令列子命令體系)、TUI(ui-tui/,TypeScript 終端 UI + tui_gateway/ Python 橋)、Web(web/,瀏覽器界面)。三者都最終把使用者輸入送進 agent 的 run_conversation,把輸出渲染回來。它們和網關層是並列關係——網關接外部平台,界面層接本地使用者。
關鍵檔案
CLI
hermes_cli/__init__.py— 套件入口_parser.py— 命令列參數解析auth.py/auth_commands.py— 認證(Nous Portal 等)active_sessions.py— 活躍會話管理backup.py/checkpoints.py— 備份與檢查點blueprint_cmd.py— 藍圖命令browser_connect.py/bundles.py/callbacks.pybanner.py/build_info.py— 橫幅與建構資訊
TUI
ui-tui/README— 終端 UI(TypeScript,含 packages/src)ui-tui/package.json— 依賴與腳本tui_gateway/entry.py— TUI 網關入口server.py— TUI 伺服器端transport.py/ws.py— 傳輸與 WebSocketevent_publisher.py— 事件發布host_supervisor.py/compute_host.py— 宿主監管slash_worker.py/synthetic_turn.py/render.py/project_tree.py_stdin_recovery.py— stdin 恢復
Web
web/README— 瀏覽器界面web/index.html/vite.config.ts— Vite 入口web/src/— 前端原始碼
資料流
- CLI:
hermes <subcommand>→hermes_cli/_parser.py解析 → 子命令模組(auth/backup/blueprint/...)執行;對話類命令最終呼叫AIAgent.run_conversation:6350。 - TUI:
ui-tui/(TS 前端)經 WebSocket 連tui_gateway/ws.py,tui_gateway把終端事件橋到 agent(tui_gateway/server.py持有 agent),輸出經tui_gateway/event_publisher.py推回前端。 - Web:
web/(Vite 前端)同樣經後端連 agent,渲染對話與工具結果。 - 三者的 agent 實例都經
init_agent:276裝配,共用同一套能力層。
小結
界面層 = 三種殼(CLI/TUI/Web)+ 一個 tui_gateway 橋。它們不持業務,只負責輸入輸出形態。與網關層並列:網關接外部訊息平台,界面層接本地終端/瀏覽器。ACP(見此)則接 IDE,構成完整的入口面。