什么是 Hermes?
Hermes 是一个强大的 AI Agent 开发框架,专为构建企业级 AI 助手而设计。它提供了:
- 🤖 多 Agent 协作能力
- 🔧 丰富的工具集成
- 💾 持久化记忆系统
- 🎯 技能系统(Skills)
- 📊 任务管理和调度
- 🔌 多平台适配(CLI、Web、IM)
核心架构
1. Agent 架构
1 2 3 4 5 6 7
| Hermes Agent ├── Core Engine ├── Tool System ├── Memory System ├── Skill System ├── Session Manager └── Platform Adapter
|
2. 工具系统
Hermes 提供丰富的内置工具:
| 工具集 |
功能 |
| browser |
浏览器操作(导航、截图、交互) |
| terminal |
命令行执行、脚本运行 |
| file |
文件读写、搜索、编辑 |
| web |
网络请求、API 调用 |
| search |
搜索引擎、信息检索 |
| vision |
图像识别、视觉理解 |
| cronjob |
定时任务、调度管理 |
快速开始
安装配置
1 2 3 4 5 6 7 8 9
| git clone https://github.com/nousresearch/hermes.git cd hermes
npm install
cp config.example.yaml config.yaml
|
配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| model: provider: openrouter model: anthropic/claude-sonnet-4
providers: openrouter: api_key: ${OPENROUTER_API_KEY} base_url: https://openrouter.ai/api/v1
agents: defaults: tools: - browser - terminal - file - web max_tokens: 4096 temperature: 0.7
|
启动 Agent
1 2 3 4 5 6 7 8
| hermes
hermes --config config.yaml
hermes web --port 3000
|
实战案例
案例 1:构建开发助手
创建一个能帮助开发的 Agent:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
--- name: dev-assistant description: AI 开发助手,帮助代码开发和调试 triggers: - 开发 - 写代码 - debug ---
1. 代码生成和优化 2. 代码审查 3. Bug 调试 4. 测试生成 5. 文档编写
1. 理解需求 2. 设计方案 3. 生成代码 4. 运行测试 5. 优化改进
1. 分析错误信息 2. 定位问题代码 3. 提出修复方案 4. 实施修复 5. 验证修复
|
使用:
1 2 3 4 5 6 7 8 9
| hermes> 帮我创建一个用户登录 API
|
案例 2:多 Agent 协作
使用 delegate_task 创建多 Agent 协作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| from hermes import Agent, Task
architect = Agent( role="架构师", goal="审查架构设计", tools=["file", "search"] )
reviewer = Agent( role="代码审查员", goal="检查代码质量", tools=["file", "search"] )
tester = Agent( role="测试工程师", goal="验证测试覆盖", tools=["terminal", "file"] )
tasks = [ Task( description="审查项目架构", agent=architect ), Task( description="检查代码质量", agent=reviewer ), Task( description="验证测试覆盖", agent=tester ) ]
result = delegate_task(tasks=tasks)
|
案例 3:创建自动化工作流
使用 Cronjob 创建定时任务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| cronjob( action='create', name='daily-report', schedule='0 9 * * *', prompt=""" 生成今日工作日报: 1. 统计 Git 提交记录 2. 分析任务完成情况 3. 生成进度报告 4. 发送到团队群 """, skills=['git-analyzer', 'report-generator'], deliver='telegram:team_group' )
|
技能系统(Skills)
创建自定义技能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| # skills/code-review/SKILL.md
--- name: code-review description: 代码审查技能 triggers: - 审查代码 - code review ---
# 代码审查流程
## 触发条件 用户请求审查代码
## 执行步骤
### 1. 收集代码 使用 `search_files` 搜索需要审查的文件
### 2. 静态分析 - 检查代码规范 - 检查潜在 Bug - 检查安全问题
### 3. 生成报告 输出格式化的审查报告
## 输出模板
```markdown # 代码审查报告
## 概览 - 文件数:X - 问题数:Y - 严重程度:高/中/低
## 问题列表
### 文件:src/api/users.js - ⚠️ Line 45: 潜在的 SQL 注入风险 - 💡 Line 78: 建议使用异步方法 - ✅ Line 92: 良好的错误处理
## 改进建议 ...
|
1 2 3 4 5 6 7 8 9 10
| ### 使用技能
```bash # 方式一:直接调用 hermes> 使用 code-review 技能审查 src/api 目录
# 方式二:自动触发 hermes> 审查一下最近的代码改动 # Agent 会自动识别并加载 code-review 技能
|
记忆系统
用户记忆(User Memory)
存储用户偏好和习惯:
1 2 3 4 5
| memory( action='add', target='user', content='用户偏好简洁的回复风格' )
|
会话记忆(Session Memory)
自动保存会话历史:
1 2 3 4 5
| session_search( query="讨论过的架构方案", limit=3 )
|
持久化技能(Skill Memory)
保存可复用的程序:
1 2 3 4 5 6
| skill_manage( action='create', name='api-generator', content='快速生成 REST API 的模板' )
|
平台适配
Telegram Bot
1 2 3 4 5 6 7
| platforms: telegram: enabled: true bot_token: ${TELEGRAM_BOT_TOKEN} allowed_users: - 123456789
|
Discord Bot
1 2 3 4 5 6 7
| platforms: discord: enabled: true bot_token: ${DISCORD_BOT_TOKEN} channels: - "engineering" - "general"
|
Web Interface
1 2 3 4 5
| hermes web --port 3000
open http://localhost:3000
|
高级功能
1. 子任务委托
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| delegate_task( tasks=[ { "goal": "分析用户需求", "toolsets": ["web", "search"] }, { "goal": "设计技术方案", "toolsets": ["file", "search"] }, { "goal": "实现代码", "toolsets": ["terminal", "file"] } ], role="orchestrator" )
|
2. 流式执行
1 2 3 4 5 6
| result = agent.run( prompt="重构整个项目", stream=True, on_progress=lambda x: print(x) )
|
3. 上下文压缩
1 2 3 4 5 6
| agents: defaults: compaction: enabled: true reserveTokensFloor: 20000 strategy: summarize
|
最佳实践
1. 技能设计原则
- 单一职责:每个技能专注一件事
- 可复用:设计通用的技能模板
- 可测试:包含验证步骤
- 文档化:清晰的使用说明
2. 工具使用规范
1 2 3 4 5 6 7 8 9 10 11 12 13
|
Agent( tools=["file", "search"], ... )
Agent( tools="all", ... )
|
3. 错误处理
1 2 3 4 5 6 7 8 9
| try: result = agent.run(prompt) except TokenLimitExceeded: agent.compact() result = agent.run(prompt) except ToolExecutionError as e: logger.error(f"Tool error: {e}")
|
性能优化
1. Token 优化
- 使用
reserveTokensFloor 保留缓冲
- 定期压缩上下文
- 使用
.hermesignore 排除大文件
2. 并发控制
1 2 3
| delegation: max_concurrent_children: 3 max_spawn_depth: 1
|
3. 缓存策略
1 2 3 4
| cache: enabled: true ttl: 3600 maxSize: 100MB
|
与 CrewAI 对比
| 特性 |
Hermes |
CrewAI |
| 企业级 |
✅ 完整框架 |
⚠️ 需要自己扩展 |
| 记忆系统 |
✅ 内置 |
⚠️ 需要配置 |
| 技能系统 |
✅ 强大 |
❌ 无 |
| 多平台 |
✅ 支持 |
❌ 无 |
| 工具数量 |
50+ |
20+ |
| 学习曲线 |
中等 |
简单 |
总结
Hermes 是构建企业级 AI Agent 的最佳选择:
- ✅ 开箱即用的完整方案
- ✅ 强大的工具和技能系统
- ✅ 灵活的多 Agent 协作
- ✅ 持久化记忆和会话管理
- ✅ 多平台适配
推荐资源
下一步:尝试用 Hermes 构建你的第一个 AI Agent!