Hermes Agent 源码解析 · 第 9 讲
Hermes Agent 源码解析 第 9 讲:MCP 集成与浏览器自动化——Model Context Protocol 客户端、多传输层支持、浏览器工具链与 CDP 监督器 基于 Hermes Agent v0.16.0 源码 · 2026-06-22 一、MCP 与浏览器自动化:Agent 能力的"外延接口" 前八讲我们完成了 Hermes 核心架构的全景地图:全局架构、对话循环、工具系统、插件系统、Provider 抽象层、记忆与技能、Gateway 适配器、上下文压缩。这一讲我们转向 Hermes 的 外部能力扩展面 ——两个让 Agent 突破本地边界的子系统: MCP(Model Context Protocol) 让 Hermes 连接任意外部 MCP 服务器,将第三方工具无缝注入 Agent 的工具注册表; 浏览器自动化 赋予 Agent 真正的网页交互能力——导航、点击、输入、截图、甚至视觉分析。 二者共同特点是: 它们不是核心工具,而是能力桥接器 。MCP 桥接到外部服务,浏览器桥接到 web 世界——这正是 Hermes "核心窄腰、边缘扩展"哲学的完美体现。 📦 本讲核心文件 tools/mcp_tool.py (4106 行)— MCP 客户端主模块 tools/mcp_oauth.py (776 行)— MCP OAuth 2.1 认证 mcp_serve.py (897 行)— MCP 服务端(Hermes 作为 MCP Server) tools/browser_tool.py (3873 行)— 浏览器工具链主模块 tools/browser_supervisor.py (1475 行)— CDP 监督器 agent/browser_provider.py (175 行)— 浏览器 Provider ABC agent/browser_registry.py (192 行)— 浏览器 Provider 注册表 tools/browser_dialog_tool.py (148 行)— 对话框工具 tools/browser_camofox.py — Camofox 反检测浏览器后端 二、MCP 客户端架构:连接外部世界的协议桥 MCP(Model Context Protocol)是 Anthropic 提出的标准化协议,让 AI Agent 以统一方式发现、调用外部工具。Hermes 的 MCP 实现是 最完整的开源 MCP 客户端之一 ——支持三种传输层、OAuth 2.1 认证、动态工具发现、采样回调、安全沙箱。 1. 配置驱动的服务发现 MCP 服务器配置在 ~/.hermes/config.yaml 的 mcp_servers 键下,支持两种连接模式: 📄 config.yaml 示例 mcp_servers: filesystem: # Stdio 模式(本地进程) command: "npx" args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] timeout: 120 connect_timeout: 60 github: command: "npx" args: ["-y", "@modelcontextprotocol/server-github"] env: GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_..." supports_parallel_tool_calls: true remote_api: # HTTP/StreamableHTTP 模式 url: "https://my-mcp-server.example.com/mcp" headers: Authorization: "Bearer sk-..." timeout: 180 searxng: # SSE 传输模式 url: "http://localhost:8000/sse" transport: sse 关键设计:MCP SDK 是 可选依赖 ——如果 mcp Python 包未安装,整个模块优雅降级为 no-op,不影响 Hermes 核心功能。 2. 三种传输层与后台事件循环 MCP 协议定义了三种…