当前位置: 首页 > news >正文

Hermes Agent 学习笔记

Hermes Agent 学习笔记

学习日期: 2026-04-16
项目版本: v0.9.0
项目位置: C:\github\hermes-agent


1. 项目概述

1.1 一句话简介

Hermes Agent 是 Nous Research 开发的自学习 AI Agent 框架,具备闭环学习循环(技能自动创建→使用中自我改进→知识持久化→跨会话搜索→用户画像建模),支持 20+ 消息平台、200+ LLM 模型、40+ 内置工具、MCP 扩展、子代理委派、cron 调度,以及 RL 训练环境。

1.2 核心价值

维度价值
自学习闭环Agent 在复杂任务后自动创建技能,使用中自我改进,周期性提醒自己持久化知识,搜索历史会话(FTS5),通过 Honcho 方言式对话构建用户模型
多平台覆盖Telegram、Discord、Slack、WhatsApp、Signal、飞书、钉钉、企微、QQ、Matrix、Mattermost、iMessage(BlueBubbles)、Email、SMS、Webhook、Home Assistant —— 统一网关进程
模型无关Nous Portal、OpenRouter(200+模型)、OpenAI、Anthropic、Mistral、HuggingFace、z.ai/GLM、Kimi/Moonshot、MiniMax、小米 MiMo、本地端点 —— 一行命令切换
多执行环境本地、Docker、SSH、Daytona、Singularity、Modal —— 从 $5 VPS 到 GPU 集群,支持 serverless 闲置计费
研究就绪批量轨迹生成、Atropos RL 环境、轨迹压缩,用于训练下一代工具调用模型
多实例隔离Profile 机制,每个实例拥有独立的 config/sessions/memory/skills/gateway
OpenClaw 迁移内置hermes claw migrate命令,自动导入 SOUL.md、记忆、技能、API 密钥

1.3 ⭐ 学习难度评估

维度评级说明
代码规模★★★★☆1685 个文件,核心 run_agent.py 超 10000 行,cli.py 超 10000 行,gateway/run.py 超 9000 行
架构复杂度★★★★★工具注册表+工具集+编排层三层解耦,20+ 平台适配器,6 种终端后端,Profile 隔离,同步/异步混合调用
领域知识★★★★☆需要理解 LLM API (OpenAI 兼容)、工具调用协议、MCP 标准、FTS5 全文搜索、RL 训练流程
上手门槛★★★☆☆一键安装脚本,交互式 setup 向导,文档完善,但源码阅读需要耐心
依赖管理★★★☆☆pyproject.toml 管理清晰,20+ optional extras 分组合理,但[all]依赖链较长

1.4 项目活跃度评估

指标
版本v0.9.0
许可证MIT
语言Python 3.11+
最后提交2026-04-14(16f9d020)
测试规模556 个测试文件,约 3000 个测试用例
代码文件1685 个
内置技能26 个目录(涵盖软件开发、研究、DevOps、智能家居等)
平台适配器24 个 Python 文件(20+ 消息平台)
工具模块17 个*_tool.py文件
Stars项目活跃,PR 频繁(最近 PR #9475, #9543, #9538, #9483)

2. 系统架构

2.1 整体架构图

┌──────────────────────────────────────────────────────────────────┐ │ 用户入口 │ │ ┌──────────┐ ┌──────────────┐ ┌──────────┐ ┌──────────┐ │ │ │ CLI │ │ Gateway │ │ ACP │ │ Webhook │ │ │ │ (cli.py) │ │(gateway/run)│ │(acp_*) │ │ Server │ │ │ └─────┬─────┘ └──────┬───────┘ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ │ └───────────────┴───────┬───────┴──────────────┘ │ │ │ │ │ ┌─────────────────────────────▼─────────────────────────────┐ │ │ │ AIAgent (run_agent.py) │ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ │ │ │ │PromptBuilder│ │ContextCompr. │ │ Model Metadata │ │ │ │ │ │(prompt_ │ │(context_ │ │ (model_ │ │ │ │ │ │ builder.py) │ │ compressor) │ │ metadata.py) │ │ │ │ │ └─────────────┘ └──────────────┘ └─────────────────┘ │ │ │ └─────────────────────────┬───────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────▼───────────────────────────────────┐ │ │ │ model_tools.py (编排层) │ │ │ │ get_tool_definitions() / handle_function_call() │ │ │ └─────────────────────────┬───────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────▼───────────────────────────────────┐ │ │ │ toolsets.py (工具集定义) │ │ │ │ 40+ 工具 → 20+ 工具集 → 平台工具集(hermes-telegram等) │ │ │ └─────────────────────────┬───────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────▼───────────────────────────────────┐ │ │ │ tools/registry.py (中央注册表) │ │ │ │ ToolRegistry 单例 → ToolEntry(name,schema,handler,check) │ │ │ └─────────────────────────┬───────────────────────────────────┘ │ │ │ │ │ ┌──────┬──────┬──────┬───┴───┬──────┬──────┬──────┬──────┐ │ │ │ Web │Term │ File │Vision │Browser│Skills│Memory │ MCP │ ... │ │ │Tools │Tool │Tools │Tools │Tool │Tool │Tool │Tool │ │ │ └──────┴──────┴──────┴───────┴──────┴──────┴──────┴──────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ 持久化层 │ │ │ │ hermes_state.py (SQLite + FTS5) │ Memory Files │ Skills │ │ │ └─────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────┘

2.2 关键架构决策

决策选择理由
工具系统三层架构:registry → toolsets → model_tools解耦注册、分组、编排;工具文件自注册,新增工具仅需 3 个文件变更
对话循环同步阻塞式 while 循环简单可靠,子代理用 ThreadPoolExecutor 并行
会话存储SQLite + WAL + FTS5支持网关多平台并发读写,全文搜索历史对话
上下文压缩辅助模型摘要中间轮次保护头部(系统提示+首轮)和尾部(最近 ~20K tokens),仅压缩中间
Profile 隔离HERMES_HOME 环境变量重定向119+ 处引用自动作用域切换,零侵入
提示缓存禁止运行时修改系统提示避免破坏 Anthropic prompt caching,仅在压缩时重写
工具 SchemaOpenAI function calling 格式统一模型接口,所有处理器必须返回 JSON 字符串
异步桥接持久化事件循环 + worker 线程本地循环避免 asyncio.run() 的 create-destroy 生命周期导致的 “Event loop is closed” 错误

2.3 核心文件结构树

hermes-agent/ ├── run_agent.py # AIAgent 核心对话引擎 (~10K 行) ├── model_tools.py # 工具编排层 (~600 行) ├── toolsets.py # 工具集定义 (~350 行) ├── cli.py # CLI 交互式 TUI (~10K 行) ├── hermes_state.py # SQLite 会话存储 + FTS5 (~1.2K 行) ├── hermes_constants.py # 全局常量/路径工具 ├── agent/ # Agent 内部模块 │ ├── prompt_builder.py # 系统提示组装 (~1K 行) │ ├── context_compressor.py # 上下文自动压缩 (~800 行) │ ├──
http://www.jsqmd.com/news/664787/

相关文章:

  • 碧蓝航线全自动脚本终极指南:7x24小时解放双手的免费方案
  • Flutter打包APK时,那个神秘的‘gen_snapshot‘文件去哪了?手把手教你找回并修复
  • 以《毛选》思想破解项目管理困局,实现高效落地
  • Spring AI智能体实战应用详解
  • AO3镜像站完全指南:如何轻松访问全球最大同人创作平台
  • 腾讯会议开会别再抢屏幕了!用OBS虚拟摄像头实现多人同时共享(保姆级图文教程)
  • Win10系统下,如何绕过官方安装器直接‘绿色部署’Wireshark?一个网络工程师的偷懒技巧
  • 炉石传说高级插件开发实战指南:构建强大游戏增强工具
  • 炉石传说HsMod插件终极指南:如何安装55项功能增强插件
  • 2025京东抢购终极指南:3分钟部署全自动抢购神器
  • 碧蓝航线终极自动化指南:用AzurLaneAutoScript实现24/7智能挂机
  • 《SAP FICO系统配置从入门到精通共40篇》026、财务关账流程配置:自动清账与外币评估实战笔记
  • 辅助压缩调用返回空响应导致 Hermes 网关崩溃 / Auxiliary compression empty response crashes Hermes gateway
  • PyTorch 2.9镜像实战案例:图像分类任务快速跑通全流程
  • 3分钟搞定Windows PDF处理:Poppler预编译二进制包终极指南
  • 第 27 课:任务页分页大小记忆与用户偏好
  • BepInEx终极指南:3步快速掌握Unity游戏模组开发框架
  • XUnity.AutoTranslator 终极指南:如何为Unity游戏实现自动翻译
  • 快速上手:使用ComfyUI可视化工作流调用BERT文本分割模型
  • YOLO12可解释性:Grad-CAM热力图+Attention Map双视角可视化
  • 第 28 课:任务页排序偏好与默认工作视图
  • 如何快速部署HsMod:炉石传说55项功能增强完整指南
  • VMware虚拟机安装教程(附安装win11系统教学)
  • 智能代码生成兼容性验证实战手册(2024企业级落地白皮书)
  • AI抠图新选择:cv_unet图像抠图WebUI对比传统工具,实测效果大揭秘
  • 哪家减肥塑形品牌专业?2026年4月推荐评测口碑对比TOP5产品知名社交聚餐后饮食调整 - 品牌推荐
  • JavaScript中对象属性名字符串化与Symbol键名处理
  • 2025-2026年中国商标律所推荐:五家口碑服务评测对比领先初创企业品牌保护咨询 - 品牌推荐
  • PostgreSQL 16 单虚拟机主从搭建测试(学习记录)
  • Makefile隐含规则:让你少写一半代码的‘偷懒’技巧,从自动推导.o文件说起