01 · Hermes Agent 是什麼
理解 Hermes Agent 的定位:CLI/TUI、provider、工具、記憶、skills、Gateway、terminal backends 和自動化組成的開源 agent runtime。
Hermes Agent 不只是一個聊天 CLI,也不只是另一個 coding agent(程式設計代理)。它更像 Nous Research 做的開源 agent runtime(代理執行時)——把模型、工具、記憶、skills(技能)、訊息閘道器、終端後端、後臺任務和自動化放到同一套執行系統裡。
官方資料:Hermes Agent Docs、GitHub README、llms.txt。
先給結論:如果只想一次性改程式碼,Claude Code、Codex 或 Cursor 可能更直接;如果想要跨 session、跨平臺、帶記憶和技能沉澱的長期個人 agent,Hermes 的設計才開始有意義。
先分清四類工具
聊天 CLI
解決本輪問答,通常不強調長期執行、訊息平臺和自動化。
Coding Agent
重點是讀程式碼、改程式碼、跑測試、發 PR。
訊息 Bot
重點是從 Telegram、Discord、Slack、Email 等平臺接任務。
Agent Runtime
把模型、工具、記憶、skills、訊息入口、許可權和後臺任務組織到一起。
Hermes 更接近第四類。它可以寫程式碼,但目標不止寫程式碼;它可以接聊天平臺,但也不是普通 bot。
最小心智模型
可以把 Hermes 拆成七層:
flowchart TB
Entry["① 入口層<br/>CLI / TUI / Gateway / API Server"]:::io
Model["② 模型層<br/>provider / model / context / fallback"]:::io
Context["③ 上下文層<br/>SOUL.md / context files / sessions"]:::cap
Tools["④ 工具層<br/>web / file / terminal / browser / MCP / delegation"]:::cap
Runtime["⑤ 執行層<br/>local / docker / ssh / singularity / modal / daytona / vercel_sandbox"]:::cap
Memory["⑥ 記憶層<br/>MEMORY.md / USER.md / session_search / providers"]:::pers
Skills["⑦ 能力沉澱<br/>skills / slash commands / agent-managed skills"]:::pers
Governance["⑧ 治理層<br/>allowlist / approvals / logs / config / backend 隔離"]:::gov
Entry --> Model --> Context --> Tools --> Runtime --> Memory --> Skills --> Governance
classDef io fill:#e6f0ff,stroke:#3568d4,color:#222
classDef cap fill:#fde7c2,stroke:#d4761a,color:#222
classDef pers fill:#e8f5e9,stroke:#43a047,color:#222
classDef gov fill:#fde2e2,stroke:#c43d3d,color:#222
四色分組(藍 = 信任域 / 橙 = 能力域 / 綠 = 持久化域 / 紅 = 治理邊界)。下面是逐層文字版:
七層各自負責什麼:
| 層 | 解決的問題 | 典型出錯點 |
|---|---|---|
| 入口層 | 任務從哪來——CLI 終端命令 / TUI(Terminal UI 文本介面)/ Gateway 聊天平臺 / API Server 程式呼叫 | 多入口不收斂,導致許可權邊界混亂 |
| 模型層 | 用哪個 LLM、上下文多大、失敗時回退到誰 | 沒設 fallback(備用模型)線上一停服全癱 |
| 上下文層 | 每次會話給模型看什麼——~/SOUL.md(全域性人格 / 預設語氣) + AGENTS.md/CLAUDE.md/.hermes.md(專案級規則) + sessions(會話狀態) | 上下文檔案越塞越大,token 用量暴漲;SOUL 與專案規則邊界不清會衝突 |
| 工具層 | 模型能調哪些動作——讀寫檔案、跑終端、控瀏覽器、呼叫 MCP、把任務委派(delegation)給子代理 | 工具預設全開 = 風險面失控 |
| 執行層 | 命令在哪裡跑——本機 / Docker / SSH 遠端 / 雲端 sandbox(隔離沙箱) | 沒隔離時模型可能改到生產環境 |
| 記憶層 | 跨會話記住什麼——MEMORY.md 長期事實 / USER.md 使用者偏好 / session_search 歷史回看 | 記憶膨脹或敏感資訊洩露 |
| 能力沉澱 | 重複流程怎麼固化——把成功流程寫成 skill(技能包),由 agent 自己呼叫或手動 / | skill 描述模糊,agent 誤觸發 |
| 治理層 | allowlist(白名單)、approvals(審批)、日誌、配置、backend(後端)隔離——把上面六層的風險壓住 | 治理空缺時,能力越多事故越大 |
使用 Hermes 時,不要只問"它會不會寫程式碼"。更重要的問題是:
- 它會記住什麼?
- 它能呼叫哪些工具?
- 它從哪裡接收任務?
- 它在哪裡執行命令?
- 它能不能後臺執行?
- 它失敗後有什麼日誌和停止方式?
和普通 coding agent 的差異
Claude Code、Codex、Cursor、Windsurf 更強調“圍繞專案完成開發任務”。Hermes 的關注面更寬:
- 可以作為本地 CLI / TUI assistant(終端助手)。
- 可以接 Telegram、Discord、Slack、WhatsApp、Signal、Email、Matrix、Mattermost、DingTalk(釘釘)、Feishu(飛書)、WeCom(企業微信)、Microsoft Teams 等 15+ 平臺。
- 可以用
MEMORY.md、USER.md和session_search(會話檢索工具)做跨 session 記憶。 - 可以把流程沉澱成 agentskills.io 相容的 skills(可複用技能包)。
- 可以透過 cron(定時任務)、background session(後臺會話)、delegation(子代理委派)和 hooks(生命週期鉤子)做自動化。
- 可以把 terminal 命令放到 local(本機)、Docker(容器)、SSH(遠端主機)或雲 sandbox(雲端隔離沙箱)。
這也意味著 Hermes 的風險面更大。能力越多,越需要明確 provider(推理服務商)、toolsets(工具集)、backend(執行後端)、allowlist(允許名單)和 secret(金鑰)邊界。
自我改進到底是什麼
官方 Hero 把 Hermes 描述為「The only agent with a built-in learning loop」——帶內建學習迴圈的自我改進代理。落到工程機制上,主要不是"模型權重自己變強"(那是 RL training 的事),而是這幾類持久化能力疊加:
- Memory(長期記憶):儲存長期偏好、環境事實、專案約定,跨 session 複用。
- Session search(會話檢索):透過 FTS5 全文索引 + LLM 摘要,回看過去討論過的內容。
- Skills(技能):把成功流程沉澱成 markdown 知識包,下次任務相似時自動套用——agent 還會自己建立新 skill(agent-created skills)。
- Curator(技能策展):後臺維護代理自建 skill 的使用率、新鮮度、歸檔與 LLM 驅動的複審。
- Gateway(訊息閘道器):跨平臺(Telegram / Slack / DingTalk 等)持續接收任務。
- Cron / background(定時與後臺):週期或非同步執行任務。
- Terminal backend(終端後端):把命令執行環境從本機擴充套件到 Docker、遠端 SSH 或雲端 sandbox。
- Honcho dialectic user modeling(Honcho 辯證式使用者建模):可選的 AI 原生使用者建模外掛,跨多 agent 形成對話式使用者畫像。
這些機制疊起來,Hermes 才不只是「每次從零開始聊天」——它在跨次使用中主動積累事實、流程、個人模型。官方原話叫 "gets more capable the longer it runs"(執行時間越長,能力越強)。
什麼時候適合用
適合:
- 你希望 agent 跨 session 記住偏好和環境。
- 你希望從手機、聊天平臺、郵件或 webhook 觸發任務。
- 你有重複流程,想沉澱成 skill。
- 你需要定時檢查、後臺研究、自動報告或訊息投遞。
- 你願意認真治理金鑰、工具許可權、訊息入口和日誌。
不適合:
- 只是偶爾問答。
- 只想一次性改一個小檔案。
- 不準備管理 API key(API 金鑰)、bot token(機器人憑據)、allowlist(允許名單)、backend(執行後端)和 toolsets(工具集)。
- 不清楚自動化失敗後誰負責處理。
- 團隊沒有能力審查外部 skills、MCP 和指令碼。
學習順序
第一次學習 Hermes,順序應該是:
定位 → 安装 → provider(模型供应商)→ first chat(首次对话)
→ session resume(恢复会话)→ config(配置)→ tools(工具)
→ memory(记忆)→ skills(技能)→ gateway(消息网关)→ automation(自动化)不要從 Gateway、cron(定時任務)或 RL training(強化學習訓練)開始——那會把最容易出錯的許可權、會話和自動化問題堆在一起。先把基礎鏈路跑通,再往上加。
官方資料
- Hermes Agent Docs(功能、配置、provider、Gateway 全部以此為準)
- Hermes Agent GitHub(README、原始碼、issue 跟蹤)
- llms.txt(官方文件索引,方便快速定位)
- agentskills.io(Hermes skills 相容的標準與社群)