@mr_r0b0t: hermesbench v0.1 — 一个专为 Hermes Agent 工具调用设计的基准测试,在隔离环境中运行真实的 Hermes Agent 子进程…
摘要
hermesbench v0.1 是一个新的基准测试,用于评估本地模型在 Hermes Agent 工具调用上的表现。它具有真实的 Agent 框架、确定性验证器和硬件遥测功能。包含 11 个类别的 43 个任务,旨在衡量模型使用 Hermes Agent 的能力。
查看缓存全文
缓存时间: 2026/06/16 23:43
hermesbench v0.1 — 专为 Hermes Agent 工具调用设计的基准测试
在隔离的 tmux 会话中运行真实的 Hermes Agent 子进程,并拥有完整的工具访问权限。包含 48 项任务,涵盖 11 个类别:终端操作、文件读取、补丁编辑、搜索、写入、进程管理、待办规划、代码执行、网页查询、内存事实、错误恢复。
与 BFCL、τ-bench、Terminal-Bench 及其他 Agent 评估方案的不同之处:
- 真实测试环境 — 不是合成 API 或简化沙箱。模型在真实的 Hermes Agent 中运行,拥有完整的 35 种工具接口,相同的提示格式和相同的约束条件。
- 仅确定性验证 — 每项任务通过标准库 Python 检查对话轨迹和文件系统状态来判断通过/失败。不使用 LLM 作为评判者。没有不稳定的启发式方法。
- 包含 Token ID 的完整轨迹 — 捕获每一条系统/用户/助手/工具消息,并可作为损失掩码 SFT 训练数据导出。
- 硬件遥测 — 以 5 Hz 频率记录 GPU 功率、温度、每 Token 焦耳数以及每任务的热节流秒数。
- 可回放的终端录像 — 每项任务生成一个
.cast文件,可用于回放或渲染为 GIF/MP4。
首批结果:nex-agi/nex-n2-pro:free → 32/48 (66.7%)。终端烟雾测试完美通过 (5/5) 和文件读取完美通过 (6/6)。在补丁编辑 (1/5)、写入 (2/5) 和内存 (1/3) 任务上表现不佳 —— 模型经常回退到错误的工具或跳过必要的调用。
http://github.com/am423/hermesbenchv0_1…
am423/hermesbenchv0_1
来源:https://github.com/am423/hermesbenchv0_1
hermesbench v0.1
一个针对在 Hermes Agent 框架内运行的本地模型的基准测试。捕获完整的对话轨迹(每次工具调用 + 结果 + 推理 + Token ID)、asciinema 录像以及 5 Hz 的硬件遥测数据。
旨在提供“该模型在使用 hermes-agent 方面有多好?”的基准真相 —— 而不仅仅是文本生成能力。
仓库:
github.com/am423/hermesbenchv0_1(在 v0.1 发布前为私有) 计划: 见project.md(1813 行,11 个章节,75 个已回答的设计问题) 评分标准: 见rubric.md(自评)
功能
- 43 项任务,11 个类别 — 终端烟雾测试、文件读取、补丁、搜索、写入、进程、待办事项、代码执行、网页查询、内存、错误恢复
- 运行真实的
AIAgent来自~/.hermes/hermes-agent/,在子进程中使用自定义的tmux_isolated环境后端 - 每项任务运行捕获三个产物:
trace.jsonl— 每条系统/用户/助手/工具消息,包含 Token ID 和推理内容(损失掩码 SFT 就绪)trace.cast— asciinema v2 格式的模型终端会话录制(可分享、可回放)stats.jsonl— 5 Hz 硬件遥测(CPU、GPU、RAM、NVMe、主机电源、模型进程树),包含热警告
- 每项任务的确定性验证器(仅依赖标准库,不使用 LLM 作为评判者,无网络调用导致的波动)
- 每模型总结中包含 6 个指标组 + 9 个硬件指标:通过率、工具效率、Token 效率、挂钟时间、恢复率、格式合规性、GPU 功率/温度、每 Token 焦耳数、热 AUC、节流秒数
快速开始(5 分钟)
# 1. 安装(可编辑模式,包含所有依赖)
make install
# 2. 验证环境
make doctor
# 3. 针对本地模型服务器运行单个任务
python3 -m hermesbench run \
--task t01_terminal_smoke/t01_echo \
--model qwen2.5-coder-7b-instruct-q4_k_m \
--base-url http://127.0.0.1:8080/v1
# 4. 运行所有 43 项任务
python3 -m hermesbench run --all \
--model qwen2.5-coder-7b-instruct-q4_k_m \
--base-url http://127.0.0.1:8080/v1
# 5. 将任务的 cast 文件渲染为 X 就绪的 GIF
python3 -m hermesbench render \
traces/<model>/t01_terminal_smoke/t01_echo/trace.cast \
--format gif --out t01.gif
CLI
| 命令 | 功能 |
|---|---|
hermesbench list | 列出所有 43 项任务 |
hermesbench list --difficulty 2 | 按难度筛选 |
hermesbench validate | 检查所有 task.yaml + 验证器文件的格式 |
hermesbench run --task <task> | 运行单个任务 |
hermesbench run --all | 运行所有 43 项任务 |
hermesbench run --all --dry-run | 验证而不启动 hermes(问题 72) |
hermesbench run --resume <dir> | 恢复崩溃的运行(问题 24) |
hermesbench run --n-runs 3 | 每项任务运行 3 次以评估方差(问题 34) |
hermesbench doctor | 预检查(问题 70) |
hermesbench score results/<model>/ | 从已有结果重新评分 |
hermesbench render <cast> | .cast → .gif/.mp4 并叠加统计信息(问题 3.1a) |
hermesbench render --examples | 显示 5 种常用渲染调用(问题 71) |
hermesbench export-sft <dir> | 轨迹 → 带损失掩码的 SFT jsonl(问题 45-47) |
架构(30 秒版本)
task.yaml + fixtures/
│
▼
runner.py ────► statsd(子进程,降低优先级,绑定核心)
│ │
│ ▼
│ .stats.jsonl(5 Hz 遥测)
│
├──► hermes-agent(子进程,--print-mode jsonl,--line-buffered)
│ │
│ TERMINAL_ENV=tmux_isolated
│ ▼
│ tmux 会话 ──► .cast(asciinema v2,通过 pipe-pane)
│ (工作树,隔离的 $HOME,unshare --net,ulimit)
│ │
│ └─► read_file, patch, search_files, terminal, ...
│
├──► .trace.jsonl(system/user/assistant/tool + Token ID + 推理)
│
▼
scoring.py ──► results/<model>/<task>/
│
├──► pass_rate, J/tok, 热警告, 硬件表格
├──► export-sft ──► sft_dataset.jsonl(带损失掩码)
└──► render ──► .gif / .mp4(带 --overlay-stats HUD)
详细设计原理见 project.md 第 3 节。
目录结构
hermesbenchv0_1/
├── README.md # 本文件
├── project.md # 设计计划(1813 行)
├── rubric.md # 自评(95/100)
├── Makefile # demo / doctor / test / lint / install
├── pyproject.toml # Python 3.11+, ruff, mypy strict
├── requirements.lock # 问题 75:固定版本
├── .pre-commit-config.yaml
├── .github/workflows/ci.yml
├── hermesbench/ # 包
│ ├── types.py # TaskSpec, VerifierResult, HardwareMetrics
│ ├── backend/ # base, registry, tmux_isolated, recorder, worktree
│ ├── statsd/ # 5 Hz 遥测收集器
│ ├── trace.py # 问题 52 轨迹读取器/规范化
│ ├── scoring.py # 指标, 热对比, J/tok
│ ├── hermes_invocation.py # 问题 22 路径, 问题 50 SHA, 问题 57 烟雾测试
│ ├── runner.py # 完整任务生命周期
│ └── cli.py # click + rich CLI
├── tasks/ # 43 项任务,11 个类别
│ ├── _template/ # 规范任务模板
│ ├── t01_terminal_smoke/ # 5 项任务
│ ├── t02_file_read/ # 6 项任务(含问题 61 并行)
│ ├── t03_patch_edit/ # 5 项任务
│ ├── t04_search_grep/ # 5 项任务
│ ├── t05_write_new/ # 5 项任务
│ ├── t06_process_mgmt/ # 5 项任务
│ ├── t07_todo_plan/ # 3 项任务
│ ├── t08_execute_code/ # 5 项任务
│ ├── t09_web_lookup/ # 3 项任务(模拟)
│ ├── t10_memory_facts/ # 3 项任务
│ └── t11_error_recovery/ # 3 项任务(问题 58)
├── fixtures/ # 任务输入数据(small_repo/, broken_code/, ...)
├── scripts/
│ ├── generate_tasks.py # 幂等任务生成器(问题 28)
│ └── fake_model_server.py # 用于端到端测试
├── tests/ # 47/47 通过
└── docs/
├── trace_format_reconciliation.md # 问题 52
├── adding_backends.md # 问题 9.3
└── glossary.md # 问题 9.4
测试
make test # 47 passed, 1 deselected
test_smoke.py— 包导入,pytest 收集test_recorder.py— asciinema v2 往返(单元 + 集成)test_statsd.py— 5 Hz 采样 2 秒,模式验证test_statsd_pinning.py— 优先级降低 + 核心检测test_statsd_sources.py— 每个源的形状验证test_scoring.py— 硬件指标,J/tok,热对比test_cli.py— 每个子命令 + 退出码test_verifier_contract.py— 每个验证器返回 VerifierResult 格式test_trace.py— 问题 52 协调test_lint_verifiers.py— AST 遍历,标准库白名单test_lint_fixtures.py— 注入模式扫描器test_lint_fixture_sizes.py— 100 KB 上限
添加新任务
cp -r tasks/_template tasks/t12_my_category/t01_my_task/
$EDITOR tasks/t12_my_category/t01_my_task/task.yaml
# ... 编写 verifier.py ...
python3 -m hermesbench validate tasks/t12_my_category/t01_my_task/
完整模式见 tasks/_template/,术语见 docs/glossary.md。
添加新的环境后端
详见 docs/adding_backends.md。简而言之:继承 BaseHermesBenchEnvironment,使用 @register_backend("name") 注册,在 hermesbench/backend/__init__.py 中导入。
许可证
MIT。
相似文章
@gregisenberg:一步步配置 Hermes agent,内置记忆、40+ 工具、手机可用,以及 Hermes 与 OpenClaw 的对比
Hermes 是一款运行在终端的个人 AI agent,内置记忆与 40+ 工具,支持手机端,并与 OpenClaw 进行对比。
NousResearch/hermes-agent
Hermes Agent 是由 Nous Research 推出的开源、自我进化 AI 智能体框架,具备闭环学习循环、跨平台部署能力,并兼容数百种大语言模型。它提供终端界面、持久化记忆、自动化调度以及用于扩展 AI 工作流的科研级工具。
@witcheer: 社区中有人对 Hermes Agent 的七个可自托管记忆提供者进行了真实基准测试,每个都输入了……
一位社区成员对 Hermes Agent 的七个可自托管记忆提供者进行了基准测试,使用 71,060 轮对话和 3,750 个关于随时间变化的事实的问题对每个提供者进行测试;完整结果和 GitHub 仓库见帖内。
为 Hermes Agent 构建的 Jetson Orin NX 系统及基准测试
详细介绍了为运行 Hermes Agent 而构建的 Jetson Orin NX 系统及基准测试,使用 Gemma 4 26B 量化模型,在 8K 上下文中达到 14.65 tok/s,在 60K 上下文中达到 10.21 tok/s。
亲自尝试了所有Hermes Agent替代品,省去你的麻烦(2026年盘点)
一篇对比11个Hermes Agent替代品的汇总文章,分为开源和托管两种选择,并提供关于安全性、性能和功能的快速评价。