[AI] Agents / Hermes Agent - 安裝與設定步驟(A版)
===
###### tags: `AI / Tools / Agents / Hermes Agent /`
###### tags: `AI`, `tools`, `agents`, `Hermes Agent`, `Hermes`, `愛馬仕`
<br>
> [!Note]
> - 整理自 **Hermes Agent 官方文件 / GitHub README 文件**
> - **解說**:**自架 OpenAI-compatible model server** 放進實作流程。
<br>
**目錄**
- [\[AI\] Agent / Hermes Agent - 安裝詳解](#AI-Agent--Hermes-Agent---安裝詳解)
- [Hermes 快速安裝與設定流程](#Hermes-快速安裝與設定流程)
- [1. 官方推薦安裝方式](#1-官方推薦安裝方式)
- [2. 先檢查安裝狀態](#2-先檢查安裝狀態)
- [3. 設定模型供應商:你的情境選 Custom endpoint](#3-設定模型供應商:你的情境選-Custom-endpoint)
- [4. 先用 curl 驗證你的 OpenAI-compatible endpoint](#4-先用-curl-驗證你的-OpenAI-compatible-endpoint)
- [4.1 查模型列表](#41-查模型列表)
- [4.2 測 chat completions](#42-測-chat-completions)
- [5. 官方設定檔位置與優先順序](#5-官方設定檔位置與優先順序)
- [6. 手動設定 `~/.hermes/config.yaml`](#6-手動設定-hermesconfigyaml)
- [單一自架 endpoint](#單一自架-endpoint)
- [多個自架 endpoint](#多個自架-endpoint)
- [7. 很重要:`hermes model` vs `/model`](#7-很重要:hermes-model-vs-model)
- [8. 關於 context length:官方文件有一點需要注意](#8-關於-context-length:官方文件有一點需要注意)
- [9. vLLM 自架模型建議設定](#9-vLLM-自架模型建議設定)
- [10. 設定完成後測試](#10-設定完成後測試)
- [11. 常見錯誤對照](#11-常見錯誤對照)
- [12. 最推薦給你的完整流程](#12-最推薦給你的完整流程)
> Date: 2026-04-29 12:34:40 GMT+8
<br>
> [!Note]
> **官方文件**:https://hermes-agent.nousresearch.com/docs/
<br>
## Hermes 快速安裝與設定流程
- ### 1. 安裝 Hermes
```bash
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
```
重新載入 shell:
```bash
source ~/.bashrc
# 或
source ~/.zshrc
```
檢查:
```bash
hermes doctor
```
---
- ### 2. 先確認你的自架 OpenAI-compatible endpoint
查模型名稱:
```bash
curl -s http://YOUR_HOST:8000/v1/models | jq
```
測試 chat completions:
```bash
curl -s http://YOUR_HOST:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL_NAME",
"messages": [
{"role": "user", "content": "hi"}
]
}' | jq
```
如果有 API key:
```bash
-H "Authorization: Bearer YOUR_API_KEY"
```
---
- ### 3. 設定 Hermes 使用自架模型
執行:
```bash
hermes model
```
選:
```text
Custom endpoint (enter URL manually)
```
依序輸入:
```text
Base URL: http://YOUR_HOST:8000/v1
API Key: 沒有就留空
Model Name: YOUR_MODEL_NAME
Context Length: 65536
```
---
- ### 4. 確認設定檔
```bash
cat ~/.hermes/config.yaml
```
大致會像這樣:
```yaml
model:
provider: custom
default: "YOUR_MODEL_NAME"
base_url: "http://YOUR_HOST:8000/v1"
api_key: ""
context_length: 65536
```
---
- ### 5. 啟動 Hermes
```bash
hermes
```
或:
```bash
hermes --tui
```
---
- ### 6. 常見錯誤
| 問題 | 解法 |
| --- | --- |
| `No inference provider configured` | 離開 Hermes chat,回 shell 執行 `hermes model` |
| 在 Hermes 裡打 `hermes model` 沒用 | Hermes 裡要用 `/model`;設定 provider 要在外層 shell 跑 `hermes model` |
| endpoint 連不上 | 確認 URL 有 `/v1`,例如 `http://host:8000/v1` |
| model name 錯 | 用 `/v1/models` 回傳的 `id` |
| tool calling 不正常 | vLLM 啟動時加 `--enable-auto-tool-choice --tool-call-parser ...` |
---
- ### 快速版本
```bash
# 安裝
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
# 檢查
hermes doctor
# 查自架模型名稱
curl -s http://YOUR_HOST:8000/v1/models | jq
# 設定模型
hermes model
# 選 Custom endpoint
# URL: http://YOUR_HOST:8000/v1
# Model: /v1/models 回傳的 id
# 啟動
hermes
```
<br>
---
<br>
## 1. 官方推薦安裝方式
官方 Quickstart / Installation / GitHub README 都指向同一個一行安裝指令:
```bash id="zf6pmb"
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
```
官方說明支援 **Linux / macOS / WSL2 / Android Termux**;Windows 原生不支援,Windows 使用者需要先安裝 WSL2,再在 WSL2 terminal 裡執行安裝。([Hermes Agent][20260429-A-1])
官方也說安裝器會自動處理 Python、Node.js、ripgrep、ffmpeg、virtualenv、全域 `hermes` 指令與 LLM provider 設定;唯一明確前置需求是 `git`。([Hermes Agent][20260429-A-1])
安裝完成後:
```bash id="ec6efq"
source ~/.bashrc
# 或
source ~/.zshrc
hermes
```
官方安裝頁也列出後續常用設定指令:`hermes model` 設定模型、`hermes tools` 設定工具、`hermes gateway setup` 設定訊息平台、`hermes setup` 重新跑完整設定精靈。([Hermes Agent][20260429-A-1])
---
## 2. 先檢查安裝狀態
安裝後建議先跑:
```bash id="ebkuqb"
hermes doctor
```
官方 troubleshooting 建議遇到問題時使用 `hermes doctor`,它會檢查缺少什麼並提示修正方式。([Hermes Agent][20260429-A-1])
常見檢查:
```bash id="ugeuft"
which hermes
hermes --help
hermes doctor
```
若出現:
```text id="i1ckzq"
hermes: command not found
```
通常是 shell 還沒重新載入:
```bash id="vtwqm2"
source ~/.bashrc
# 或
source ~/.zshrc
```
---
## 3. 設定模型供應商:你的情境選 Custom endpoint
官方 AI Providers 頁面說,Hermes 需要至少一個 inference provider;可以用 `hermes model` 互動式切換 provider/model。對於自架模型,只要 server 實作 OpenAI-compatible `/v1/chat/completions`,Hermes 就能指向它。([Hermes Agent][20260429-A-2])
執行:
```bash id="egbqk9"
hermes model
```
選:
```text id="rl3ya2"
Custom endpoint (enter URL manually)
```
或官方文件中的名稱:
```text id="8a4zql"
Custom endpoint (self-hosted / VLLM / etc.)
```
然後填:
```text id="r14f0i"
API base URL: http://你的-model-server:8000/v1
API key: 有就填,沒有就留空
Model name: 你的模型 ID
Context length: 建議填 65536 或你的 server 實際支援值
```
官方 Custom endpoint 一般設定流程就是:`hermes model` → 選 Custom endpoint → 輸入 API base URL、API key、Model name。([Hermes Agent][20260429-A-2])
---
## 4. 先用 curl 驗證你的 OpenAI-compatible endpoint
在設定 Hermes 前,先確認你的 server 真的有 OpenAI-compatible API。
### 4.1 查模型列表
```bash id="eqfwqv"
curl -s http://YOUR_HOST:8000/v1/models | jq
```
如果有 API key:
```bash id="fim8ma"
curl -s http://YOUR_HOST:8000/v1/models \
-H "Authorization: Bearer YOUR_API_KEY" | jq
```
看回傳的 `id`,例如:
```json id="fi3cnb"
{
"data": [
{
"id": "Qwen/Qwen2.5-Coder-32B-Instruct"
}
]
}
```
這個 `id` 就是 Hermes 裡要填的 `Model name`。
### 4.2 測 chat completions
```bash id="52f7rd"
curl -s http://YOUR_HOST:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-Coder-32B-Instruct",
"messages": [
{"role": "user", "content": "hi"}
]
}' | jq
```
有 API key 則加:
```bash id="tp4312"
-H "Authorization: Bearer YOUR_API_KEY"
```
只要這個能回應,Hermes 才比較可能正常接上。
---
## 5. 官方設定檔位置與優先順序
官方 Configuration 說設定解析順序是:
| 優先順序 | 來源 | 用途 |
| ---: | ----------------------- | ------------------------- |
| 1 | CLI arguments | 單次執行覆蓋 |
| 2 | `~/.hermes/config.yaml` | 主要非機密設定 |
| 3 | `~/.hermes/.env` | API keys、tokens、passwords |
| 4 | 內建預設值 | fallback |
官方原則是:**secrets 放 `.env`,其他模型/provider/terminal/tool 設定放 `config.yaml`**。([Hermes Agent][20260429-A-3])
所以你的自架模型,核心應該落在:
```bash id="x15bnx"
~/.hermes/config.yaml
```
API key 這類秘密值才放:
```bash id="7r4a6w"
~/.hermes/.env
```
---
## 6. 手動設定 `~/.hermes/config.yaml`
互動式設定失敗時,可以直接手動改。
### 單一自架 endpoint
```yaml id="o30uhf"
model:
default: "Qwen/Qwen2.5-Coder-32B-Instruct"
provider: "custom"
base_url: "http://YOUR_HOST:8000/v1"
api_key: ""
context_length: 65536
```
官方 Custom endpoint 手動設定範例就是在 `~/.hermes/config.yaml` 設 `model.default`、`provider: custom`、`base_url`、`api_key`。([Hermes Agent][20260429-A-2])
### 多個自架 endpoint
如果你有本機、GPU server、公司內部 proxy,可以用 named custom providers:
```yaml id="sgylu7"
custom_providers:
- name: local
base_url: "http://localhost:8000/v1"
models:
Qwen/Qwen2.5-Coder-32B-Instruct:
context_length: 65536
- name: work
base_url: "http://gpu-server.internal:8000/v1"
key_env: CORP_API_KEY
models:
deepseek-ai/DeepSeek-V3:
context_length: 65536
```
官方文件也支援 `custom_providers`,可設定多個 named custom endpoints,並用 `/model custom:local:qwen-2.5` 這種三段式語法切換。([Hermes Agent][20260429-A-2])
---
## 7. 很重要:`hermes model` vs `/model`
你前面遇到的狀況就是這個差異。
| 指令 | 在哪裡執行 | 用途 |
| -------------- | ------------------- | ----------------------------------------- |
| `hermes model` | 外層 shell / terminal | 新增 provider、輸入 API key、設定 custom endpoint |
| `/model` | Hermes chat 裡面 | 只切換已經設定好的 provider/model |
官方明確說:`hermes model` 要在 chat session 外執行,是完整 provider setup wizard;`/model` 只能在已啟動的 Hermes chat 裡切換已設定好的模型,不能新增 provider、不能跑 OAuth、不能要求輸入 API key。([Hermes Agent][20260429-A-2])
所以正確流程是:
```bash id="7ez7ys"
# 在 Hermes chat 裡
/quit
# 回到 shell
hermes model
# 設定完後再進入
hermes
```
---
## 8. 關於 context length:官方文件有一點需要注意
官方 Quickstart 目前寫:Hermes Agent 需要至少 **64,000 tokens context**,小於這個視窗的模型可能無法維持多步驟 tool-calling 工作,甚至啟動時被拒絕。([Hermes Agent][20260429-A-4])
但 FAQ / Local model 範例中仍出現 `32768` 的範例值。([Hermes Agent][20260429-A-5])
我的建議是:
**以目前 Quickstart 的 64K 要求為準**,你的自架模型盡量設定:
```yaml id="j2q1mc"
context_length: 65536
```
vLLM server 端也對應:
```bash id="f1ikrb"
--max-model-len 65536
```
---
## 9. vLLM 自架模型建議設定
官方 vLLM 範例:
```bash id="z9jvtq"
pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--port 8000 \
--max-model-len 65536 \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser hermes
```
官方說 vLLM 適合 production GPU inference;tool calling 需要 `--enable-auto-tool-choice`,並依模型格式指定 `--tool-call-parser`,否則工具呼叫可能只會被模型輸出成普通文字。([Hermes Agent][20260429-A-2])
常見 parser 對照:
| 模型類型 | 建議 parser |
| --------------------- | ------------------------------ |
| Qwen 2.5 / Hermes 2/3 | `hermes` |
| Llama 3.x | `llama3_json` |
| Mistral | `mistral` |
| DeepSeek V3 | `deepseek_v3` 或 `deepseek_v31` |
官方列出的 supported parsers 包含 `hermes`、`llama3_json`、`mistral`、`deepseek_v3`、`deepseek_v31`、`xlam`、`pythonic`。([Hermes Agent][20260429-A-2])
---
## 10. 設定完成後測試
```bash id="v9i4bd"
hermes
```
或:
```bash id="h9zw95"
hermes --tui
```
官方說 `hermes` 是 classic CLI,`hermes --tui` 是較新的 TUI;兩者共用 sessions、slash commands 與 config。([Hermes Agent][20260429-A-4])
進入後測:
```text id="akf8uv"
hi
```
或更實用:
```text id="24tg5e"
Check my current directory and tell me what looks like the main project file.
```
官方 Quickstart 說成功狀態應該包含:banner 顯示選定的 model/provider、Hermes 能正常回應、必要時能使用 tool、對話能持續多輪。([Hermes Agent][20260429-A-4])
---
## 11. 常見錯誤對照
| 錯誤 | 原因 | 解法 |
| ---------------------------------- | ------------------------------- | --------------------------------------------------------- |
| `No inference provider configured` | 沒有設定 provider/model | 在外層 shell 執行 `hermes model` |
| 在 Hermes 裡打 `hermes model` 無效 | 你在 chat session 內,不是在 shell | `/quit` 後再跑 `hermes model` |
| `/model` 找不到 custom endpoint | `/model` 只能切換已設定項目 | 先用 `hermes model` 新增 |
| `hermes: command not found` | PATH 尚未更新 | `source ~/.bashrc` 或 `source ~/.zshrc` |
| endpoint 連不上 | base URL 錯、少 `/v1`、防火牆、port 不通 | 先用 `curl /v1/models` 測 |
| model name 不對 | Hermes 填的 model id 跟 server 不一致 | 用 `/v1/models` 回傳的 `id` |
| tool calling 失效 | vLLM/SGLang 沒開 tool parser | vLLM 加 `--enable-auto-tool-choice --tool-call-parser ...` |
| context 不足 | local model context 太小 | server 端設 64K,Hermes `context_length: 65536` |
---
## 12. 最推薦給你的完整流程
```bash id="zh4rxq"
# 1. 安裝
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 2. 重新載入 shell
source ~/.bashrc
# 3. 檢查
hermes doctor
# 4. 先確認自架 endpoint
curl -s http://YOUR_HOST:8000/v1/models | jq
# 5. 設定 Hermes model
hermes model
# 選 Custom endpoint
# URL: http://YOUR_HOST:8000/v1
# API key: 沒有就留空
# Model name: 用 /v1/models 回傳的 id
# Context length: 65536
# 6. 確認設定
cat ~/.hermes/config.yaml
# 7. 啟動
hermes
```
以你現在的需求,**不要選 OpenAI Codex、Nous Portal、OpenRouter**。
你要選的是:
```text id="visbgg"
Custom endpoint (enter URL manually)
```
然後填你的 OpenAI-compatible URL,例如:
```text id="p3mmfc"
http://10.78.26.123:8000/v1
```
[20260429-A-1]: https://hermes-agent.nousresearch.com/docs/getting-started/installation "Installation | Hermes Agent"
[20260429-A-2]: https://hermes-agent.nousresearch.com/docs/integrations/providers "AI Providers | Hermes Agent"
[20260429-A-3]: https://hermes-agent.nousresearch.com/docs/user-guide/configuration "Configuration | Hermes Agent"
[20260429-A-4]: https://hermes-agent.nousresearch.com/docs/getting-started/quickstart "Quickstart | Hermes Agent"
[20260429-A-5]: https://hermes-agent.nousresearch.com/docs/reference/faq "FAQ & Troubleshooting | Hermes Agent"
<br>
{%hackmd vaaMgNRPS4KGJDSFG0ZE0w %}