Files
agent-skills/autonomous-ai-agents/hermes-agent/references/search-tools.md
Hermes Agent ccc63d1e70 first commit
2026-05-10 13:52:46 +08:00

3.9 KiB
Raw Blame History

Search Tools for Hermes Agent

Current Environment

Tool Type Usage
web (built-in) Web Search & Scraping web_search, web_extract tools
session_search Session history session_search(query="...")
mmx search MiniMax CLI mmx search query "关键词"
Tool Best For Pricing MCP Server
Tavily Search AI-native search, structured results Free tier available tavily-mcp
SerpAPI Google results scraping Paid (100 free/month) serpapi-mcp
Brave Search Privacy-focused, no tracking Free tier (2000/month) brave-search-mcp
Perplexity API AI search with citations Paid API only
Firecrawl Web scraping + extraction Free tier firecrawl-mcp
Jina Reader URL to Markdown conversion Free tier API only
SearXNG Self-hosted meta search Free (self-hosted) searxng-mcp

Configuration Examples

# ~/.hermes/config.yaml
mcp_servers:
  tavily:
    command: npx
    args: ["-y", "tavily-mcp@latest"]
    env:
      TAVILY_API_KEY: "tvly-xxxxx"

Get API key: https://tavily.com (free tier: 1000 searches/month)

mcp_servers:
  brave-search:
    command: npx
    args: ["-y", "@anthropic/brave-search-mcp@latest"]
    env:
      BRAVE_API_KEY: "BSAxxxxx"

Get API key: https://brave.com/search/api/ (free tier: 2000 queries/month)

Firecrawl (for Web Scraping)

mcp_servers:
  firecrawl:
    command: npx
    args: ["-y", "firecrawl-mcp"]
    env:
      FIRECRAWL_API_KEY: "fc-xxxxx"

When to Use Which

Scenario Recommended Tool
Quick factual lookup mmx search or built-in web_search
Structured data extraction Tavily Search
Google-specific results SerpAPI
Privacy-sensitive search Brave Search
Deep web scraping Firecrawl
Convert page to markdown Jina Reader
Previous conversation context session_search

Pitfalls

  • mcp_servers: {} is currently empty in this environment
  • Tool changes require /reset (new session) to take effect
  • Free tiers have rate limits; monitor usage for production use
  • Some MCP servers require Node.js (npx command)
  • mmx search Token Plan 限制mmx search query 需要 MiniMax Token Plan 支持 coding-plan-search 模型。报错 "your current token plan not support model" 表示 plan 不含搜索能力,需升级或换替代方案
  • 服务器出站网络受限:某些云服务器/容器的出站网络被限制,urllibNetwork is unreachable (errno 101)。此时 curl、Python requests、mimo_search.py 均无法访问外部。排查:curl -s -o /dev/null -w "%{http_code}" https://www.baidu.com
  • Playwright/Chrome 沙盒问题:服务器上 Chrome 需要 --no-sandbox 参数才能启动。Hermes 的 browser 工具可能因沙盒限制失败。排查:检查 Chrome stderr 中是否有 "No usable sandbox" 错误
  • mimo_search.py 环境变量:脚本依赖 XIAOMI_API_KEY 环境变量,但 Hermes config.yaml 中的 key 不会自动 export。需手动 export XIAOMI_API_KEY=... 或从 config 提取

搜索降级策略(按优先级)

当用户请求搜索时,按以下顺序尝试:

  1. mmx search — 最简单,但需 Token Plan 支持
  2. mimo_search.py — MiMo 原生搜索,需 XIAOMI_API_KEY 环境变量 + 网络可达
  3. web_search 工具 — Hermes 内置,需 web toolset 启用
  4. Playwright 浏览器 — 通用兜底,但需 Chrome 可启动
  5. curl + 搜索引擎 — 最基础,需服务器出站网络可达

全部失败时告知用户具体失败原因Token Plan 限制 / 网络不通 / 浏览器沙盒问题),并建议用户在本地自行搜索。