Hermes 生态全景:工具、平台、社区
第四章:Hermes 生态全景:工具、平台、社区
章节导语
一个 Agent 框架的真实价值,不仅取决于其核心架构,更取决于围绕它构建的生态系统——有多少工具可用、支持哪些平台、能集成哪些 AI 模型、社区活跃度如何。本章全面梳理 Hermes 的生态版图:从 40+ 内置工具的详细分类,到 Hermes 4 等支持的 LLM 谱系,从 CLI 到 WhatsApp 的多平台架构,再到 MCP 协议集成和社区资源导航。理解这张生态地图,是充分发挥 Hermes 潜力的前提。
4.1 40+ 内置工具:完整分类详解
Hermes 的工具生态是其核心竞争力之一。所有工具在安装时开箱即用,无需额外配置。以下是完整的工具分类和详细说明:
类别一:信息搜索与检索工具(8个)
# 搜索类工具示例
hermes tools info web_search
# 输出:
# Tool: web_search
# Description: 使用搜索引擎进行网络搜索
# Provider: SerpAPI / DuckDuckGo
# Parameters:
# query (string, required): 搜索关键词
# num_results (int, default=10): 返回结果数量
# time_range (string, optional): 时间范围 (day/week/month/year)
| 工具名称 | 功能描述 | 典型用例 |
|---|---|---|
web_search |
通用网络搜索 | 查找最新信息、新闻事件 |
arxiv_search |
学术论文搜索(arXiv) | AI研究、技术论文检索 |
wikipedia |
维基百科查询 | 背景知识获取 |
news_search |
新闻聚合搜索 | 市场动态、行业新闻 |
youtube_search |
YouTube 视频搜索 | 找教程、演讲视频 |
scholar_search |
Google Scholar 搜索 | 引用文献查找 |
patent_search |
专利检索 | 技术调研、知识产权 |
web_scraper |
网页内容提取 | 非结构化网页数据采集 |
类别二:代码执行工具(6个)
这类工具是 Hermes 自主完成计算任务的基础:
# Hermes 使用代码执行工具的示例(内部调用方式)
{
"tool": "python_executor",
"params": {
"code": """
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据并生成图表
df = pd.read_csv('/tmp/data.csv')
df.plot(kind='bar', x='month', y='revenue')
plt.savefig('/tmp/revenue_chart.png')
print(f"图表已生成,数据行数: {len(df)}")
""",
"timeout": 60,
"allow_file_access": True
}
}
| 工具名称 | 功能描述 | 安全级别 |
|---|---|---|
python_executor |
Python 代码沙箱执行 | 沙箱隔离 |
bash_executor |
Shell 命令执行 | 需要显式授权 |
node_executor |
Node.js 代码执行 | 沙箱隔离 |
code_analyzer |
静态代码分析 | 只读,安全 |
code_formatter |
代码格式化 | 低风险 |
test_runner |
运行测试套件 | 沙箱隔离 |
类别三:文件与文档工具(7个)
# 使用文件工具的命令示例
hermes run "读取 /documents/report.pdf,提取关键数据,生成 Excel 摘要"
# Hermes 会自动调用:
# 1. pdf_reader → 提取 PDF 内容
# 2. data_extractor → 识别关键数据
# 3. excel_generator → 生成 Excel 文件
| 工具名称 | 支持格式 | 功能 |
|---|---|---|
file_reader |
txt, md, json, yaml, csv | 读取文本文件 |
pdf_reader |
PDF 内容提取(含 OCR) | |
pdf_generator |
生成 PDF 文档 | |
excel_handler |
xlsx, xls, csv | Excel 读写操作 |
image_analyzer |
jpg, png, gif, webp | 图像内容理解(多模态) |
audio_transcriber |
mp3, wav, m4a | 音频转文字 |
doc_converter |
多格式互转 | 文档格式转换 |
类别四:数据分析与可视化工具(5个)
# Hermes 数据分析工作流示例
hermes run """
分析 sales_data.csv:
1. 计算月度销售增长率
2. 识别TOP 10产品
3. 生成三张图表:趋势图、饼图、热力图
4. 将分析结果和图表打包为 PDF 报告
"""
# 内部工具调用链:
# data_analyzer → chart_generator × 3 → pdf_generator
| 工具名称 | 功能 | 输出格式 |
|---|---|---|
data_analyzer |
统计分析、数据描述 | JSON/文本摘要 |
chart_generator |
生成各类图表 | PNG/SVG |
sql_executor |
SQL 查询执行 | 数据集 |
ml_predictor |
简单机器学习预测 | 预测结果 |
data_validator |
数据质量验证 | 验证报告 |
类别五:通信与通知工具(6个)
# 配置邮件工具
hermes config set --tool email_sender \
--smtp-host "smtp.gmail.com" \
--smtp-port 587 \
--username "[email protected]" \
--password-env "EMAIL_PASSWORD"
# 使用示例
hermes run "完成竞品分析后,发送报告到 [email protected]"
| 工具名称 | 功能 | 典型场景 |
|---|---|---|
email_sender |
SMTP 邮件发送 | 报告分发、通知 |
slack_notifier |
Slack 消息发送 | 团队通知 |
telegram_sender |
Telegram 消息发送 | 移动端通知 |
webhook |
HTTP Webhook 调用 | 系统集成、自动化触发 |
sms_sender |
短信发送(Twilio) | 紧急通知 |
calendar_event |
创建日历事件 | 任务提醒 |
类别六:AI 增强工具(6个)
# 使用 AI 增强工具链示例:多语言内容生成
{
"pipeline": [
{"tool": "content_generator", "task": "生成中文产品描述"},
{"tool": "translator", "params": {"target_languages": ["en", "ja", "de"]}},
{"tool": "seo_optimizer", "params": {"target_market": "global"}},
{"tool": "image_generator", "params": {"style": "product-photo"}}
]
}
| 工具名称 | 功能 | 底层技术 |
|---|---|---|
content_generator |
结构化内容生成 | LLM |
translator |
多语言翻译 | LLM + 专业翻译模型 |
summarizer |
长文档摘要 | LLM + 压缩算法 |
image_generator |
AI 图像生成 | DALL-E / Stable Diffusion |
seo_optimizer |
SEO 内容优化 | LLM |
sentiment_analyzer |
情感分析 | 分类模型 |
类别七:系统与集成工具(5个)
# 使用系统工具示例:自动化运维
hermes run "检查服务器状态,如果 CPU 使用率超过 90% 持续5分钟,
自动重启相关服务并通知运维团队"
# 调用链:
# system_monitor → condition_check → bash_executor(restart) → slack_notifier
| 工具名称 | 功能 | 权限要求 |
|---|---|---|
system_monitor |
系统资源监控 | 只读 |
process_manager |
进程管理 | 需要授权 |
git_tool |
Git 操作 | 工作目录权限 |
docker_tool |
Docker 管理 | Docker socket 权限 |
api_caller |
通用 HTTP API 调用 | 网络访问 |
自定义工具的快速接入
除了 40+ 内置工具,Hermes 提供了统一的工具注册接口:
# 5分钟接入自定义工具
from hermes.tools import tool
@tool(
name="company_crm",
description="查询公司 CRM 系统中的客户信息"
)
def query_crm(customer_id: str, fields: list = None) -> dict:
"""
Args:
customer_id: 客户唯一标识
fields: 需要查询的字段列表,默认返回全部
Returns:
客户信息字典
"""
return crm_api.get_customer(customer_id, fields=fields)
# 注册到 Hermes
hermes.register(query_crm)
4.2 支持的 AI 模型谱系
Hermes 框架设计为模型无关,但针对不同模型有不同程度的优化:
Hermes 系列模型(最优选择)
| 模型 | 基础模型 | 参数量 | Agent 优化特性 |
|---|---|---|---|
| Hermes 4 | Llama 3.1 70B/405B | 70B / 405B | 完整 Atropos RL 训练,最优工具调用 |
| Hermes 3 | Llama 3 8B/70B | 8B / 70B | 工具调用优化,良好 Skill 提炼 |
| Hermes 2 Pro | Mistral 7B | 7B | 轻量级,本地部署优先 |
# 使用 Hermes 4(云端 API)
hermes config set --model hermes-4 \
--api-base "https://api.nousresearch.com/v1" \
--api-key $NOUS_API_KEY
# 使用本地 Hermes 3(Ollama)
hermes config set --model hermes-3 \
--provider ollama \
--api-base "http://localhost:11434/v1"
第三方模型支持
# 配置 OpenAI GPT-4
hermes_config = {
"model": {
"provider": "openai",
"name": "gpt-4-turbo",
"api_key": os.getenv("OPENAI_API_KEY"),
"tool_calling": "native" # 使用 OpenAI 原生工具调用格式
}
}
# 配置 Anthropic Claude
hermes_config = {
"model": {
"provider": "anthropic",
"name": "claude-3-5-sonnet-20241022",
"api_key": os.getenv("ANTHROPIC_API_KEY"),
"tool_calling": "native" # 使用 Claude 工具调用格式
}
}
# 配置 Google Gemini
hermes_config = {
"model": {
"provider": "google",
"name": "gemini-1.5-pro",
"api_key": os.getenv("GOOGLE_API_KEY")
}
}
本地模型支持
对于有数据隐私要求的用户,Hermes 完整支持通过 Ollama 或 vLLM 运行本地模型:
# 使用 Ollama 运行 Hermes 3 8B 本地版本
ollama pull nous-hermes3:8b
# 配置 Hermes 使用本地模型
hermes config set \
--model nous-hermes3:8b \
--provider ollama \
--temperature 0.1 \
--zero-cost # 标记为零成本运行(本地模型)
4.3 多平台架构详解
统一 Agent 核心,多平台适配层
Hermes 的多平台支持基于"单一核心,多平台适配"的架构设计:
┌─────────────────────────────────────────────────────┐
│ 用户交互层 │
│ CLI │ Telegram │ Discord │ Slack │ WhatsApp │ API │
└───────────────────┬─────────────────────────────────┘
│ 统一消息格式
▼
┌─────────────────────────────────────────────────────┐
│ 平台适配层 │
│ 统一消息解析 │ 会话管理 │ 媒体文件处理 │ 权限验证 │
└───────────────────┬─────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Agent 核心层 │
│ ReAct 规划 │ 工具调用 │ Skill库 │ 上下文管理 │
└─────────────────────────────────────────────────────┘
CLI 平台
CLI 是最完整的交互方式,提供最高级别的控制:
# 基础交互
hermes chat
# 执行单次任务
hermes run "你的任务描述"
# 带文件上下文
hermes run --context /path/to/file.pdf "分析这个文档"
# 调试模式(显示所有工具调用细节)
hermes run --debug "你的任务"
# 指定输出格式
hermes run --output-format json "分析结果需要是结构化数据"
Telegram Bot 平台
# 部署 Telegram Bot
hermes platform telegram deploy \
--bot-token $TELEGRAM_BOT_TOKEN \
--allowed-users "123456789,987654321" # 限制可用用户
--webhook-url "https://your-server.com/telegram"
# Telegram 特有功能:
# - 支持发送文件(图片、PDF、Excel)
# - 支持内联键盘按钮(快捷操作)
# - 支持群组模式(@mention 触发)
# - 支持语音消息(自动转文字)
Discord Bot 平台
# Discord Bot 配置示例
discord_config = {
"platform": "discord",
"bot_token": os.getenv("DISCORD_BOT_TOKEN"),
"prefix": "!hermes", # 命令前缀
"allowed_channels": [ # 限制活跃频道
"ai-assistant",
"research-bot"
],
"allowed_roles": ["member", "admin"], # 限制可用角色
"enable_slash_commands": True, # 使用斜线命令
"thread_mode": True # 每个任务在独立线程中
}
Slack Bot 平台
# Slack App 配置
slack_config = {
"platform": "slack",
"bot_token": os.getenv("SLACK_BOT_TOKEN"),
"app_token": os.getenv("SLACK_APP_TOKEN"),
"signing_secret": os.getenv("SLACK_SIGNING_SECRET"),
"home_tab_enabled": True, # 启用 App Home Tab
"workflow_steps": True, # 作为 Slack Workflow 节点
"scheduled_reports": [ # 定期报告
{
"channel": "#weekly-insights",
"schedule": "0 9 * * 1", # 每周一 9:00
"task": "生成本周 AI 行业动态摘要"
}
]
}
WhatsApp 平台(通过 Twilio/Meta API)
# WhatsApp 集成
whatsapp_config = {
"platform": "whatsapp",
"provider": "twilio",
"account_sid": os.getenv("TWILIO_ACCOUNT_SID"),
"auth_token": os.getenv("TWILIO_AUTH_TOKEN"),
"from_number": "whatsapp:+14155238886",
"allowed_numbers": [ # 白名单
"whatsapp:+8613800138000"
]
}
4.4 MCP 协议与 ClawHub 生态接入
MCP(Model Context Protocol)简介
MCP(模型上下文协议)是 Anthropic 提出的开放标准,用于标准化 LLM 与外部工具/数据源之间的通信协议。Hermes 完整支持 MCP,这意味着:
所有 MCP 兼容工具,都可以直接在 Hermes 中使用
# 安装 MCP 工具服务器示例
npm install -g @modelcontextprotocol/server-filesystem
npm install -g @modelcontextprotocol/server-github
npm install -g @modelcontextprotocol/server-postgres
# 在 Hermes 中注册 MCP 工具
hermes mcp add \
--name "github" \
--server "@modelcontextprotocol/server-github" \
--env "GITHUB_TOKEN=$GITHUB_TOKEN"
MCP 工具生态(部分)
# MCP 工具服务器列表(Hermes 已验证可用)
mcp_servers:
- name: filesystem
package: "@modelcontextprotocol/server-filesystem"
description: "本地文件系统操作"
- name: github
package: "@modelcontextprotocol/server-github"
description: "GitHub 仓库操作"
- name: postgres
package: "@modelcontextprotocol/server-postgres"
description: "PostgreSQL 数据库查询"
- name: brave-search
package: "@modelcontextprotocol/server-brave-search"
description: "Brave 搜索引擎"
- name: puppeteer
package: "@modelcontextprotocol/server-puppeteer"
description: "浏览器自动化(Puppeteer)"
- name: notion
package: "@modelcontextprotocol/server-notion"
description: "Notion 文档操作"
4.5 社区资源导航
官方资源
| 资源 | 地址 | 说明 |
|---|---|---|
| GitHub 仓库 | github.com/nousresearch/hermes-agent | 源代码、Issues、Discussions |
| 官方文档 | docs.hermes-agent.ai | 完整 API 文档和教程 |
| 模型下载 | huggingface.co/NousResearch | Hermes 系列模型 |
| Discord 社区 | discord.gg/nousresearch | 实时讨论、技术支持 |
社区贡献的工具和插件
NousResearch 维护了一个社区工具注册表,允许开发者发布和发现第三方工具:
# 浏览社区工具
hermes community tools list --category finance
# 安装社区工具
hermes community tools install hermes-tool-yahoo-finance
# 发布自己的工具
hermes community tools publish ./my-custom-tool/ \
--name "my-trading-tool" \
--description "接入交易所 API 的工具"
本章小结
Hermes 的生态系统是其核心竞争力的重要组成部分:
- 工具生态:40+ 内置工具覆盖搜索、代码、文件、数据、通信等七大类别,开箱即用
- 模型多样性:从轻量级 Hermes 2 Pro(7B)到重量级 Hermes 4(405B),支持本地和云端部署
- 平台覆盖:CLI 到 WhatsApp 的全平台覆盖,"一次配置,到处运行"
- MCP 生态:通过 MCP 协议接入更广泛的工具生态系统
- 社区活力:活跃的开发者社区持续贡献插件和工具
这个生态的广度,是 Hermes 能够处理如此多样化任务的物质基础。
思考题
-
在 40+ 内置工具中,哪5个工具对你的工作场景最重要?如果你需要将这些工具组合成一个工作流,大概的执行链会是什么样的?
-
MCP 协议的出现对 Agent 工具生态意味着什么?标准化协议如何影响工具开发者的行为,以及用户的工具选择策略?
-
Hermes 的多平台支持听起来很吸引人,但"一个 Agent 核心适配多个平台"这种架构,在实际使用中会带来哪些权衡和局限?
-
如果你要为你的公司或项目构建一个私有 Hermes 工具生态,你会优先构建哪3类自定义工具?
下一章:快速上手——10分钟内运行你的第一个 Hermes Agent