Memory loop
保存穩定偏好、環境事實與會減少未來溝通成本的資訊。規則要求避免把短期任務進度寫進 memory,因為會很快過期。
MEMORY.md / USER.md
Hermes Agent 不是只有一個聊天入口。它比較像一套會組裝提示詞、選擇工具、保存經驗、分派子代理、排程執行、再用安全閘門限制副作用的 agent harness。
從 README 與開發文件看,Hermes 的核心不是單一模型能力,而是「模型每一步怎麼被約束、怎麼被授權、怎麼記住、怎麼延伸」。
Hermes Agent 的規則內容可以分成兩種:第一種是進入模型前的規則,也就是 system prompt、SOUL.md、memory snapshot、skills index、context files、platform hint。第二種是模型呼叫工具後的規則,也就是 tool registry、toolset 曝露、安全核准、子代理隔離、cron 獨立 session、gateway 授權。前者決定「它應該如何思考與回應」,後者決定「它真的可以對世界做什麼」。
開發文件把 AIAgent 的主迴圈描述為同步 agent loop:組 prompt、呼叫模型、執行工具、寫回歷史、必要時壓縮或持久化。
README 說的 self-improving 主要落在這四個回路;它們不是同一種記憶,而是不同壽命與不同副作用的儲存機制。
保存穩定偏好、環境事實與會減少未來溝通成本的資訊。規則要求避免把短期任務進度寫進 memory,因為會很快過期。
MEMORY.md / USER.md
當代理人解出複雜工作或被使用者糾正流程,它可以把方法保存成 skill。skill 是 procedural memory,比一般 memory 更像可重用操作手冊。
skills_list / skill_view / skill_manage
完整對話進 SQLite 與 FTS5,使用者提到過去內容時,agent 用 session_search 找舊脈絡,而不是要求使用者重講。
hermes_state.py / session_search
agent-created skills 會有使用統計、stale 狀態與 archive 流程。它不刪除 bundled 或 hub-installed skills,避免自動整理破壞基礎能力。
agent/curator.py
Hermes 用 toolsets 讓平台、任務、子代理、MCP 與 plugin 決定可見工具面。這是 harness 的權限邊界,不只是 UI 設定。
每個 tools/*.py 檔案用 registry.register 宣告 schema、handler、toolset、check_fn。model_tools.py 會自動探索並建立模型可見 schema。
registryweb、file、terminal、browser、skills、memory、delegation、cronjob 等是可組合的工具包。平台 preset 會挑一組基礎工具。
toolsets.py工具可以有 check_fn,例如 API key、服務狀態、二進位是否存在。檢查失敗就不進 schema,模型看不到也不能呼叫。
check_fnHermes 的安全層在工具執行前做判斷,尤其 terminal tool。這些規則在模型回答之外執行,所以比較接近真正的 runtime guardrail。
危險命令核准rm -r、chmod 777、DROP TABLE、curl | sh、systemctl stop 等會進 approval flow。manual 是預設;smart 會用 auxiliary LLM 判斷;off 則跳過一般核准。
Hardline floorrm 根目錄、mkfs、dd raw block device、fork bomb、shutdown/reboot 等不論 yolo、off 或 cron approve 都拒絕。
Gateway 授權訊息平台先看 allow-all、DM pairing、平台 allowlist、global allowlist,最後預設 deny。
Context file 掃描AGENTS.md、SOUL.md 等在注入 prompt 前會掃 ignore previous instructions、hidden div、讀取 secrets 等常見 injection pattern。
Hermes 把「同一回合內平行分工」和「可在未來獨立執行」分開處理。這個分界很重要。
同步子代理。子代理有全新對話與獨立 terminal session,只靠 parent 傳入的 goal/context 工作。預設 leaf 不能再 delegate、不能 clarify、不能 memory、不能 send_message、不能 execute_code。
可一次派多個任務,預設最多 3 個並行。子代理結果依任務順序回填,只有 final summary 進 parent context,降低 token 污染。
需要多層分工時可啟用 role=orchestrator,但受 max_spawn_depth 限制,避免代理樹爆炸。
耐久工作用 cron。每個到期任務開新 agent session,可附 skills、model/provider、script、workdir 與 delivery target。cron session 預設 skip_memory,並有 3 分鐘 hard interrupt。
如果你在評估 Hermes,不要只問「支援哪些模型」。更好的問題是:這套 harness 怎麼讓模型在長期、有工具、有副作用的環境裡持續工作。
它有 trajectory、batch、Atropos RL 與 tool-calling 記錄,適合研究 agent 行為資料與工具使用軌跡。
researchgateway、profiles、serverless terminal backend 與 cron 讓它不一定綁在筆電,而能在 VPS 或雲端環境常駐。
operationsskills 與 memory 分工清楚:偏好與事實放 memory,流程放 skill,舊對話靠 session_search,避免全部塞進 prompt。
learning loop以下列出本文主要依據的 repo 檔案與文件。這些是概念對應的實作錨點,不是二手摘要。
README.mdwebsite/docs/developer-guide/prompt-assembly.mdwebsite/docs/developer-guide/agent-loop.mdwebsite/docs/developer-guide/tools-runtime.mdwebsite/docs/user-guide/security.md / tools/approval.pywebsite/docs/user-guide/features/delegation.md / cron.md