第 4 章

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 PDF 内容提取(含 OCR)
pdf_generator → pdf 生成 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 的生态系统是其核心竞争力的重要组成部分:

  1. 工具生态:40+ 内置工具覆盖搜索、代码、文件、数据、通信等七大类别,开箱即用
  2. 模型多样性:从轻量级 Hermes 2 Pro(7B)到重量级 Hermes 4(405B),支持本地和云端部署
  3. 平台覆盖:CLI 到 WhatsApp 的全平台覆盖,"一次配置,到处运行"
  4. MCP 生态:通过 MCP 协议接入更广泛的工具生态系统
  5. 社区活力:活跃的开发者社区持续贡献插件和工具

这个生态的广度,是 Hermes 能够处理如此多样化任务的物质基础。


思考题

  1. 在 40+ 内置工具中,哪5个工具对你的工作场景最重要?如果你需要将这些工具组合成一个工作流,大概的执行链会是什么样的?

  2. MCP 协议的出现对 Agent 工具生态意味着什么?标准化协议如何影响工具开发者的行为,以及用户的工具选择策略?

  3. Hermes 的多平台支持听起来很吸引人,但"一个 Agent 核心适配多个平台"这种架构,在实际使用中会带来哪些权衡和局限?

  4. 如果你要为你的公司或项目构建一个私有 Hermes 工具生态,你会优先构建哪3类自定义工具?


下一章:快速上手——10分钟内运行你的第一个 Hermes Agent

本章评分
4.5  / 5  (105 评分)

💬 留言讨论