Hermes + Peekaboo 调研手册
概述
本文档记录关于 Hermes Agent 与 Peekaboo 的调研内容、架构设计、使用方式及集成方案。
Hermes Agent 是多平台 AI 代理框架,Peekaboo 是 macOS UI 自动化工具。两者的结合可实现跨平台的 AI 驱动桌面自动化。
Hermes Agent
简介
Hermes Agent 由 Nous Research 开发,是一款开源 AI 代理框架。可在终端、即时通讯平台和 IDE 中运行。属于 Claude Code、OpenAI Codex 同类的自主编码和任务执行代理。
核心特点
- 自我进化(Skills) — 通过经验学习,将可复用的工作流保存为技能文档,在后续会话中自动加载
- 持久记忆 — 跨会话记住用户偏好、环境细节;支持可插拔记忆后端(内置、Honcho、Mem0 等)
- 多平台网关 — 同一代理可在 Telegram、Discord、Slack、WhatsApp、Signal 等 10+ 平台运行
- Provider 无关 — 支持 OpenRouter、Anthropic、OpenAI、DeepSeek 等 20+ 模型提供商
- Profile 隔离 — 多独立实例,各自拥有独立的配置、会话、技能和记忆
- 可扩展 — 插件、MCP 服务器、自定义工具、Webhook 触发、Cron 调度
模型调度能力 / 智能任务分发
Hermes 当前支持的多模型能力
- 主模型 vs 子代理模型(delegation) — 可通过 config.yaml 中的
delegation.model/delegation.provider为 delegate_task 子代理指定不同于主模型的模型。主模型处理决策与协调,子代理用专用模型执行子任务 - 辅助任务独立模型(auxiliary) — vision(图片分析)和 web_extract(网页提取)可分别配置不同的 provider/model,与其他任务解耦
- Fallback 降级 —
fallback_providers列表可在主 provider 不可用时自动切换到备选 provider - Credential Pools — 同一 provider 可配置多组 API Key,自动轮换使用
- Profile 隔离 — 不同 profile 可配置完全不同的提供者/模型,但需手动切换
- /model 手动切换 — 会话中随时通过
/model命令更换模型
当前不支持的能力(待实现)
- ❌ 无智能任务分类路由 — Hermes 无法自动分析"这是编程任务 → 走 Coder 模型,这是创意任务 → 走综合模型"并按任务类型路由
- ❌ 无多模型同会话编排 — 单个会话内不支持将不同 turn 自动分配给不同模型(如首轮策划用 Claude,细节编码用 DeepSeek Coder,总结用 GPT)
- ❌ 无 Router 中间件 — 没有插件或配置声明"对于工具 X 使用模型 Y,对于工具 Z 使用模型 W"的按需分发能力
- ❌ 无基于成本的智能路由 — 不支持"简单任务走便宜模型,复杂任务走贵模型"的自动决策
与 Peekaboo 的对比(模型调度)
Peekaboo V3 虽然支持多 Provider(GPT-5.1, Claude 4.x, Grok 4, Gemini 2.5, 本地 Ollama),但同样是"在 Agent 调用时指定一个模型",而非自动智能分发。两者在模型路由上处于同等水平。
实现方向推测(如需增强)
- Profile 变通方案 — 为不同任务类型创建独立 Profile(coding-profile / creative-profile / general-profile),启动时按需选用
- delegate_task 层路由 — 主 agent 分析任务后,手动选择 delegation model 分发给专用模型子代理执行
- 中间层路由代理 — 用另一个 LLM 做 Router,判断输入任务类型后调用不同 Hermes profile/命令
- Plugin / Router 中间件 — 可在 Hermes plugin 系统中实现(Hermes 支持 plugins)
命令速览
hermes— 交互式聊天hermes chat -q "..."— 单次查询hermes setup— 设置向导hermes model— 切换模型/Providerhermes gateway ...— 消息平台网关管理hermes mcp ...— MCP 服务器管理hermes cron ...— 定时任务管理hermes skills ...— 技能管理hermes tools ...— 工具集管理hermes sessions ...— 会话管理
MCP 支持
Hermes 内置原生 MCP 客户端,可连接多个 MCP 服务器(stdio 或 HTTP 传输):
hermes mcp add NAME— 添加 MCP 服务器hermes mcp remove NAME— 移除hermes mcp list— 列出已配置的服务器hermes mcp test NAME— 测试连接
文档
https://hermes-agent.nousresearch.com/docs/
Peekaboo
简介
Peekaboo 🫣 由 Peter Steinberger (steipete) 开发,是 macOS 桌面自动化工具。提供高保真屏幕捕获、AI 分析和完整的 GUI 自动化能力。V3 版本新增原生 Agent 流程和多屏幕自动化,同时提供 CLI 和 MCP 服务器两种使用方式。
核心特点
- 像素级捕获 — 窗口、全屏、菜单栏捕获,支持 Retina 2x 缩放
- 自然语言 Agent — 链式调用 Peekaboo 工具(see → click → type → scroll → ...)
- 多 Provider AI — GPT-5.1, Claude 4.x, Grok 4, Gemini 2.5, 本地 Ollama
- MCP 服务器 — 可作为 MCP 服务器供 Claude Desktop、Cursor 等调用
- 可复现工作流 — 支持可配置、可测试的自动化脚本(.peekaboo.json)
- 19+ 命令 — 从截图/点击/输入到手势/菜单/窗口/工作区全覆盖
命令速览
| 命令 | 功能 |
|---|---|
peekaboo see | 捕获并标注 UI,返回快照+元素 ID |
peekaboo click | 按元素 ID/标签/坐标点击 |
peekaboo type | 输入文本 |
peekaboo press/hotkey | 按键/快捷键组合 |
peekaboo scroll/swipe/drag | 滚动/滑动手势/拖拽 |
peekaboo window | 窗口管理(移动/缩放/聚焦) |
peekaboo app | App 管理(启动/退出/切换/列表) |
peekaboo space | macOS 工作区管理 |
peekaboo menu/menubar | 应用菜单和状态栏操作 |
peekaboo dock | Dock 交互 |
peekaboo dialog | 系统对话框操作 |
peekaboo image | 截图(+AI 分析) |
peekaboo list | 枚举 Apps/Windows/Screens/Menubar |
peekaboo agent | 自然语言多步自动化 |
peekaboo mcp | 启动 MCP 服务器模式 |
peekaboo run | 执行 .peekaboo.json 自动化脚本 |
安装
- Homebrew:
brew install steipete/tap/peekaboo - MCP(npx):
npx -y @steipete/peekaboo - 系统需求: macOS 15 Sequoia+
- 权限: Screen Recording + Accessibility
文档
https://github.com/steipete/peekaboo
集成方案
方案一:MCP 服务器集成(推荐)
架构:Hermes 作为 MCP 客户端 → Peekaboo 作为 MCP 服务器
配置步骤:
- 安装 Peekaboo:
brew install steipete/tap/peekaboo - 在 Hermes config.yaml 中添加 MCP 服务器:
mcp_servers: peekaboo: command: npx args: ["-y", "@steipete/peekaboo"] - 在 Hermes 中通过
hermes mcp test peekaboo验证连接 - Peekaboo 的所有工具自动注册为 Hermes 可用工具
优势:工具原生融入 Hermes 的工具调用系统;无需手动管理进程
方案二:CLI 子进程调用
直接在 Hermes 的 terminal() 中调用 Peekaboo CLI 命令:
# 截屏分析
terminal("peekaboo image --mode screen --retina --path /tmp/screen.png")
# UI 交互
terminal("peekaboo see --app Safari --json-output | ...")
terminal('peekaboo click --on "Address field"')
# 自然语言自动化
terminal('peekaboo "Open Notes and create a TODO"')
适用场景:临时性、一次性 UI 操作;无需长期 MCP 连接
方案三:Agent Agent 协作(高级)
Hermes 的 delegate_task 或 cron 调度 + Peekaboo Agent 模式:
- Hermes 负责高层决策、多平台协调、定时任务编排
- Peekaboo 负责 macOS 本地 UI 精细操作
- Peekaboo Agent 的自然语言模式(
peekaboo "指令")可接收 Hermes 的任务描述
典型使用场景
1. Apple Find My 设备追踪(已有实现)
Hermes FindMy skill 已集成 Peekaboo 进行 macOS FindMy.app 的 UI 自动化:
- 启动 FindMy.app → 截图 → AI 分析位置 → 记录/通知
- Peekaboo 命令:
peekaboo see --app "FindMy" --annotate - Hermes 通过 vision_analyze 读取截图中的位置信息
2. macOS App GUI 测试
- Hermes 驱动测试流程,Peekaboo 执行操作和断言
- 自动化回归测试,截图对比
3. 定时桌面任务
- Hermes cron 定时触发
- Peekaboo 执行 UI 操作(如每日截图存档、系统状态检查)
- 结果自动回传 Telegram 等平台
数据流
- 触发:用户指令 / Cron 定时 / Webhook
- 决策:Hermes Agent 分析任务,决定需要 macOS UI 操作
- 执行:通过 MCP 或 CLI 调用 Peekaboo
- 反馈:Peekaboo 返回截图/元素数据/执行结果
- 分析:Hermes 用 vision 或 LLM 分析结果
- 响应:通过网关回传给用户(Telegram/Discord 等)
注意事项
- Peekaboo 目前仅支持 macOS 15 Sequoia+,非 macOS 环境无法使用
- 需要 Screen Recording 和 Accessibility 权限授权
- 非 macoS 系统上有 MiniPeekaboo(Python 版克隆,兼容 macOS 12+)可作为轻量替代
- Hermes 连接 Peekaboo MCP 时需确保 Peekaboo 进程可用
- AI 分析功能需要配置对应的 Provider API Key
调研进度
- [x] Hermes Agent 基础调研
- [x] Peekaboo 基础调研
- [x] 集成方案设计
- [x] Hermes 模型调度能力分析 ↞ 新增
- [ ] PoC 验证