Hermes Agent
使用及擴展 Hermes Agent 的完整指南 — CLI 用法、設置、配置、生成額外代理實例、網關平臺、技能、語音、工具、配置文件,以及簡潔的貢獻者參考。在幫助用戶配置 Hermes、排查問題、生成代理實例或進行代碼貢獻時,加載此技能。
技能元數據
| 來源 | 捆綁(默認安裝) |
| 路徑 | skills/autonomous-ai-agents/hermes-agent |
| 版本 | 2.0.0 |
| 作者 | Hermes Agent + Teknium |
| 許可證 | MIT |
| 標籤 | hermes, setup, configuration, multi-agent, spawning, cli, gateway, development |
| 相關技能 | claude-code, codex, opencode |
參考:完整 SKILL.md
以下是 Hermes 在此技能被觸發時加載的完整技能定義。這是技能激活時代理所看到的指令。
Hermes Agent
Hermes Agent 是由 Nous Research 開發的開源 AI 代理框架,運行於你的終端、消息平臺和 IDE 中。它與 Claude Code (Anthropic)、Codex (OpenAI) 和 OpenClaw 屬於同一類別——即利用工具調用來與系統交互的自主編碼和任務執行代理。Hermes 兼容任何 LLM 提供商(OpenRouter、Anthropic、OpenAI、DeepSeek、本地模型以及其他 15+ 種),並可在 Linux、macOS 和 WSL 上運行。
Hermes 的獨特之處:
- 通過技能自我改進 — Hermes 通過將可複用的過程保存為技能來從經驗中學習。當它解決複雜問題、發現工作流或被糾正時,可以將這些知識持久化為技能文檔,以便在未來的會話中加載。技能隨時間積累,使代理更擅長處理你的特定任務和環境。
- 跨會話持久記憶 — 記住你是誰、你的偏好、環境細節以及學到的經驗教訓。可插拔的記憶後端(內置、Honcho、Mem0 等)讓你可以選擇記憶的工作方式。
- 多平臺網關 — 同一個代理可運行於 Telegram、Discord、Slack、WhatsApp、Signal、Matrix、電子郵件以及 10+ 其他平臺,擁有完整的工具訪問權限,而不僅僅是聊天。
- 提供商無關性 — 在工作流中途切換模型和提供商,無需更改其他任何內容。憑證池會在多個 API 密鑰之間自動輪換。
- 配置文件 (Profiles) — 運行多個獨立的 Hermes 實例,各自擁有隔離的配置、會話、技能和記憶。
- 可擴展性 — 插件、MCP 服務器、自定義工具、Webhook 觸發器、Cron 調度以及完整的 Python 生態系統。
人們使用 Hermes 進行軟件開發、研究、系統管理、數據分析、內容創作、家庭自動化,以及任何其他受益於具有持久上下文和完整系統訪問權限的 AI 代理的場景。
此技能幫助你高效使用 Hermes Agent — 包括設置、配置功能、生成額外代理實例、排查問題、查找正確的命令和設置,以及在需要擴展或貢獻時理解系統工作原理。
文檔: /docs/
快速開始
# Install
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# Interactive chat (default)
hermes
# Single query
hermes chat -q "What is the capital of France?"
# Setup wizard
hermes setup
# Change model/provider
hermes model
# Check health
hermes doctor
CLI 參考
全局標誌
hermes [flags] [command]
--version, -V Show version
--resume, -r SESSION Resume session by ID or title
--continue, -c [NAME] Resume by name, or most recent session
--worktree, -w Isolated git worktree mode (parallel agents)
--skills, -s SKILL Preload skills (comma-separate or repeat)
--profile, -p NAME Use a named profile
--yolo Skip dangerous command approval
--pass-session-id Include session ID in system prompt
無子命令時默認為 chat。
聊天
hermes chat [flags]
-q, --query TEXT Single query, non-interactive
-m, --model MODEL Model (e.g. anthropic/claude-sonnet-4)
-t, --toolsets LIST Comma-separated toolsets
--provider PROVIDER Force provider (openrouter, anthropic, nous, etc.)
-v, --verbose Verbose output
-Q, --quiet Suppress banner, spinner, tool previews
--checkpoints Enable filesystem checkpoints (/rollback)
--source TAG Session source tag (default: cli)
配置
hermes setup [section] Interactive wizard (model|terminal|gateway|tools|agent)
hermes model Interactive model/provider picker
hermes config View current config
hermes config edit Open config.yaml in $EDITOR
hermes config set KEY VAL Set a config value
hermes config path Print config.yaml path
hermes config env-path Print .env path
hermes config check Check for missing/outdated config
hermes config migrate Update config with new options
hermes login [--provider P] OAuth login (nous, openai-codex)
hermes logout Clear stored auth
hermes doctor [--fix] Check dependencies and config
hermes status [--all] Show component status
工具與技能
hermes tools Interactive tool enable/disable (curses UI)
hermes tools list Show all tools and status
hermes tools enable NAME Enable a toolset
hermes tools disable NAME Disable a toolset
hermes skills list List installed skills
hermes skills search QUERY Search the skills hub
hermes skills install ID Install a skill
hermes skills inspect ID Preview without installing
hermes skills config Enable/disable skills per platform
hermes skills check Check for updates
hermes skills update Update outdated skills
hermes skills uninstall N Remove a hub skill
hermes skills publish PATH Publish to registry
hermes skills browse Browse all available skills
hermes skills tap add REPO Add a GitHub repo as skill source
MCP 服務器
hermes mcp serve Run Hermes as an MCP server
hermes mcp add NAME Add an MCP server (--url or --command)
hermes mcp remove NAME Remove an MCP server
hermes mcp list List configured servers
hermes mcp test NAME Test connection
hermes mcp configure NAME Toggle tool selection
網關(消息平臺)
hermes gateway run Start gateway foreground
hermes gateway install Install as background service
hermes gateway start/stop Control the service
hermes gateway restart Restart the service
hermes gateway status Check status
hermes gateway setup Configure platforms
支持的平臺:Telegram、Discord、Slack、WhatsApp、Signal、電子郵件、SMS、Matrix、Mattermost、Home Assistant、釘釘、飛書、企業微信、BlueBubbles (iMessage)、微信 (WeChat)、API 服務器、Webhooks。Open WebUI 通過 API 服務器適配器連接。
平臺文檔:/docs/user-guide/messaging/
會話
hermes sessions list List recent sessions
hermes sessions browse Interactive picker
hermes sessions export OUT Export to JSONL
hermes sessions rename ID T Rename a session
hermes sessions delete ID Delete a session
hermes sessions prune Clean up old sessions (--older-than N days)
hermes sessions stats Session store statistics
Cron 任務
hermes cron list List jobs (--all for disabled)
hermes cron create SCHED Create: '30m', 'every 2h', '0 9 * * *'
hermes cron edit ID Edit schedule, prompt, delivery
hermes cron pause/resume ID Control job state
hermes cron run ID Trigger on next tick
hermes cron remove ID Delete a job
hermes cron status Scheduler status
Webhooks
hermes webhook subscribe N Create route at /webhooks/<name>
hermes webhook list List subscriptions
hermes webhook remove NAME Remove a subscription
hermes webhook test NAME Send a test POST
配置文件 (Profiles)
hermes profile list List all profiles
hermes profile create NAME Create (--clone, --clone-all, --clone-from)
hermes profile use NAME Set sticky default
hermes profile delete NAME Delete a profile
hermes profile show NAME Show details
hermes profile alias NAME Manage wrapper scripts
hermes profile rename A B Rename a profile
hermes profile export NAME Export to tar.gz
hermes profile import FILE Import from archive
憑證池
hermes auth add Interactive credential wizard
hermes auth list [PROVIDER] List pooled credentials
hermes auth remove P INDEX Remove by provider + index
hermes auth reset PROVIDER Clear exhaustion status
其他
hermes insights [--days N] Usage analytics
hermes update Update to latest version
hermes pairing list/approve/revoke DM authorization
hermes plugins list/install/remove Plugin management
hermes honcho setup/status Honcho memory integration (requires honcho plugin)
hermes memory setup/status/off Memory provider config
hermes completion bash|zsh Shell completions
hermes acp ACP server (IDE integration)
hermes claw migrate Migrate from OpenClaw
hermes uninstall Uninstall Hermes
Slash 命令(會話內)
在交互式聊天會話期間輸入這些命令。
會話控制
/new (/reset) Fresh session
/clear Clear screen + new session (CLI)
/retry Resend last message
/undo Remove last exchange
/title [name] Name the session
/compress Manually compress context
/stop Kill background processes
/rollback [N] Restore filesystem checkpoint
/background <prompt> Run prompt in background
/queue <prompt> Queue for next turn
/resume [name] Resume a named session
配置
/config Show config (CLI)
/model [name] Show or change model
/personality [name] Set personality
/reasoning [level] Set reasoning (none|minimal|low|medium|high|xhigh|show|hide)
/verbose Cycle: off → new → all → verbose
/voice [on|off|tts] Voice mode
/yolo Toggle approval bypass
/skin [name] Change theme (CLI)
/statusbar Toggle status bar (CLI)
工具與技能
/tools Manage tools (CLI)
/toolsets List toolsets (CLI)
/skills Search/install skills (CLI)
/skill <name> Load a skill into session
/cron Manage cron jobs (CLI)
/reload-mcp Reload MCP servers
/plugins List plugins (CLI)
網關
/approve Approve a pending command (gateway)
/deny Deny a pending command (gateway)
/restart Restart gateway (gateway)
/sethome Set current chat as home channel (gateway)
/update Update Hermes to latest (gateway)
/platforms (/gateway) Show platform connection status (gateway)
實用工具
/branch (/fork) Branch the current session
/btw Ephemeral side question (doesn't interrupt main task)
/fast Toggle priority/fast processing
/browser Open CDP browser connection
/history Show conversation history (CLI)
/save Save conversation to file (CLI)
/paste Attach clipboard image (CLI)
/image Attach local image file (CLI)
信息
/help Show commands
/commands [page] Browse all commands (gateway)
/usage Token usage
/insights [days] Usage analytics
/status Session info (gateway)
/profile Active profile info
退出
/quit (/exit, /q) Exit CLI
關鍵路徑與配置
~/.hermes/config.yaml Main configuration
~/.hermes/.env API keys and secrets
$HERMES_HOME/skills/ Installed skills
~/.hermes/sessions/ Session transcripts
~/.hermes/logs/ Gateway and error logs
~/.hermes/auth.json OAuth tokens and credential pools
~/.hermes/hermes-agent/ Source code (if git-installed)
配置文件使用 ~/.hermes/profiles/<name>/,佈局相同。
配置部分
使用 hermes config edit 或 hermes config set section.key value 進行編輯。
| 部分 | 關鍵選項 |
|---|---|
model | default, provider, base_url, api_key, context_length |
agent | max_turns (90), tool_use_enforcement |
terminal | backend (local/docker/ssh/modal), cwd, timeout (180) |
compression | enabled, threshold (0.50), target_ratio (0.20) |
display | skin, tool_progress, show_reasoning, show_cost |
stt | enabled, provider (local/groq/openai/mistral) |
tts | provider (edge/elevenlabs/openai/minimax/mistral/neutts) |
memory | memory_enabled, user_profile_enabled, provider |
security | tirith_enabled, website_blocklist |
delegation | model, provider, base_url, api_key, max_iterations (50), reasoning_effort |
checkpoints | enabled, max_snapshots (50) |
完整配置參考:/docs/user-guide/configuration
提供商
支持 20+ 提供商。通過 hermes model 或 hermes setup 設置。
| 提供商 | 認證方式 | 密鑰環境變量 |
|---|---|---|
| OpenRouter | API 密鑰 | OPENROUTER_API_KEY |
| Anthropic | API 密鑰 | ANTHROPIC_API_KEY |
| Nous Portal | OAuth | hermes auth |
| OpenAI Codex | OAuth | hermes auth |
| GitHub Copilot | Token | COPILOT_GITHUB_TOKEN |
| Google Gemini | API 密鑰 | GOOGLE_API_KEY 或 GEMINI_API_KEY |
| DeepSeek | API 密鑰 | DEEPSEEK_API_KEY |
| xAI / Grok | API 密鑰 | XAI_API_KEY |
| Hugging Face | Token | HF_TOKEN |
| Z.AI / GLM | API 密鑰 | GLM_API_KEY |
| MiniMax | API 密鑰 | MINIMAX_API_KEY |
| MiniMax CN | API 密鑰 | MINIMAX_CN_API_KEY |
| Kimi / Moonshot | API 密鑰 | KIMI_API_KEY |
| Alibaba / DashScope | API 密鑰 | DASHSCOPE_API_KEY |
| Xiaomi MiMo | API 密鑰 | XIAOMI_API_KEY |
| Kilo Code | API 密鑰 | KILOCODE_API_KEY |
| AI Gateway (Vercel) | API 密鑰 | AI_GATEWAY_API_KEY |
| OpenCode Zen | API 密鑰 | OPENCODE_ZEN_API_KEY |
| OpenCode Go | API 密鑰 | OPENCODE_GO_API_KEY |
| Qwen OAuth | OAuth | hermes login --provider qwen-oauth |
| 自定義端點 | 配置 | config.yaml 中的 model.base_url + model.api_key |
| GitHub Copilot ACP | 外部 | COPILOT_CLI_PATH 或 Copilot CLI |
完整提供商文檔:/docs/integrations/providers
工具集
通過 hermes tools(交互式)或 hermes tools enable/disable NAME 啟用/禁用。
| 工具集 | 提供功能 |
|---|---|
web | 網絡搜索和內容提取 |
browser | 瀏覽器自動化(Browserbase、Camofox 或本地 Chromium) |
terminal | Shell 命令和進程管理 |
file | 文件讀取/寫入/搜索/修補 |
code_execution | 沙盒 Python 執行 |
vision | 圖像分析 |
image_gen | AI 圖像生成 |
tts | 文本轉語音 |
skills | 技能瀏覽和管理 |
memory | 持久化跨會話記憶 |
session_search | 搜索過往對話 |
delegation | 子代理任務委派 |
cronjob | 計劃任務管理 |
clarify | 向用戶提出澄清性問題 |
messaging | 跨平臺消息發送 |
search | 僅網絡搜索(web 的子集) |
todo | 會話內任務規劃和跟蹤 |
rl | 強化學習工具(默認關閉) |
moa | 混合代理(Mixture of Agents,默認關閉) |
homeassistant | 智能家居控制(默認關閉) |
工具更改在 /reset(新會話)時生效。它們不會在對話中途應用,以保留提示緩存。
語音與轉錄
STT(語音 → 文本)
來自消息平臺的語音消息會自動轉錄。
提供商優先級(自動檢測):
- Local faster-whisper — 免費,無需 API 密鑰:
pip install faster-whisper - Groq Whisper — 免費層級:設置
GROQ_API_KEY - OpenAI Whisper — 付費:設置
VOICE_TOOLS_OPENAI_KEY - Mistral Voxtral — 設置
MISTRAL_API_KEY
配置:
stt:
enabled: true
provider: local # local, groq, openai, mistral
local:
model: base # tiny, base, small, medium, large-v3
TTS(文本 → 語音)
| 提供商 | 環境變量 | 免費? |
|---|---|---|
| Edge TTS | 無 | 是(默認) |
| ElevenLabs | ELEVENLABS_API_KEY | 免費層級 |
| OpenAI | VOICE_TOOLS_OPENAI_KEY | 付費 |
| MiniMax | MINIMAX_API_KEY | 付費 |
| Mistral (Voxtral) | MISTRAL_API_KEY | 付費 |
| NeuTTS (本地) | 無(pip install neutts[all] + espeak-ng) | 免費 |
語音命令:/voice on(語音對語音),/voice tts(始終語音),/voice off。
啟動額外的 Hermes 實例
將額外的 Hermes 進程作為完全獨立的子進程運行 — 擁有獨立的會話、工具和環境。
何時使用此方式而非 delegate_task
delegate_task | 啟動 hermes 進程 | |
|---|---|---|
| 隔離性 | 獨立對話,共享進程 | 完全獨立的進程 |
| 持續時間 | 分鐘(受父循環限制) | 小時/天 |
| 工具訪問權限 | 父級工具的子集 | 完整工具訪問權限 |
| 交互性 | 否 | 是(PTY 模式) |
| 用例 | 快速並行子任務 | 長期自主任務 |
一次性模式
terminal(command="hermes chat -q 'Research GRPO papers and write summary to ~/research/grpo.md'", timeout=300)
# Background for long tasks:
terminal(command="hermes chat -q 'Set up CI/CD for ~/myapp'", background=true)
交互式 PTY 模式(通過 tmux)
Hermes 使用 prompt_toolkit,需要真實的終端。使用 tmux 進行交互式啟動:
# Start
terminal(command="tmux new-session -d -s agent1 -x 120 -y 40 'hermes'", timeout=10)
# Wait for startup, then send a message
terminal(command="sleep 8 && tmux send-keys -t agent1 'Build a FastAPI auth service' Enter", timeout=15)
# Read output
terminal(command="sleep 20 && tmux capture-pane -t agent1 -p", timeout=5)
# Send follow-up
terminal(command="tmux send-keys -t agent1 'Add rate limiting middleware' Enter", timeout=5)
# Exit
terminal(command="tmux send-keys -t agent1 '/exit' Enter && sleep 2 && tmux kill-session -t agent1", timeout=10)
多智能體協調
# Agent A: backend
terminal(command="tmux new-session -d -s backend -x 120 -y 40 'hermes -w'", timeout=10)
terminal(command="sleep 8 && tmux send-keys -t backend 'Build REST API for user management' Enter", timeout=15)
# Agent B: frontend
terminal(command="tmux new-session -d -s frontend -x 120 -y 40 'hermes -w'", timeout=10)
terminal(command="sleep 8 && tmux send-keys -t frontend 'Build React dashboard for user management' Enter", timeout=15)
# Check progress, relay context between them
terminal(command="tmux capture-pane -t backend -p | tail -30", timeout=5)
terminal(command="tmux send-keys -t frontend 'Here is the API schema from the backend agent: ...' Enter", timeout=5)
會話恢復
# Resume most recent session
terminal(command="tmux new-session -d -s resumed 'hermes --continue'", timeout=10)
# Resume specific session
terminal(command="tmux new-session -d -s resumed 'hermes --resume 20260225_143052_a1b2c3'", timeout=10)
提示
- 對於快速子任務,優先使用
delegate_task— 比啟動完整進程的開銷更小 - 在啟動編輯代碼的智能體時使用
-w(worktree 模式) — 防止 git 衝突 - 為單次執行模式設置超時 — 複雜任務可能需要 5-10 分鐘
- 使用
hermes chat -q進行即發即棄操作 — 無需 PTY - 交互式會話使用 tmux — 原始 PTY 模式在處理 prompt_toolkit 時存在
\r與\n的問題 - 對於計劃任務,使用
cronjob工具而非啟動新進程 — 可處理交付和重試
故障排除
語音功能無效
- 檢查 config.yaml 中的
stt.enabled: true - 驗證提供商:
pip install faster-whisper或設置 API 密鑰 - 在網關中:
/restart。在 CLI 中:退出並重新啟動。
工具不可用
hermes tools— 檢查工具集是否已為你的平臺啟用- 某些工具需要環境變量(檢查
.env) - 啟用工具後執行
/reset
模型/提供商問題
hermes doctor— 檢查配置和依賴項hermes login— 重新認證 OAuth 提供商- 檢查
.env是否包含正確的 API 密鑰 - Copilot 403 錯誤:
gh auth login生成的令牌不適用於 Copilot API。你必須通過hermes model→ GitHub Copilot 使用 Copilot 專用的 OAuth 設備代碼流程。
更改未生效
- 工具/技能:
/reset會使用更新後的工具集啟動新會話 - 配置更改: 在網關中:
/restart。在 CLI 中:退出並重新啟動。 - 代碼更改: 重啟 CLI 或網關進程
技能未顯示
hermes skills list— 驗證是否已安裝hermes skills config— 檢查平臺啟用狀態- 顯式加載:
/skill name或hermes -s name
網關問題
首先檢查日誌:
grep -i "failed to send\|error" ~/.hermes/logs/gateway.log | tail -20
常見網關問題:
- SSH 註銷後網關停止運行:啟用 linger:
sudo loginctl enable-linger $USER - 關閉 WSL2 後網關停止運行:WSL2 需要在
/etc/wsl.conf中設置systemd=true才能使 systemd 服務正常工作。否則,網關會回退到nohup(會話關閉時停止運行)。 - 網關崩潰循環:重置失敗狀態:
systemctl --user reset-failed hermes-gateway
平臺特定問題
- Discord 機器人無響應:必須在 Bot → Privileged Gateway Intents 中啟用 Message Content Intent。
- Slack 機器人僅在私信中有效:必須訂閱
message.channels事件。否則,機器人將忽略公共頻道。 - Windows HTTP 400 "No models provided":配置文件編碼問題(BOM)。確保
config.yaml保存為不帶 BOM 的 UTF-8 格式。
輔助模型無效
如果 auxiliary 任務(視覺、壓縮、會話搜索)靜默失敗,說明 auto 提供商找不到後端。請設置 OPENROUTER_API_KEY 或 GOOGLE_API_KEY,或者顯式配置每個輔助任務的提供商:
hermes config set auxiliary.vision.provider <your_provider>
hermes config set auxiliary.vision.model <model_name>
資源查找指南
| 查找內容... | 位置 |
|---|---|
| 配置選項 | hermes config edit 或 配置文檔 |
| 可用工具 | hermes tools list 或 工具參考 |
| 斜槓命令 | 會話中的 /help 或 斜槓命令參考 |
| 技能目錄 | hermes skills browse 或 技能目錄 |
| 提供商設置 | hermes model 或 提供商指南 |
| 平臺設置 | hermes gateway setup 或 消息傳遞文檔 |
| MCP 服務器 | hermes mcp list 或 MCP 指南 |
| 配置文件 (Profiles) | hermes profile list 或 Profiles 文檔 |
| Cron 任務 | hermes cron list 或 Cron 文檔 |
| 記憶功能 | hermes memory status 或 記憶文檔 |
| 環境變量 | hermes config env-path 或 環境變量參考 |
| CLI 命令 | hermes --help 或 CLI 參考 |
| 網關日誌 | ~/.hermes/logs/gateway.log |
| 會話文件 | ~/.hermes/sessions/ 或 hermes sessions browse |
| 源代碼 | ~/.hermes/hermes-agent/ |
貢獻者快速參考
適用於偶爾貢獻者和 PR 作者。完整開發者文檔:/docs/developer-guide/
項目佈局
hermes-agent/
├── run_agent.py # AIAgent — core conversation loop
├── model_tools.py # Tool discovery and dispatch
├── toolsets.py # Toolset definitions
├── cli.py # Interactive CLI (HermesCLI)
├── hermes_state.py # SQLite session store
├── agent/ # Prompt builder, context compression, memory, model routing, credential pooling, skill dispatch
├── hermes_cli/ # CLI subcommands, config, setup, commands
│ ├── commands.py # Slash command registry (CommandDef)
│ ├── config.py # DEFAULT_CONFIG, env var definitions
│ └── main.py # CLI entry point and argparse
├── tools/ # One file per tool
│ └── registry.py # Central tool registry
├── gateway/ # Messaging gateway
│ └── platforms/ # Platform adapters (telegram, discord, etc.)
├── cron/ # Job scheduler
├── tests/ # ~3000 pytest tests
└── website/ # Docusaurus docs site
配置:~/.hermes/config.yaml(設置),~/.hermes/.env(API 密鑰)。
添加工具(3 個文件)
1. 創建 tools/your_tool.py:
import json, os
from tools.registry import registry
def check_requirements() -> bool:
return bool(os.getenv("EXAMPLE_API_KEY"))
def example_tool(param: str, task_id: str = None) -> str:
return json.dumps({"success": True, "data": "..."})
registry.register(
name="example_tool",
toolset="example",
schema={"name": "example_tool", "description": "...", "parameters": {...}},
handler=lambda args, **kw: example_tool(
param=args.get("param", ""), task_id=kw.get("task_id")),
check_fn=check_requirements,
requires_env=["EXAMPLE_API_KEY"],
)
2. 添加到 toolsets.py → _HERMES_CORE_TOOLS 列表。
自動發現:任何包含頂層 registry.register() 調用的 tools/*.py 文件都會被自動導入——無需手動列表。
所有處理程序必須返回 JSON 字符串。使用 get_hermes_home() 獲取路徑,切勿硬編碼 ~/.hermes。
添加斜槓命令
- 在
hermes_cli/commands.py中將CommandDef添加到COMMAND_REGISTRY - 在
cli.py的process_command()中添加處理程序 - (可選)在
gateway/run.py中添加網關處理程序
所有消費者(幫助文本、自動補全、Telegram 菜單、Slack 映射)均自動從中央註冊表派生。
Agent 循環(高層概述)
run_conversation():
1. Build system prompt
2. Loop while iterations < max:
a. Call LLM (OpenAI-format messages + tool schemas)
b. If tool_calls → dispatch each via handle_function_call() → append results → continue
c. If text response → return
3. Context compression triggers automatically near token limit
測試
python -m pytest tests/ -o 'addopts=' -q # Full suite
python -m pytest tests/tools/ -q # Specific area
- 測試會自動將
HERMES_HOME重定向到臨時目錄——切勿觸碰真實的~/.hermes/ - 在推送任何更改之前運行完整測試套件
- 使用
-o 'addopts='清除任何內置的 pytest 標誌
提交規範
type: concise subject line
Optional body.
類型:fix:、feat:、refactor:、docs:、chore:
關鍵規則
- 切勿破壞提示緩存——不要在對話過程中更改上下文、工具或系統提示
- 消息角色交替——切勿連續出現兩條 assistant 消息或兩條 user 消息
- 對所有路徑使用
hermes_constants中的get_hermes_home()(配置文件安全) - 配置值放入
config.yaml,機密信息放入.env - 新工具需要
check_fn,以便僅在滿足要求時才顯示