對話
這是什麼
獨立的對話/工作容器,保持專案和上下文彼此獨立。
白話解釋
把每次想像成共用 locker room 裡自己專屬的 locker,而不是一個大開放式收納箱:每個 locker 有自己的密碼、自己的內容、自己的流水帳,儘管所有 locker 都靠在同一面牆上。Hermes 的對話就是那個 locker——一個邊界,讓一個專案的來回討論、成本追蹤和歷史不會洩漏到另一個專案中。
為什麼重要
讓一個專案的對話不會混入另一個專案,本質上是對話的結構性問題——每個對話都是自己的容器,有自己的歷史、成果和狀態。專案隔離在機械層面上正是依賴於此:沒有獨立的對話,就無法在機制上將客戶的資料排除在不相關的工作之外。API 層面的對話管理(列出、刪除、設定標籤)都是透過 profiles 中基於使用者的隔離來強化的。
How it works
Sessions are identified by UUID and created implicitly — the first message in a fresh conversation generates a new session_id — or explicitly through /api/sessions. Each session writes to its own row in state.db, scoped by session_id, so retrieval never crosses boundaries unintentionally. The dashboard lists them under /api/sessions with metadata (message count, created/updated timestamps, tags), and a DELETE wipes that session’s rows from the store. Profiles add user-level isolation on top: each user gets their own session namespace so switching accounts genuinely switches which conversations are reachable. Retention is governed by sessions.retention_days in config (default 365), after which finalized sessions are pruned automatically.