AI 程式設計教程中文版
從原理到實戰

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 DocsGitHub READMEllms.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.mdUSER.mdsession_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(強化學習訓練)開始——那會把最容易出錯的許可權、會話和自動化問題堆在一起。先把基礎鏈路跑通,再往上加。

官方資料

下一步

本頁目錄