AI Agent 对比系列(四):感知系统 — AI Agent 怎么看世界?

《AI Agent 对比系列》第四篇 · 整合对比版
本系列通过对比两个真实开源 AI Agent——OpenClawHermes Agent——带你深入理解 AI Agent 的感知系统:它怎么"看到"图片、"听懂"语音、"读取"环境。
上一篇工具系统篇——AI Agent 的「手脚」是怎么组织和运行的。
本篇:感知系统篇——AI Agent 的「眼睛」和「耳朵」。


先来做个实验

对你的 Hermes 说:

你现在知道关于我的什么信息?
查看你当前的记忆。

对 OpenClaw 试这三件事(如果配了对应的聊天平台):

实验 1:发一张图片 → "这张图里有什么?"
实验 2:发一段语音 → "明天的会议几点?"
实验 3(如果有手机节点)→ 把摄像头对着路由器背面,"IP 是多少?"

第一个实验让你看到 Agent 怎么"感知"你的身份——它读的是文件,不是真记住你。
第二三个实验让你看到感知系统的转化链——图片和语音被转成文本后,Agent 才能"理解"。


核心认知:AI Agent 没有真正的感官

这是整篇文章最重要的句子:AI Agent 没有眼睛、没有耳朵、没有触觉。它的一切"感知"都来自一个机制——把外部世界的信息转成文本,塞进上下文。

人类感知:

眼睛 → 视网膜 → 视觉皮层 → "我看到一只猫"
耳朵 → 耳蜗 → 听觉皮层 → "我听到门铃声"

AI Agent 感知:

你发图片 → vision 模型 → 返回文字描述 → 注入上下文 → Agent"看到"了猫
你发语音 → STT 转写 → 返回文字 → 注入上下文 → Agent"听到"了你说话
节点拍照 → 图片 → vision 模型 → 返回文字 → 注入上下文 → Agent"看到"了路由器

感知 = 原始输入的收集能力 × 把非文本转成文本的能力。

Openclaw和Hermes两套系统都遵循这个原理,但感知触角的多寡和广度差别很大。


感知架构对比

Hermes:三大通道

┌──────────────────────────────────────────────────┐
│                Agent 的"感官"分布                    │
│                                                    │
│  👁️ 视觉通道              🔊 听觉通道               │
│  vision_analyze           text_to_speech(仅输出) │
│  browser_vision                                    │
│  image_generate                                    │
│                                                    │
│  📝 文本与环境通道                                   │
│  用户消息(20+ 平台)                               │
│  Context Files(AGENTS.md/SOUL.md)                │
│  MEMORY.md / USER.md 快照                          │
│  Session Search(FTS5 历史)                       │
│  web_extract / read_file                           │
│                                                    │
│  所有感知 → 文本化 → 注入 10 层 Prompt → Agent 推理   │
└──────────────────────────────────────────────────┘

OpenClaw:五根触角

┌──────────────────────────────────────────────────────────────────┐
│                     Agent Runtime (模型)                            │
│  收到的所有信息都已经转成了文本,模型只管做事                         │
└───────────────────┬──────────────────────────────────────────────┘
                    │
    ┌───────────────┼───────────────┐
    ▼               ▼               ▼
┌──────────┐  ┌──────────┐  ┌──────────────────┐
│ 消息通道   │  │ 媒体理解   │  │ 节点感知系统       │
│ (20+ 通道) │  │ (Image/  │  │ (camera/screen/  │
│           │  │  Audio/  │  │  location)        │
│           │  │  Video)  │  │                   │
├──────────┤  ├──────────┤  ├──────────────────┤
│ Telegram  │  │ vision   │  │ iOS 摄像头        │
│ WhatsApp  │  │ model    │  │ Android 屏幕      │
│ Discord   │  │ STT      │  │ macOS 屏幕录制    │
│ iMessage  │  │ CLI      │  │ GPS 定位          │
│ Signal    │  │ fallback │  │ Canvas 画布       │
│ WeChat    │  │          │  │                   │
│ ……20+ 种  │  │          │  │                   │
└──────────┘  └──────────┘  └──────────────────┘
                    │
                    ▼
            ┌──────────────┐
            │ 浏览器/网络    │
            │ (browser/    │
            │  web_fetch/  │
            │  web_search) │
            └──────────────┘

核心差异:Hermes 的感知是"工具驱动的"——Agent 通过主动调工具来感知;OpenClaw 是"渠道驱动的"——消息和媒体流经 Gateway 时自动被预处理和转文本化,Agent 收到时已经是"消化过"的信息。


逐通道对比

通道一:消息输入

两套系统都支持 20+ 聊天平台,但处理路径不同。

Hermes OpenClaw
通道数量 20+(Gateway 平台适配器) 20+(Gateway WebSocket 接入)
统一格式 MessageEvent(base adapter 规范化) Message 对象(Gateway 统一)
带附件的消息 附件路径+文本,Agent 决定怎么处理 先过媒体理解系统预处理,再进 Agent
语音消息 不自动转文本(取决于平台) 自动 STT 转写,注入 Transcript
位置消息 不处理 节点 GPS + 少数通道支持

关键差异:OpenClaw 在 Agent 看到消息之前,Gateway 层已经对附件做了预处理——图片走了 vision、语音走了 STT。Agent 收到的消息里,[Image][Audio] 占位符已经被替换成了文本描述。Hermes 则是把附件路径直接给 Agent,由 Agent 在推理循环中决定要不要调工具去处理。

通道二:视觉感知

Hermes OpenClaw
核心工具 vision_analyze image 工具 + 媒体理解预处理
触发方式 Agent 在推理中决定调 vision_analyze 收到图片时自动预处理,Agent 不需要显式调用
回退链 无(一个模型,不行就报错) 有(首选模型 → 备用模型 → CLI 回退)
描述长度 模型原生输出 可配置 maxChars(默认 500 字)
尺寸控制 无(交给视觉模型处理) maxBytes: 10MB 检查
图片生成 image_generate(9 种模型) image_generate

视觉核心理念不同

  • Hermes:Agent 主动看——遇到图片 → Agent 决定调 vision_analyze → 看到描述
  • OpenClaw:系统自动看——收到图片 → 媒体理解系统自动预处理 → Agent 上下文里已经有描述

通道三:听觉感知

这里差距最大:

Hermes OpenClaw
语音输入(ASR) ❌ 不支持 ✅ STT(Groq/OpenAI/Deepgram/whisper-cli 等多层回退)
语音输出(TTS) ✅ text_to_speech(OpenAI / Tool Gateway) ✅ tts
处理方式 仅输出,无输入 语音消息自动转写,可替换 Body 或额外提供 Transcript

OpenClaw 的 STT 有完整回退链:

1. 当前模型 Provider 支持音频?→ 直接发
2. 已配 API Key 的 Provider(Groq → OpenAI → Deepgram → Google)
3. 本地 CLI(whisper-cli、sherpa-onnx、whisper Python)

Hermes 目前没有语音输入工具。

通道四:节点感知 — OpenClaw 独有

这是 OpenClaw 和 Hermes 差距最大的地方。OpenClaw 有节点系统,能把手机、平板、电脑变成 Agent 的传感器:

感知能力 说明 平台
Camera 拍照发送给 Agent iOS, Android, macOS
Screen 录屏或截屏 iOS, Android, macOS
Location GPS 定位 iOS, Android
Canvas 在设备上展示 HTML 内容 iOS, Android, macOS
Notifications 设备通知推送 iOS, macOS
System 设备状态查询 全部
你(在手机上):"帮我看一下这个路由器背面,IP 是多少?"
    ↓
Agent 通过节点调用 camera.takePhoto
    ↓
手机摄像头打开 → 拍照 → 图片传回 Gateway
    ↓
图片进入媒体理解系统 → 模型识别图中的 IP
    ↓
Agent 回答:"IP 是 192.168.1.1"

Hermes 目前没有类似的设备节点系统。

通道五:环境与项目感知

Hermes OpenClaw
项目上下文 Context Files(.hermes.md/AGENTS.md/CLAUDE.md/.cursorrules,优先级+渐进发现) 类似机制
身份定义 SOUL.md(独立于项目上下文) Personality / 角色定义
持久记忆 MEMORY.md + USER.md(session 快照) 持久存储 + 会话上下文
历史检索 FTS5 Session Search 类似的历史搜索
文件感知 read_file / write_file / search_files read / edit / apply_patch
网页感知 web_search / web_extract web_search / web_fetch / browser

感知管道对比

两个 Agent 最终都遵循同一个管道模式,但预处理层的位置不同:

Hermes:裸管道

外部信息 → Prompt Builder 组装 → Agent Loop → Agent 按需调工具 → 结果回填上下文

OpenClaw:预处理管道

外部信息 → Gateway 预处理(媒体理解/STT)→ 转为文本 → Prompt → Agent Loop → 结果回填

这就是为什么 OpenClaw 强调"五根触角,一个网关"——接入层的感知处理已经帮 Agent 消化了一层,Agent 收到时已经是"半加工"的信息。Hermes 更接近"推原始数据给 Agent,让它自己决定怎么处理"。


能做 / 不能做

能力 Hermes OpenClaw
接收文字消息 ✅ 20+ 平台 ✅ 20+ 平台
看图理解 ✅ vision_analyze ✅ image + 自动预处理
语音输入 → 文字 ❌ 无 ASR ✅ STT 多回退链
文字 → 语音输出 ✅ text_to_speech ✅ tts
手机摄像头感知 ✅ 节点系统
屏幕/录屏感知 ✅ 节点系统
GPS 位置感知 ✅ 节点系统
浏览器自动化看网页 ✅ browser ✅ browser
读项目上下文文件 ✅ Context Files ✅ 类似机制
跨会话搜索历史 ✅ Session Search (FTS5)
主动感知 工具驱动 网关预处理 + 工具驱动

人类类比

概念 Hermes OpenClaw
总比喻 蒙眼戴耳机的助手 带智能手机的助手
看图片 旁边坐着一个画师,“帮我看看这张图” 自带 app 自动识别,“图已读给你了”
听语音 没有耳朵 耳朵旁边有个实时翻译机
看环境 你告诉它周围有什么 它有手机摄像头,自己拍自己看
存储器 随身笔记本 + 档案馆管理员 笔记本 + 云端记忆库

选择指南

场景 更推荐
需要 Agent 听懂语音消息 OpenClaw(有 STT)
需要 Agent 用手机摄像头看环境 OpenClaw(节点系统独有)
只需要文字+偶尔看图 两者都可以
需要精细控制感知流程(什么时候看、看什么) Hermes(工具驱动,Agent 自己做决定)
想开箱就有图片/语音预处理 OpenClaw(Gateway 层自动处理)
项目上下文感知(AGENTS.md 等) 两者都可以
需要语音输出(TTS) 两者都可以

下期预告

文章 内容
Agent Loop 篇 Agent 的"大脑"——推理循环、工具选择、上下文管理、中断与恢复

信息源声明

  • Hermes 信息来源Tools & ToolsetsPrompt AssemblyContext FilesGateway InternalsTool Gateway、本地 config.yaml 及 MEMORY.md
  • OpenClaw 信息来源:docs.openclaw.ai/channels、docs.openclaw.ai/nodes、docs.openclaw.ai/nodes/media-understanding、docs.openclaw.ai/concepts/architecture、docs.openclaw.ai/tools/browser
  • Hermes 当前实例:0.18.2,CLI 工具集 17/25 启用

更多推荐