NousResearch / hermes-agent

NousResearch/hermes-agent

open_in_new前往仓库

随你成长的智能代理

项目概览

项目概述

Hermes Agent 是由 Nous Research 开发的一个自我改进的 AI 代理,具有内置的学习循环。它能够从经验中创建技能,在使用过程中改进技能,主动持久化知识,搜索过去的对话,并跨会话构建用户模型。该项目支持多种模型提供商(如 Nous Portal、OpenRouter、OpenAI 等),并可在多种终端后端(本地、Docker、SSH、Modal 等)上运行。项目采用 MIT 许可证,主要使用 Python 编写。

核心功能

  • 真实终端界面:完整的 TUI,支持多行编辑、斜杠命令自动补全、对话历史、中断与重定向、流式工具输出。
  • 多平台消息网关:支持 Telegram、Discord、Slack、WhatsApp、Signal 和 CLI,统一网关进程,支持语音备忘录转录和跨平台对话连续性。
  • 闭环学习:代理策展记忆,周期性提示;复杂任务后自动创建技能;技能在使用中自我改进;FTS5 会话搜索与 LLM 摘要;Honcho 辩证用户建模;兼容 agentskills.io 开放标准。
  • 定时自动化:内置 cron 调度器,可投递到任何平台,支持自然语言定义每日报告、夜间备份、每周审计等。
  • 委派与并行:生成隔离的子代理进行并行工作流;编写 Python 脚本通过 RPC 调用工具,将多步骤管道折叠为零上下文成本轮次。
  • 随处运行:支持七种终端后端(本地、Docker、SSH、Singularity、Modal、Daytona、Vercel Sandbox),Daytona 和 Modal 提供无服务器持久化,空闲时休眠,按需唤醒。
  • 研究就绪:批量轨迹生成,轨迹压缩用于训练下一代工具调用模型。

适用与不适用场景

适用场景:

  • 需要长期运行、跨会话记忆和持续自我改进的 AI 代理。
  • 需要从多种消息平台(Telegram、Discord 等)统一访问代理。
  • 需要定时自动化任务(如每日报告、备份)。
  • 需要在云端或服务器上运行代理,而非仅限本地。
  • 需要并行处理多个任务或子代理。

不适用场景:

  • 仅需简单问答、无需长期记忆或技能学习的场景。
  • 对数据隐私要求极高,不希望任何遥测或共享指标的场景(尽管可配置关闭)。
  • 需要完全离线运行且不依赖任何外部 API 的场景。
  • 对 Windows 原生支持有特殊需求且无法使用 WSL2 的场景(虽然原生支持已提供,但可能存在边缘问题)。

技术架构与依赖

  • 语言:Python 3.11–3.13,Node.js 20+(可选,用于浏览器工具和 WhatsApp 桥接)。
  • 包管理:uv(快速 Python 包管理器)。
  • 核心依赖:OpenAI/httpx、requests、certifi、prompt_toolkit、SQLite(FTS5)、psutil 等。
  • 可选依赖:[all] 包含所有功能,[otlp] 用于 OpenTelemetry 监控,[nemo-relay] 用于 NeMo Relay 集成。
  • 架构:核心循环(用户消息 → AIAgent._run_agent_loop() → LLM 调用 → 工具执行 → 持久化),自注册工具,工具集分组,会话持久化(SQLite),提供商抽象(OpenAI 兼容 API)。
  • 插件系统:支持中间件(middleware)和观察者钩子(observer hooks),用于遥测、策略、请求改写等。

安装与快速开始

Linux、macOS、WSL2、Termux

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Windows(原生,PowerShell)

iex (irm https://hermes-agent.nousresearch.com/install.ps1)

安装后:

source ~/.bashrc    # 重新加载 shell
hermes              # 开始聊天!

快速配置

hermes model        # 选择 LLM 提供商和模型
hermes setup        # 运行完整设置向导

典型使用方法

hermes              # 交互式 CLI
hermes gateway      # 启动消息网关(Telegram、Discord 等)
hermes claw migrate # 从 OpenClaw 迁移
hermes update       # 更新到最新版本
hermes doctor       # 诊断问题

在对话中,可使用斜杠命令:/new 开始新对话,/model 切换模型,/skills 浏览技能,/compress 压缩上下文,/usage 查看用量等。

配置与部署要点

  • 配置文件:~/.hermes/config.yaml(设置模型、终端、工具集、压缩等),~/.hermes/.env(API 密钥)。
  • 多配置文件:支持多配置文件(profile),每个配置文件有独立的记忆、技能、模型等。
  • 消息路由:可通过 profile_routes 配置基于平台、服务器、频道、线程的路由。
  • 部署:可运行在本地、Docker、SSH、Modal、Daytona 等后端。支持多网关进程并发。
  • 监控:可通过 OpenTelemetry 导出网关健康指标(monitoring 配置)。
  • 安全:支持命令审批、危险命令检测、写入拒绝列表、代码执行沙箱、容器加固等。
  • 网络隔离:Docker 部署时可配置网络出口隔离,防止数据外泄。

限制、风险与许可证

  • 许可证:MIT。
  • 风险:代理具有终端访问权限,存在提示注入、shell 注入等安全风险,需谨慎配置审批和沙箱。
  • 限制:微压缩(micro-compaction)默认关闭,可能破坏提示缓存;共享指标(shared metrics)默认关闭,需明确启用。
  • 依赖风险:供应链攻击风险,依赖版本有严格的上限约束。
  • 平台限制:某些功能(如语音)在 Android/Termux 上可能不兼容。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、CONTRIBUTING.md、docs/ 目录下的多个文档(包括架构、会话生命周期、监控、中间件、观察者钩子、流式 TTS 等)。
  • 分析时间:2026-08-03(基于最新发布版本日期)。