Hermes Agent
架构深度拆解
快速导航
首页
核心架构
整体架构
L0
Agent Loop
L1
工具系统
L2
Self-Improve
L3
三层记忆
L4
Subagent
L5
安全机制
对比
与 OpenClaw 对比
Layer 1
工具系统 - 从硬编码到注册表
理解工具注册、加载、调用的完整生命周期
对比
硬编码 vs Hermes 注册表方式
硬编码方式
步骤 1: 手动维护工具列表
tools = [tool1, tool2, tool3, ...]
新增工具需要修改此处代码
问题: 容易遗漏,重复劳动
步骤 2: 手动建立名称映射
from tools import tool1, tool2
tool_map = {"tool1": tool1, ...}
问题: 命名不一致导致调用失败
结果
难以条件过滤 难以动态启用
配置分散 无法按需加载
Hermes: 注册表模式
中心注册表
ToolRegistry
_tools = {}
工具注册
@register_tool
自动注册到字典
条件过滤
check_fn() 判断可用性
如: API Key 是否配置
Hermes 优势
声明式: @工具自动注册
条件化: API Key 未配置则自动隐藏
工具集: 支持按组过滤
内置 72 + MCP 100+ = 172 工具
72 + 100 = 172 可用工具
统计
72 内置工具 + MCP 扩展
搜索类
web_search 等
5 个工具
终端类
terminal 等
8 个工具
文件类
read_file 等
12 个工具
浏览器类
browser_*
10 个工具
视觉类
vision_*
4 个工具
TTS/音频
6 个工具
代码执行
3 个工具
记忆工具
3 个工具
技能工具
5 个工具
MCP 扩展
100+ 个工具
总计: 72 内置 + 100+ MCP = 172+ 可用工具
声明式注册
@register_tool 注解
自动发现零配置
新增工具无感知
条件过滤
check_fn 环境检查
API Key 自动隐藏
依赖不满足则过滤
MCP 扩展
集成 MCP 协议
100+ 外部工具
统一调用接口