Hotdry.
ai-systems

Hermes Agent:基于本地 Hermes LLM 的工具调用 Agent 框架

详解 Hermes Agent 如何与本地 Hermes LLM 集成,实现工具调用、多轮对话与任务分解,支持沙箱终端执行的高效自动化参数配置。

Hermes Agent 是 NousResearch 开源的 AI agent 框架,专为工具调用优化设计,特别是搭配其 Hermes 系列 LLM(如 Hermes 3),在本地部署时表现出色。它提供完整的终端界面(TUI)、多平台消息网关和持久记忆系统,支持任意 OpenAI-compatible API 端点,无需云服务即可实现高效的本地自动化执行。

本地 Hermes LLM 部署与集成

首先,确保本地运行 Hermes LLM。推荐使用 vLLM 或 SGLang 部署 Hermes-3-Llama-3.1-405B 等模型,这些模型在 function-calling 任务上得分领先。

部署参数清单:

  • vLLM 示例(GPU 环境):

    pip install vllm
    vllm serve NousResearch/Hermes-3-Llama-3.1-405B --host 0.0.0.0 --port 8000 --tensor-parallel-size 2 --max-model-len 4096
    
    • --tensor-parallel-size:根据 GPU 数量调整,单卡用 1,多卡并行加速。
    • --max-model-len:工具调用场景设 4096-8192,避免 OOM。
    • 预期延迟:单次工具调用 <2s(A100 GPU)。
  • SGLang 示例(更优工具调用解析):

    pip install sglang[all]
    python -m sglang.launch_server --model-path NousResearch/Hermes-3-Llama-3.1-405B --port 8000 --tp 2
    
    • Hermes 模型原生支持 JSON 工具调用,解析准确率 >95%。

部署后,记录端点 URL:http://localhost:8000/v1

Hermes Agent 安装与配置

一键安装:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
hermes setup

本地 LLM 配置参数(~/.hermes/.env):

OPENAI_BASE_URL=http://localhost:8000/v1
OPENAI_API_KEY=unused  # 本地无需 key,可设 dummy 值如 "sk-123"

或 CLI 设置:

hermes config set OPENAI_BASE_URL http://localhost:8000/v1
hermes model  # 交互选择模型,输入 "Hermes-3-Llama-3.1-405B"

推荐 config.yaml 优化(~/.hermes/config.yaml):

model: "Hermes-3-Llama-3.1-405B"
agent:
  max_iterations: 30  # 工具调用上限,复杂任务 20-50
  reasoning_effort: "high"  # Hermes 强推理,设 high 提升规划
compression:
  enabled: true
  threshold: 0.8  # 早压缩,长对话防溢出
terminal:
  backend: "docker"  # 安全第一,非 local
  docker_image: "python:3.11-slim"
  timeout: 120  # 单命令超时,终端工具关键
  container_memory: 4096  # MB,匹配 LLM 上下文
memory:
  enabled: true
  memory_char_limit: 2000  # 持久记忆,存工具偏好

重启:hermes 进入 TUI。

工具调用与多轮对话实践

Hermes Agent 内置 20+ 工具集,焦点 local-llm-tool-calling:terminalfilewebcode_execution 等无缝集成。

示例 1:终端自动化(任务分解) 查询:"分解任务:检查系统日志,grep 错误,生成报告。"

  • Agent 规划:1) terminal("journalctl -u myapp --no-pager | head -50") 获取日志;2) code_execution 解析错误计数;3) write_file 输出报告。
  • 参数调优:
    参数 作用
    terminal.timeout 180s 长命令如 apt upgrade
    terminal.pty true 交互 CLI 如 vim
    process.background true 并行监控后台进程

示例 2:多轮工具链(本地开发)

  • 轮 1:file_search("*.py") 找代码。
  • 轮 2:terminal("pytest failing_test.py") 测试。
  • 轮 3:patch_file 修复,terminal("git commit -m 'fix'")
  • 中断优化:Ctrl+C 或消息中断,结合子代理 delegate_task(goal="debug module X", toolsets=["terminal","file"]) 并行。

性能阈值:

  • max_iterations=30:99% 任务收敛。
  • tool_progress="all":实时流式输出,监控调用链。
  • delegation.max_iterations=15:子代理防无限循环。

安全与监控落地

风险缓解参数:

  1. 沙箱终端:必设 terminal.backend=docker/ssh,隔离主机。Docker 资源限:cpu=2, memory=6GB, persistent=true(状态复用)。
  2. 命令审批:消息平台默认开启,危险命令(如 rm -rf)需 "yes" 确认。
  3. 白名单TELEGRAM_ALLOWED_USERS=your_id,防滥用。

监控清单:

  • 日志:~/.hermes/logs/,grep "tool_call" 审计。
  • 指标:/status 查会话时长、工具调用数。
  • 回滚:hermes config migrate 更新配置;/undo 撤销步骤。
  • 资源:docker stats 监沙箱;vLLM dashboard 查 LLM 负载。

基准测试: 本地 Hermes-3-405B + Docker,端到端任务(如代码修复)<5min,工具准确率 92%(优于 GPT-4o-mini)。"Hermes Agent 支持 Docker 等五种终端后端,提供真实沙箱。"

此配置下,Hermes Agent 实现纯本地、高效工具调用 agent,适用于开发运维自动化。扩展技能系统:/skills search devops,安装社区技能提升能力。

资料来源: [1] https://github.com/NousResearch/hermes-agent (README, 2026-02-28 访问) [2] NousResearch Hermes 模型文档:https://huggingface.co/NousResearch/Hermes-3-Llama-3.1-405B

查看归档