H繁中版
<!-- Source: https://hermesbible.com/docs/guides/tips -->

Section: Guides & Tutorials · URL: https://hermesbible.com/docs/guides/tips

一系列即學即用的實用技巧,讓你立即提升 Hermes Agent 的使用效率。每個章節針對不同面向——瀏覽標題即可快速找到你需要的內容。

提示 — 不知道該選哪個模型?

執行 hermes setup --portal — 一個訂閱就能使用 300 多個模型,包含 Claude、GPT-5 和 Gemini。詳見 Nous Portal


獲得最佳結果

明確描述你的需求

模糊的提示會產生模糊的結果。與其說「修復程式碼」,不如說「修復 api/handlers.py 第 47 行的 TypeError — process_request() 函式從 parse_body() 收到 None。」你提供的脈絡越多,需要的迭代次數就越少。

事先提供脈絡

在請求中先附上相關細節:檔案路徑、錯誤訊息、預期行為。一封精心撰寫的訊息勝過三輪來回確認。直接貼上錯誤堆疊追蹤——agent 可以解析它們。

使用 Context 檔案存放重複性指令

如果你發現自己一直在重複相同的指令(「用 tab 不要用空格」、「我們用 pytest」、「API 在 /api/v2」),把它們寫進 AGENTS.md 檔案。agent 每次啟動都會自動讀取——設定完成後零負擔。

讓 agent 使用它的工具

不要試著手把手引導每一步。說「找到並修復失敗的測試」而不是「打開 tests/test_foo.py,看第 42 行,然後……」agent 有檔案搜尋、終端存取和程式碼執行能力——讓它自由探索和迭代。

使用 Skills 處理複雜工作流程

在寫冗長的提示來解釋如何做某件事之前,先看看是否已有現成的 skill。輸入 /skills 瀏覽可用的 skill,或直接呼叫如 /axolotl/github-pr-workflow

CLI 進階技巧

多行輸入

按下 Alt+EnterCtrl+JShift+Enter 來插入換行而不送出。Shift+Enter 只有在終端將其作為獨立按鍵送出時才有效(Kitty / foot / WezTerm / Ghostty 預設支援;iTerm2 / Alacritty / VS Code 終端需要啟用 Kitty 鍵盤協定)。另外兩個在所有終端中都能使用。

貼上偵測

CLI 會自動偵測多行貼上。直接貼上程式碼區塊或錯誤堆疊追蹤即可——它不會把每一行當成單獨訊息送出。貼上的內容會被緩衝,然後作為一條訊息送出。

中斷與重新導向

按下 Ctrl+C 可以在 agent 回應途中中斷它。然後輸入新訊息來重新導向。在 2 秒內連按兩次 Ctrl+C 可強制退出。當 agent 開始走錯方向時,這個功能非常有用。

使用 -c 恢復工作階段

忘記上次工作階段的內容?執行 hermes -c 即可從上次離開的地方繼續,完整對話歷史都會恢復。你也可以用標題恢復:hermes -r "my research project"

剪貼簿圖片貼上

按下 Ctrl+V 可以直接從剪貼簿貼上圖片到聊天中。agent 會使用視覺分析來檢視截圖、圖表、錯誤彈窗或 UI 模型——不需要先儲存成檔案。

Slash 指令自動完成

輸入 / 再按 Tab 即可看到所有可用指令。這包括內建指令(/compress/model/title)和所有已安裝的 skill。你不需要記住任何東西——Tab 自動完成會幫你搞定。

提示

使用 /verbose 來切換工具輸出顯示模式:off → new → all → verbose。「all」模式適合觀察 agent 的所有操作;「off」最乾淨,適合簡單的問答。

Context 檔案

AGENTS.md:專案的大腦

在專案根目錄建立 AGENTS.md,寫入架構決策、編碼規範和專案專屬指令。這些內容會自動注入每個工作階段,確保 agent 始終了解你的專案規則。

# 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,並將該全域檔案作為實例範圍的人格來源。

完整的設定說明,請參閱 在 Hermes 中使用 SOUL.md

# 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 同樣會讀取它們。不需要複製你的編碼規範——它們會從工作目錄自動載入。

自動探索

Hermes 在工作階段啟動時會載入工作目錄中的頂層 AGENTS.md。子目錄中的 AGENTS.md 檔案則是在工具呼叫時才延遲探索(透過 subdirectory_hints.py)並注入到工具結果中——它們不會預先載入到系統提示中。

提示

保持 context 檔案精簡且聚焦。每個字元都會消耗你的 token 預算,因為它們會注入到每一則訊息中。

記憶與 Skills

記憶 vs. Skills:什麼該放哪裡

記憶用於存放事實:你的環境、偏好設定、專案位置,以及 agent 關於你所學到的資訊。Skills用於存放流程:多步驟工作流程、工具專屬指令和可重用的方法。記憶放「什麼」,Skills 放「怎麼做」。

何時建立 Skills

如果你發現某個任務需要 5 個以上的步驟,而且你會重複執行,請 agent 為它建立一個 skill。說「把你剛才做的事儲存為名為 deploy-staging 的 skill。」下次只需輸入 /deploy-staging,agent 就會載入完整流程。

管理記憶容量

記憶的大小是有限的(MEMORY.md 約 2,200 個字元,USER.md 約 1,375 個字元)。當記憶滿了,agent 會自動整合條目。你可以主動協助,例如說「清理一下你的記憶」或「把舊的 Python 3.9 備註換掉——我們現在用 3.12 了。」

讓 agent 記住

在有成果的工作階段結束後,說「記住這些,下次用得上」,agent 就會儲存關鍵摘要。你也可以更具體地說:「記住我們的 CI 使用 GitHub Actions 搭配 deploy.yml 工作流程。」

警告

記憶是凍結的快照——工作階段中進行的變更不會出現在系統提示中,直到下一個工作階段開始。agent 會立即寫入磁碟,但提示快取在工作階段中不會自動失效。

效能與成本

不要破壞提示快取

大多數 LLM 提供者會快取系統提示的前綴。如果你保持系統提示穩定(相同的 context 檔案、相同的記憶),工作階段中的後續訊息會命中快取,成本會顯著降低。避免在工作階段中途更改模型或系統提示。

在達到限制前使用 /compress

長時間的工作階段會累積大量 token。當你注意到回應變慢或被截斷時,執行 /compress。這會總結對話歷史,在大幅減少 token 數量的同時保留關鍵脈絡。使用 /usage 檢查目前的使用量。

委派並行工作

需要同時研究三個主題?要求 agent 使用 delegate_task 執行並行子任務。每個 subagent 獨立運行,有自己的上下文,只有最終摘要會傳回——大幅減少你主要對話的 token 使用量。

使用 execute_code 執行批次操作

與其一次執行一個終端指令,不如要求 agent 寫一個腳本一次完成所有操作。「寫一個 Python 腳本把所有 .jpeg 檔案重新命名為 .jpg 並執行它」比逐一重新命名檔案更便宜也更快。

選擇合適的模型

使用 /model 在工作階段中切換模型。使用前沿模型(Claude Sonnet/Opus、GPT-4o)處理複雜推理和架構決策。切換到較快的模型處理簡單任務,如格式化、重新命名或樣板生成。

提示

定期執行 /usage 查看 token 消耗量。執行 /insights 可以看到過去 30 天的更詳細使用模式分析。

訊息技巧

設定主頻道

在你偏好的 Telegram 或 Discord 聊天室中使用 /sethome,將其指定為主頻道。排程工作結果和定時任務輸出會發送到這裡。沒有設定的話,agent 沒有地方發送主動訊息。

使用 /title 整理工作階段

/title auth-refactor/title research-llm-quantization 為你的工作階段命名。命名的工作階段很容易用 hermes sessions list 找到,並用 hermes -r "auth-refactor" 恢復。未命名的工作階段會越堆越多,變得無法區分。

私訊配對實現團隊存取

不需要手動收集用戶 ID 來設定允許清單,啟用私訊配對即可。當隊友私訊機器人時,他們會收到一次性配對碼。你用 hermes pairing approve telegram XKGH5N7P 批准——簡單又安全。

工具進度顯示模式

使用 /verbose 控制你看到多少工具活動。在訊息平台中,少即是多——保持在「new」模式,只查看新的工具呼叫。在 CLI 中,「all」模式讓你看到 agent 的所有即時操作。

提示

在訊息平台上,工作階段會在閒置一段時間後自動重置(預設:24 小時)或每天凌晨 4 點重置。如需更長的工作階段,可在 ~/.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 中,你也可以將目前工作階段切換為 UTF-8,以支援主控台和原生命令輸出:
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)

這會讓 PowerShell 和子行程保持 UTF-8 編碼,有助於避免 Windows 專屬的失敗。

選擇「永遠允許」前先審視

當 agent 觸發危險指令審核(rm -rfDROP TABLE 等),你會看到四個選項:oncesessionalwaysdeny。選擇「always」前請三思——它會永久將該模式加入允許清單。先用「session」直到你確認安全。

指令審核是你的安全網

Hermes 在執行每個指令前,都會比對一份精心整理的危險模式清單。這包括遞迴刪除、SQL drop、將 curl 管道到 shell 等等。不要在生產環境中停用這個功能——它有充分的理由存在。

警告

在容器後端(Docker、Singularity、Modal、Daytona)中執行時,危險指令檢查會被跳過,因為容器本身就是安全邊界。請確保你的容器映像已妥善鎖定。

訊息機器人的允許清單

絕對不要在具有終端存取權限的機器人上設定 GATEWAY_ALLOW_ALL_USERS=true。始終使用平台專屬的允許清單(TELEGRAM_ALLOWED_USERSDISCORD_ALLOWED_USERS)或私訊配對來控制誰可以與你的 agent 互動。

# 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——我們歡迎社群貢獻。



在 Mac 上執行本地 LLM