Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hermes Agent 教程(1):本地启动与项目结构

项目地址:https://github.com/NousResearch/hermes-agent

启动项目

Step 1:拉取项目到本地

git clone https://github.com/NousResearch/hermes-agent.git

Step 2:进入项目目录

cd hermes-agent

若你放在固定路径,也可使用绝对路径,例如:

cd /Users/YolieDeng/Code/hermes-agent

Step 3:创建并进入虚拟环境

uv venv
source .venv/bin/activate

Step 4:安装项目依赖

uv sync

Step 5:配置 .env

cp .env.example .env

编辑 .env,填入你的 API 密钥。例如使用 MiniMax:

# MINIMAX_API_KEY=your-key-here

Step 6:模型选择与启动

hermes doctor
# 选择适合的模型
hermes model
hermes

成功启动后,终端会出现交互界面,即可开始对话。

项目结构讲解

hermes-agent/
     │
     ├── 📁 核心框架模块
     │   ├── agent/                              # Agent 核心逻辑和执行引擎
     │   ├── gateway/                            # API 网关、请求路由、钩子系统
     │   │   ├── builtin_hooks/                  # 内置钩子集合
     │   │   └── platforms/                      # 多平台适配
     │   ├── hermes_cli/                         # CLI 命令行接口
     │   └── tools/                              # 工具系统和工具调用解析器
     │       ├── browser_providers/              # 浏览器供应商
     │       ├── environments/                   # 工具环境配置
     │       └── neutts_samples/                 # 神经 TTS 示例
     │
     ├── 📁 配置与适配
     │   ├── acp_adapter/                        # ACP 协议适配器
     │   ├── acp_registry/                       # 服务注册表
     │   ├── plugins/                            # 插件系统
     │   │   └── memory/                         # 内存/记忆插件
     │   │       ├── byterover/                  # Byterover 内存实现
     │   │       ├── hindsight/                  # Hindsight 内存实现
     │   │       ├── holographic/                # Holographic 内存实现
     │   │       ├── honcho/                     # Honcho 内存实现
     │   │       ├── mem0/                       # Mem0 内存实现
     │   │       ├── openviking/                 # OpenViking 内存实现
     │   │       ├── retaindb/                   # RetainDB 内存实现
     │   │       └── supermemory/                # SuperMemory 内存实现
     │   └── environments/                       # 环境配置和管理
     │       ├── benchmarks/                     # 基准测试环境
     │       │   ├── tblite/                     # TBLite 基准
     │       │   ├── terminalbench_2/            # 终端基准 2
     │       │   └── yc_bench/                   # YC 基准
     │       ├── hermes_swe_env/                 # Hermes SWE 环境
     │       ├── terminal_test_env/              # 终端测试环境
     │       └── tool_call_parsers/              # 工具调用解析器
     │
     ├── 📁 功能扩展 - Skills(完整技能列表)
     │   └── skills/                             # 完整技能模块集合
     │       │
     │       ├── 📂 苹果生态技能
     │       │   └── apple/
     │       │       ├── apple-notes/            # Apple Notes 集成
     │       │       ├── apple-reminders/        # Apple Reminders 集成
     │       │       ├── findmy/                 # Find My 定位服务
     │       │       └── imessage/               # iMessage 消息
     │       │
     │       ├── 📂 AI Agent 技能
     │       │   └── autonomous-ai-agents/
     │       │       ├── claude-code/            # Claude Code 集成
     │       │       ├── codex/                  # Codex AI 集成
     │       │       ├── hermes-agent/           # Hermes Agent 自身
     │       │       └── opencode/               # OpenCode 集成
     │       │
     │       ├── 📂 创意工具
     │       │   └── creative/
     │       │       ├── ascii-art/              # ASCII 艺术生成
     │       │       ├── ascii-video/            # ASCII 视频生成
     │       │       ├── excalidraw/             # Excalidraw 绘图
     │       │       ├── manim-video/            # Manim 视频制作
     │       │       ├── p5js/                   # P5.js 创意编程
     │       │       └── songwriting-and-ai-music/  # 作曲和 AI 音乐
     │       │
     │       ├── 📂 数据科学
     │       │   └── data-science/
     │       │       └── jupyter-live-kernel/    # Jupyter 实时内核
     │       │
     │       ├── 📂 运维和开发工具
     │       │   ├── devops/
     │       │   │   └── webhook-subscriptions/  # Webhook 订阅
     │       │   ├── diagramming/                # 图表工具
     │       │   └── domain/                     # 域名工具
     │       │
     │       ├── 📂 Email 工具
     │       │   └── email/
     │       │       └── himalaya/               # Himalaya 邮件客户端
     │       │
     │       ├── 📂 Feed 和 RSS
     │       │   └── feeds/                      # Feed 聚合工具
     │       │
     │       ├── 📂 游戏工具
     │       │   └── gaming/
     │       │       ├── minecraft-modpack-server/  # Minecraft 模组服务器
     │       │       └── pokemon-player/         # 宝可梦玩家工具
     │       │
     │       ├── 📂 GIF 工具
     │       │   └── gifs/                       # GIF 生成和处理
     │       │
     │       ├── 📂 GitHub 集成
     │       │   └── github/
     │       │       ├── codebase-inspection/    # 代码库检查
     │       │       ├── github-auth/            # GitHub 认证
     │       │       ├── github-code-review/     # 代码审查
     │       │       ├── github-issues/          # Issue 管理
     │       │       ├── github-pr-workflow/     # PR 工作流
     │       │       └── github-repo-management/ # 仓库管理
     │       │
     │       ├── 📂 索引和缓存
     │       │   └── index-cache/                # 索引缓存
     │       │
     │       ├── 📂 推理工具
     │       │   └── inference-sh/               # 推理 Shell 脚本
     │       │
     │       ├── 📂 休闲娱乐
     │       │   └── leisure/
     │       │       └── find-nearby/            # 附近地点查找
     │       │
     │       ├── 📂 MCP(模型上下文协议)
     │       │   └── mcp/
     │       │       ├── mcporter/               # MCP 转换器
     │       │       └── native-mcp/             # 原生 MCP 支持
     │       │
     │       ├── 📂 媒体工具
     │       │   └── media/
     │       │       ├── gif-search/             # GIF 搜索
     │       │       ├── heartmula/              # 音乐播放器
     │       │       ├── songsee/                # 歌曲识别
     │       │       └── youtube-content/        # YouTube 内容工具
     │       │
     │       ├── 📂 MLOps 工具
     │       │   └── mlops/
     │       │       ├── cloud/                  # 云平台工具
     │       │       ├── evaluation/             # 模型评估
     │       │       ├── huggingface-hub/        # HuggingFace 集成
     │       │       ├── inference/              # 模型推理
     │       │       ├── models/                 # 模型管理
     │       │       ├── research/               # 研究工具
     │       │       ├── training/               # 模型训练
     │       │       └── vector-databases/       # 向量数据库
     │       │
     │       ├── 📂 笔记应用
     │       │   └── note-taking/
     │       │       └── obsidian/               # Obsidian 笔记集成
     │       │
     │       ├── 📂 生产力工具
     │       │   └── productivity/
     │       │       ├── google-workspace/       # Google Workspace 集成
     │       │       ├── linear/                 # Linear 项目管理
     │       │       ├── nano-pdf/               # PDF 工具
     │       │       ├── notion/                 # Notion 集成
     │       │       ├── ocr-and-documents/      # OCR 和文档处理
     │       │       └── powerpoint/             # PowerPoint 制作
     │       │
     │       ├── 📂 红队工具
     │       │   └── red-teaming/
     │       │       └── godmode/                # GodMode 工具
     │       │
     │       ├── 📂 研究工具
     │       │   └── research/
     │       │       ├── arxiv/                  # ArXiv 论文
     │       │       ├── blogwatcher/            # 博客监控
     │       │       ├── llm-wiki/               # LLM Wiki
     │       │       ├── polymarket/             # Polymarket 数据
     │       │       └── research-paper-writing/ # 论文写作
     │       │
     │       ├── 📂 智能家居
     │       │   └── smart-home/
     │       │       └── openhue/                # OpenHue 智能灯控
     │       │
     │       ├── 📂 社交媒体
     │       │   └── social-media/
     │       │       └── xitter/                 # X/Twitter 集成
     │       │
     │       └── 📂 软件开发
     │           └── software-development/
     │               ├── plan/                   # 计划工具
     │               ├── requesting-code-review/ # 代码审查请求
     │               ├── subagent-driven-development/  # 子 Agent 驱动开发
     │               ├── systematic-debugging/   # 系统化调试
     │               ├── test-driven-development/  # TDD 工具
     │               └── writing-plans/          # 计划编写
     │
     ├── 📁 可选技能扩展
     │   └── optional-skills/                    # 可选安装的高级技能包
     │       │
     │       ├── 📂 自主 AI Agent
     │       │   └── autonomous-ai-agents/
     │       │       ├── blackbox/               # BlackBox AI
     │       │       └── honcho/                 # Honcho 框架
     │       │
     │       ├── 📂 区块链技能
     │       │   └── blockchain/
     │       │       ├── base/                   # Base 区块链
     │       │       └── solana/                 # Solana 链
     │       │
     │       ├── 📂 通信工具
     │       │   └── communication/
     │       │       └── one-three-one-rule/     # 一对一通信规则
     │       │
     │       ├── 📂 创意能力
     │       │   └── creative/
     │       │       ├── blender-mcp/            # Blender 3D 建模
     │       │       └── meme-generation/        # 梗图生成
     │       │
     │       ├── 📂 DevOps 高级工具
     │       │   └── devops/
     │       │       ├── cli/                    # DevOps CLI
     │       │       └── docker-management/      # Docker 管理
     │       │
     │       ├── 📂 邮件服务
     │       │   └── email/
     │       │       └── agentmail/              # Agent 邮件服务
     │       │
     │       ├── 📂 健康工具
     │       │   └── health/
     │       │       └── neuroskill-bci/         # 脑机接口工具
     │       │
     │       ├── 📂 MCP 工具
     │       │   └── mcp/
     │       │       └── fastmcp/                # FastMCP 框架
     │       │
     │       ├── 📂 数据迁移
     │       │   └── migration/
     │       │       └── openclaw-migration/     # OpenClaw 迁移工具
     │       │
     │       ├── 📂 MLOps 高级功能(17 个子模块)
     │       │   └── mlops/
     │       │       ├── accelerate/             # Hugging Face Accelerate
     │       │       ├── chroma/                 # Chroma 向量库
     │       │       ├── faiss/                  # Facebook FAISS
     │       │       ├── flash-attention/        # Flash Attention 优化
     │       │       ├── hermes-atropos-environments/  # Atropos 环境
     │       │       ├── huggingface-tokenizers/ # HF Tokenizers
     │       │       ├── instructor/             # Instructor 框架
     │       │       ├── lambda-labs/            # Lambda Labs GPU
     │       │       ├── llava/                  # LLaVA 多模态
     │       │       ├── nemo-curator/           # NeMo Curator
     │       │       ├── pinecone/               # Pinecone 向量 DB
     │       │       ├── pytorch-lightning/      # PyTorch Lightning
     │       │       ├── qdrant/                 # Qdrant 向量 DB
     │       │       ├── saelens/                # SAELENS 框架
     │       │       ├── simpo/                  # SimPO 训练
     │       │       ├── slime/                  # SLIME 框架
     │       │       ├── tensorrt-llm/           # TensorRT LLM
     │       │       └── torchtitan/             # TorchTitan 分布式
     │       │
     │       ├── 📂 生产力扩展
     │       │   └── productivity/
     │       │       ├── canvas/                 # Canvas 协作工具
     │       │       ├── memento-flashcards/     # 闪卡工具
     │       │       ├── siyuan/                 # 思源笔记
     │       │       └── telephony/              # 电话集成
     │       │
     │       ├── 📂 研究高级工具(7 个子模块)
     │       │   └── research/
     │       │       ├── bioinformatics/         # 生物信息学
     │       │       ├── domain-intel/           # 领域智能
     │       │       ├── duckduckgo-search/      # DuckDuckGo 搜索
     │       │       ├── gitnexus-explorer/      # Git 仓库浏览
     │       │       ├── parallel-cli/           # 并行 CLI
     │       │       ├── qmd/                    # Quarto Markdown
     │       │       └── scrapling/              # 网页爬虫
     │       │
     │       └── 📂 安全工具
     │           └── security/
     │               ├── 1password/              # 1Password 集成
     │               ├── oss-forensics/          # OSS 取证工具
     │               └── sherlock/               # Sherlock 用户搜索
     │
     ├── 📁 应用与前端
     │   ├── landingpage/                       # 落地页面
     │   └── website/                            # 项目官网
     │       ├── docs/                           # 网站文档
     │       │   ├── developer-guide/            # 开发者指南
     │       │   ├── getting-started/            # 入门指南
     │       │   ├── guides/                     # 使用指南
     │       │   ├── integrations/               # 集成文档
     │       │   ├── reference/                  # API 参考
     │       │   └── user-guide/                 # 用户指南
     │       ├── scripts/                        # 网站脚本
     │       ├── src/                            # 网站源代码
     │       │   ├── css/                        # 样式文件
     │       │   └── pages/                      # 页面组件
     │       └── static/                         # 静态资源
     │           └── img/                        # 图片资源
     │
     ├── 📁 测试与质量保证
     │   └── tests/                              # 完整测试套件
     │       ├── acp/                            # ACP 适配器测试
     │       ├── agent/                          # Agent 核心测试
     │       ├── cli/                            # CLI 测试
     │       ├── cron/                           # 定时任务测试
     │       ├── e2e/                            # 端到端测试
     │       ├── environments/                   # 环境测试
     │       │   └── benchmarks/                 # 基准测试
     │       ├── fakes/                          # Mock 和 Fake 对象
     │       ├── gateway/                        # 网关测试
     │       ├── hermes_cli/                     # CLI 测试
     │       ├── honcho_plugin/                  # Honcho 插件测试
     │       ├── integration/                    # 集成测试
     │       ├── plugins/                        # 插件测试
     │       │   └── memory/                     # 内存插件测试
     │       ├── run_agent/                      # Agent 运行测试
     │       ├── skills/                         # Skill 单元测试
     │       └── tools/                          # 工具测试
     │
     ├── 📁 构建与部署
     │   ├── docker/                             # Docker 配置
     │   ├── nix/                                # Nix 声明式配置
     │   ├── packaging/                          # 包管理配置
     │   │   └── homebrew/                       # Homebrew 公式
     │   ├── scripts/                            # 辅助脚本
     │   │   └── whatsapp-bridge/                # WhatsApp 桥接脚本
     │   └── docs/                               # 项目文档
     │       ├── migration/                      # 迁移文档
     │       ├── plans/                          # 规划文档
     │       └── skins/                          # 主题/皮肤文档
     │
     ├── 📁 项目资源
     │   ├── assets/                             # 静态资源(图片、图标)
     │   ├── plans/                              # 执行计划存储
     │   ├── datagen-config-examples/            # 数据生成示例配置
     │   └── tinker-atropos/                     # 实验性项目/工具
     │
     └── 📄 根目录核心文件
         ├── 🐍 主要 Python 模块
         │   ├── cli.py                          # 主 CLI 入口(约 410KB)
         │   ├── run_agent.py                    # Agent 执行引擎(约 500KB)
         │   ├── batch_runner.py                 # 批量任务运行器
         │   ├── rl_cli.py                       # 强化学习 CLI
         │   ├── mini_swe_runner.py              # 小型 SWE 运行器
         │   ├── mcp_serve.py                    # MCP 服务入口
         │   ├── trajectory_compressor.py        # 轨迹压缩工具
         │   ├── toolsets.py                     # 工具集管理
         │   ├── toolset_distributions.py        # 工具集分发
         │   ├── model_tools.py                  # 模型工具集
         │   ├── hermes_state.py                 # Agent 状态管理
         │   ├── hermes_logging.py               # 日志系统
         │   ├── hermes_time.py                  # 时间工具
         │   ├── hermes_constants.py             # 常量定义
         │   └── utils.py                        # 工具函数
         │
         ├── 📦 配置文件
         │   ├── pyproject.toml                  # Python 项目配置
         │   ├── requirements.txt                # Python 依赖
         │   ├── setup-hermes.sh                 # 安装脚本
         │   ├── flake.nix                       # Nix 开发环境
         │   ├── flake.lock                      # Nix 依赖锁定
         │   ├── package.json                    # Node.js 项目配置
         │   ├── package-lock.json               # Node.js 依赖锁定
         │   ├── uv.lock                         # UV 包管理器锁定文件
         │   ├── MANIFEST.in                     # 包清单
         │   └── constraints-termux.txt          # Termux 约束
         │
         ├── 🐳 部署配置
         │   └── Dockerfile                      # 容器镜像
         │
         ├── 📝 文档和示例
         │   ├── README.md                       # 项目自述文件
         │   ├── CONTRIBUTING.md                 # 贡献指南
         │   ├── AGENTS.md                       # Agent 文档
         │   ├── LICENSE                         # 许可证
         │   ├── cli-config.yaml.example         # CLI 配置示例
         │   └── RELEASE_v*.md                   # 发版说明
         │       ├── RELEASE_v0.2.0.md
         │       ├── RELEASE_v0.3.0.md
         │       ├── RELEASE_v0.4.0.md
         │       ├── RELEASE_v0.5.0.md
         │       ├── RELEASE_v0.6.0.md
         │       ├── RELEASE_v0.7.0.md
         │       └── RELEASE_v0.8.0.md
         │
         ├── 📂 开发工具
         │   ├── .env                            # 环境变量(本地配置)
         │   ├── .env.example                    # 环境变量模板
         │   ├── .envrc                          # direnv 配置
         │   ├── .gitignore                      # Git 忽略规则
         │   ├── .gitmodules                     # Git 子模块配置
         │   ├── .dockerignore                   # Docker 忽略规则
         │   └── .github/                        # GitHub Actions 配置
         │
         └── 📁 项目管理
             ├── .git/                           # Git 仓库
             ├── .plans/                         # Claude Code 计划
             ├── .venv/                          # Python 虚拟环境
             ├── __pycache__/                    # Python 缓存
             └── .idea/                          # IntelliJ IDEA 配置

说明:仓库体积与版本会变,上述树形结构用于建立整体心智模型;以你本地 git clone 后的实际目录为准。