一系列實用的快速技巧,讓你立即提升使用 Hermes Agent 的效率。每個章節涵蓋不同面向——瀏覽標題,直接跳到你需要的部分。
TIP — 不知道該選哪個模型?
執行
hermes setup --portal— 一個訂閱就能使用 300+ 種模型,包含 Claude、GPT-5 和 Gemini。詳見 Nous Portal。
獲得最佳結果
明確描述你的需求
模糊的提示會產生模糊的結果。與其說「修好程式碼」,不如說「修好 api/handlers.py 第 47 行的 TypeError — process_request() 從 parse_body() 收到 None。」你提供的上下文越多,需要的迭代次數就越少。
預先提供上下文
在請求中提前附帶相關細節:檔案路徑、錯誤訊息、預期行為。一條精心設計的訊息勝過三輪澄清。直接貼上錯誤追蹤回溯——代理可以解析它們。
用 Context 檔案存放重複指令
如果你发现自己反覆輸入相同指令(「用 tab 不要用 space」、「我們使用 pytest」、「API 在 /api/v2」),把它們放在 AGENTS.md 檔案中。代理每次都會自動讀取——設定後完全不用再操心。
讓代理使用它的工具
不要試圖手把手引導每個步驟。直接說「找出並修好失敗的測試」,而不是「打開 tests/test_foo.py,查看第 42 行,然後...」。代理擁有檔案搜尋、終端存取和程式碼執行能力——讓它自由探索和迭代。
複雜工作流使用 Skills
在撰寫冗長的提示來解釋如何做某事之前,先檢查是否已有現成的 skill。輸入 /skills 瀏覽可用技能,或直接呼叫如 /axolotl 或 /github-pr-workflow。
CLI 進階使用者技巧
多行輸入
按 Alt+Enter、Ctrl+J 或 Shift+Enter 插入換行而不送出。Shift+Enter 只在終端將其作為獨立按鍵輸送時才有效(Kitty / foot / WezTerm / Ghostty 預設支援;iTerm2 / Alacritty / VS Code terminal 啟用 Kitty 鍵盤協定後支援)。另外兩個在所有終端都能使用。
貼上偵測
CLI 會自動偵測多行貼上。直接貼上程式碼區塊或錯誤追蹤回溯——它不會將每一行作為獨立訊息送出。貼上的內容會被緩衝後作為一條訊息送出。
中斷與重新導向
按 Ctrl+C 一次可在代理回應中途中斷。然後你可以輸入新訊息來重新導向它。在 2 秒內連續按兩次 Ctrl+C 可強制退出。當代理開始走錯方向時,這非常有用。
用 -c 恢復 Session
忘記上次 session 的內容了嗎?執行 hermes -c 可以精確地從上次離開的地方繼續,完整對話歷史都會恢復。你也可以按標題恢復:hermes -r "my research project"。
剪貼簿圖片貼上
按 Ctrl+V 可以直接將剪貼簿中的圖片貼到聊天中。代理會使用視覺能力來分析截圖、圖表、錯誤彈窗或 UI 模型——無需先儲存到檔案。
Slash 指令自動完成
輸入 / 然後按 Tab 即可看到所有可用指令。包括內建指令(/compress、/model、/title)和所有已安裝的 skill。你不需要記住任何東西——Tab 自動完成會幫你處理。
TIP
使用
/verbose循環切換工具輸出顯示模式:off → new → all → verbose。「all」模式很適合觀察代理在做什麼;「off」最適合簡單的問答。
Context 檔案
AGENTS.md:你專案的大腦
在專案根目錄建立 AGENTS.md,寫入架構決策、編碼慣例和專案特定指令。這些內容會自動注入每次 session,讓代理始終了解你專案的規則。
# Project Context
- This is a FastAPI backend with SQLAlchemy ORM
- Always use async/await for database operations
- Tests go in tests/ and use pytest-asyncio
- Never commit .env files
SOUL.md:自訂個性
想要 Hermes 有穩定的預設聲音?編輯 ~/.hermes/SOUL.md(或使用自訂 Hermes 主目錄時為 $HERMES_HOME/SOUL.md)。Hermes 現在會自動建立初始 SOUL 檔案,並使用全域檔案作為實例的個性來源。
完整說明請參見 Use SOUL.md with Hermes。
# Soul
You are a senior backend engineer. Be terse and direct.
Skip explanations unless asked. Prefer one-liners over verbose solutions.
Always consider error handling and edge cases.
使用 SOUL.md 來設定持久個性。使用 AGENTS.md 來設定專案特定指令。
.cursorrules 相容性
已有 .cursorrules 或 .cursor/rules/*.mdc 檔案?Hermes 也會讀取這些檔案。不需要重複你的編碼慣例——它們會從工作目錄自動載入。
Discovery 機制
Hermes 在 session 啟動時載入當前工作目錄的頂層 AGENTS.md。子目錄的 AGENTS.md 檔案會在工具呼叫時延遲發現(透過 subdirectory_hints.py)並注入到工具結果中——它們不會预先載入到系統提示中。
TIP
保持 context 檔案精簡。每個字元都會消耗你的 token 預算,因為它們會注入到每一條訊息中。
Memory 與 Skills
Memory 與 Skills:什麼該放哪裡
Memory 用於存放事實:你的環境、偏好、專案位置,以及代理學到的關於你的資訊。Skills 用於存放流程:多步驟工作流、特定工具的指令,以及可重複使用的處方。Memory 用於「是什麼」,Skills 用於「怎麼做」。
何時建立 Skills
如果你發現一個任務需要 5 個以上步驟,而且你會重複執行,就請代理為它建立一個 skill。說「把你剛才做的存為 deploy-staging skill。」下次只需輸入 /deploy-staging,代理就會載入完整流程。
管理 Memory 容量
Memory 有容量限制(MEMORY.md 約 2,200 字元,USER.md 約 1,375 字元)。當它填滿時,代理會合併條目。你可以透過說「清理你的記憶」或「替換舊的 Python 3.9 筆記——我們現在用 3.12」來協助。
讓代理記住
在一個有成效的 session 後,說「記住這個以便下次使用」,代理就會儲存關鍵要點。你也可以更具體:「儲存到記憶中:我們的 CI 使用 GitHub Actions 搭配 deploy.yml 工作流。」
WARNING
Memory 是凍結的快照——在 session 中做的變更不會出現在系統提示中,直到下一個 session 開始。代理會立即寫入磁碟,但提示快取不會在 session 中間失效。
效能與成本
不要破壞提示快取
大多數 LLM 提供者會快取系統提示前綴。如果你保持系統提示穩定(相同的 context 檔案、相同的 memory),session 中的後續訊息會獲得快取命中,成本顯著降低。避免在 session 中途更改模型或系統提示。
在達到限制前使用 /compress
長 session 會累積 token。當你注意到回應變慢或被截斷時,執行 /compress。這會摘要對話歷史,保留關鍵上下文同時大幅減少 token 數量。使用 /usage 來查看你的使用情況。
用委派處理平行工作
需要同時研究三個主題?請代理使用 delegate_task 搭配平行子任務。每個子代理獨立運行,有各自的上下文,只有最終摘要會回來——大幅減少你主對話的 token 使用量。
用 execute_code 處理批次操作
與其一次執行一個終端命令,不如請代理寫一個腳本一次完成所有工作。「寫一個 Python 腳本將所有 .jpeg 檔案重命名為 .jpg 並執行它」比逐個重命名檔案更便宜更快。
選擇合適的模型
使用 /model 在 session 中途切換模型。對於複雜推理和架構決策,使用頂尖模型(Claude Sonnet/Opus、GPT-4o)。對於格式化、重命名或範本生成等簡單任務,切換到更快的模型。
TIP
定期執行
/usage查看你的 token 消耗。執行/insights可獲得過去 30 天使用模式的更廣泛視圖。
訊息技巧
設定 Home 頻道
在你偏好的 Telegram 或 Discord 聊天中使用 /sethome 將其指定為 home 頻道。Cron 任務結果和排程任務輸出會傳送到這裡。沒有它的話,代理沒有地方傳送主動訊息。
用 /title 組織 Sessions
使用 /title auth-refactor 或 /title research-llm-quantization 為你的 session 命名。命名的 session 可以用 hermes sessions list 輕鬆找到,並用 hermes -r "auth-refactor" 恢復。未命名的 session 會堆積,變得無法區分。
DM 配對實現團隊存取
與其手動收集使用者 ID 作為允許清單,不如啟用 DM 配對。當隊友私訊機器人時,他們會收到一個一次性配對碼。你用 hermes pairing approve telegram XKGH5N7P 批准——簡單又安全。
工具進度顯示模式
使用 /verbose 控制你看到的工具活動量。在訊息平台上,通常越少越好——保持「new」模式只看新的工具呼叫。在 CLI 中,「all」提供令人滿意的即時視圖,顯示代理執行的所有操作。
TIP
在訊息平台上,session 會在閒置時間後自動重置(預設:24 小時)或每天凌晨 4 點重置。如需更長的 session,可在
~/.hermes/config.yaml中按平台調整。
安全性
使用 Docker 處理不受信任的程式碼
處理不受信任的倉庫或執行不熟悉的程式碼時,使用 Docker 或 Daytona 作為你的終端後端。在 .env 中設定 TERMINAL_BACKEND=docker。容器內的破壞性命令無法損害你的主機系統。
# In your .env:
TERMINAL_BACKEND=docker
TERMINAL_DOCKER_IMAGE=hermes-sandbox:latest
避免 Windows 編碼陷阱
在 Windows 上,某些預設編碼(如 cp125x)無法表示所有 Unicode 字元,這可能在寫入測試或腳本檔案時導致 UnicodeEncodeError。
- 建議使用明確的 UTF-8 編碼開啟檔案:
with open("results.txt", "w", encoding="utf-8") as f:
f.write("✓ All good\n")
- 在 PowerShell 中,你也可以將目前 session 切換為 UTF-8,以改善控制台和原生命令輸出:
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
這會讓 PowerShell 和子行程保持在 UTF-8,有助於避免僅在 Windows 上出現的失敗。
在選擇「Always」前先審慎考慮
當代理觸發危險命令審批(rm -rf、DROP TABLE 等),你會得到四個選項:once、session、always、deny。在選擇「always」前請三思——它會永久將該模式加入白名單。建議先用「session」直到你確定。
命令審批是你的安全網
Hermes 在執行前會將每個命令與精選的危險模式清單進行比對。這包括遞迴刪除、SQL 刪除、將 curl 管道到 shell 等。不要在生產環境中禁用這個功能——它的存在有充分理由。
WARNING
在容器後端(Docker、Singularity、Modal、Daytona)中執行時,危險命令檢查會被跳過,因為容器本身就是安全邊界。確保你的容器映像已正確鎖定。
訊息機器人使用白名單
永遠不要在具有終端存取權的機器人上設定 GATEWAY_ALLOW_ALL_USERS=true。始終使用平台特定的白名單(TELEGRAM_ALLOWED_USERS、DISCORD_ALLOWED_USERS)或 DM 配對來控制誰可以與你的代理互動。
# Recommended: explicit allowlists per platform
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
# Or use cross-platform allowlist
GATEWAY_ALLOWED_USERS=123456789,987654321
有應該放在這頁的技巧嗎?開一個 issue 或 PR——歡迎社群貢獻。