工具调用 (Function Calling)
Hermes Agent 原生支持工具调用协议,能自主决策调用外部 API、数据库查询、文件操作等,真正实现 Agent 自主行动。
专为中国大陆开发者优化的 NousResearch Hermes Agent 部署与使用手册。从零开始,快速搭建你的 AI 智能体。
由 NousResearch 开发的开源 AI Agent 框架,基于 Hermes 3 大语言模型,专为工具调用和结构化推理深度优化。
Hermes Agent 原生支持工具调用协议,能自主决策调用外部 API、数据库查询、文件操作等,真正实现 Agent 自主行动。
严格遵循 JSON Schema 输出,确保每次响应格式一致可解析。适用于自动化管线和后端集成场景,消除人工解析成本。
基于 Hermes 3 模型微调,具备强大的多步推理和任务分解能力。在复杂工作流中可自主规划执行路径。
兼容所有 OpenAI 格式 API。可对接 OpenRouter、Together AI,也可本地部署 Ollama 或 vLLM,自由切换推理后端。
| 对比维度 | Hermes Agent | OpenClaw |
|---|---|---|
| 核心定位 | 轻量级 Agent 框架,专注工具调用与推理 | 多 Agent 协作平台,侧重复杂任务编排 |
| 模型依赖 | 自有 Hermes 模型系列,本地部署友好 | 通常依赖第三方 API 调用 |
| 工具调用 | 原生内置,模型层面微调优化 | 通过框架层面抽象实现 |
| 上手难度 | 极简 API 设计,几行代码启动 | 配置较复杂,学习曲线陡峭 |
| 离线运行 | 支持完全离线本地推理 | 通常需要在线 API 连接 |
从安装到运行,四步完成 Hermes Agent 的完整部署。
使用 pip 安装 Hermes Agent 核心包。建议使用虚拟环境隔离项目依赖。
# 创建并激活虚拟环境
python -m venv hermes-env
source hermes-env/bin/activate
# 安装 Hermes Agent(国内用户建议加速)
pip install hermes-agent -i https://pypi.tuna.tsinghua.edu.cn/simple设置 API 密钥和端点。支持 OpenAI 兼容格式的任意后端。
# .env 文件配置
OPENAI_BASE_URL="https://api.your-provider.com/v1"
OPENAI_API_KEY="sk-your-api-key"
# 如使用本地 Ollama
# OPENAI_BASE_URL="http://localhost:11434/v1"
# OPENAI_API_KEY="ollama"几行 Python 代码即可启动一个具备工具调用能力的智能体。
from hermes_agent import Agent
agent = Agent(
model="hermes-3",
tools=["web_search", "calculator", "file_reader"],
)
response = agent.run("帮我搜索最新的 AI Agent 论文并总结")
print(response)执行脚本,Agent 将自动规划任务、调用工具并返回结果。
# 运行 Agent
python main.py
# 启用详细日志模式
HERMES_LOG_LEVEL=debug python main.py针对 API 连通性、依赖下载限速及 Docker 镜像获取困难等痛点,提供极简配置方案。
Hermes Agent 默认调用外部 LLM API 进行推理。若使用 OpenAI 兼容格式或外部 API(如 OpenRouter、Together AI),需修改全局 Base URL。
# 环境变量配置法(推荐)
# 在 .env 文件或终端中设置
export OPENAI_BASE_URL="https://your-proxy-domain.com/v1"
export OPENAI_API_KEY="sk-your-proxy-key"
# 代码级修改法
from openai import OpenAI
client = OpenAI(
base_url="https://your-proxy-domain.com/v1",
api_key="sk-your-proxy-key"
)对数据隐私要求高或希望完全避开网络限制的开发者,推荐使用本地算力运行 Hermes 3 模型,实现毫秒级工具调用。
# 第一步:部署本地模型
# 需提前安装 Ollama (https://ollama.ai)
ollama run hermes3
# 第二步:对接 Agent(修改 .env)
OPENAI_BASE_URL="http://localhost:11434/v1"
OPENAI_API_KEY="ollama"
# 验证本地服务是否正常
curl http://localhost:11434/v1/models在构建运行环境时,务必切换为国内镜像源,避免 Timeout 报错。
# Python pip 极速配置
pip config set global.index-url \
https://mirrors.aliyun.com/pypi/simple/
# 或临时指定镜像源
pip install hermes-agent \
-i https://pypi.tuna.tsinghua.edu.cn/simple
# Docker daemon.json 加速器配置
# 编辑 /etc/docker/daemon.json
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}针对大陆网络环境优化的 Docker 配置,解决容器访问宿主机本地模型的问题。
version: '3.8'
services:
hermes-agent:
image: nousresearch/hermes-agent:latest
container_name: hermes_agent_service
restart: always
environment:
# 指向国内可访问的 API 中转地址
- OPENAI_BASE_URL=https://api.your-proxy.com/v1
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
# 若使用本地 Ollama,取消下方注释
# - OPENAI_BASE_URL=http://host.docker.internal:11434/v1
- LANG=C.UTF-8
- TZ=Asia/Shanghai
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- hermes_network
networks:
hermes_network:
driver: bridge极简代码,快速通过国内网络发起你的第一次 Agent 对话。
"""
Hermes Agent - 国内网络首次对话示例 (Python)
通过配置 base_url 使用国内 API 代理
"""
from openai import OpenAI
# 初始化客户端 - 指向国内可用的代理端点
client = OpenAI(
base_url="https://your-proxy-domain.com/v1",
api_key="sk-your-proxy-key",
)
# 定义工具(Function Calling)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,如:北京"
}
},
"required": ["city"]
}
}
}
]
# 发起 Agent 对话
response = client.chat.completions.create(
model="NousResearch/hermes-3-llama3.1-8b",
messages=[
{"role": "system", "content": "你是一个有用的 AI 助手。"},
{"role": "user", "content": "北京今天天气怎么样?"}
],
tools=tools,
tool_choice="auto",
)
print(response.choices[0].message)提示:将 your-proxy-domain.com 替换为你的国内 API 代理地址。若使用本地 Ollama,将 base_url 改为 http://localhost:11434/v1。
针对中国大陆开发者最关心的部署、网络和兼容性问题。