Git 仓库下载 Hermes Agent 离线包
上传并解压指定目录下 官方仓库包 hermes-agent-main.zip

# 命令步骤
lukey@ai:~$ mkdir .hermes
lukey@ai:~$ cd .hermes/
lukey@ai:~/.hermes$ unzip hermes-agent-main.zip
lukey@ai:~/.hermes$ cd hermes-agent/
lukey@ai:~/.hermes/hermes-agent$ uv venv --python 3.11
Using CPython 3.11.15
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
lukey@ai:~/.hermes/hermes-agent$ source .venv/bin/activate
(hermes-agent) lukey@ai:~/.hermes/hermes-agent$ uv pip install -e ".[all]"
Resolved 180 packages in 3m 05s
Built hermes-agent @ file:///home/lukey/.hermes/hermes-agent
Built alibabacloud-gateway-dingtalk==1.0.2
Built alibabacloud-tea==0.4.3
Built alibabacloud-gateway-spi==0.0.3
Built alibabacloud-endpoint-util==0.0.4
Built alibabacloud-credentials-api==1.0.0
⠋ Preparing packages... (147/179)
⠹ Preparing packages... (147/179)
⠹ Preparing packages... (147/179)
⠼ Preparing packages... (147/179)
⠇ Preparing packages... (171/179)
⠋ Preparing packages... (171/179)
⠸ Preparing packages... (171/179)
botocore ------------------------------ 9.94 MiB/14.21 MiB
numpy ------------------------------ 9.98 MiB/16.14 MiB
Installed 180 packages in 375ms
+ agent-client-protocol==0.9.0
+ aiofiles==24.1.0
+ aiohappyeyeballs==2.6.1
+ aiohttp==3.13.5
+ aiohttp-retry==2.9.1
+ aiosignal==1.4.0
+ aiosqlite==0.22.1
+ alibabacloud-credentials==1.0.8
+ alibabacloud-credentials-api==1.0.0
+ alibabacloud-dingtalk==2.2.43
+ alibabacloud-endpoint-util==0.0.4
+ alibabacloud-gateway-dingtalk==1.0.2
+ alibabacloud-gateway-spi==0.0.3
+ alibabacloud-openapi-util==0.2.4
+ alibabacloud-tea==0.4.3
+ alibabacloud-tea-openapi==0.4.4
+ alibabacloud-tea-util==0.3.14
+ annotated-doc==0.0.4
+ annotated-types==0.7.0
+ anthropic==0.96.0
+ anyio==4.13.0
+ apscheduler==3.11.2
+ asyncpg==0.31.0
+ attrs==26.1.0
+ av==17.0.1
+ base58==2.1.1
+ boto3==1.42.91
+ botocore==1.42.91
+ cbor2==5.9.0
+ certifi==2026.2.25
+ cffi==2.0.0
+ charset-normalizer==3.4.7
+ click==8.3.2
+ croniter==6.2.2
+ cryptography==46.0.7
+ ctranslate2==4.7.1
+ darabonba-core==1.0.5
+ davey==0.1.5
+ daytona==0.167.0
+ daytona-api-client==0.167.0
+ daytona-api-client-async==0.167.0
+ daytona-toolbox-api-client==0.167.0
+ daytona-toolbox-api-client-async==0.167.0
+ debugpy==1.8.20
+ deprecated==1.3.1
+ dingtalk-stream==0.24.3
+ discord-py==2.7.1
+ distro==1.9.0
+ docstring-parser==0.18.0
+ edge-tts==7.2.8
+ elevenlabs==1.59.0
+ eval-type-backport==0.3.1
+ exa-py==2.12.0
+ execnet==2.1.2
+ fal-client==0.13.2
+ fastapi==0.136.0
+ faster-whisper==1.2.1
+ filelock==3.29.0
+ fire==0.7.1
+ firecrawl-py==4.22.2
+ flatbuffers==25.12.19
+ frozenlist==1.8.0
+ fsspec==2026.3.0
+ googleapis-common-protos==1.74.0
+ grpclib==0.4.9
+ h11==0.16.0
+ h2==4.3.0
+ hermes-agent==0.10.0 (from file:///home/lukey/.hermes/hermes-agent)
+ hf-xet==1.4.3
+ honcho-ai==2.1.1
+ hpack==4.1.0
+ httpcore==1.0.9
+ httptools==0.7.1
+ httpx==0.28.1
+ httpx-sse==0.4.3
+ huggingface-hub==1.11.0
+ hyperframe==6.1.0
+ idna==3.11
+ importlib-metadata==8.7.1
+ iniconfig==2.3.0
+ jinja2==3.1.6
+ jiter==0.14.0
+ jmespath==1.1.0
+ jsonpath-python==1.1.5
+ jsonschema==4.26.0
+ jsonschema-specifications==2025.9.1
+ lark-oapi==1.5.3
+ markdown==3.10.2
+ markdown-it-py==4.0.0
+ markupsafe==3.0.3
+ mautrix==0.21.0
+ mcp==1.27.0
+ mdurl==0.1.2
+ mistralai==2.4.0
+ modal==1.4.2
+ mpmath==1.3.0
+ msgpack==1.1.2
+ multidict==6.7.1
+ nest-asyncio==1.6.0
+ numpy==2.4.4
+ obstore==0.8.2
+ onnxruntime==1.24.4
+ openai==2.32.0
+ opentelemetry-api==1.39.1
+ opentelemetry-exporter-otlp-proto-common==1.39.1
+ opentelemetry-exporter-otlp-proto-http==1.39.1
+ opentelemetry-instrumentation==0.60b1
+ opentelemetry-instrumentation-aiohttp-client==0.60b1
+ opentelemetry-proto==1.39.1
+ opentelemetry-sdk==1.39.1
+ opentelemetry-semantic-conventions==0.60b1
+ opentelemetry-util-http==0.60b1
+ packaging==26.1
+ parallel-web==0.4.2
+ pluggy==1.6.0
+ prompt-toolkit==3.0.52
+ propcache==0.4.1
+ protobuf==6.33.6
+ ptyprocess==0.7.0
+ pycparser==3.0
+ pycryptodome==3.23.0
+ pydantic==2.13.2
+ pydantic-core==2.46.2
+ pydantic-settings==2.13.1
+ pygments==2.20.0
+ pyjwt==2.12.1
+ pynacl==1.5.0
+ pypng==0.20220715.0
+ pytest==9.0.3
+ pytest-asyncio==1.3.0
+ pytest-xdist==3.8.0
+ python-dateutil==2.9.0.post0
+ python-dotenv==1.2.2
+ python-multipart==0.0.26
+ python-olm==3.2.16
+ python-telegram-bot==22.7
+ pyyaml==6.0.3
+ qrcode==7.4.2
+ referencing==0.37.0
+ requests==2.33.1
+ requests-toolbelt==1.0.0
+ rich==14.3.4
+ rpds-py==0.30.0
+ s3transfer==0.16.0
+ setuptools==82.0.1
+ shellingham==1.5.4
+ simple-term-menu==1.6.6
+ six==1.17.0
+ slack-bolt==1.28.0
+ slack-sdk==3.41.0
+ sniffio==1.3.1
+ socksio==1.0.0
+ sounddevice==0.5.5
+ sse-starlette==3.3.4
+ starlette==1.0.0
+ sympy==1.14.0
+ synchronicity==0.12.2
+ tabulate==0.10.0
+ tenacity==9.1.4
+ termcolor==3.3.0
+ tokenizers==0.22.2
+ toml==0.10.2
+ tornado==6.5.5
+ tqdm==4.67.3
+ typer==0.24.1
+ types-certifi==2021.10.8.3
+ types-toml==0.10.8.20260408
+ typing-extensions==4.15.0
+ typing-inspection==0.4.2
+ tzlocal==5.3.1
+ unpaddedbase64==2.1.0
+ urllib3==2.6.3
+ uvicorn==0.44.0
+ uvloop==0.22.1
+ watchfiles==1.1.1
+ wcwidth==0.6.0
+ websockets==15.0.1
+ wrapt==1.17.3
+ yarl==1.23.0
+ zipp==3.23.1
(hermes-agent) lukey@ai:~/.hermes/hermes-agent$ mkdir -p ~/.local/bin
(hermes-agent) lukey@ai:~/.hermes/hermes-agent$ ln -sf ~/hermes-agent/.venv/bin/hermes ~/.local/bin/hermes
(hermes-agent) lukey@ai:~/.hermes/hermes-agent$ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
(hermes-agent) lukey@ai:~/.hermes/hermes-agent$ source ~/.bashrc
lukey@ai:~/.hermes/hermes-agent$ hermes --version
Hermes Agent v0.10.0 (2026.4.16)
Project: /home/lukey/.hermes/hermes-agent
Python: 3.11.15
OpenAI SDK: 2.32.0
lukey@ai:~/.hermes/hermes-agent$
OpenClaw 配置嵌入 Hermes Agent
lukey@ai:~/.hermes/hermes-agent$ hermes claw migrate
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes — OpenClaw Migration │
└─────────────────────────────────────────────────────────┘
◆ Migration Settings
Source: /home/lukey/.openclaw
Target: /home/lukey/.hermes
Preset: full
Overwrite: no (skip conflicts)
Secrets: yes (allowlisted only)
✗ OpenClaw appears to be running:
* systemd service: openclaw-gateway.service
* openclaw process(es) (PIDs: 306, 836, 844)
Messaging platforms (Telegram, Discord, Slack) only allow one active session per bot token. If you continue, both OpenClaw and Hermes may try to use the same token, causing disconnects.
Recommendation: stop OpenClaw before migrating.
Continue anyway? [y/N]: y
◆ Migration Preview — 6 item(s) would be imported
No changes have been made yet. Review the list below:
◆ Dry Run Results
No files were modified. This is a preview of what would happen.
✓ Would migrate:
user-profile → ~/.hermes/memories/USER.md
model-config → ~/.hermes/config.yaml
daily-memory → ~/.hermes/memories/MEMORY.md
agent-config → config.yaml agent/compression/terminal
env-var → .env HERMES_GATEWAY_TOKEN
full-providers → config.yaml custom_providers[qwen]
⚠ Conflicts (skipped — use --overwrite to force):
soul Target exists and overwrite is disabled
─ Skipped:
workspace-agents No workspace target was provided
memory Source file not found
messaging-settings No Hermes-compatible messaging settings found
secret-settings No allowlisted Hermes-compatible secrets found
discord-settings No Discord settings found
slack-settings No Slack settings found
whatsapp-settings No WhatsApp settings found
signal-settings No Signal settings found
provider-keys No provider API keys found
tts-config No TTS configuration found in OpenClaw config
command-allowlist No allowlist patterns found
skills No OpenClaw skills directory found
shared-skills No shared OpenClaw skills directories found
tts-assets Source directory not found
raw-config-skip Selected Hermes-compatible values were extracted; raw OpenClaw config was not copied.
sensitive-skip Contains secrets, binary state, or product-specific runtime data
sensitive-skip Contains secrets, binary state, or product-specific runtime data
mcp-servers No MCP servers found in OpenClaw config
cron-jobs No cron configuration found
browser-config No browser configuration found
approvals-config No approvals configuration found
memory-backend No memory backend configuration found
ui-identity No UI/identity configuration found
logging-config No logging/diagnostics configuration found
Summary: 6 would migrate, 1 conflict(s), 24 skipped
To execute the migration, run without --dry-run:
hermes claw migrate --preset full
Proceed with migration? [Y/n]: y
◆ Migration Results
✓ Migrated:
user-profile → ~/.hermes/memories/USER.md
model-config → ~/.hermes/config.yaml
daily-memory → ~/.hermes/memories/MEMORY.md
agent-config → config.yaml agent/compression/terminal
env-var → .env HERMES_GATEWAY_TOKEN
full-providers → config.yaml custom_providers[qwen]
⚠ Conflicts (skipped — use --overwrite to force):
soul Target exists and overwrite is disabled
─ Skipped:
workspace-agents No workspace target was provided
memory Source file not found
messaging-settings No Hermes-compatible messaging settings found
secret-settings No allowlisted Hermes-compatible secrets found
discord-settings No Discord settings found
slack-settings No Slack settings found
whatsapp-settings No WhatsApp settings found
signal-settings No Signal settings found
provider-keys No provider API keys found
tts-config No TTS configuration found in OpenClaw config
command-allowlist No allowlist patterns found
skills No OpenClaw skills directory found
shared-skills No shared OpenClaw skills directories found
tts-assets Source directory not found
raw-config-skip Selected Hermes-compatible values were extracted; raw OpenClaw config was not copied.
sensitive-skip Contains secrets, binary state, or product-specific runtime data
sensitive-skip Contains secrets, binary state, or product-specific runtime data
mcp-servers No MCP servers found in OpenClaw config
cron-jobs No cron configuration found
browser-config No browser configuration found
approvals-config No approvals configuration found
memory-backend No memory backend configuration found
ui-identity No UI/identity configuration found
logging-config No logging/diagnostics configuration found
Summary: 6 migrated, 1 conflict(s), 24 skipped
Full report saved to: /home/lukey/.hermes/migration/openclaw/20260420T161113
✓ Migration complete!
⚠ API keys were NOT migrated (secrets migration is disabled by default).
Your OPENROUTER_API_KEY and other provider keys must be added manually.
To migrate API keys, re-run with:
hermes claw migrate --migrate-secrets
Or add your key manually:
hermes config set OPENROUTER_API_KEY sk-or-v1-...
lukey@ai:~/.hermes/hermes-agent$迁移完成后运行 hermes doctor 检查配置状态,然后就可以用 hermes 或 hermes --tui 启动了
lukey@ai:~/.hermes/hermes-agent$ hermes doctor
┌─────────────────────────────────────────────────────────┐
│ 🩺 Hermes Doctor │
└─────────────────────────────────────────────────────────┘
◆ Python Environment
✓ Python 3.11.15
✓ Virtual environment active
◆ Required Packages
✓ OpenAI SDK
✓ Rich (terminal UI)
✓ python-dotenv
✓ PyYAML
✓ HTTPX
✓ Croniter (cron expressions) (optional)
✓ python-telegram-bot (optional)
✓ discord.py (optional)
◆ Configuration Files
✓ ~/.hermes/.env file exists
⚠ No API key found in ~/.hermes/.env
✓ ~/.hermes/config.yaml exists
✓ Config version up to date (v19)
◆ Auth Providers
⚠ Nous Portal auth (not logged in)
⚠ OpenAI Codex auth (not logged in)
→ No Codex credentials stored. Run `hermes auth` to authenticate.
⚠ Google Gemini OAuth (not logged in)
⚠ codex CLI not found (required for openai-codex login)
◆ Directory Structure
✓ ~/.hermes directory exists
✓ ~/.hermes/cron/ exists
✓ ~/.hermes/sessions/ exists
✓ ~/.hermes/logs/ exists
⚠ ~/.hermes/skills/ not found (will be created on first use)
✓ ~/.hermes/memories/ exists
✓ ~/.hermes/SOUL.md exists (persona configured)
✓ ~/.hermes/memories/ directory exists
✓ MEMORY.md exists (696 chars)
✓ USER.md exists (1366 chars)
→ ~/.hermes/state.db not created yet (will be created on first session)
◆ Command Installation
✓ Venv entry point exists (.venv/bin/hermes)
⚠ ~/.local/bin/hermes points to wrong target (→ /home/lukey/hermes-agent/.venv/bin/hermes, expected → /home/lukey/.hermes/hermes-agent/.venv/bin/hermes)
◆ External Tools
✓ git
✓ ripgrep (rg) (faster file search)
⚠ docker not found (optional)
✓ Node.js
⚠ agent-browser not installed (run: npm install)
◆ API Connectivity
⚠ OpenRouter API (not configured)
◆ Submodules
⚠ tinker-atropos not found (run: git submodule update --init --recursive)
◆ Tool Availability
✓ clarify
✓ code_execution
✓ cronjob
✓ delegation
✓ feishu_doc
✓ feishu_drive
✓ file
✓ memory
✓ terminal
✓ session_search
✓ skills
✓ todo
✓ tts
⚠ browser (system dependency not met)
⚠ discord (missing DISCORD_BOT_TOKEN)
⚠ homeassistant (system dependency not met)
⚠ image_gen (system dependency not met)
⚠ moa (missing OPENROUTER_API_KEY)
⚠ rl (missing TINKER_API_KEY, WANDB_API_KEY)
⚠ messaging (system dependency not met)
⚠ vision (system dependency not met)
⚠ web (missing EXA_API_KEY, PARALLEL_API_KEY, TAVILY_API_KEY, FIRECRAWL_API_KEY, FIRECRAWL_API_URL)
◆ Skills Hub
⚠ Skills Hub directory not initialized (run: hermes skills list)
⚠ No GITHUB_TOKEN (60 req/hr rate limit — set in ~/.hermes/.env for better rates)
◆ Memory Provider
✓ Built-in memory active (no external provider configured — this is fine)
────────────────────────────────────────────────────────────
Found 3 issue(s) to address:
1. Run 'hermes setup' to configure API keys
2. Broken symlink at ~/.local/bin/hermes — run 'hermes doctor --fix'
3. Run 'hermes setup' to configure missing API keys for full tool access
Tip: run 'hermes doctor --fix' to auto-fix what's possible.更具 Docker 自检逐一解决
lukey@ai:~/.hermes/hermes-agent$ hermes setup
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes Agent Setup Wizard │
├─────────────────────────────────────────────────────────┤
│ Let's configure your Hermes Agent installation. │
│ Press Ctrl+C at any time to exit. │
└─────────────────────────────────────────────────────────┘
◆ OpenClaw Installation Detected
Found OpenClaw data at /home/lukey/.openclaw
Hermes can preview what would be imported before making any changes.
Would you like to see what can be imported? [Y/n]: y
◆ Migration Preview — 7 item(s) would be imported
No changes have been made yet. Review the list below:
Would import:
soul → ~/.hermes/SOUL.md
user-profile → ~/.hermes/memories/USER.md
model-config → ~/.hermes/config.yaml
daily-memory → ~/.hermes/memories/MEMORY.md
agent-config → config.yaml agent/compression/terminal
env-var → .env HERMES_GATEWAY_TOKEN
full-providers → config.yaml custom_providers[qwen]
Would skip:
workspace-agents No workspace target was provided
memory Source file not found
messaging-settings No Hermes-compatible messaging settings found
secret-settings No allowlisted Hermes-compatible secrets found
discord-settings No Discord settings found
slack-settings No Slack settings found
whatsapp-settings No WhatsApp settings found
signal-settings No Signal settings found
provider-keys No provider API keys found
tts-config No TTS configuration found in OpenClaw config
command-allowlist No allowlist patterns found
skills No OpenClaw skills directory found
shared-skills No shared OpenClaw skills directories found
tts-assets Source directory not found
raw-config-skip Selected Hermes-compatible values were extracted; raw OpenClaw config was not copied.
sensitive-skip Contains secrets, binary state, or product-specific runtime data
sensitive-skip Contains secrets, binary state, or product-specific runtime data
mcp-servers No MCP servers found in OpenClaw config
cron-jobs No cron configuration found
browser-config No browser configuration found
approvals-config No approvals configuration found
memory-backend No memory backend configuration found
ui-identity No UI/identity configuration found
logging-config No logging/diagnostics configuration found
── Warnings ──
⚠ Config values — OpenClaw settings may not map 1:1 to Hermes equivalents
⚠ Gateway/messaging — this will configure Hermes to use your OpenClaw messaging channels
⚠ Instruction file — may contain OpenClaw-specific setup/restart procedures
⚠ Memory/context file — may reference OpenClaw-specific infrastructure
Note: OpenClaw config values may have different semantics in Hermes.
For example, OpenClaw's tool_call_execution: "auto" ≠ Hermes's yolo mode.
Instruction files (.md) from OpenClaw may contain incompatible procedures.
Proceed with migration? [y/N]: y
How would you like to set up Hermes?
↑↓ navigate ENTER/SPACE select ESC cancel
→ (●) Quick setup — provider, model & messaging (recommended) # 只配置最核心的:模型提供商、模型名称、消息渠道(可选)
(○) Full setup — configure everything # 配置所有内容:模型、消息渠道、工具、记忆、cron、webhook 等