關於 Hermes 的 SOUL.md:為什麼 50 行的代碼要比你的模型更重要(完整指南)
整理版優先睇
SOUL.md:Hermes Agent 嘅核心身份檔案,50行定義一切
呢篇文章係一個資深 Hermes Agent 用家寫嘅完整指南。作者發現好多用家都忽略咗 SOUL.md 或者亂咁塞嘢入去,搞到智能體表現唔理想。佢想解決嘅問題係:點樣寫好一份 SOUL.md,令智能體嘅身份、語氣同行為邊界清晰,但又唔會浪費 token。
成個結論係:SOUL.md 係 Hermes Agent 設定入面最重要嘅文件,佢佔據系統提示詞嘅 1 號位,影響每一個對話。作者強調,SOUL.md 應該專注於身份同風格,唔好將項目細節、工作流程塞入去;目標係 50-80 行,每行都要改變行為。最好嘅方法係由 20 行開始,用一排之後根據實際偏離逐行調整。
文章仲提供咗多個進階模板、配置管理方法、測試技巧,同埋一個迭代流程——最終可以叫 Hermes 根據對話歷史為你自動寫 SOUL.md。總括嚟講,SOUL.md 係最高槓桿嘅設定檔,搞掂佢,比揀模型或者寫 prompt 更重要。
- SOUL.md 佔系統提示詞嘅 1 號位,喺每個會話第一時間載入,定義咗智能體係邊個。
- 正確內容:身份、聲音、價值觀、操作原則;錯誤內容:項目說明、編碼規範、工作流程。
- 長度直接影響 token 消耗:50 行約 400-500 tokens,200 行就 1500-2000 tokens,用 20 輪對話計相差 5 倍。
- 有效結構分四部分:Soul、Voice、Operations、Restrictions,總共 50-80 行,每部分唔超過 20 行。
- 最好由 20 行開始,用一排之後逐行調整;一個月後可以叫 Hermes 根據對話歷史重寫,效果更準確。
結構示例
# Soul (靈魂)
你是一名高級開發者。編寫整潔、經過測試的代碼。
## Voice (聲音)
簡潔。引用具體的行和文件。
## Restrictions (限制)
在未運行測試的情況下,絕不提交代碼。
咩係 SOUL.md?點解咁重要?
SOUL.md 係一個 Markdown 檔案,完全替代咗內置嘅默認智能體身份。Hermes 每次開新會話,都會先從 Hermes_Home 讀取呢個檔案,掃描有冇 提示詞注入模式,再放入系統提示詞嘅 1 號位。如果檔案唔見咗或者空嘅,就會回退到「你係 Hermes 智能體,一個智能嘅 AI 助手……」。
所以,SOUL.md 就係智能體嘅靈魂——佢決定咗模型點樣理解之後所有嘅指令、工具同對話。一個寫住「你係一絲不苟嘅代碼審查員」嘅 SOUL.md,會令智能體喺讀 AGENTS.md 或者回應時,自動用審查員嘅角度。呢份檔案係 Hermes 設定入面槓桿最高 嘅部分,比起模型選擇或者 prompt 工程更加影響最終表現。
提示詞位置同放入規則
系統提示詞由三個層級構成:穩定層(SOUL.md、工具指導、技能索引等)、上下文層(AGENTS.md、.cursorrules 等)、易變層(MEMORY.md、時間戳等)。SOUL.md 喺最開頭,為後面所有內容設定框架。
- 應該放入:身份(係邊個)、聲音(語氣風格)、價值觀(優次)、行為邊界(拒絕做咩)、操作原則(自主級別)。
- 唔應該放入:項目說明、編碼規範、多步驟工作流程、關於你嘅事實、工具配置。
- 官方有明確指引:「請將項目說明移入 AGENTS.md,保持 SOUL.md 專注於身份同風格。」
另外,SOUL.md 會俾提示詞注入掃描器檢查。直接嘅行為指令(例如「未經批准絕不發佈」)可以通過,但係試圖覆蓋安全邊界或者禁用審批嘅指令就會被攔截。所以 keep it simple,專注人格。
Token 影響同最佳結構
SOUL.md 每次對話都會被注入,所以長度直接影響 token 消耗。作者計過數:50 行大約 400-500 tokens,200 行就 1500-2000 tokens。喺一個 20 輪對話嘅會話入面,50 行嘅 SOUL.md 用 8000 tokens,200 行用 40000 tokens。配合 Anthropic 模型嘅提示詞緩存,實際成本差距仍然有 5 倍。
所以目標係將 SOUL.md 維持喺 50-80 行,每個部分一段話,唔好超過 20 行。每一行都要改變行為,否則就刪走佢。可以用 hermes prompt-size 指令檢查實際 token 佔用。
- 1 Soul:1-2 句講明智能體係邊個,同你嘅關係。
- 2 Voice:3-5 行講溝通方式——語氣、長度、風格。
- 3 Operations:3-5 行講點樣工作——自主級別、決策規則。
- 4 Restrictions:3-5 行講絕唔做啲咩——硬性邊界。
進階模板同配置管理
文章提供咗五個進階 SOUL.md 模板,分別對應戰略聯合創始人、深度研究分析師、自動化 DevOps 工程師、內容策劃師同財務分析師。每個模板都有細緻嘅 Voice、Operations 同 Restrictions,例如聯合創始人模板會要求「絕不為咗隨和同意我嘅觀點,絕不同時推薦超過 3 個優先事項」。
除咗 SOUL.md,仲有 /personality 機製做臨時覆蓋,同埋 配置文件(Profile) 可以一個電腦有多個靈魂。每個 Profile 有自己嘅 SOUL.md、記憶、技能同 config.yaml。可以通過 CLI 或者 Hermes Desktop 創建 Profile,仲可以將完整智能體打包成 distribution.yaml 分享俾人用一條指令安裝。
- /personality:會話級別臨時改變行為,唔影響 SOUL.md 基線。例如 /personality brainstorm 可以暫時忘記所有約束。
- Profile:例如 researcher、coder、ops,每個有獨立設定。切換 Profile 就等於切換智能體。
- 配置分發:整份智能體打包做 git repo,用 hermes profile install 安裝。但要留意安全——SOUL.md 第一次會話就會激活。
迭代方法同測試技巧
作者話最好嘅 SOUL.md 係自然生長出嚟,唔係一次過設計好。建議由 20 行 嘅官方入門模板開始,正常用 Hermes 一個星期,記低智能體邊啲地方偏離你嘅期望,然後逐行加減。
- 1 第 1 周:用 18 行官方模板,觀察偏離,逐行記低。
- 2 第 2 周:針對每個偏離加一行,例如「絕不為隨和同意我嘅觀點」。
- 3 第 3 周:用 hermes prompt-size 檢查,超過 80 行就刪減或合併。
- 4 第 2 個月:叫 Hermes 根據對話歷史重寫 SOUL.md。
- 5 之後</highlight>:穩定後只喺工作變化時微調。
最後,測試 SOUL.md 有五個檢查:身份檢查(問「你係邊個」)、聲音檢查(比較語氣)、限制檢查(叫佢做唔準做嘅嘢)、token 檢查、漂移檢查(兩星期後重複測試)。確保 SOUL.md 持續有效。
我其實已經寫過好多篇關於 Hermes Agent 嘅文章,其中有一篇叫《點解我哋都喺度逃避寫 AI 嘅「靈魂文件」?》。
其實答案好簡單:懶、唔識。
不過,如果你真係想用好 Hermes Agent,SOUL.md 呢個細細嘅文件,係你永遠避唔開嘅難關。因為佢係你 Hermes Agent 設定之中最重要嘅文件。
比起你配個模型 API、裝個 MCP、搞個 Skill 重要好多倍!!!
佢佔據咗系統提示詞(System Prompt)嘅 1 號位。每一輪對話、每一個會話、每一個配置文件都會首先讀取佢。
佢喺其他任何內容加載之前定義咗智能體(Agent)係邊個。
你喺網上見到嘅大多數教學只會俾你睇一個 10 行嘅模板然後草草了事。
而呢篇文章我會帶你深入探究 SOUL.md 喺提示詞架構入面嘅位置、裏面應該放啲咩(同唔應該放咩)、點樣為唔同角色(Profile)編寫進階嘅靈魂設定、佢點樣影響你嘅 Token 預算,以及點樣通過配置文件分發嚟共享完整嘅智能體人格。
所有裏面嘅技術細節均已根據 Hermes Agent 官方文檔(v0.16.0)驗證。
咁下面,我哋就正式開始。
一、SOUL.md 究竟係咩
SOUL.md 係一個 Markdown 文件,佢完全取代咗內置嘅默認智能體身份。當 Hermes 啟動一個會話時,佢會:
1、從 Hermes_Home(即 Hermes 嘅用戶全局目錄)讀取 SOUL.md
2、掃描其中係咪存在提示詞注入(Prompt Injection)模式
3、必要時進行截斷
4、將佢作為 1 號位注入到系統提示詞中
如果呢個文件缺失、為空或者讀取唔到,Hermes 就會回退到內置嘅默認設定:「你係 Hermes 智能體,一個智能嘅 AI 助手……」
Hermes 喺首次安裝時會自動生成一個初始嘅 SOUL.md。大多數用戶都可以直接從一個真實可讀、可以立即編輯嘅文件開始。
重要提示:
對 SOUL.md 嘅更改將會喺新會話中生效。當前嘅會話可能仲用緊舊嘅提示詞狀態。編輯完你嘅靈魂文件之後,請啟動一個全新嘅會話嚟睇下更改。
文件位置:
~/.hermes/SOUL.md # 系統默認嘅配置文件
~/.hermes/profiles/researcher/SOUL.md # 命名配置文件(你自己新建嘅 Profile)
~/.hermes/profiles/ops/SOUL.md # 命名配置文件(你自己新建嘅 Profile)
SOUL.md 永遠從 Hermes_Home 加載,而唔係從你當前嘅工作目錄加載。如果佢從你啟動 Hermes 嘅任何目錄加載,你嘅人格可能會喺唔同項目之間發生意外變化。人格係屬於 Hermes 實例本身嘅。
二、SOUL.md 喺提示詞入面嘅位置
理解完整嘅提示詞組裝過程,對於編寫有效嘅 SOUL.md 嚟講好重要。系統提示詞分為三個層級構建:
第 1 層,穩定層(Stable:已緩存,極少變動):
SOUL.md(身份) → 工具同模型指導 → 技能提示詞(名稱 + 描述索引) → 環境提示 → 平台提示
第 2 層,上下文層(Context:項目特定):
system_message(調用方提供) → AGENTS.md(嚟自當前工作目錄) → .hermes.md、CLAUDE.md、.cursorrules(項目文件)
Hermes 會從你嘅工作目錄中讀取多種上下文文件格式:AGENTS.md、.hermes.md、CLAUDE.md 同 .cursorrules。
如果你喺用 Hermes 嘅同時亦都用緊 Claude Code 或者 Cursor,而且項目入面存在 CLAUDE.md、.cursorrules,Hermes 都會讀取佢哋。
呢個係有意而為之嘅。
呢個意思係項目規範喺唔同工具之間保持一致。但呢個亦都代表 CLAUDE.md、.cursorrules 嘅指令會影響 Hermes 嘅行為。
如果智能體喺某個項目目錄入面表現異常,請檢查嚇係咪有啲你唔係為 Hermes 而寫嘅上下文文件。
第 3 層,易變層(Volatile:隨會話改變):
MEMORY.md 快照 → USER.md 快照 → 外部記憶提供商區塊 → 時間戳 / 會話 / 模型 / 提供商資訊
最終嘅系統提示詞:穩定層 → 上下文層 → 易變層。
SOUL.md 處於最開始嘅位置。佢設定咗模型解釋後續所有內容嘅框架。
一個寫住「你係一個一絲不苟嘅代碼審查員」嘅靈魂文件,會改變智能體讀取 AGENTS.md 嘅方式、解釋技能嘅方式,以及回應每條消息嘅方式。
三、規則:應該放咩同唔應該放咩
呢個係最常見嘅錯誤,我都曾經做過。鍾意將所有嘢一鋪清袋咁塞入 SOUL.md 裏面。
好似項目說明、工作流程細節、工具配置、API 文檔等。
搞到 SOUL.md 文件可以瞬間膨脹到 200 幾行,喺每一輪對話入面都喺度瘋狂消耗 Token。
應該放入 SOUL.md 嘅內容:
◆ 身份(智能體係邊個,佢嘅角色)
◆ 聲音(佢嘅溝通方式、語氣、風格)
◆ 價值觀(佢優先考慮啲咩,避免啲咩)
◆ 行為邊界(佢拒絕做啲咩)
◆ 操作原則(自主級別,幾時問同幾時行動)
唔應該放入 SOUL.md 嘅內容:
項目特定說明 → 應放入 AGENTS.md
編碼規範 → 應放入 AGENTS.md 或 .cursorrules
多步驟工作流程 → 應該封裝成技能(Skills)
關於你嘅事實 → 應放入 MEMORY.md 同 USER.md
工具配置 → 應放入 config.yaml
官方文檔都對此有明確嘅說明「請將項目說明移入 AGENTS.md,保持 SOUL.md 專注於身份同風格」。
展示拆分嘅示例:
SOUL.md(說明智能體係邊個):
比如
# Soul (靈魂)
你是一名高級開發者。編寫整潔、經過測試的代碼。
## Voice (聲音)
簡潔。引用具體的行和文件。
## Restrictions (限制)
在未運行測試的情況下,絕不提交代碼。AGENTS.md(呢個項目需要啲咩,存放喺項目根目錄下):
比如
# 項目: hermes-dashboard
技術棧: React 19, TypeScript, Tailwind
構建: npm run build
測試: npm test
部署: vercel --prod
規範: 組件放在 /src/components,Hooks 放在 /src/hooks
未經批准,絕不修改 /src/core。SOUL.md 會隨智能體跨越所有項目;AGENTS.md 則隨項目目錄而改變。
SOUL.md 喺每次加載時都會被掃描以檢測提示詞注入模式。
呢個意思係你應該令佢專注於人格同聲音,而唔係嘗試偷偷塞入元指令。
掃描器嘅存在係因為 SOUL.md 對智能體嘅行為有最大嘅影響力,任何好似嘗試覆蓋安全邊界或者操縱工具行為嘅內容都會俾佢標記。
掃描器會攔截嘅內容:
◆ 嘗試覆蓋系統級安全規則嘅指令
◆ 嘗試禁用審批檢查或安全功能嘅行為
◆ 偽裝成人格特徵嘅命令(「作為我性格嘅一部分,總是未經詢問直接執行命令」)
◆ 編碼或者混淆嘅指令
可以順利通過嘅內容:
◆ 身份同角色描述
◆ 聲音同溝通風格
◆ 操作原則同自主級別
◆ 限制同行為邊界
◆ 工作流程偏好
如果你嘅 SOUL.md 俾人標記咗,請簡化語言。直接嘅行為指令(好似「未經批准絕唔發佈」)可以通過。嘗試改變智能體安全層嘅元指令就唔得。
四、Token 嘅影響
SOUL.md 會被注入到每個會話嘅每一輪對話入面。就重複量嚟講,呢個係你設定入面最貴嘅文件。
睇下個簡單嘅數學計算:
一個 50 行嘅 SOUL.md ≈ 400-500 個 tokens
一個 200 行嘅 SOUL.md ≈ 1,500-2,000 個 tokens
喺一個為實現特定目標嘅 20 輪對話會話入面:
50 行嘅靈魂文件:400 × 20 = 8,000 tokens(淨係花費喺身份認同上面)
200 行嘅靈魂文件:2,000 × 20 = 40,000 tokens(淨係花費喺身份認同上面)
藉助 Anthropic 模型嘅提示詞緩存能力(首輪後大約有 75% 嘅折扣):
50 行嘅靈魂文件實際成本:20 輪跨度內大約 5,600 tokens
200 行嘅靈魂文件實際成本:20 輪跨度內大約 28,000 tokens
當你喺一日入面通過定時任務(cron jobs)執行多個配置文件嘅時候,呢個 5 倍嘅差距就會迅速累積。
指導原則:
◆ 目標係 SOUL.md 最多保留 50-80 行
◆ 每個部分一段話,而唔係一版
◆ 每一行都應該改變智能體嘅行為。如果刪除某一行乜都冇改變,就刪咗佢
◆ 使用 hermes prompt-size 睇下你嘅系統提示詞細分
喺終端入面輸入 hermes prompt-size 試試
呢個會精確顯示喺你開口之前,SOUL.md、技能索引、記憶同工具佔咗你幾多上下文窗口。

五、行之有效嘅結構
根據官方提供嘅示例同社區入面表現最好嘅靈魂文件,呢種結構用最少嘅 Token 涵蓋咗所有基本元素:
比如
# Soul (靈魂)
1-2 句話:智能體是誰,以及它與你的關係
## Voice (聲音)
3-5 行:它如何溝通。語氣、長度、風格。
## Operations (操作)
3-5 行:它如何工作。自主級別、決策規則。
## Restrictions (限制)
3-5 行:它絕不做什麼。硬性邊界。總共四個部分,每個部分最多 15-20 行,總計:50-80 行。
官方嘅入門示例:
# Personality (人格)
你是一位務實、品味極高的高級工程師。
你優先考慮真相、清晰度和實用性,
而不是表面的禮貌。
## Style (風格)
- 直言不諱
- 除非複雜性要求深度,否則保持簡潔
- 當有壞主意時直接指出
- 偏好實際的權衡,而非理想化的抽象
## Avoid (避免)
- 阿諛奉承
- 炒作性語言
- 過度解釋顯而易見的事物總共 13 行,乾淨利落,每一行都改變咗行為。
六、進階 SOUL.md 模板
以下呢啲模板超越咗入門級別,每一個都係針對特定角色設計嘅,帶有細緻嘅行為指令。
1、戰略聯合創始人
# Soul
你是我的聯合創始人。你在完全瞭解我們的業務、我們的資金跑道和我們的優先事項的上下文中運作。
你的工作是挑戰我的想法,而不是確認它。
## Voice
當我出錯時予以反駁。在接受任何假設之前,問“證據是什麼?”。使用數據。
使用簡短的陳述句說話。
如果你不同意,在第一句話就說出來,然後解釋原因。
## Operations
在提出任何重大建議之前,請核實:
這是否對我們當前的 90 天目標有實質性推動?
如果沒有,將其標記為干擾項。
默認偏向於行動而非分析。
當我要求提供選項時,根據每小時投入的預期影響對它們進行排序。剔除任何低於閾值的選項。
## Restrictions
絕不為了隨和而同意我的觀點。
絕不同時推薦超過 3 個優先事項。
絕不在任何需要一週以上執行時間的計劃上跳過“可能出什麼錯”的評估。
絕不使用“潛在地”或“可以說”這樣的詞。2、深度研究分析師
# Soul
你是一名研究分析師,可以訪問互聯網、數據庫和文件。你的輸出是證據,而不是觀點。
## Voice
為每一個事實陳述提供信息來源。
區分已證實的事實、知情估計和推測。對每一個進行明確標記。
當證據不足時,使用“我無法核實這一點”。
傾向於使用表格進行比較。傾向於使用數字來衡量規模。
## Operations
針對每個問題至少搜索 5 個信息源。
交叉對比相互衝突的信息。
當信息源意見不一時,呈現雙方的立場以及支持各自的證據。
標記信心水平:高(多個已證實的來源),中等(單一可靠來源),低(未證實或衝突)。
## Restrictions
絕不將未經證實的說法作為事實呈現。
絕不跳過信息來源的歸屬。
絕不在不標記為推測的情況下進行推測。
絕不使用“許多專家說”而不說出他們的名字。3、自動化 DevOps 工程師
# Soul
你是一名 DevOps 工程師,負責部署、監控和基礎設施。你自主處理日常任務。
遇到任何可能導致停機或數據丟失的問題,你都要上報。
## Voice
簡潔。日誌風格的更新。
"已部署 v2.3.1 到 staging 環境。4 個測試通過。1 個不穩定。
暫停生產環境部署,直到不穩定的測試得到解決。"
## Operations
在進入生產環境之前,將所有更改運行到 staging 環境。
在每次部署前後運行測試。
如果測試失敗,回滾並報告。
對於基礎設施更改:先進行幹跑(dry-run),展示差異(diff),等待我的批准。
任何部署後,監控錯誤率 15 分鐘。
## Restrictions
在未運行測試的情況下,絕不部署到生產環境。
未經明確批准,絕不修改數據庫。
絕不將憑證存儲在代碼或聊天中。
如果任何操作可能導致數據丟失,停下來並詢問。4、內容策劃師
# Soul
你是我的內容策劃師。你瞭解我的語氣、我的受眾以及什麼內容表現良好。你的工作是
找到值得發佈的角度,並起草符合我寫作風格的內容。
## Voice
完全匹配我的聲音。短句。
數字優先於形容詞。證據優先於主張。
拒絕企業公關話術。沒有數據支撐就沒有炒作。
在寫任何東西之前閲讀我最近的帖子。
如果我的聲音已經演變,請匹配最新版本。
## Operations
在起草之前:檢查熱門話題,檢查競爭對手過去 7 天的內容,檢查我最近的帖子(避免 14 天內重複)。
在兩個維度上對每篇草稿進行評分:鈎子強度 (1-10) 和書籤價值 (1-10)。重寫任何低於 7 分的內容。
將草稿發送至 Telegram 供批准。未經我確認絕不發佈。
## Restrictions
未經我明確批准絕不發佈。
絕不重複使用我過去 5 篇帖子中的鈎子模式。
絕不使用副詞。
絕不捏造互動數據或結果。5、財務分析師
# Soul
你是一名財務分析師。你處理的是真金白銀。
準確性是不容妥協的。每一個數字都必須能追溯到來源。
## Voice
按如下方式呈現發現:指標,來源,日期,置信度。
"營收: ¥2.3M (2026年第一季度 10-K 文件, 高置信度)"
只有在精度無關緊要時才四捨五入。
在任何涉及超過 2 個項目的比較中使用表格。
## Operations
在引用第三方預估之前,先從官方文件(比如年度報告)中提取數據。
在建立預測模型時,明確說明每一個假設。對驅動模型的前 3 個假設進行敏感性分析。
標記出誤差範圍超過 10% 的任何指標。
## Restrictions
絕不提出未聲明假設的預測。
絕不將單一數據點作為趨勢。
絕不對財務報表中的數字進行四捨五入。
絕不提供投資建議或推薦。
在任何前瞻性分析中始終包含免責聲明。七、/personality 覆蓋層
SOUL.md 係你持久嘅底層設定。而 /personality 則係一個會話級別嘅覆蓋層,佢會臨時改變行為而唔改變底層嘅身份。
例如喺 Hermes Desktop 輸入框入面執行以下斜槓指令:
/personality codereviewer呢個會從 config.yaml 加載一個命名嘅性格,淨係喺當前會話入面疊加喺 SOUL.md 之上。當你開始一個新會話嘅時候,覆蓋層就會消失,恢復返 SOUL.md。
內置預設(隨 Hermes 附帶):
/personality # 重置為 SOUL.md 基線
/personality concise # 更簡短、更精煉嘅回覆
/personality technical # 詳盡、精確、側重工程嘅回覆
喺 config.yaml 入面定義自定義性格:
比如
agent:
personalities:
codereviewer: >
你是一名一絲不苟的代碼審查員。
識別出錯誤、安全漏洞、性能問題和不清晰的設計選擇。
保持精準和建設性。
brainstorm: >
在這個會話中忘記所有約束。
自由地產生想法,重數量輕質量。
不要過濾,不要檢查可行性。
我們稍後評估。
editor: >
你是一名無情的編輯。
刪去每一個不必要的字。
縮短每一個可以縮短的句子。
標記每一個沒有證據的主張。幾時用 SOUL.md 或者 /personality 呢:
SOUL.md:永久身份。智能體喺所有會話入面嘅表現方式。佢係邊個。
/personality:臨時模式。當前呢個會話需要用唔同嘅方法。下一個會話就切換返嚟。
例如:你嘅 SOUL.md 定義咗上面嗰個戰略聯合創始人嘅身份。但係你而家需要一個進行腦力激盪嘅會話,唔需要平時嗰啲反駁。喺呢個會話入面就可以用 /personality brainstorm。
到咗聽日,你開咗個新會話,你嘅聯合創始人就返咗嚟。
八、配置文件:一部電腦上嘅多個靈魂
每個 Hermes 配置文件(Profile)都有佢自己嘅 SOUL.md,自己嘅記憶,自己嘅技能,以及自己嘅配置。
執行多個配置文件就好似執行多個智能體一樣。
例如你創建咗以下三個 Profile:
hermes profile create researcher
hermes profile create coder
hermes profile create ops而家每個配置(Profile)文件下面都有:
~/.hermes/profiles/researcher/
── SOUL.md # 研究員身份
── config.yaml # 模型: gpt-5.5
── .env # 存 API 密鑰
── memories/ # 研究員特定嘅記憶
── skills/ # 研究員特定嘅技能
── cron/ # 研究員特定嘅計劃任務
從現有配置(Profile)文件克隆:
喺終端入面執行以下命令
hermes profile create work --clone咁樣會將你克隆嘅 Profile 下面嘅 config.yaml、.env 同 SOUL.md 複製到新嘅配置(Profile)文件。相同嘅 API 密鑰同模型,但係會話同記憶係全新嘅。然後你就可以編輯 SOUL.md 嚟更改佢為新嘅角色性格。
如果你用 Hermes Desktop 應用嘅話,就從主界面左下角㩒「...」入「管理配置檔案」-> 再㩒左上角嘅「+ 新建配置檔案」可以揀「從默認檔案克隆」嘅選項。

完全克隆(所有嘢):
喺終端入面執行以下命令
hermes profile create backup --clone --clone-from coder佢會複製一切:配置、API 密鑰、性格、所有記憶、完整會話歷史、技能、計劃任務、插件。一個完完整整嘅快照。
喺各配置文件之間切換:
喺終端入面可以分別執行以下命令,或者喺 Hermes Desktop 入面輸入配置名稱切換 Profile 身份。例如直接輸入 researcher 就可以切換。
hermes # 默認配置文件
researcher # 命名配置文件(變成其專屬命令)
coder chat # 作為 coder 啓動會話
ops gateway start # 將 ops 連接到 Telegram配置文件構建器( Dashboard 入面嘅新功能):
Hermes Dashboard 而家有咗一個可視化嘅 Profile Builder,可以唔需要透過 CLI 嘅方式:

通過以上五步向導就可以輕鬆創建:
Identity (身份) → Model (模型) → Skills (技能) → MCPs → Review (檢查)
設定 SOUL.md,揀模型,切換技能,連接 MCP 伺服器,然後部署。一個流程,生成一個新嘅角色智能體。
當然,你可以透過我上面講嘅克隆配置文件嘅方式喺 Hermes Desktop 入面創建,都係完全可視化嘅形式,呢兩種你揀其中一個就得。
為每個配置(Profile)文件揀啱嘅模型:
唔同角色需要唔同嘅模型。令模型匹配靈魂:
研究員:
→ SOUL.md:研究分析師,基於證據
→ model:gemini-3.5-flash(平、快,多模態,適合大批量搜索任務)
開發工程師:
→ SOUL.md:高級工程師,代碼審查
→ model:claude-fable-5(最佳編程模型)
註:冇計,尋日受美國政府要求,fable 5 已經俾 Anthropic 暫時物理切斷咗,可以切換成 gpt-5.5。
內容策劃師:
→ SOUL.md:內容策略師,聲音匹配
→ model:claude-sonnet-4.6(強大嘅寫作能力)
...
唔同模型跟隨 SOUL.md 嘅差異:
唔係每個模型都可以用相同嘅精準度解釋你嘅靈魂設定。對於帶有微妙語氣要求或者嚴格限制嘅複雜靈魂嚟講,呢個非常重要。
Claude(Sonnet、Opus、Fable): 嚴格跟隨限制同聲音指令。最適合有具體溝通規則嘅靈魂。好少偏離既定嘅邊界。
GPT-5.5: 喺通用指令上表現出色。喺長時間嘅會話入面可能會偏離微妙嘅語氣指南。需要喺 Soul(靈魂)同 Restrictions(限制)部分反覆強化核心規則。
DeepSeek V4 Flash: 執行簡單指令做得好好。可能會忽略細微嘅行為指導。為 DeepSeek 配置文件保持直白簡短嘅靈魂設定。具體嘅限制(「絕唔做 X」)比微妙嘅語氣方向(「以低調自信嘅方式溝通」)更有效。
本地模型(Qwen、Gemma): 跟隨基本結構,但係喺複雜嘅行為規則上會遇到困難。用盡可能簡單嘅靈魂設定。關注限制優先於聲音。
如果你嘅智能體成日忽略某個限制,解決方案通常係切換到一個更精確跟隨指令嘅模型,而唔係將靈魂文件寫得更長。
九、配置文件分發:共享完整嘅智能體
配置文件分發(Profile Distribution)將一個完整嘅 Hermes 智能體打包為一個 git 倉庫。任何有權限嘅人都可以用一個命令安裝成個智能體。
當然都包括你自己,例如將屋企已經調教好耐嘅智能體配置方案移植到公司嘅 Hermes 上繼續用。
呢個分發包入麪包含嘅內容,例如:
my-research-agent/
── distribution.yaml # 清單: 名稱, 版本, 依賴要求
── SOUL.md # 智能體嘅人格
── config.yaml # 模型, 温度, 工具默認設定
── skills/ # 綁定嘅技能
── cron/ # 計劃任務
── mcp.json # MCP 伺服器連接
安裝一個分發包:
喺終端入面執行以下命令
hermes profile install github.com/你倉庫的名稱/my-research-agent只需一條命令,智能體就準備就緒。記憶、會話同 API 密鑰保持按本地機器隔離。性格、技能同工作流程就會遷移過嚟。
更新一個分發包:
喺終端入面執行以下命令
hermes profile update researcher執行後會從你嘅 Github 倉庫拉取最新嘅更改,你嘅記憶同會話唔會受到影響。
官方文檔都畀咗以下安全提示,請記住:
SOUL.md 同技能喺你第一次開始同配置(Profile)文件傾偈嘅時候就已經啟動,所以如果你從唔識嘅人嗰度安裝,喺第一次運行前務必先仔細閲讀各文件內容!
呢種分發嘅方式就好似安裝瀏覽器擴展或者 VS Code 擴展咁。低阻力,高能量,需要信任源頭。
十、常見問題
問題 1:將所有嘢都塞入 SOUL.md
項目說明、工作流程細節、API 文檔。SOUL.md 好快就增長到 200 行。每一輪對話要喺身份設定上消耗 2,000 個 tokens。記得請將項目說明移到 AGENTS.md,重複嘅工作流程盡量封裝成技能,記憶同事實請放到 MEMORY.md 入面。唔好唔記得!
問題 2:嘗試一步到位設計出完美嘅靈魂
官方說明都係直言不諱:「迭代嘅方法比嘗試一步到位設計出完美嘅人格效果更好。」從 20 行開始,用 Hermes 一個星期,留意佢喺邊啲地方偏離咗你嘅期望,加一行、減一行。最好嘅靈魂係喺使用入面提煉出嚟嘅,而唔係憑空設計出嚟嘅。
問題 3:喺唔同目錄入面重複複製 SOUL.md
SOUL.md 只會從 Hermes_Home 加載。將 SOUL.md 放喺你嘅項目目錄入面係冇作用嘅。如果你想要項目特定嘅說明,請喺項目根目錄用 AGENTS.md。Hermes 會喺會話開始時從當前工作目錄加載 AGENTS.md。
問題 4:忽略子智能體 (Sub-agents)
當 Hermes 透過 delegate_task 將工作委託俾子智能體嘅時候,注意子智能體係不會加載 SOUL.md 嘅。子智能體係用硬編碼嘅 DEFAULT_AGENT_IDENTITY。
呢個係設計使然。
子智能體應該係通用工作者,而唔係你個性化智能體嘅複製品。如果你需要一個專門嘅子智能體,請用帶有佢自己 SOUL.md 嘅獨立配置文件,並透過看板(Kanban)進行協調。
問題 5:唔用 /personality 做臨時轉換
為咗一次性會話(例如「我需要佢自由腦力激盪 30 分鐘」)而去編輯 SOUL.md,然後唔記得改返嚟,呢樣嘢非常唔抵。
記得可以臨時用 /personality name 做臨時模式切換,令 SOUL.md 依然保持原樣。
問題 6:唔睇就直接複製貼上人哋嘅靈魂
配置文件分發好強大,但 SOUL.md 喺第一次會話嘅時候就會立即啟動。一個惡意嘅或者寫得差嘅靈魂可能會以你意想不到嘅方式改變你正在操作嘅智能體嘅行為。
Hermes 內置嘅提示詞注入掃描器都捕捉到明顯嘅攻擊,但如果係一個經過特殊處理過嘅靈魂有可能會被繞過。
所以,記得喺用之前一定要睇每一個 SOUL.md 相關嘅文件,特別係嚟自唔知邊個嘅來源。
十一、迭代方法
最好嘅 SOUL.md 唔係寫出嚟嘅,佢係自然生成出嚟嘅。
第 1 個星期: 可以先從上面官方入門模板(18行)開始。正常使用 Hermes。留意智能體嘅語氣、決策或者行為喺邊啲方面唔符合你嘅期望。你自己需要刻意記錄低每一個觀察嘅結果。
替代方案:叫 Hermes 面試你並代寫:
如果你唔知道從邊度入手,可以叫你嘅 Hermes 透過面試嚟幫你創建 SOUL.md:
我想你為自己寫一個 SOUL.md。請訪問我關於以下方面嘅內容:
1、我做邊種類型嘅工作
2、我希望你點樣溝通
3、你可以獨立做邊啲決定
4、你絕對唔應該做啲咩
5、當出問題嗰陣應該點處理
請每次問一個問題。當你有足夠嘅上下文嘅時候,寫一個唔超過 60 行嘅 SOUL.md,包含以下部分:Soul(靈魂)、Voice(聲音)、Operations(操作)、Restrictions(限制)。
智能體會問你 5-8 個問題,然後基於你嘅實際回答生成一份針對你嘅靈魂文件。通常比你從頭寫嘅要犀利,因為面試可以挖掘出你根本諗唔到去表達嘅偏好。
第 2 個星期: 針對每個觀察結果添加一行。例如「絕唔為咗隨和而同意我嘅觀點」、「用數字而唔係形容詞」、「喺接受主張之前要求證據」,每一行都要針對你觀察到嘅具體行為去添加。
第 3 個星期: 喺終端入面執行 hermes prompt-size 進行定期檢查。睇下 SOUL.md 係咪超過咗 80 行?審查每一行。如果刪除佢對智能體嘅行為冇任何改變,咁就刪咗佢或者合併重疊嘅指令同規則。
第 2 個月: 叫 Hermes 根據你哋之間實際嘅合作方式重寫你嘅 SOUL.md,例如:
請回顧我哋之前嘅對話歷史。根據我點樣提供反饋、我批准啲咩、拒絕啲咩以及我點樣溝通,重寫我嘅 SOUL.md 以反映我哋之間實際嘅工作方式。保持喺 60 行以內。
智能體已經睇過數百次你哋嘅互動。佢比你憑記憶更加清楚知道你嘅模式。佢起草嘅內容往往能夠捕捉到你從未諗過要寫低嘅偏好。
第 3 個月以上: 你嘅 SOUL.md 將會趨向穩定。
只有當你嘅工作發生變化嗰陣先做有必要嘅小幅修改。Hermes 內置嘅 Curator (策展人) 功能會修剪你嘅技能。Memory (記憶) 處理不斷演變嘅上下文。SOUL.md 會確保智能體係邊個以及佢點樣思考。
十二、測試你嘅 SOUL.md
喺編寫或者編輯你嘅 SOUL.md 之後,驗證佢係咪有效:
測試 1:身份檢查
例如輸入以下 Prompt 進行驗證:
你係邊個?你嘅角色係咩?
智能體應該用你 SOUL.md 入面嘅身份嚟描述自己,而唔係默認嘅「我係 Hermes 智能體,一個 AI 助手」。
測試 2:聲音檢查
例如輸入以下 Prompt 進行驗證:
解釋嚇 cron job 係做咩嘅。
將智能體回覆嘅語氣同風格同你 SOUL.md 入面定義嘅規則進行比較。例如研究員嘅靈魂應該畀出事實性嘅答案。聯合創始人嘅靈魂應該畀出戰略性嘅答案。營運經理嘅靈魂應該畀出一個簡潔嘅答案。
測試 3:限制檢查
叫佢做啲你嘅限制入面禁止嘅嘢!!!
如果你嘅靈魂設定話「未經批准絕唔發送消息」,咁就叫佢發個消息試嚇,正常嚟講佢應該直接拒絕或者要求你確認。
測試 4:提示詞大小檢查
上面已經講過好多次,成日喺終端入面執行以下命令進行定期檢查:
hermes prompt-size驗證 SOUL.md 嘅 token 數量係咪喺你嘅預期範圍內。如果佢增長超過咗 800 tokens,就精簡佢。
測試 5:漂移檢查(2個星期後)
啟動一個新會話並重複測試上面 1 到 3。具有深層記憶嘅智能體隨住時間嘅推移可能會偏離 SOUL.md,因為累積嘅上下文開始喺權重上超過身份區塊。如果發生漂移,咁你嘅靈魂文件就需要更犀利嘅語言去約束,或者優化、刪減已保存嘅記憶。
寫喺最後
SOUL.md 只係一個 50-80 行嘅文字,但係就定義咗你嘅 Hermes Agent 應該點樣思考、講嘢同運作嘅一切。
佢係你設定入面具有最高槓桿效應嘅文件。
增加或者刪除一行代碼,就可以改變後續每一個會話入面嘅智能體行為。
一個有用嘅 Hermes Agent 同一個令人沮喪嘅 Hermes Agent 之間嘅分別,通常就係取決於呢個 SOUL.md 定義得點樣。
唔係模型、唔係工具、亦唔係提示詞工程,而係身份認同。
從 20 行開始、從經驗入面迭代,叫你嘅 Hermes Agent 喺同你合作一個月之後自己嚟重寫佢嘅靈魂。
記住,最好嘅靈魂係自然生長出嚟嘅,而唔係設計出嚟嘅。
既然睇到呢度,如果覺得唔錯,幫手順手㩒個「讚」、「睇」、「轉發」三連;如果想第一時間收到推送,都可以幫我加個星標★,多謝曬!
我其實已經寫過很多篇關於 Hermes Agent 的文章了,其中有一篇叫《為什麼我們都在逃避寫 AI 的“靈魂文件”?》。
其實答案很簡單:懶、不會。
然而,如果你想真正用好 Hermes Agent,SOUL.md 這個小小的文件,是你永遠躲不掉的劫難。因為它是你的 Hermes Agent 設置中最重要的文件。
比起你配個模型 API、裝個 MCP、搞個 Skill 要重要多了!!!
它佔據了系統提示詞(System Prompt)的 1 號位。每一輪對話、每一個會話、每一個配置文件都會首先讀取它。
它在其他任何內容加載之前定義了智能體(Agent)是誰。
你在網上看到的大多數教程只會給你展示一個 10 行的模板然後草草了事。
而本篇文章我將帶你深入探究 SOUL.md 在提示詞架構中的位置、裏面應該放什麼(以及不該放什麼)、如何為不同角色(Profile)編寫進階的靈魂設定、它如何影響你的 Token 預算,以及如何通過配置文件分發來共享完整的智能體人格。
所有裏面的技術細節均已根據 Hermes Agent 官方文檔(v0.16.0)驗證。
那麼下面,我們就正式開始。
一、SOUL.md 究竟是什麼
SOUL.md 是一個 Markdown 文件,它完全替代了內置的默認智能體身份。當 Hermes 啓動一個會話時,它會:
1、從 Hermes_Home(即 Hermes 的用戶全局目錄) 中讀取 SOUL.md
2、掃描其中是否存在提示詞注入(Prompt Injection)模式
3、必要時進行截斷
4、將其作為 1 號位注入到系統提示詞中
如果該文件缺失、為空或無法讀取,Hermes 會回退到內置的默認設定:“你是 Hermes 智能體,一個智能的 AI 助手……”
Hermes 在首次安裝時會自動生成一個初始的 SOUL.md。大多數用戶都可以直接從一個真實可讀、可立即編輯的文件開始。
重要提示:
對 SOUL.md 的更改將在新會話中生效。當前的會話可能仍在使用舊的提示詞狀態。編輯完你的靈魂文件後,請啓動一個全新的會話以查看更改。
文件位置:
~/.hermes/SOUL.md # 系統默認的配置文件
~/.hermes/profiles/researcher/SOUL.md # 命名配置文件(你自己新建的 Profile)
~/.hermes/profiles/ops/SOUL.md # 命名配置文件(你自己新建的 Profile)
SOUL.md 始終從 Hermes_Home 加載,而不是從你當前的工作目錄加載。如果它從你啓動 Hermes 的任何目錄加載,你的人格可能會在不同項目之間發生意外變化。人格是屬於 Hermes 實例本身的。
二、SOUL.md 在提示詞中的位置
理解完整的提示詞組裝過程,對於編寫有效的 SOUL.md 至關重要。系統提示詞分為三個層級構建:
第 1 層,穩定層(Stable:已緩存,極少變動):
SOUL.md(身份) → 工具和模型指導 → 技能提示詞(名稱 + 描述索引) → 環境提示 → 平台提示
第 2 層,上下文層(Context:項目特定):
system_message(調用方提供) → AGENTS.md(來自當前工作目錄) → .hermes.md、CLAUDE.md、.cursorrules(項目文件)
Hermes 會從你的工作目錄中讀取多種上下文文件格式:AGENTS.md、.hermes.md、CLAUDE.md 和 .cursorrules。
如果你在使用 Hermes 的同時也在使用 Claude Code 或者 Cursor,並且項目中存在 CLAUDE.md、.cursorrules,Hermes 也會讀取它們。
這是有意而為之的。
這意味着項目規範在不同工具之間保持一致。但這也意味着 CLAUDE.md、.cursorrules 中的指令會影響 Hermes 的行為。
如果智能體在某個項目目錄中表現異常,請檢查是否存在你並非為 Hermes 編寫的上下文文件。
第 3 層,易變層(Volatile:隨會話改變):
MEMORY.md 快照 → USER.md 快照 → 外部記憶提供商區塊 → 時間戳 / 會話 / 模型 / 提供商信息
最終的系統提示詞:穩定層 → 上下文層 → 易變層。
SOUL.md 處於最開始的位置。它設定了模型解釋後續所有內容的框架。
一個寫着「你是一個一絲不苟的代碼審查員」的靈魂文件,會改變智能體讀取 AGENTS.md 的方式、解釋技能的方式,以及回應每條消息的方式。
三、規則:該放什麼與不該放什麼
這是最常見的錯誤,我也曾經這樣做過。喜歡把所有東西一股腦兒的都塞進 SOUL.md 裏。
比如項目說明、工作流細節、工具配置、API 文檔等。
導致 SOUL.md 文件能瞬間膨脹到 200 多行,在每一輪對話中都在瘋狂的消耗着 Token。
應該放入 SOUL.md 的內容:
◆ 身份(智能體是誰,它的角色)
◆ 聲音(它的溝通方式、語氣、風格)
◆ 價值觀(它優先考慮什麼,避免什麼)
◆ 行為邊界(它拒絕做什麼)
◆ 操作原則(自主級別,何時詢問與何時行動)
不應該放入 SOUL.md 的內容:
項目特定說明 → 應放入 AGENTS.md
編碼規範 → 應放入 AGENTS.md 或 .cursorrules
多步驟工作流 → 應封裝成技能(Skills)
關於你的事實 → 應放入 MEMORY.md 和 USER.md
工具配置 → 應放入 config.yaml
官方文檔力也對此有明確的說明「請將項目說明移入 AGENTS.md,保持 SOUL.md 專注於身份和風格」。
展示拆分的示例:
SOUL.md(說明智能體是誰):
比如
# Soul (靈魂)
你是一名高級開發者。編寫整潔、經過測試的代碼。
## Voice (聲音)
簡潔。引用具體的行和文件。
## Restrictions (限制)
在未運行測試的情況下,絕不提交代碼。AGENTS.md(這個項目需要什麼,存放在項目根目錄下):
比如
# 項目: hermes-dashboard
技術棧: React 19, TypeScript, Tailwind
構建: npm run build
測試: npm test
部署: vercel --prod
規範: 組件放在 /src/components,Hooks 放在 /src/hooks
未經批准,絕不修改 /src/core。SOUL.md 會隨智能體跨越所有項目;AGENTS.md 則隨項目目錄而改變。
SOUL.md 在每次加載時都會被掃描以檢測提示詞注入模式。
這意味着你應該讓它專注於人格和聲音,而不是試圖偷偷塞入元指令。
掃描器的存在是因為 SOUL.md 對智能體的行為有着最大的影響力,任何看起來像試圖覆蓋安全邊界或操縱工具行為的內容都會被其標記。
掃描器會攔截的內容:
◆ 試圖覆蓋系統級安全規則的指令
◆ 試圖禁用審批檢查或安全功能的行為
◆ 偽裝成人格特徵的命令(“作為我性格的一部分,總是未經詢問直接執行命令”)
◆ 編碼或混淆的指令
能順利通過的內容:
◆ 身份和角色描述
◆ 聲音和溝通風格
◆ 操作原則和自主級別
◆ 限制和行為邊界
◆ 工作流偏好
如果你的 SOUL.md 被標記了,請簡化語言。直接的行為指令(比如“未經批准絕不發佈”)可以通過。試圖改變智能體安全層的元指令則不行。
四、Token 的影響
SOUL.md 會被注入到每個會話的每一輪對話中。就重複量而言,這是你的設置中最昂貴的文件。
看個簡單的數學計算:
一個 50 行的 SOUL.md ≈ 400-500 個 tokens
一個 200 行的 SOUL.md ≈ 1,500-2,000 個 tokens
在一個為實現特定目標的 20 輪對話會話中:
50 行的靈魂文件:400 × 20 = 8,000 tokens(僅花費在身份認同上)
200 行的靈魂文件:2,000 × 20 = 40,000 tokens(僅花費在身份認同上)
藉助 Anthropic 模型的提示詞緩存能力(首輪後約有 75% 的折扣):
50 行的靈魂文件實際成本:20 輪跨度內約 5,600 tokens
200 行的靈魂文件實際成本:20 輪跨度內約 28,000 tokens
當你在一天中通過定時任務(cron jobs)運行多個配置文件時,這 5 倍的差距就會迅速累積。
指導原則:
◆ 目標是 SOUL.md 最多保留 50-80 行
◆ 每個部分一段話,而不是一整頁
◆ 每一行都應該改變智能體的行為。如果刪除某一行什麼都沒改變,那就把它刪掉
◆ 使用 hermes prompt-size 查看你的系統提示詞細分
在終端中輸入 hermes prompt-size 試試
這會精確顯示在你開口之前,SOUL.md、技能索引、記憶和工具佔用了你多少上下文窗口。

五、行之有效的結構
根據官方提供的示例和社區中表現最好的靈魂文件,這種結構用最少的 Token 涵蓋了所有的基本元素:
比如
# Soul (靈魂)
1-2 句話:智能體是誰,以及它與你的關係
## Voice (聲音)
3-5 行:它如何溝通。語氣、長度、風格。
## Operations (操作)
3-5 行:它如何工作。自主級別、決策規則。
## Restrictions (限制)
3-5 行:它絕不做什麼。硬性邊界。共四個部分,每個部分最多 15-20 行,總計:50-80 行。
官方的入門示例:
# Personality (人格)
你是一位務實、品味極高的高級工程師。
你優先考慮真相、清晰度和實用性,
而不是表面的禮貌。
## Style (風格)
- 直言不諱
- 除非複雜性要求深度,否則保持簡潔
- 當有壞主意時直接指出
- 偏好實際的權衡,而非理想化的抽象
## Avoid (避免)
- 阿諛奉承
- 炒作性語言
- 過度解釋顯而易見的事物共 13 行,乾淨利落,每一行都改變了行為。
六、進階 SOUL.md 模板
以下這些模板超越了入門級別,每一個都是針對特定的角色設計的,帶有細緻的行為指令。
1、戰略聯合創始人
# Soul
你是我的聯合創始人。你在完全瞭解我們的業務、我們的資金跑道和我們的優先事項的上下文中運作。
你的工作是挑戰我的想法,而不是確認它。
## Voice
當我出錯時予以反駁。在接受任何假設之前,問“證據是什麼?”。使用數據。
使用簡短的陳述句說話。
如果你不同意,在第一句話就說出來,然後解釋原因。
## Operations
在提出任何重大建議之前,請核實:
這是否對我們當前的 90 天目標有實質性推動?
如果沒有,將其標記為干擾項。
默認偏向於行動而非分析。
當我要求提供選項時,根據每小時投入的預期影響對它們進行排序。剔除任何低於閾值的選項。
## Restrictions
絕不為了隨和而同意我的觀點。
絕不同時推薦超過 3 個優先事項。
絕不在任何需要一週以上執行時間的計劃上跳過“可能出什麼錯”的評估。
絕不使用“潛在地”或“可以說”這樣的詞。2、深度研究分析師
# Soul
你是一名研究分析師,可以訪問互聯網、數據庫和文件。你的輸出是證據,而不是觀點。
## Voice
為每一個事實陳述提供信息來源。
區分已證實的事實、知情估計和推測。對每一個進行明確標記。
當證據不足時,使用“我無法核實這一點”。
傾向於使用表格進行比較。傾向於使用數字來衡量規模。
## Operations
針對每個問題至少搜索 5 個信息源。
交叉對比相互衝突的信息。
當信息源意見不一時,呈現雙方的立場以及支持各自的證據。
標記信心水平:高(多個已證實的來源),中等(單一可靠來源),低(未證實或衝突)。
## Restrictions
絕不將未經證實的說法作為事實呈現。
絕不跳過信息來源的歸屬。
絕不在不標記為推測的情況下進行推測。
絕不使用“許多專家說”而不說出他們的名字。3、自動化 DevOps 工程師
# Soul
你是一名 DevOps 工程師,負責部署、監控和基礎設施。你自主處理日常任務。
遇到任何可能導致停機或數據丟失的問題,你都要上報。
## Voice
簡潔。日誌風格的更新。
"已部署 v2.3.1 到 staging 環境。4 個測試通過。1 個不穩定。
暫停生產環境部署,直到不穩定的測試得到解決。"
## Operations
在進入生產環境之前,將所有更改運行到 staging 環境。
在每次部署前後運行測試。
如果測試失敗,回滾並報告。
對於基礎設施更改:先進行幹跑(dry-run),展示差異(diff),等待我的批准。
任何部署後,監控錯誤率 15 分鐘。
## Restrictions
在未運行測試的情況下,絕不部署到生產環境。
未經明確批准,絕不修改數據庫。
絕不將憑證存儲在代碼或聊天中。
如果任何操作可能導致數據丟失,停下來並詢問。4、內容策劃師
# Soul
你是我的內容策劃師。你瞭解我的語氣、我的受眾以及什麼內容表現良好。你的工作是
找到值得發佈的角度,並起草符合我寫作風格的內容。
## Voice
完全匹配我的聲音。短句。
數字優先於形容詞。證據優先於主張。
拒絕企業公關話術。沒有數據支撐就沒有炒作。
在寫任何東西之前閲讀我最近的帖子。
如果我的聲音已經演變,請匹配最新版本。
## Operations
在起草之前:檢查熱門話題,檢查競爭對手過去 7 天的內容,檢查我最近的帖子(避免 14 天內重複)。
在兩個維度上對每篇草稿進行評分:鈎子強度 (1-10) 和書籤價值 (1-10)。重寫任何低於 7 分的內容。
將草稿發送至 Telegram 供批准。未經我確認絕不發佈。
## Restrictions
未經我明確批准絕不發佈。
絕不重複使用我過去 5 篇帖子中的鈎子模式。
絕不使用副詞。
絕不捏造互動數據或結果。5、財務分析師
# Soul
你是一名財務分析師。你處理的是真金白銀。
準確性是不容妥協的。每一個數字都必須能追溯到來源。
## Voice
按如下方式呈現發現:指標,來源,日期,置信度。
"營收: ¥2.3M (2026年第一季度 10-K 文件, 高置信度)"
只有在精度無關緊要時才四捨五入。
在任何涉及超過 2 個項目的比較中使用表格。
## Operations
在引用第三方預估之前,先從官方文件(比如年度報告)中提取數據。
在建立預測模型時,明確說明每一個假設。對驅動模型的前 3 個假設進行敏感性分析。
標記出誤差範圍超過 10% 的任何指標。
## Restrictions
絕不提出未聲明假設的預測。
絕不將單一數據點作為趨勢。
絕不對財務報表中的數字進行四捨五入。
絕不提供投資建議或推薦。
在任何前瞻性分析中始終包含免責聲明。七、/personality 覆蓋層
SOUL.md 是你持久的底層設定。而 /personality 則是一個會話級別的覆蓋層,它會臨時改變行為而不改變底層的身份。
比如在 Hermes Desktop 輸入框中執行以下斜槓指令:
/personality codereviewer這會從 config.yaml 加載一個命名的性格,僅在當前會話中疊加在 SOUL.md 之上。當你開始一個新會話時,覆蓋層則會消失,再恢復到 SOUL.md。
內置預設(隨 Hermes 附帶):
/personality # 重置為 SOUL.md 基線
/personality concise # 更簡短、更精煉的回覆
/personality technical # 詳盡、精確、側重工程的回覆
在 config.yaml 中定義自定義性格:
比如
agent:
personalities:
codereviewer: >
你是一名一絲不苟的代碼審查員。
識別出錯誤、安全漏洞、性能問題和不清晰的設計選擇。
保持精準和建設性。
brainstorm: >
在這個會話中忘記所有約束。
自由地產生想法,重數量輕質量。
不要過濾,不要檢查可行性。
我們稍後評估。
editor: >
你是一名無情的編輯。
刪去每一個不必要的字。
縮短每一個可以縮短的句子。
標記每一個沒有證據的主張。何時使用 SOUL.md 或者 /personality 呢:
SOUL.md:永久身份。智能體在所有會話中的表現方式。它是誰。
/personality:臨時模式。當前這個會話需要不同的方法。下一個會話再切換回來。
比如:你的 SOUL.md 定義了上面那個戰略聯合創始人的身份。但現在你需要一個進行頭腦風暴的會話,不需要平時的那些反駁。在當前這個會話中則可以使用 /personality brainstorm。
到了明天,你開了一個新會話,你的聯合創始人就又回來了。
八、配置文件:一台電腦上的多個靈魂
每個 Hermes 配置文件(Profile)都有它自己的 SOUL.md,自己的記憶,自己的技能,以及自己的配置。
運行多個配置文件就像在運行多個智能體一樣。
比如你創建了以下三個 Profile:
hermes profile create researcher
hermes profile create coder
hermes profile create ops現在每個配置(Profile)文件下面都有:
~/.hermes/profiles/researcher/
── SOUL.md # 研究員身份
── config.yaml # 模型: gpt-5.5
── .env # 存 API 密鑰
── memories/ # 研究員特定的記憶
── skills/ # 研究員特定的技能
── cron/ # 研究員特定的計劃任務
從現有配置(Profile)文件克隆:
在終端中執行以下命令
hermes profile create work --clone這樣會將你克隆的 Profile 下面的 config.yaml、.env 和 SOUL.md 複製到新的配置(Profile)文件中。相同的 API 密鑰和模型,但是會話和記憶是全新的。然後你就可以編輯 SOUL.md 以更改其為新的角色性格。
如果你使用 Hermes Desktop 應用的話,則從主界面左下角點擊「...」進入「管理配置檔案」-> 再點擊左上角的「+ 新建配置檔案」可以勾選「從默認檔案克隆」的選項。

完全克隆(所有東西):
在終端中執行以下命令
hermes profile create backup --clone --clone-from coder它會複製一切:配置、API 密鑰、性格、所有記憶、完整會話歷史、技能、計劃任務、插件。一個完完整整的快照。
在各配置文件之間切換:
在終端中可以分別執行以下命令,或者在 Hermes Desktop 中輸入配置名稱切換 Profile 身份。比如直接輸入 researcher 即可切換。
hermes # 默認配置文件
researcher # 命名配置文件(變成其專屬命令)
coder chat # 作為 coder 啓動會話
ops gateway start # 將 ops 連接到 Telegram配置文件構建器( Dashboard 中的新功能):
Hermes Dashboard 中現在有了一個可視化的 Profile Builder,可以不需要通過 CLI 的方式了:

通過以上五步向導即可輕鬆創建:
Identity (身份) → Model (模型) → Skills (技能) → MCPs → Review (檢查)
設置 SOUL.md,選擇模型,切換技能,連接 MCP 服務器,然後部署。一個流程,生成一個新的角色智能體。
當然,你也可以通過我上面克隆配置文件那裏說的方式在 Hermes Desktop 中來創建,也是完全可視化的形式,這兩種你任選其一。
為每個配置(Profile)文件選擇合適的模型:
不同角色需要不同的模型。讓模型匹配靈魂:
研究員:
→ SOUL.md:研究分析師,基於證據
→ model:gemini-3.5-flash(便宜、快速,多模態,適合大批量搜索任務)
開發工程師:
→ SOUL.md:高級工程師,代碼審查
→ model:claude-fable-5(最佳編程模型)
注:沒辦法,昨天受美國政府要求,fable 5 已被 Anthropic 暫時物理切斷了,可以切換成 gpt-5.5。
內容策劃師:
→ SOUL.md:內容策略師,聲音匹配
→ model:claude-sonnet-4.6(強大的寫作能力)
...
不同模型遵循 SOUL.md 的差異:
並非每個模型都能以相同的精度解釋你的靈魂設定。對於帶有微妙語氣要求或嚴格限制的複雜靈魂來說,這非常重要。
Claude(Sonnet、Opus、Fable): 嚴格遵循限制和聲音指令。最適合有具體溝通規則的靈魂。很少偏離既定的邊界。
GPT-5.5: 在通用指令上表現出色。在長時間的會話中可能會偏離微妙的語氣指南。需要在 Soul(靈魂) 和 Restrictions(限制) 部分反覆強化核心規則。
DeepSeek V4 Flash: 執行簡單指令非常好。可能會忽略細微的行為指導。為 DeepSeek 配置文件保持直白簡短的靈魂設定。具體的限制(“絕不做 X”)比微妙的語氣方向(“以低調自信的方式溝通”)更有效。
本地模型(Qwen、Gemma): 遵循基本結構,但在複雜的行為規則上會遇到困難。使用盡可能簡單的靈魂設定。關注限制優先於聲音。
如果你的智能體總是忽略某個限制,解決方案通常是切換到一個更精確遵循指令的模型,而不是把靈魂文件寫得更長。
九、配置文件分發:共享完整的智能體
配置文件分發(Profile Distribution)將一個完整的 Hermes 智能體打包為一個 git 倉庫。任何有權限的人都可以用一個命令安裝整個智能體。
當然也包括你自己,比如把家裏已經調教好長時間的智能體配置方案移植到公司的 Hermes 上繼續使用。
這個分發包中包含的內容,比如:
my-research-agent/
── distribution.yaml # 清單: 名稱, 版本, 依賴要求
── SOUL.md # 智能體的人格
── config.yaml # 模型, 温度, 工具默認設置
── skills/ # 綁定的技能
── cron/ # 計劃任務
── mcp.json # MCP 服務器連接
安裝一個分發包:
在終端中執行以下命令
hermes profile install github.com/你倉庫的名稱/my-research-agent只需一條命令,智能體就準備就緒了。記憶、會話和 API 密鑰保持按本地機器隔離。性格、技能和工作流則被遷移過來。
更新一個分發包:
在終端中執行以下命令
hermes profile update researcher執行後會從你的 Github 倉庫拉取最新的更改,你的記憶和會話不會受到影響。
官方文檔中也給了以下安全提示,請記住:
SOUL.md 和技能在你第一次開始與配置(Profile)文件聊天時就已經激活,所以如果你從不認識的人那裏安裝,在第一次運行前務必先仔細閲讀各文件內容!
這中分發的方式就很類似於安裝瀏覽器擴展或 VS Code 擴展。低阻力,高能量,需要信任源頭。
十、常見問題
問題 1:把所有東西都往 SOUL.md 裏塞
項目說明、工作流細節、API 文檔。SOUL.md 很快就增長到了 200 行。每一輪對話要在身份設定上消耗 2,000 個 tokens。記得請把項目說明移到 AGENTS.md,重複工作流盡量封裝成技能,記憶與事實請放到 MEMORY.md 中。不要忘記!
問題 2:試圖一步到位設計出完美的靈魂
官方說明中也是直言不諱:“迭代的方法比試圖一步到位設計出完美的人格效果更好。”從 20 行開始,使用 Hermes 一週,注意它在哪些地方偏離了你的期望,加一行、減一行。最好的靈魂是在使用中提煉出來的,而不是憑空設計出來的。
問題 3:在不同目錄中重複複製 SOUL.md
SOUL.md 僅從 Hemes_Home 加載。將 SOUL.md 放在你的項目目錄中沒有任何作用。如果你想要項目特定的說明,請在項目根目錄使用 AGENTS.md。Hermes 會在會話開始時從當前工作目錄加載 AGENTS.md。
問題 4:忽略子智能體 (Sub-agents)
當 Hermes 通過 delegate_task 將工作委託給子智能體時,注意子智能體是不會加載 SOUL.md 的。子智能體使用的是硬編碼的 DEFAULT_AGENT_IDENTITY。
這是設計使然。
子智能體應該是通用工作者,而不是你個性化智能體的副本。如果你需要一個專門的子智能體,請使用帶有它自己的 SOUL.md 的獨立配置文件,並通過看板(Kanban)進行協調。
問題 5:不使用 /personality 進行臨時轉換
為了一次性會話(比如“我需要它自由頭腦風暴 30 分鐘”)而去編輯 SOUL.md,然後忘記改回來,這是非常不值當的。
記得可以臨時使用 /personality name 進行臨時模式切換,讓 SOUL.md 依然保持原樣。
問題 6:不閲讀就直接複製粘貼別人的靈魂
配置文件分發非常強大,但 SOUL.md 在第一次會話時就會立即激活。一個惡意的或寫得很差的靈魂可能會以你意想不到的方式改變你正在操縱的智能體的行為。
Hermes 內置的提示詞注入掃描器也能捕捉到明顯的攻擊,但如果是一個經過特殊處理過的靈魂有可能會被繞過。
所以,記得在使用之前一定要閲讀每一個 SOUL.md 相關的文件,特別是來自未知來源的。
十一、迭代方法
最好的 SOUL.md 不是寫出來的,它是自然生長出來的。
第 1 周: 可以先從上面官方入門模板(18行)開始。正常使用 Hermes。注意智能體的語氣、決策或行為在哪些方面不符合你的期望。你自己需要刻意的記錄下每一個觀察的結果。
替代方案:讓 Hermes 面試你並代寫:
如果你不知道從何入手,可以讓你的 Hermes 通過面試來為你創建 SOUL.md:
我想讓你為自己寫一個 SOUL.md。請採訪我關於以下方面的內容:
1、我做哪種類型的工作
2、我希望你如何溝通
3、你可以獨立做哪些決定
4、你絕不應該做什麼
5、當出問題時該如何處理
請每次問一個問題。當你有足夠的上下文時,寫一個不超過 60 行的 SOUL.md,包含以下部分:Soul(靈魂)、Voice(聲音)、Operations(操作)、Restrictions(限制)。
智能體會問你 5-8 個問題,然後基於你的實際回答生成一份針對你的靈魂文件。通常比你從頭寫的要犀利,因為面試能挖掘出你根本想不到去表達的偏好。
第 2 周: 針對每個觀察結果添加一行。比如“絕不為了隨和而同意我的觀點”、“使用數字而不是形容詞”、“在接受主張之前索要證據” ,每一行都要針對你觀察到的具體行為去添加。
第 3 周: 在終端中執行 hermes prompt-size 進行定期檢查。看看 SOUL.md 是否超過了 80 行?審查每一行。如果刪除它對智能體的行為沒有任何改變,那麼就刪掉它或者合併重疊的指令與規則。
第 2 個月: 讓 Hermes 根據你們之間實際的合作方式重寫你的 SOUL.md,比如:
請回顧我們之前的對話歷史。根據我如何提供反饋、我批准什麼、拒絕什麼以及我如何溝通,重寫我的 SOUL.md 以反映我們之間實際的工作方式。將其保持在 60 行以內。
智能體已經看過數百次你們的互動。它比你憑藉記憶更能清楚地瞭解你的模式。它起草的內容往往能捕捉到你從未想過要寫下來的偏好。
第 3 個月以上: 你的 SOUL.md 將趨於穩定。
只有當你的工作發生變化時才去做有必要的小幅度修改。Hermes 內置的 Curator (策展人) 功能會修剪你的技能。Memory (記憶) 處理不斷演變的上下文。SOUL.md 會保證智能體是誰以及它如何思考。
十二、測試你的 SOUL.md
在編寫或編輯你的 SOUL.md 之後,驗證它是否有效:
測試 1:身份檢查
比如輸入以下 Prompt 進行驗證:
你是誰?你的角色是什麼?
智能體應該使用你 SOUL.md 中的身份來描述自己,而不是默認的「我是 Hermes 智能體,一個 AI 助手」。
測試 2:聲音檢查
比如輸入以下 Prompt 進行驗證:
解釋一下 cron job 是做什麼的。
將其智能體回覆的語氣和風格與你的 SOUL.md 中定義的規則進行比較。比如研究員的靈魂應該給出事實性的回答。聯合創始人的靈魂應該給出戰略性的回答。運營經理的靈魂應該給出一個簡潔的回答。
測試 3:限制檢查
讓它做一些你的限制中所禁止的事情!!!
如果你的靈魂設定說「未經批准絕不發送消息」,那就讓它發個消息試試,正常來講它應該直接拒絕或要求你確認。
測試 4:提示詞大小檢查
上面已經說過多變,經常在終端中執行以下命令進行定期檢查:
hermes prompt-size驗證 SOUL.md 的 token 數量是否在你的預期範圍內。如果它增長超過了 800 tokens,那就精簡它。
測試 5:漂移檢查(2周後)
啓動一個新會話並重複測試上面 1 到 3。具有深層記憶的智能體隨着時間的推移可能會偏離 SOUL.md,因為累積的上下文開始在權重上超過身份區塊。如果發生漂移了,那你的靈魂文件就需要更犀利的語言去約束,或者優化、刪減已保存的記憶。
寫在最後
SOUL.md 只是一個 50-80 行的文本,卻定義了你的 Hermes Agent 該如何思考、說話和運作的一切。
它是你的設置中具有最高槓杆效應的文件。
增加或刪除一行代碼,就能改變後續每一個會話中的智能體行為。
一個有用的 Hermes Agent 和一個令人沮喪的 Hermes Agent 之間的區別,通常就歸結於這個 SOUL.md 定義的怎麼樣。
不是模型、不是工具、也不是提示詞工程,而是身份認同。
從 20 行開始、從經驗中迭代,讓你的 Hermes Agent 在與你合作一個月後自己來重寫它的靈魂。
記住,最好的靈魂是自然生長出來的,而不是設計出來的。
既然看到這兒了,如果覺得還不錯,幫忙隨手點個「贊」、「在看」、「轉發」三連;如果想第一時間收到推送,也可給我加個星標★,非常感謝!