My Blog
← Back to home

Hermes 启动与运行指南

Hermes 启动与运行指南

从零开始,用几个例子跑通整个系统


1. 环境准备

# 安装 Python 依赖
pip install -e ".[dev]"
 
# 检查系统依赖(tmux, jq, claude CLI)
python hermes.py doctor
 
# 初始化目录结构(首次运行)
python hermes.py init

2. 注册 Agent

系统默认已注册了 laohuang(在 config/agents.yaml),如果要加新的:

python hermes.py agent register \
  --name market01 \
  --role marketing_writer \
  --capabilities "copywriting,seo"
 
python hermes.py agent list   # 查看所有 agent

3. 启动调度器

# 前台运行(能看到实时日志)
python orchestrator.py --poll-interval 5
 
# 后台运行
python orchestrator.py --poll-interval 5 &
 
# dry-run 模式(只观察,不实际分配)
python orchestrator.py --dry-run --poll-interval 5

4. 使用示例

例 1:最小闭环 — 创建一个任务,等它自动完成

# 创建任务
python hermes.py task create \
  --title "Hello World" \
  --owner laohuang \
  --goal "在 /tmp/hello_agent.py 写入: print('hello from hermes')"
 
# 等几秒,Orchestrator 会自动把任务分配给 laohuang agent
# 任务从 todo → doing → review
 
# 查看任务状态
python hermes.py task list
 
# 查看执行结果
cat outbox/laohuang/<task_id>/summary.md
 
# 验收通过,移入 done
python hermes.py task move <task_id> done

例 2:带优先级的多任务

# P1 最高优先级,会被优先分配
python hermes.py task create \
  --title "紧急修复登录 bug" \
  --owner laohuang \
  --priority P1 \
  --goal "修复用户登录页的 500 错误"
 
# P2 默认优先级
python hermes.py task create \
  --title "优化首页加载速度" \
  --owner laohuang \
  --priority P2 \
  --goal "将首页 LCP 从 3s 优化到 1.5s 以内"
 
# P3 低优先级
python hermes.py task create \
  --title "更新 README" \
  --owner laohuang \
  --priority P3 \
  --goal "更新 README.md 中的安装说明"

调度顺序:P1 先执行 → P2 → P3(同优先级按创建时间 FIFO)

例 3:多 Agent 并发

# 注册第二个 agent
python hermes.py agent register \
  --name market01 \
  --role marketing_writer
 
# 给不同 agent 分配任务
python hermes.py task create \
  --title "写产品文案" \
  --owner market01 \
  --goal "为新产品写一段 200 字的推广文案"
 
python hermes.py task create \
  --title "开发 API 接口" \
  --owner laohuang \
  --goal "实现 /api/v1/users GET 接口"

两个 agent 会并行执行(max_concurrent_agents: 3


5. 调试和观察

# 看 orchestrator 在做什么
python orchestrator.py --dry-run --poll-interval 5
 
# 看 tmux 里的 runner pane
tmux attach -t hermes
 
# 查看某个任务详情
python hermes.py task show <task_id>
 
# 查看信号文件(Orchestrator → Runner 的通信内容)
cat signals/laohuang/current_task.json | python -m json.tool
 
# 手动触发 mock runner 测试
python runners/mock_runner.py signals/laohuang

6. 关于 Runner 模式

当前默认走 mock_runner(离线模式,sleep 1s 后写 mock 结果),适合测试。

要切换到真实 Claude 执行:编辑 runners/runner_laohuang.sh 中的 _run_claude() 函数,去掉网络检查的 fallback,让它直接调用 claude -p。需要配置好 ANTHROPIC_API_KEY