Hermes Agent 入门:安装、配置与第一个工作流

TL;DR: 本教程将带你从零开始安装 Hermes Agent,掌握核心 CLI 命令,并构建你的第一个多角色 AI 工作流。你将学会如何配置 Hermes Bridge API、编写 YAML 工作流文件,并理解 Agent 协作的基本模式。全程包含可复现的终端命令和配置文件示例。


🎯 学习目标

完成本教程后,你将能够:

  1. 在 macOS/Linux 上安装并配置 Hermes Agent v0.8+
  2. 理解 Hermes Agent 的架构:Bridge API、Skill、Workflow
  3. 运行 5 个核心 CLI 命令:init, run, status, log, skill
  4. 创建第一个多角色工作流:代码审查 + 文档生成
  5. 诊断常见的安装和配置错误

📦 环境准备

系统要求

组件最低版本推荐版本
Python3.103.12.3
Node.js18.x20.11.0
Docker24.x26.1.0
磁盘空间2 GB5 GB

注意:Hermes Agent 依赖 Docker 运行隔离的 Agent 容器。如果你使用 Colima 替代 Docker Desktop,请确保 Colima 版本 ≥ 0.7.0。

安装 Hermes Agent

# 使用官方安装脚本(推荐)
curl -sSL https://install.hermes-agent.dev | bash

# 验证安装
hermes --version
# 输出示例:Hermes Agent v0.8.3 (build 2026-06-10)

如果安装失败,检查 ~/.local/bin 是否在 $PATH 中:

export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

验证核心依赖

# 检查 Docker 运行状态
docker info | grep "Server Version"
# 输出:Server Version: 26.1.0

# 检查 Python 版本
python3 --version
# 输出:Python 3.12.3

🔧 配置 Hermes Agent

初始化配置文件

hermes init --provider openai

这会生成 ~/.hermes/config.yaml。我们打开并修改它:

# ~/.hermes/config.yaml
# Hermes Agent 全局配置

provider:
  name: openai
  model: gpt-4o-mini  # 成本优化选择,适合入门
  api_key: ${HERMES_OPENAI_API_KEY}  # 从环境变量读取

bridge:
  enabled: true
  port: 8080
  # Hermes Bridge API 允许外部工具监控 Agent 行为
  # 最新更新:v0.8.3 支持 Spanly 集成

workspace:
  dir: ~/hermes-workspace
  max_iterations: 50  # 单个 Agent 最大思考步数
  timeout: 300        # 工作流超时时间(秒)

logging:
  level: info
  file: ~/.hermes/logs/agent.log

为什么使用环境变量? 避免在配置文件中硬编码 API Key。设置方式:

export HERMES_OPENAI_API_KEY="sk-your-key-here"
echo 'export HERMES_OPENAI_API_KEY="sk-your-key-here"' >> ~/.zshrc

验证配置

hermes status
# 输出示例:
# ✅ Provider: OpenAI (gpt-4o-mini)
# ✅ Bridge: Running on port 8080
# ✅ Docker: Available
# ⚠️  Workspace: /Users/you/hermes-workspace (not exists)

看到 workspace 警告是正常的,首次运行时会自动创建。


🚀 核心 CLI 命令实战

1. hermes init — 初始化项目

mkdir ~/hermes-demo && cd ~/hermes-demo
hermes init --template basic

这会创建以下结构:

hermes-demo/
├── workflow.yaml       # 工作流定义文件
├── skills/            # 自定义技能目录
│   └── hello.py       # 示例技能
└── .hermes.yaml       # 项目级配置(覆盖全局配置)

2. hermes run — 执行工作流

hermes run workflow.yaml

首次运行会下载基础镜像(约 500MB),后续执行只需 2-3 秒。

3. hermes status — 查看运行状态

hermes status --watch
# 实时显示 Agent 状态:
# ┌──────────┬──────────┬──────────┐
# │ Agent    │ Status   │ Progress │
# ├──────────┼──────────┼──────────┤
# │ reviewer │ running  │ 45%      │
# │ writer   │ waiting  │ 0%       │
# └──────────┴──────────┴──────────┘

4. hermes log — 调试工作流

hermes log --tail 50
# 显示最近 50 行日志,包含每个 Agent 的思考过程

5. hermes skill — 管理技能

# 列出可用技能
hermes skill list
# 输出:
# ┌──────────────┬──────────────────────────────┐
# │ Skill Name   │ Description                  │
# ├──────────────┼──────────────────────────────┤
# │ code-review  │ 静态代码分析与审查            │
# │ doc-gen      │ 生成 Markdown 文档            │
# │ slide-maker  │ 生成 HTML 幻灯片(最新)      │
# └──────────────┴──────────────────────────────┘

# 安装社区技能
hermes skill install spanly-mcp
# Spanly 集成:实时可视化 Agent 在 MCP Server 内的操作

🧩 第一个多角色工作流

我们将构建一个 代码审查 + 文档生成 的工作流,演示两个 Agent 如何协作。

工作流文件:workflow.yaml

# workflow.yaml
# 多角色工作流:Code Reviewer → Technical Writer

version: "1.0"
name: "Code Review Pipeline"

agents:
  - name: reviewer
    role: "Senior Code Reviewer"
    model: gpt-4o-mini
    skills:
      - code-review
    instructions: |
      你是一位资深代码审查专家。
      审查用户提供的代码文件,输出:
      1. 代码质量评分(1-10)
      2. 发现的 3 个主要问题
      3. 改进建议(含代码示例)
      使用 Markdown 格式输出。

  - name: writer
    role: "Technical Writer"
    model: gpt-4o-mini
    skills:
      - doc-gen
    instructions: |
      你是一位技术文档专家。
      基于 reviewer 的输出,生成:
      1. 代码文档(函数说明、参数、返回值)
      2. 使用示例
      3. 常见错误处理
      输出为规范的 Markdown 文档。

workflow:
  steps:
    - agent: reviewer
      input:
        file: "src/calculator.py"  # 要审查的代码文件
      output: review_result

    - agent: writer
      input:
        review: ${review_result}  # 引用上一步输出
      output: documentation

  artifacts:
    - name: code_review.md
      source: ${review_result}
    - name: documentation.md
      source: ${documentation}

准备被审查的代码:src/calculator.py

# src/calculator.py
# 一个简单的计算器,包含一些常见问题

def divide(a, b):
    if b != 0:
        return a / b
    # 问题1:没有返回错误信息,调用者无法区分除零和其他错误
    
def add(a, b):
    result = a + b
    # 问题2:没有类型检查,传入字符串会崩溃
    return result

def complex_calc(x):
    # 问题3:未使用的变量
    unused_var = 42
    return x ** 2 + 3 * x + 1

执行工作流

hermes run workflow.yaml

预期输出

步骤 1:Reviewer 输出(部分)

## 代码审查报告

### 总体评分:5/10

### 主要问题

1. **除零错误处理不完整**(严重性:高)
   - 函数 `divide()``b == 0` 时返回 `None`
   - 建议:抛出 `ValueError`
   ```python
   def divide(a, b):
       if b == 0:
           raise ValueError("除数不能为零")
       return a / b
  1. 缺少类型注解(严重性:中)

    • 所有函数缺少类型提示
    • 建议:添加类型注解
    def add(a: float, b: float) -> float:
    
  2. 未使用的变量(严重性:低)

    • complex_calc() 中的 unused_var
    • 建议:删除或使用 _ 前缀

**步骤 2:Writer 输出(部分)**

```markdown
# Calculator 模块文档

## 函数参考

### `divide(a, b)`
- **参数**: `a` (float) - 被除数, `b` (float) - 除数
- **返回值**: float - 商
- **异常**: `ValueError` - 当 b 为 0 时
- **示例**: `divide(10, 2)` → `5.0`

### `add(a, b)`
- **参数**: `a` (float), `b` (float)
- **返回值**: float - 和
- **注意**: 当前版本未做类型检查,传入字符串会抛出 `TypeError`

⚠️ 常见陷阱与解决方案

陷阱 1:API Key 未设置

错误信息

Error: OpenAI API key not found. Set HERMES_OPENAI_API_KEY environment variable.

解决方案

# 检查是否设置
echo $HERMES_OPENAI_API_KEY

# 如果为空,重新设置
export HERMES_OPENAI_API_KEY="sk-..."

陷阱 2:Docker 权限不足

错误信息

Permission denied while trying to connect to the Docker daemon socket

解决方案

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
newgrp docker  # 立即生效

陷阱 3:工作流超时

症状:工作流在 max_iterations 步后停止,输出不完整。

解决方案

# 在 workflow.yaml 中增加迭代限制
agents:
  - name: reviewer
    max_iterations: 100  # 默认为 50

🔍 使用 Hermes Bridge API 监控

Hermes Agent v0.8 引入的 Bridge API 允许外部工具实时查看 Agent 内部状态。

启动监控

# 启动 Bridge 服务(默认在后台运行)
hermes bridge start

# 使用 curl 查看当前工作流状态
curl http://localhost:8080/api/v1/workflows/active

集成 Spanly

# 安装 Spanly MCP 技能
hermes skill install spanly-mcp

# 启动 Spanly 可视化界面
hermes spanly start --port 3000

现在打开 http://localhost:3000,你会看到 Agent 的思考过程、工具调用和状态转换的实时可视化。


📚 关键要点

  1. 配置优先:正确设置 ~/.hermes/config.yaml 和 API Key 是成功的第一步
  2. 工作流是核心:YAML 定义 Agent 角色、技能和协作顺序
  3. 技能复用code-reviewdoc-gen 是内置技能,可直接使用
  4. 调试三件套status(状态)、log(日志)、bridge(API)
  5. 安全第一:始终使用环境变量管理 API Key,不要硬编码

❓ 常见问题

Q: Hermes Agent 和 AutoGPT 有什么区别? A: Hermes Agent 专注于多角色工作流编排,每个 Agent 有明确定义的角色和职责,通过 YAML 配置协作逻辑。AutoGPT 更偏向单一 Agent 的自主任务分解。

Q: 可以在 Windows 上运行吗? A: 官方支持 macOS 和 Linux。Windows 用户建议使用 WSL2(Ubuntu 22.04+),并确保 Docker Desktop 配置为 WSL2 后端。

Q: 工作流执行失败,如何重试? A: 使用 hermes run workflow.yaml --resume 从失败步骤继续执行,避免重复计算。

Q: 如何自定义技能? A: 在 skills/ 目录下创建 Python 文件,实现 execute(context) 函数。我们将在本系列 Part 3 中详细讲解。

Q: Hermes Bridge API 是否必须开启? A: 不是。Bridge 主要用于调试和监控,生产环境可以关闭以节省资源。在配置文件中设置 bridge.enabled: false


🔮 下期预告

在 Part 2 中,我们将深入 Hermes Agent 工作流引擎,学习:

行动建议:现在就用本文的示例代码运行你的第一个工作流,在评论区分享你的输出截图。遇到问题?在 Hermes Agent Discord#beginner-help 频道提问。


本文基于 Hermes Agent v0.8.3。查看官方文档获取最新 API 参考。


Have questions? Join our Discord community or follow us on X.