## 项目概述

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

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

### Windows（原生，PowerShell）

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

安装后：

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

### 快速配置

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

## 典型使用方法

```bash
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 上可能不兼容。

## 官方链接

- 项目主页：https://hermes-agent.nousresearch.com/
- 文档：https://hermes-agent.nousresearch.com/docs/
- GitHub 仓库：https://github.com/NousResearch/hermes-agent
- Discord：https://discord.gg/NousResearch
- 技能中心：https://agentskills.io
- 最新版本：v2026.8.3（2026-08-03）

## 信息来源和分析时间

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