🤖HermesBlog
Hermes 官方教程 · 第8篇2026/8/9· Easy Understand Hermes Agent

会话管理——和 AI 的每次对话都有记录

Hermes Agent 官方教程第八篇:会话。多平台同步、跨设备接续。

Official session recap

Hermes tutorial

會話管理——和 AI 的每次對話都有紀錄

你有沒有遇過這種情況:跟 AI 聊到一半,不小心關掉了終端機,結果之前的對話全沒了?在 Hermes Agent 裡,這種事永遠不會發生——每一次對話都會被自動儲存為會話(Session),想什麼時候接著聊都行。

會話是怎麼存的?

Hermes 把所有平台的對話都存了下來,不管是 CLI、Telegram、Discord、Slack 還是 WhatsApp,統統記錄在案。這些資料放在一個 SQLite 資料庫裡(~/.hermes/state.db),裡面存了:

  • 會話 ID、來源平台、使用者 ID
  • 會話標題(唯一、可讀的名字)
  • 模型名稱和設定
  • 系統提示詞快照
  • 完整訊息歷史(角色、內容、工具呼叫、工具結果)
  • Token 計數、時間戳記、父會話 ID 等

不是所有東西都塞進上下文

這裡要澄清一個誤區:Hermes 雖然儲存了完整歷史,但不會每輪都把原始檔案位元組重新塞給模型。比如你發了一張圖片讓它做表情包,它可能用視覺能力看一次,之後對話裡只保留圖片描述或本機路徑,而不是反覆攜帶原始 JPEG。

真正讓上下文膨脹的往往是冗長的文字——貼上的聊天紀錄、完整日誌、超大的工具輸出、長 diff。所以盡量用摘要、檔案路徑、精準摘錄來代替大段複製貼上。

常用指令速覽

# 繼續最近的 CLI 會話
hermes --continue    # 或 hermes -c

# 按名字恢復會話
hermes -c "我的專案"

# 按 ID 恢復指定會話
hermes --resume 20250305_091523_a1b2c3d4

# 恢復最新會話
hermes --resume latest

小技巧hermes -c 是「認終端機」的——每個終端機視窗各自記住自己的會話,兩個終端機並排開互不干擾。想停用這個行為,在 config.yaml 裡設 session.terminal_continue: false

給會話起個好名字

/new 會話名 開新會話時直接起名,比如 /new payments-refactor,之後用 /resume payments-refactor 就能找到它。會話列表用 /sessions 查看。

會話太長怎麼辦?

  • /compress:壓縮目前會話,減少上下文佔用
  • /new:開個新執行緒
  • hermes sessions prune:刪除已結束的舊會話(慎用,這是刪除操作)
  • hermes sessions optimize:非破壞性最佳化,合併 FTS5 索引並 VACUUM 資料庫,不碰任何會話資料

記住:壓縮只是減少活躍上下文,不是隱私刪除

支援哪些平台?

Hermes 的會話來源標籤覆蓋了幾乎所有管道:clitelegramdiscordslackwhatsappsignalmatrixemailsmsdingtalkfeishuwecomweixinqqbothomeassistantwebhookapi-server 等等。不管從哪兒聊的,都有紀錄可查。

有了會話管理,和 AI 的每次對話都像有了「存檔點」,隨時讀檔繼續,再也不用擔心聊到一半丟失上下文了。

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/sessions