🤖 HERMES Agent 完全操作手册

基础 + 高级专题合并版 · 从零基础到精通 · 全面详实 · 32章完整覆盖
📦 安装配置 ⚙️ 工具使用 🧠 高级技能 🏢 企业应用 ☁️ 云端部署
v0.17+ · 2026-07-21 · Toobey Network Technology

📖 说明

本手册共 32 章,分为基础、工具、高级、企业、部署五大模块。每章开头有分类色标,便于快速定位。

本合并版将《HERMES Agent 操作手册》与《HERMES Agent 高级专题手册》整合为单一文件,第 29-32 章为高级专题的完整详细内容(含图示化排查树、性能调优决策指南、多Agent团队协作工作流、云端部署全方案)。

🔵 基础篇
第 1-6 章:安装配置、模型、上手使用
🟢 工具篇
第 7-15 章:终端、文件、网络、浏览器等
🟣 高级篇
第 16-27 章:网关、记忆、训练、工作流、排查、调优
🟠 企业与实战
第 28-32 章:企业场景、提效、实战、云端部署

1 🤖 HERMES Agent 是什么

📖 概述

HERMES Agent 是由 Nous Research 开发的开源 AI Agent 框架。它不仅仅是聊天机器人——它是一个能自主使用工具、执行命令、操作桌面、调度任务的智能体系统。HERMES 的设计理念是"Agent 优先"——让 AI 不仅能思考,更能行动。

与传统的 AI 聊天工具不同,HERMES 能主动调用各种工具来完成任务:执行终端的Shell命令、读写编辑文件、上网搜索信息、操控浏览器、甚至直接操作你的电脑桌面。这使得它从一个"问答助手"升级为一个真正的"数字员工"。

✨ 核心特性

🧰 丰富的工具集
终端、文件、浏览器、网络搜索、桌面操控等 20+ 内置工具
🧠 多模型支持
DeepSeek、OpenAI、Claude、本地 Ollama 等任意 OpenAI 兼容 API
💾 持久记忆
跨会话记住用户偏好、环境配置、工作流知识
📱 多平台网关
连接飞书、微信、Telegram,手机端也能用
🎯 Skills 技能
将常用工作流存为 Skill,一键复用
⏰ 定时任务
Cron 调度,自动执行日报、监控、通知

🏗️ 架构概览


发消息
HERMES
推理引擎
工具调用
终端/文件/网络
结果返回
给你
你 ↔ HERMES ↔ 工具 ↔ 外部世界

HERMES 的工作流程:你发送任务 → 大模型分析意图 → 自动选择并调用工具 → 处理结果 → 回复你。整个过程是循环的,直到任务完成。

🧩 内部组件架构

组件功能技术实现
推理引擎(Agent Core)接收用户输入、调用LLM、解析响应、决定下一步Python asyncio 事件循环
工具调度器(Tool Router)根据LLM选择的工具名,路由到对应的工具实现工具注册表 + 反射调用
上下文管理器(Context Manager)维护多轮对话历史、窗口滑动、摘要压缩环形缓冲区 + 自动摘要
记忆系统(Memory)跨会话持久化存储用户信息SQLite + 向量检索(可选)
网关(Gateway)多平台消息收发、Webhook、会话路由FastAPI + WebSocket
技能引擎(Skills Engine)加载、匹配、执行SkillSKILL.md 解析 + prompt注入

🎯 三种工作模式

模式启动命令适用场景特点
交互式(Interactive)hermes start个人日常使用、调试终端对话,所见即所得
守护模式(Daemon)hermes start --daemon后台长时间运行关闭终端仍运行
网关模式(Gateway)hermes start --gateway接入IM平台(飞书/微信)手机端可访问

🔬 与传统 Chat 对比

能力普通 ChatHERMES Agent
对话问答✅ 增强版
执行Shell命令✅ 自动调用终端工具
读写编辑文件✅ 文件工具
上网搜索部分支持✅ 调用 web_search
操作桌面软件✅ Computer Use
定时任务✅ Cron 调度
跨会话记忆有限✅ 持久记忆系统
多平台接入仅网页/App✅ 飞书/微信/Telegram

💡 适用场景一览

💻 软件开发
编码、调试、代码审查、项目搭建、Git操作
📊 数据分析
数据抓取、清洗、分析、可视化、报表生成
📝 文档处理
撰写、翻译、总结、格式转换、批量处理
🔄 工作流自动化
日报生成、监控告警、定时任务、流程编排
🤖 团队协作
多Agent并行、团队知识库、网关接入IM
🎓 个人学习
概念解释、论文总结、外语翻译、知识管理

2 📥 安装全流程

📋 前置条件

项目要求说明
Python3.10 或更高版本推荐 3.11+,3.12/3.13 也兼容
操作系统Windows 10/11、macOS、Linux全平台支持
网络能访问 AI 模型 APIDeepSeek / OpenAI / Anthropic 等
可选Git用于克隆项目仓库
可选NVIDIA GPU本地运行模型需要(Ollama)

🔧 安装步骤(Windows 完整版)

  1. 安装 Python:从 python.org 下载 3.11+,安装时务必勾选 Add Python to PATH
  2. 安装 uv(推荐包管理器):在 PowerShell 中运行 powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  3. 克隆项目git clone https://github.com/NousResearch/hermes-agent.git 或下载 ZIP 解压
  4. 创建虚拟环境:进入目录后运行 uv venv .venv
  5. 激活环境.venv\Scripts\activate(如提示执行策略问题,先运行 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  6. 安装依赖uv pip install -e .(这会安装 HERMES 及其所有依赖)

⚡ 安装验证

# 激活环境后,运行
hermes --version

# 如果能显示版本号(如 v0.17.0),说明安装成功
# 如果报 "command not found",说明虚拟环境没激活

🔍 Windows 安装排错

问题原因解决方法
'uv' 不是内部或外部命令uv 未安装或不在 PATH重新运行安装命令,重启终端
'pip' 不是内部或外部命令Python 未勾选 Add to PATH重新安装 Python,勾选 Add to PATH
执行策略禁止运行脚本PowerShell 默认 Restricted运行 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Microsoft Visual C++ 14.0 错误缺少 C++ 构建工具下载安装 Visual C++ Build Tools
pip install 超时网络慢或被墙-i https://pypi.tuna.tsinghua.edu.cn/simple

📦 macOS / Linux 安装

# macOS
brew install python3 uv git
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
uv venv .venv
source .venv/bin/activate
uv pip install -e .

# Ubuntu/Debian
sudo apt update && sudo apt install -y python3 python3-pip git
pip3 install uv
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
uv venv .venv
source .venv/bin/activate
uv pip install -e .

🐳 Docker 安装(可选)

docker pull nousresearch/hermes-agent
docker run -it --rm \
  -v ~/.hermes:/root/.hermes \
  nousresearch/hermes-agent

🔧 安装后配置

# 创建配置目录
mkdir -p ~/.hermes

# 配置 API Key(编辑 ~/.hermes/.env)
echo "DEEPSEEK_API_KEY=sk-..." > ~/.hermes/.env
⚠️ 国内用户注意:如果 git clone 慢,用代理或从 Gitee 镜像下载。pip 安装可加 -i https://pypi.tuna.tsinghua.edu.cn/simple。如果访问海外 API 慢,使用 Watt Toolkit 加速。
💡 如果安装过程卡住,尝试关闭 VPN/代理后再试。如果遇到编译错误,确保安装了 Visual C++ 构建工具(Windows)或 build-essential(Linux)。

3 📂 目录与文件详解

📁 项目目录结构

hermes-agent/
├── .venv/                  # 虚拟环境(Python 依赖)
├── src/hermes/             # 核心源代码
│   ├── agent/              # Agent 核心逻辑:推理循环、函数调用
│   ├── tools/              # 内置工具实现:terminal/file/browser 等
│   ├── gateway/            # 网关模块:飞书、微信、Telegram
│   └── config/             # 配置管理:加载、验证、保存
├── config.yaml             # 默认配置文件
├── .env.example            # 环境变量模板
├── pyproject.toml          # 项目元数据(依赖声明)
├── README.md               # 项目说明文档
└── LICENSE                 # 开源许可证

📁 用户数据目录 (~/.hermes/)

~/.hermes/
├── config.yaml             # 用户配置文件(模型、工具、网关设置)
├── .env                    # 环境变量(API Key、Secret 等敏感信息)
├── memory.db               # 记忆数据库(SQLite,自动维护)
├── sessions/               # 会话历史记录
│   ├── session_001.db
│   └── session_002.db
├── skills/                 # 自定义技能(SKILL.md 格式)
│   ├── my-skill/
│   └── stock-briefing/
├── plugins/                # 自定义插件
│   ├── enabled/
│   └── available/
├── cron/                   # 定时任务配置
├── knowledge/              # 知识库文档(RAG 用)
└── logs/                   # 运行日志
    └── hermes.log

🔑 关键文件说明

文件用途是否必须注意事项
config.yaml主配置:模型、提供商、工具、网关等全部设置✅ 是引用的 .env 变量用 ${KEY} 语法
.envAPI Key、Secret 等敏感信息✅ 是不要提交到 Git!加入 .gitignore
memory.db自动保存的持久记忆,跨会话可用自动创建备份可保留跨会话记忆
sessions.db会话历史,用于回顾之前对话自动创建可配置保留天数
logs/hermes.log运行日志,用于调试排错自动创建hermes logs --tail 30 查看

🧬 src/hermes 内部架构

src/hermes/
├── agent/              # Agent 核心逻辑
│   ├── core.py         # 主循环:接收→推理→工具→回复
│   ├── tool_router.py  # 工具路由和调度
│   ├── context.py      # 上下文管理(滑动窗口)
│   └── session.py      # 会话生命周期管理
├── tools/              # 工具实现(每个工具一个模块)
│   ├── terminal.py     # Shell 命令执行
│   ├── file_ops.py     # 文件读写搜索编辑
│   ├── web_search.py   # 互联网搜索
│   ├── browser.py      # 浏览器自动化
│   └── computer_use.py # 桌面操控(cua-driver)
├── gateway/            # 网关实现
│   ├── server.py       # FastAPI HTTP 服务
│   ├── feishu.py       # 飞书平台适配
│   ├── weixin.py       # 微信平台适配
│   └── webhook.py      # Webhook 路由
├── memory/             # 记忆系统
│   ├── store.py        # 记忆存储(SQLite)
│   └── vector.py       # 向量检索(可选)
├── skills/             # 技能引擎
│   ├── loader.py       # SKILL.md 解析加载
│   └── matcher.py      # 技能匹配和注入
├── config/             # 配置管理
│   ├── loader.py       # 配置加载和验证
│   └── schema.py       # 配置数据结构
└── cli/                # 命令行入口
    ├── main.py         # hermes 主命令
    └── commands.py     # 子命令实现

📋 配置文件字段大全

字段路径类型说明默认值
provider.namestring提供商名称deepseek
provider.api_basestringAPI 请求地址https://api.deepseek.com
provider.api_keystringAPI Key(引用 .env)${DEEPSEEK_API_KEY}
model.namestring模型名称deepseek-v4-flash
model.temperaturefloat创意度 0-10.7
model.max_tokensint最大输出 Token 数4096
model.streambool是否流式输出true
gateway.enabledbool是否启用网关false
gateway.portint网关监听端口8080
session.max_historyint保留的对话轮数50

💾 数据备份建议

  • 定期备份整个 ~/.hermes/ 目录到安全位置(至少每月一次)
  • 升级前备份:升级新版本前一定要备份配置和数据
  • 迁移时:复制 ~/.hermes/ 到新机器即可恢复所有配置、记忆和技能
  • 增量备份:只备份 config.yaml + .env + memory.db 即可,其他可重建
⚠️ 重要:升级 HERMES 后如果遇到奇怪错误,先备份并删除 ~/.hermes/ 下的缓存文件,重新启动。注意 .env 中的 API Key 不要泄露。

4 ⚙️ 配置文件完全指南

📄 config.yaml 完整结构

# ~/.hermes/config.yaml

# ===== 提供商配置 =====
provider:
  name: deepseek          # 提供商名称
  api_base: https://api.deepseek.com  # API 地址
  api_key: ${DEEPSEEK_API_KEY}        # 引用 .env 中的变量

# ===== 模型配置 =====
model:
  name: deepseek-v4-flash  # 模型名称
  temperature: 0.7         # 创意度 0-1(0=精确, 1=创意)
  max_tokens: 4096         # 最大输出长度
  stream: true             # 流式输出(推荐开启)

# ===== 工具配置 =====
tools:
  enabled:
    - terminal
    - file
    - web_search
    - browser
    - computer_use

# ===== 网关配置 =====
gateway:
  enabled: true
  port: 8080
  platforms:
    - feishu
    - weixin

# ===== 系统配置 =====
system_prompt: |        # 可选:系统提示词
  你是一个有用的助手。
  回复要简洁准确。

session:
  max_history: 50       # 保留最近会话轮数

🔐 .env 文件详解

# ~/.hermes/.env (不要提交到 Git!加入 .gitignore)

# ===== 必需配置(至少填一个) =====
DEEPSEEK_API_KEY=sk-......n
# ===== 网关配置(按需) =====
FEISHU_APP_ID=cli_...
FEISHU_APP_SECRET=...
# WEIXIN_APP_ID=wx_...
# WEIXIN_APP_SECRET=...3>🛠️ 常用配置修改速查
需求配置项示例值生效方式
换模型model.namedeepseek-chat / gpt-4o / claude-sonnet-4重启生效
开网关gateway.enabledtrue重启生效
提速model.streamtrue重启生效
省成本model.max_tokens2048重启生效
更精确model.temperature0.1重启生效
更多创意model.temperature0.9重启生效

⚙️ 通过对话修改配置

# HERMES 运行中也可以改配置
你:帮我切换到 gpt-4o 模型
你:打开网关
你:把 max_tokens 改成 2048
你:帮我看看当前的配置
你:帮我创建一个新 Profile 叫 work

📋 多提供商配置参考

# DeepSeek(推荐,性价比最高)
provider:
  name: deepseek
  api_base: https://api.deepseek.com
  api_key: ${DEEPSEEK_API_KEY}

# OpenAI
provider:
  name: openai
  api_base: https://api.openai.com/v1
  api_key: ${OPENAI_API_KEY}

# Anthropic Claude
provider:
  name: anthropic
  api_base: https://api.anthropic.com/v1
  api_key: ${ANTHROPIC_API_KEY}

# 本地 Ollama
provider:
  name: ollama
  api_base: http://localhost:11434/v1
  api_key: ollama  # Ollama 不需要真实 Key

# 自定义第三方
provider:
  name: custom
  api_base: https://your-gateway.com/v1
  api_key: ${CUSTOM_API_KEY}

🛠️ 命令行操作配置

# 查看完整配置
hermes config get

# 查看特定配置项
hermes config get model.name
hermes config get provider.api_base

# 修改配置项
hermes config set model.name gpt-4o
hermes config set model.temperature 0.3

# 重置配置(谨慎使用)
hermes config reset
💡 配置生效规则:修改 config.yaml 后需要 hermes stop && hermes start 重启。运行时通过对话切换模型不需要重启。
⚠️ 常见错误:如果修改配置后报错,检查 YAML 缩进是否正确(不要用 Tab,用 2 空格)。.env 文件中的 Key 不要加引号。

5 🎯 模型与提供商

🌐 支持的提供商

HERMES 支持所有兼容 OpenAI API 格式的提供商。以下为经过测试的主流选择:

提供商推荐模型特点适合场景
DeepSeekdeepseek-v4-flash性价比极高,速度快,中文好 ⭐日常对话、数据分析、文件处理
OpenAIgpt-4o / gpt-4o-mini生态最成熟,多模态图片分析、复杂推理
Anthropicclaude-sonnet-4代码能力强,推理准确编程、代码审查、复杂逻辑
本地 Ollamaqwen2.5:7b免费离线,隐私安全简单问答、格式转换、离线场景
自定义任意兼容 API支持第三方聚合平台按需选择

⚙️ 配置与切换模型

# config.yaml 配置示例
provider:
  name: deepseek
  api_base: https://api.deepseek.com
  api_key: ${DEEPSEEK_API_KEY}

# 对话中切换(无需重启)
你:切换到 claude-sonnet-4
你:换 gpt-4o 做这个任务
你:用本地模型 qwen2.5
你:帮我切回 flash 模型

🔌 自定义提供商

任意兼容 OpenAI 格式的 API 都可使用,只需配置 api_base 和 api_key:

provider:
  name: custom
  api_base: https://your-api.com/v1
  api_key: ${CUSTOM_API_KEY}

🎯 模型选择策略

日常对话
Flash
写代码
Claude
看图片
GPT-4o
免费离线
Ollama
复杂推理
Sonnet

📊 模型基准对比

模型首字延迟1000 tokens上下文窗口费用(每百万 token)推荐用途
DeepSeek V4 Flash~0.3s~1.5s64K¥1 / ¥2日常 ⭐
DeepSeek Chat~1.2s~5s128K¥5 / ¥15复杂分析
GPT-4o~0.5s~2s128K$2.5 / $10多模态
GPT-4o Mini~0.3s~1s128K$0.15 / $0.6低成本
Claude Sonnet 4~1s~3s200K$3 / $15编程 ⭐
Qwen2.5 7B(本地)~8s GPU~30s32K免费离线任务

💡 多模型切换技巧

  • 日常默认:deepseek-v4-flash(速度和费用的最佳平衡)
  • 编程任务:临时切换到 claude-sonnet-4(代码理解能力最强)
  • 图片分析:切换到 gpt-4o 或 qwen-vl-max(多模态支持)
  • 简单任务:用本地 Ollama 模型完全免费(格式转换、简单问答)
  • 长文档处理:切换到 128K+ 上下文模型(论文、代码库分析)

🔄 模型切换实战

# 日常:用 Flash 快速处理
你:帮我整理桌面文件

# 遇到复杂任务时临时切换
你:切换到 claude-sonnet-4
你:帮我 review 这段代码,找出所有潜在 bug

# 分析完切回来
你:切回 flash

# 需要看图时
你:用 gpt-4o 分析这张图片的内容

# 简单任务用本地(省钱)
你:用本地模型帮我格式化这段 JSON
⚠️ 注意:切换模型后新对话才生效,当前对话不会切换。不同模型的 API 费用差异很大(Flash 比 Sonnet 便宜 30 倍以上),选择时注意成本控制。
💡 省钱技巧:日常 80% 的任务 Flash 完全能胜任。只有需要深度推理、代码审查、多模态分析时才切到高级模型。简单任务完全可以用本地免费模型跑。

6 🚀 上手使用

🎬 第一次启动

# 1. 激活虚拟环境
.venv/Scripts/activate

# 2. 配置 API Key
# 编辑 ~/.hermes/.env,填入你的 API Key

# 3. 启动 HERMES(终端交互模式)
hermes start

# 看到以下提示表示启动成功:
# 🟢 HERMES Agent 已启动
# 输入你的问题开始对话...

💬 基础对话示例

启动后输入你的问题或任务,HERMES 会自动分析并执行:

你:你好,你是谁?
你:帮我查一下当前时间
你:列出当前目录的文件
你:搜索一下今天的 AI 新闻
你:帮我创建一个 hello.py 文件,内容打印 "Hello World"
你:看看我的电脑还剩多少硬盘空间
你:把桌面上的图片文件夹整理一下

🛠️ 常用命令大全

命令用途示例
hermes start启动交互模式hermes start
hermes start --gateway启动并开启网关hermes start --gateway
hermes stop停止 HERMEShermes stop
hermes new开启新会话hermes new
hermes status查看运行状态hermes status
hermes config set修改配置hermes config set model.name gpt-4o
hermes logs --tail 30查看最近日志hermes logs --tail 30

💡 高效使用技巧

  • 任务具体化:"帮我整理桌面"不如"把桌面上的 .txt 文件合并成一个,.jpg 文件移到图片文件夹"
  • 指定输出格式:"用表格展示"、"输出 JSON"、"用 Markdown"、"用代码块"
  • 多轮迭代:不满意直接说"改成 ..."、"再加一个条件"、"换一种方式"
  • 让 HERMES 记住:"记住我的工作目录是 D:/Projects"、"记住我喜欢用表格"
  • 让 HERMES 分析:"帮我看看这个日志哪里出错了"、"分析一下这个数据趋势"
  • 组合任务:"先搜索然后帮我总结"、"下载文件然后转换格式"

🔧 实用工作流示例

# 文件处理
你:把桌面上所有的 .log 文件合并成一个,按时间排序
你:把这个文件夹里的所有图片批量压缩到 80% 质量
你:把 data.csv 转成 Excel 格式,保留所有列

# 信息查询
你:查一下今天的天气 + 我的日程 + 股票行情,汇总成晨报
你:搜索"Python 异步编程 最佳实践",总结成 5 个要点

# 开发辅助
你:帮我创建一个 Flask 项目骨架,包含 README
你:git status 看一下变更,帮我生成 commit message
你:运行测试,如果有失败的帮我分析原因

# 系统管理
你:看看磁盘还剩多少空间,列出最大的 5 个文件
你:检查一下 CPU 和内存使用情况
你:帮我清理一下系统临时文件

🖥️ 高级 CLI 命令

命令用途示例
hermes --profile work start使用指定配置启动hermes --profile work start
hermes start --port 8081指定端口启动hermes start --port 8081
hermes start --gateway启动并开启网关hermes start --gateway
hermes start --daemon后台守护模式启动hermes start --daemon --gateway
hermes logs --follow持续跟踪日志hermes logs -f
hermes plugins list查看插件列表hermes plugins list
hermes config reset重置所有配置hermes config reset

🐛 首次使用常见问题

问题原因解决
启动后没反应API Key 没配置或无效检查 ~/.hermes/.env
回复很慢网络问题或模型太大换 Flash 模型,检查网络
工具调用失败路径不对或权限不足用英文路径,管理员模式

7 💻 终端工具详解

📌 功能说明

终端工具(terminal)允许 HERMES 在后台执行 Shell 命令,是最核心的工具之一——几乎所有与系统的交互都通过它。HERMES 可执行的命令取决于当前系统环境(Windows 上是 git-bash,Linux/macOS 上是原生 shell)。

⚡ 前台模式

命令执行并等待结果返回,适合大部分场景。参数 time out 控制最长等待时间,workdir 指定工作目录:

# 基本使用
terminal(command="ls -la")
terminal(command="python script.py", timeout=300)
terminal(command="npm install", workdir="/project")

# 管道和链式命令
terminal(command="cat log.txt | grep ERROR | tail -20")
terminal(command="python -c "import json; print(json.dumps({'a':1}))"")

# 环境变量
terminal(command="echo $HOME")
terminal(command="export MY_VAR=test && echo $MY_VAR")

🔄 后台模式

长时间运行的任务可在后台执行,不阻塞对话。配合 notify_on_complete 可在完成时收到通知:

# 后台运行服务器(不阻塞对话)
terminal(command="python server.py", background=true)

# 带通知的后台任务(完成时自动通知)
terminal(command="pytest tests/", background=true, notify_on_complete=true)

# 后台运行并监控输出
terminal(command="tail -f log.txt", background=true)

🛠️ 进程管理

后台启动的进程可以用 process 工具管理:

操作说明使用场景
process(action="list")列出所有后台进程查看正在运行的任务
process(action="poll", session_id="xxx")查看进程状态和新输出检查长时间任务进度
process(action="wait", session_id="xxx")阻塞等待进程完成需要结果时等待
process(action="kill", session_id="xxx")强制终止进程任务卡死或超时
process(action="log", session_id="xxx")查看完整输出日志审查所有输出内容
process(action="close", session_id="xxx")关闭 stdin 发送 EOF结束等待输入的进程
process(action="submit", session_id="xxx", data="y")向进程发送输入回答交互式提示

🔒 终端安全最佳实践

🔴 严禁:在终端中直接输入密码、API Key、私钥等敏感信息
⚠️ 注意:rm -rf 等危险命令 HERMES 会自动要求你确认才执行
💡 建议:敏感信息通过 .env 文件传递,不要在对话中明文发送

🎯 常见用途

📦 安装依赖
pip install / npm install / apt install / brew install
🐙 操作 Git
git clone / add / commit / push / pull / status
🗄️ 数据处理
Python 脚本 / SQL 查询 / 文件转换 / 数据管道
🌐 网络请求
curl / wget / API 调用 / 下载文件
📊 系统监控
df -h / top / nvidia-smi / netstat
🔍 日志分析
grep / tail / awk / sed / 日志过滤
⚠️ 注意:避免在终端中运行 vim/nano 等交互式编辑器——HERMES 无法操作它们。如需编辑文件,使用文件工具。Windows 上某些命令可能需要管理员权限。
💡 效率提示:管道、重定向、通配符等 Shell 特性完全支持。复杂多步命令建议放在脚本文件中再执行。

8 📝 文件工具详解

📌 功能说明

文件工具让 HERMES 能读、写、搜索、编辑文件——这是代码开发、文档处理、配置管理的核心手段。所有文件操作都会自动处理编码,支持 UTF-8、GBK 等常见格式。

📖 读取文件

# 读取整个文件(自动分页,每页最多 500 行)
read_file(path="main.py")

# 读取指定行范围
read_file(path="main.py", offset=10, limit=50)

# 读取大文件指定区域
read_file(path="huge_log.txt", offset=1, limit=200)

# 文件路径支持绝对和相对路径
read_file(path="/home/user/config.yaml")
read_file(path="./src/main.py")

✏️ 写入文件

# 创建新文件或覆盖已有文件
write_file(path="hello.py", content="print('Hello')")

# 自动创建父目录
write_file(path="src/utils/helper.py", content="def help(): pass")

# 写入 HTML / JSON / YAML 等
write_file(path="report.html", content="

报告

")

🔍 搜索文件

# 搜索文件内容(支持正则)
search_files(pattern="def main", path=".", file_glob="*.py")

# 搜索文件名
search_files(target="files", pattern="*.html", path="./src")

# 限制搜索范围
search_files(pattern="TODO", path="./src", file_glob="*.py", limit=10)

# 按修改时间排序的文件列表
search_files(target="files", pattern="*", path="./logs")

🎯 精准编辑(Patch)

# 查找并替换(比 sed 更智能,自动处理缩进和编码)
patch(path="config.yaml",
  old_string="model: deepseek-chat",
  new_string="model: deepseek-v4-flash")

# 替换所有匹配(replace_all=true)
patch(path="data.txt",
  old_string="old_value",
  new_string="new_value",
  replace_all=true)

# 删除匹配行(new_string 传空字符串)
patch(path="config.yaml",
  old_string="# TODO: remove this",
  new_string="")

🔄 批量文件处理

# 批量重命名
你:把 src/ 目录下所有 ".js" 文件重命名为 ".ts"

# 批量替换内容
你:在 project/ 目录下所有 Python 文件中,把 "old_func" 替换成 "new_func"

# 批量转换格式
你:把 data/ 目录下所有 .csv 文件转成 .json 格式
你:把这个文件夹里所有 .md 文件合并成一个 README_ALL.md

# 批量压缩图片
你:把 images/ 目录里所有 .jpg 压缩到 70% 质量

🔤 编码处理指南

编码常见场景处理方式
UTF-8现代文件、代码、Markdown自动检测,推荐使用
GBK / GB2312中文 Windows 旧文件、CSV 导出HERMES 自动识别处理
ISO-8859-1西欧语言旧文件可指定编码读取
UTF-16某些 Windows 系统文件需要终端工具转换
# 编码转换示例
你:把这个 GBK 编码的 CSV 转成 UTF-8
你:用 Python 把这个文件从 GB2312 转成 UTF-8
你:检查这个文件的编码格式

💡 实用建议

  • 使用 patch 而非 sed/awk 编辑文件——自动处理缩进和编码,出错可回退
  • 中文路径可能有问题,尽量用英文命名文件和目录
  • 大文件用 offset/limit 分段读取,避免超长内容
  • 批量操作时先在小范围测试(1-2 个文件),确认再全量执行
  • 关键文件修改前用 read_file 查看内容,避免误操作
  • write_file 前先用 read_file 确认文件当前内容,避免覆盖重要数据
⚠️ 注意:write_file 会完全覆盖文件内容!如需追加内容,使用终端工具的 echo >> 操作或 Python 脚本的追加模式。
💡 安全编辑:对重要文件先用 read_file 查看,再用 patch 做精确替换。patch 有错误回退机制,比直接 write_file 安全。

9 🌐 网络与搜索工具

📌 功能说明

网络工具让 HERMES 能搜索互联网、获取网页内容、调用外部 API,是获取实时信息的关键通道。结合终端工具的 curl,可以实现任意的 HTTP 请求。

🔍 网页搜索与获取

# 搜索互联网信息
web_search(query="2026年7月 AI 行业新闻")
web_search(query="Python 异步编程最佳实践")

# 获取网页内容
web_extract(url="https://example.com")

# 获取 JSON 数据
web_extract(url="https://api.github.com/repos/NousResearch/hermes-agent")

📡 API 调用(通过 curl)

# GET 请求
curl -s "https://api.example.com/data"

# POST 请求 + JSON
curl -s -X POST "https://api.example.com/submit" \
  -H "Content-Type: application/json" \
  -d '{"key":"value"}'

# 带认证的请求
curl -s -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.example.com/protected"

# 获取响应头
curl -s -I "https://api.example.com"

🔗 实用免费 API 示例

用途API 地址
查本机公网 IPhttps://httpbin.org/ip
查天气(城市)https://wttr.in/Beijing?format=3
查汇率https://api.exchangerate-api.com/v4/latest/USD
GitHub 仓库信息https://api.github.com/repos/用户名/仓库名
生成 UUIDhttps://httpbin.org/uuid
世界时间https://worldtimeapi.org/api/timezone/Asia/Shanghai

🔐 API 认证方式

认证方式curl 示例适用场景
Bearer Token-H "Authorization: Bearer ***rkOpenAI / DeepSeek / 多数 REST API
API Key (Header)-H "X-API-Key: ***e>API Key (Query)"https://api.com/data?key=*** Query Parameters部分公开 API
Basic Auth-u "username:password"旧系统、内部工具
Cookie-H "Cookie: session=*** POST 表单登录后可获得

📡 数据处理技巧

# JSON 响应解析
curl -s "https://api.example.com/data" | python -c "import sys,json; d=json.load(sys.stdin); print(d['key'])"

# 保存 API 响应到文件
curl -s "https://api.example.com/data" > response.json

# 连续 API 调用(管道)
curl -s "https://api.example.com/items" | python -c "
import sys, json
items = json.load(sys.stdin)
for item in items[:5]:
    print(f'{item["id"]}: {item["name"]}')"

# 带重试的请求
for i in 1 2 3; do curl -s "https://api.example.com" && break; sleep 2; done

📊 股票数据查询示例

# A 股大盘指数
curl -s "http://qt.gtimg.cn/q=sh000001,sz399001,sz399006"

# 板块涨跌排行
curl -s "http://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=10&po=1&np=1&fid=f3&fs=m:90+t:2"

# 个股实时行情
curl -s "http://qt.gtimg.cn/q=sh600519,sz000858"
⚠️ 注意:如果 HTTPS 证书报错,加 -k 参数。国内访问某些海外 API 可能需要代理(Watt Toolkit)。JSON 响应可用 jq 或 Python 解析。API 调用频率过高可能触发限流,建议加 sleep。
💡 网络排错:先试 curl -v https://目标地址 看详细连接过程。如果 DNS 解析失败,使用 nslookup 检查。如果连接超时,检查防火墙和代理设置。

10 🌍 浏览器工具

📌 功能说明

浏览器工具让 HERMES 能打开网页、点击按钮、填写表单、截图分析——适合需要与网页交互的场景,如登录后台、提交表单、抓取动态内容、视觉验证等。

📖 基本操作

操作说明使用场景
导航browser_navigate(url)打开网页、初始化浏览器
截图分析browser_vision(question)查看页面视觉效果、分析布局
点击元素browser_click(ref)点击链接、按钮、复选框(按 ref ID)
输入文字browser_type(ref, text)填写搜索框、表单输入
滚动页面browser_scroll(direction)查看页面下方内容
获取内容browser_snapshot(full=true)获取页面完整文本(无障碍树)
控制台browser_console()获取 JS 错误 / 执行 JS 代码
后退browser_back()返回上一页

📋 典型操作流程

  1. 打开网页:browser_navigate(url="https://example.com")
  2. 获取快照:browser_snapshot() 查看交互元素列表
  3. 点击/输入:browser_click(ref="@e5") 点击目标元素
  4. 验证结果:browser_vision(question="登录是否成功?") 截图确认

🎯 典型场景

🔑 登录后台系统
自动填用户名密码点登录,截图验证
📊 查看数据面板
打开 Dashboard 并截图分析数据
📝 提交表单
自动填写并提交网页表单
🔍 内容提取
获取网页中特定元素的数据
🖼️ 视觉验证
截图让 AI 分析页面显示是否正确
🐛 调试页面
browser_console() 获取 JS 错误

💡 使用技巧

  • 对于纯文本或 API 端点(.json / .md / API 响应),优先使用 curl 而非浏览器——浏览器工具更慢且消耗更多 token
  • 截图分析时加具体问题,如"这个按钮是什么状态?"、"页面中央显示什么内容?"
  • ref ID 会随页面变化而改变——每次导航后都需要重新获取 snapshot
  • 遇到需要输入敏感信息(密码、密钥)时,HERMES 会先询问你
  • 多步骤操作(登录→导航→提取)每次操作后都要获取新 snapshot
  • 对于动态加载的页面,先 scroll 触发加载后再 snapshot

🔄 浏览器自动化的典型套路

🔑 登录→数据提取
导航到登录页 → 填账号密码 → 点登录 → 导航到目标页 → 提取数据
📊 多个页面抓取
打开列表页 → 提取所有链接 → 逐个打开 → 提取详情 → 汇总
📝 表单填写
导航到表单页 → 逐个填写字段 → 选择选项 → 点提交 → 确认结果
🔍 搜索+结果提取
打开搜索页 → 输入关键词 → 点搜索 → 提取结果列表

📋 浏览器 vs curl 选择指南

场景推荐工具原因
获取 JSON 数据curl更快,结果更干净,无需渲染
获取纯文本页面curl 或 web_extract直接返回内容,无需等待渲染
需要登录的页面浏览器可以自动填表单、处理 Cookie
动态 JS 渲染页面浏览器支持 JavaScript 执行
截图验证UI效果浏览器浏览器截图可查看视觉呈现
调用 API 接口curl更轻量,支持所有 HTTP 方法
⚠️ 限制:浏览器工具不能处理文件下载、不能绕过验证码、不能播放视频。这些情况下需要人工协助。频繁操作同一页面时,每次操作都需要重新获取 snapshot 以获取最新的 ref ID。

11 🖱️ Computer Use 桌面操控

📌 功能说明

Computer Use 基于 cua-driver,让 HERMES 能直接操控你的电脑桌面——移动鼠标、点击按钮、输入文字、滚动页面,就像真人一样操作 GUI 应用。所有操作在后台运行,不会抢夺你的鼠标和键盘焦点。

🎯 核心能力

📸 智能截图
capture(mode="som") 带编号的交互元素截图
🖱️ 按元素点击
click(element=14) 按编号精准点击
⌨️ 键盘输入
type(text) 打字 / key(keys) 快捷键
🪟 窗口管理
list_apps / focus_app / 多窗口切换
📜 滚动操作
scroll(direction, amount) 上下滚动
🔄 拖拽操作
drag(from, to) 拖放文件或元素

🎯 工作流程

  1. 截图 → capture() 获取当前屏幕,显示所有可交互元素编号
  2. 定位 → 看截图,找到要操作的元素编号(如 element=14)
  3. 操作 → click(element=14) 或 type(text="内容") 或 key(keys="ctrl+s")
  4. 验证 → 再次 capture() 确认操作结果,必要时重复步骤 2-3

📋 适用场景

场景操作步骤
打开特定软件capture() 找桌面 → click 开始菜单 → type "软件名" → click 图标
在 Chrome 中搜索打开 Chrome → click 地址栏 → type 关键词 → 回车
复制文件到其他位置打开文件管理器 → 右键文件 → 选择复制 → 粘贴到目标
截取软件界面打开目标软件 → capture() 截图分析
保存网页为 PDF浏览器中 Ctrl+P → 选择另存为 PDF → 保存
调整系统设置打开设置 → 找到目标设置项 → 修改 → 确认
安装软件下载安装包 → 双击运行 → 点击 Next 完成安装

⚠️ Computer Use 安全边界

🔴 不会自动操作:权限弹窗、密码输入框、支付界面、系统关键设置
⚠️ 需要你确认:删除文件、修改系统配置、安装软件、访问敏感页面
💡 如果操作失败:先 capture() 确认当前界面状态,再调整操作。元素可能被其他窗口遮挡。

💡 使用技巧

  • 按元素编号点击比像素坐标更可靠——元素位置变了也能识别
  • 截图时指定 app="Chrome" 可只截取特定应用窗口,减少干扰
  • 如果元素被遮挡,先用 focus_app 将窗口前置
  • 输入中文时注意输入法状态,建议先切换到英文输入模式
  • 复杂桌面操作(如安装软件)需要你的确认,HERMES 会先询问
⚠️ 安全提示:Computer Use 不会自动点击权限对话框、密码输入框或支付界面。遇到这些它会停下来询问你。

12 📚 Skills 技能系统

📌 什么是 Skill

Skill 是 HERMES 的可复用知识包——包含特定任务的完整步骤、命令和提示词。一次学会,永久复用。你把一个流程教会 HERMES 后,保存为 Skill,以后一句话就能重复执行。

🎯 为什么要用 Skill

🚀
节省 80% 时间
🎯
结果更稳定
📦
可与团队共享

📖 创建 Skill

# 方法1:完成任务后保存
你:帮我把近期的账单整理成表格,保存在桌面
...(HERMES 执行完成)...
你:把这个流程保存为 Skill,取名 bill-sort

# 方法2:直接描述步骤
你:帮我创建一个 Skill 叫 morning-check,内容如下:
1. 查天气
2. 查今日日程
3. 查股票行情
4. 整理成晨报发给我

# 方法3:记住数据源
你:记住以下数据源作为 stock-check 技能
- 大盘指数:qt.gtimg.cn/q=sh000001,sz399001,sz399006

🔧 管理 Skill

# 查看所有技能
skill_view()

# 使用技能
你:用 stock-check 技能查一下今天行情

# 查看特定技能内容
你:查看 stock-check 技能的内容

# 删除技能
你:删除 stock-check 技能

# 手动编辑 Skill 文件
# 在 ~/.hermes/skills/stock-check/SKILL.md 中直接修改

📁 SKILL.md 文件格式详解

# ~/.hermes/skills/stock-check/SKILL.md
---
name: stock-check
description: 查询A股行情并生成简报
category: finance
version: 1.0
triggers:
  - 查股票
  - 查行情
---

# 股票行情查询技能

## 数据源
- 大盘指数:qt.gtimg.cn/q=sh000001,sz399001,sz399006
- 板块排行:push2.eastmoney.com/api/qt/clist/get

## 流程
1. 获取三大指数数据
2. 获取板块涨跌排行
3. 生成格式化的行情简报
4. 输出给用户

📁 Skill 文件结构

~/.hermes/skills/
├── stock-check/           # 技能目录(名称匹配)
│   ├── SKILL.md           # 技能描述文件(YAML frontmatter + Markdown)
│   ├── references/        # 参考文件(数据字典、API文档)
│   ├── templates/         # 模板文件(输出格式模板)
│   └── scripts/           # 辅助脚本(Python、Shell)
├── bill-sort/
│   └── SKILL.md
├── morning-check/
│   ├── SKILL.md
│   └── templates/
│       └── briefing.md
└── code-review/
    └── SKILL.md

🔄 工作流:创建到使用 Skill

  1. 执行一次——手动完成一次完整流程,确认步骤正确
  2. 保存——"把这个流程存为 Skill,取名 xxx"
  3. 验证——"用 xxx 技能再跑一次" 确认结果一致
  4. 分享——复制 skills/xxx 目录到团队共享目录
  5. 迭代——根据使用反馈更新 SKILL.md 内容

💡 Skill 使用场景

📊 数据查询
股票行情、天气、汇率等定期查询
📝 报告生成
日报、周报、项目进度报告
🔄 文件处理
批量重命名、格式转换、数据清洗
🔧 环境配置
项目初始化、开发环境搭建
💡 Skill 是 HERMES 最强大的功能之一——把常用任务保存为 Skill 后,一句话就能重复执行复杂的多步骤工作流。建议所有高频任务都存为 Skill。

13 🔌 插件系统

📌 什么是插件

插件是 HERMES 的扩展机制,可以为 HERMES 添加新功能、新工具、新集成。插件比 Skill 更底层——Skill 是"教 HERMES 怎么做",插件是"给 HERMES 新能力"。插件可以添加全新的工具类型、连接外部服务、扩展数据源。

🎯 Skill 与插件的区别

特性Skill插件
本质使用说明(提示词+步骤)代码扩展(新功能)
能做什么教 HERMES 用现有工具完成任务给 HERMES 添加全新工具
技术门槛低——对话即可创建高——需要编程能力
共享方式复制 SKILL.md 文件GitHub 仓库安装

📦 安装插件

# 从 GitHub 安装
hermes plugins install https://github.com/user/hermes-plugin-xxx

# 从本地目录安装
hermes plugins install /path/to/plugin

# 查看已安装插件
hermes plugins list

# 启用/禁用插件
hermes plugins enable xxx
hermes plugins disable xxx

# 卸载插件
hermes plugins uninstall xxx

🔨 可用插件类型

🛠️ 自定义工具
图片生成、PDF处理、二维码生成等
🔗 平台集成
飞书、微信、Slack、Discord 消息平台
📊 数据处理
数据库连接、Excel报表、数据可视化
🤖 模型路由
智能选择最优模型、API 负载均衡

📁 插件目录结构

~/.hermes/plugins/
├── enabled/               # 已启用的插件
│   └── image-gen/         # 图片生成插件
│       ├── plugin.yaml    # 插件配置(名称、描述、版本)
│       ├── main.py        # 插件代码(工具实现)
│       └── requirements.txt # 额外依赖(可选)
└── available/             # 安装但未启用的插件
    └── my-plugin/

🔨 快速编写一个插件

# plugin.yaml
name: hello-world
description: 一个简单的示例插件
version: 1.0.0
author: you

tools:
  - name: say_hello
    description: 向用户问好
# main.py  —— 插件实际代码
from hermes.tools import BaseTool

class SayHelloTool(BaseTool):
    """向用户问好的工具"""
    
    name = "say_hello"
    description = "向指定用户问好"
    
    def run(self, name: str) -> str:
        return f"你好,{name}!欢迎使用 HERMES 插件!"

📦 插件安装方式

来源命令说明
GitHub 仓库hermes plugins install https://github.com/user/plugin从远程仓库安装
本地目录hermes plugins install /path/to/plugin从本地目录安装
手动安装复制到 ~/.hermes/plugins/available/手动放置插件
💡 如果找不到需要的插件,可以自己编写——插件本质上是 Python 代码,实现了 HERMES 的插件接口。编写完成后放到 available 目录,用 hermes plugins enable my-plugin 启用。
⚠️ 注意:安装第三方插件前请先审查代码,确保安全。插件有权限执行任意操作。

14 ⏰ 定时任务 Cron

📌 什么是 Cron 任务

Cron 让 HERMES 按计划自动执行任务——日报、数据抓取、监控告警、定期备份、定时通知等,完全无人值守。配合网关使用,即使你不在电脑前,Cron 任务也能通过飞书/微信把结果推送给你。

📖 创建任务

cronjob(action="create",
  name="每日晨报",
  schedule="0 8 * * 1-5",   # 工作日早8点
  prompt="搜索今日AI新闻并生成摘要发给我",
  deliver="origin")

# 更完整的任务示例
cronjob(action="create",
  name="股票盘后分析",
  schedule="0 15 * * 1-5",  # 工作日下午3点
  prompt="1. 获取今日三大指数数据
2. 分析涨幅前5和跌幅前5的板块
3. 生成收盘简报
4. 发送到飞书",
  deliver="feishu:oc_your_chat_id")

📋 Cron 语法速查

示例含义
0 9 * * *每天早上9点
0 9 * * 1-5工作日(周一至五)上午9点
*/30 * * * *每30分钟一次
0 0 1 * *每月1日零点
0 */2 * * *每2小时一次
every 30m每30分钟(简化写法)
every 2h每2小时(简化写法)

🔧 管理任务

# 查看所有定时任务
cronjob(action="list")

# 暂停任务(不删除)
cronjob(action="pause", job_id="xxx")

# 恢复暂停的任务
cronjob(action="resume", job_id="xxx")

# 删除任务
cronjob(action="remove", job_id="xxx")

# 立即手动运行(用于测试)
cronjob(action="run", job_id="xxx")

# 更新任务
cronjob(action="update", job_id="xxx",
  schedule="0 10 * * *")

📋 Cron 参数详解

参数类型说明是否必填
namestring任务名称,用于标识和管理推荐
schedulestring调度表达式(cron 或简化写法)✅ 是
promptstring任务提示词(自包含,完整描述)✅ 是
deliverstring结果投递地址可选
skillsarray任务执行前加载的 Skill 列表可选
modelobject任务使用的模型(provider + model)可选
scriptstring直接运行脚本(绕过 LLM)可选
context_fromarray依赖的其他 Cron 任务 ID可选

🔄 任务链:context_from 用法

# 任务A:采集数据
cronjob(action="create",
  name="采集股票数据",
  schedule="0 15 * * 1-5",
  prompt="获取今日A股行情数据,保存到文件")

# 任务B:分析数据(依赖任务A的结果)
cronjob(action="create",
  name="分析股票数据",
  schedule="5 15 * * 1-5",  # 比A晚5分钟
  prompt="分析上一步采集的股票数据,生成分析报告",
  context_from=["任务A的job_id"])  # 注入A的结果

📜 脚本模式(no_agent)

# 不需要 LLM 的纯脚本任务
cronjob(action="create",
  name="磁盘监控",
  schedule="*/30 * * * *",
  script="/path/to/check_disk.sh",  # 直接运行脚本
  no_agent=true)  # 跳过 LLM,脚本 stdout 直接投递

# 空输出 = 静默(只输出非空时才发消息)
# 非常适合:监控、健康检查、阈值告警

🎯 实用 Cron 任务示例

📰 每日晨报
早8点汇总新闻和日程,发到飞书
📊 股票收盘
下午3点分析今日行情,发简报
📈 周报生成
周五下午5点汇总周数据
🔔 监控告警
每30分钟检查服务器状态,异常告警
🌤️ 天气推送
每天早上7点推送今日天气预报
📋 待办提醒
定时检查日程并提醒即将到期的任务
⚠️ 注意:Cron 任务在独立会话中运行,不共享当前对话的上下文。提示词必须自包含、完整,不能依赖当前对话中的信息。要引用外部数据时使用 context_from 或 script 模式。
💡 调试技巧:先用 cronjob(action="run", job_id="xxx") 手动执行一次,确认结果符合预期后再等待定时触发。使用 no_agent=true 的脚本模式可以节省 token 费用。

15 🔄 子任务并行

📌 什么是子任务并行

使用 delegate_task,HERMES 能同时执行多个独立任务——每个子任务有自己独立的上下文环境和工具集,互不干扰,最终结果统一汇总给你。这就像同时派三个助手分头工作,然后汇总结果。

🏗️ 并行架构

你的
任务
主 Agent
分配任务
↙ ↓ ↘
子A
搜索
子B
分析
子C
写作
各结果 → 汇总 → 给你

📖 使用方式

# 方式1:直接对话(推荐)
你:帮我同时做三件事
1. 搜索今天 AI 行业新闻
2. 查看我的日程安排
3. 检查项目 A 的代码是否有错误

# 方式2:指定工具集
你:帮我同时做:
- 用浏览器打开 news.ycombinator.com
- 用终端检查磁盘空间
- 阅读我的日程文件

🎯 后台运行

子任务在后台独立运行,不阻塞当前对话。你可以在子任务执行的同时继续做其他事,子任务的结果会自动返回。

💡 并行技巧

  • 任务要独立——子任务之间不能互相依赖(A 不需要 B 的结果)
  • 每个任务自包含——提供完整的上下文信息
  • 适合组合:搜索 + 分析 + 生成、检查各服务器状态、多文件并行处理
  • 不适合:需要依赖前一步结果的任务、需要用户确认的任务
  • 最多同时执行 3 个子任务(当前限制)

🔁 delegate_task 底层调用

# HERMES 内部实际调用的方式
delegate_task(tasks=[
  {goal: "搜索今天AI行业新闻", toolsets: ["web"]},
  {goal: "查看日程文件 ~/schedule.md", toolsets: ["file"]},
  {goal: "检查项目A代码是否有语法错误", toolsets: ["terminal", "file"]}
])
# 每个子任务独立运行,结果自动返回

🎯 子任务角色类型

角色可用的工具说明
leaf(叶子)terminal、file、web、browser 等基本工具只能执行任务,不能分配子任务
orchestrator(编排者)leaf 工具 + delegate_task可继续拆分任务给更多子 Agent

💡 并行适用场景判断

独立任务
✅ 适合并行
各任务间
无依赖
同时执行
提速 N 倍

串行任务
❌ 不适合
B 需要 A 结果
必须顺序执行
✅ 适合并行
多源数据搜索、独立文件处理、各服务器状态检查、批量API调用
❌ 不适合并行
需要上一步结果、共享资源写冲突、需要用户交互确认
💡 并行子任务最多 3 个并发(可配置)。如果任务数超过上限,多余任务排队等待。并行适合"搜+看+查"这种互相独立的任务组合。

16 🌉 网关与消息平台

📌 什么是网关

网关(Gateway)是 HERMES 的消息桥梁——让你通过飞书、微信、Telegram 等即时通讯软件与 HERMES 对话,而不只是在终端使用。开启了网关,你可以在手机上给 HERMES 发消息,就像跟一个同事聊天一样方便。

🏗️ 架构

飞书
微信
HERMES
Gateway
HERMES
Agent
你在手机发消息 → 网关转发 → HERMES 处理 → 网关回复 → 手机收到

🚀 启动网关

# 启动时带网关(推荐)
hermes start --gateway

# 后台守护模式运行
hermes start --daemon --gateway

# 查看网关状态
hermes gateway status

# 测试网关是否正常运行
curl http://localhost:8080/health

🔧 网关配置

# config.yaml 网关配置
gateway:
  enabled: true
  port: 8080              # 网关监听端口
  platforms:
    - feishu              # 飞书
    - weixin              # 微信(如已配置)

# .env 中的平台配置
FEISHU_APP_ID=cli_xxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxx
FEISHU_VERIFICATION_TOKEN=xxxxx
# WEIXIN_APP_ID=wx_xxxxx
# WEIXIN_APP_SECRET=xxxxx

📋 平台接入步骤

  1. 飞书开放平台:创建企业自建应用 → 获取 App ID / App Secret → 配置事件回调 URL({你的网关}/webhook/feishu)→ 订阅 im.message.receive_v1 事件 → 添加 im:message 权限 → 发布上线
  2. 微信:前往微信公众平台 → 创建服务号 → 开发 → 基本配置 → 配置服务器 URL({你的网关}/webhook/weixin)→ Token 需与 .env 一致 → 获取 AppID / AppSecret
  3. Telegram:在 Telegram 中搜索 BotFather → 发送 /newbot → 获取 Token → 配置到 .env 的 TELEGRAM_BOT_TOKEN

🔧 平台配置参考

# .env 中的平台配置
# 飞书
FEISHU_APP_ID=cli_a7xxxxxxxxxxxx
FEISHU_APP_SECRET=*** 微信
WEIXIN_APP_ID=wx_xxxxxxxxxxxx
WEIXIN_APP_SECRET=*** Telegram
TELEGRAM_BOT_TOKEN=123456:ABC-*** 网关健康检查
curl http://localhost:8080/health
# 返回 {"status":"ok","platforms":["feishu","weixin"]}

# 查看具体平台连接状态
curl http://localhost:8080/status

💡 网关使用技巧

  • 启动后先测试健康检查端点 curl http://localhost:8080/health
  • 飞书回调 URL 必须是公网可访问的,本地开发用 frp 或 ngrok 穿透
  • 网关日志通过 hermes logs | grep gateway 查看
  • 如果某平台收不到消息,先检查该平台的开发者后台是否正确配置
  • Cron 任务的 deliver 参数设为"all"会把结果推送到所有已连接平台
⚠️ 网络要求:平台服务器需要能访问你的网关地址。如果在本地运行,需要使用内网穿透(frp / ngrok)或部署到云服务器(见第 32 章)。
💡 接入后你可以在手机上和 HERMES 对话,Cron 任务的结果也能直接推送到你的聊天窗口。多平台可以同时接入,消息会路由到对应的会话。

17 🧠 记忆系统

📌 什么是记忆

记忆系统是 HERMES 区别于普通 AI Chat 的关键特性——它能跨会话记住信息。你告诉它的偏好、环境配置、工作流知识,在下次对话或下下次对话中仍然有效,不需要重复说明。

📖 记忆的工作原理

你说
重要信息
HERMES
自动判断
存入
memory.db
下次会话
自动注入

💾 记忆操作

# 主动保存(推荐显式告知)
你:记住我的工作目录是 D:/Projects
你:记住我喜欢用 Markdown 格式回复
你:记住我的 API Key 在 .env 文件里
你:记住这个数据源:qt.gtimg.cn 可以查股票行情

# 查看已记住的信息
你:你记得哪些关于我的信息?
你:记忆里有什么重要内容?

# 修改记忆
你:把我的工作目录改到 E:/Work

# 删除记忆
你:忘掉刚才那个 API 地址

💡 记忆管理技巧

📌 明确告知
直接说"记住..."比让 HERMES 自己判断更可靠
🗑️ 定期清理
过时的路径、密码、配置要及时更新或删除
📋 结构化保存
存工作流步骤(怎么做)比存单条数据(数值)更有价值
🔒 隐私注意
敏感信息(密码)记得定期清理,不要长期保留

📁 存储位置

~/.hermes/
├── memory.db          # 记忆数据库(SQLite,自动维护)
├── memory/            # 用户信息目录(手工编辑可用)

🤖 HERMES 自动记忆的内容

信息类型示例保存时机
用户偏好"我喜欢用表格"、"用 Markdown 回复"主动告知时
环境配置"我的项目在 D:/Projects"、"Python 版本是 3.11"对话中提到时
数据源API 地址、查询语句、文件路径明确要求记住时
工作流知识处理流程、工具偏好、输出格式偏好重复使用时
身份信息用户名、角色、公司名自我介绍时

🎯 记忆管理策略

📌 主动告知
直接说"记住..."比靠 HERMES 自己判断更可靠、更精准
🗑️ 定期清理
过时的路径、密码、临时数据要及时清理,避免冲突
📋 结构化保存
存"怎么做"(工作流)比存"是什么"(数值)更有长期价值
🔒 隐私保护
API Key、密码等敏感信息不要长期保存在记忆中
🔄 更新策略
信息变化时主动说"更新记忆:...""忘掉旧的,记住新的"
📊 容量管理
HERMES 有容量上限,优先保存最重要的,过时的会被自动淘汰

🔍 检查记忆状态

# 查看所有记忆
你:你记得哪些关于我的信息?
你:我的记忆里有什么内容?
你:查一下你记住的数据源

# 更新记忆
你:忘掉之前的工作目录
你:把工作目录改成 E:/Projects

# 批量清理
你:帮我清理所有过时的记忆
你:重新帮我整理一下记忆内容
💡 记忆容量有限,优先保存最重要的信息。HERMES 会自动按重要程度排序,优先保留高频使用的记忆。建议每周检查一次记忆内容,清理过时的条目。

18 👤 Profile 配置档

📌 什么是 Profile

Profile 是 HERMES 的多配置方案——你可以为不同使用场景准备独立的配置文件、技能包、记忆库和环境变量。工作用一套配置,个人用另一套,互不干扰,切换只需要一个参数。

🎯 典型使用场景

💼 工作 Profile
公司 API Key、项目 Skills、企业知识库、团队共享配置
🏠 个人 Profile
个人偏好设置、生活助手技能、学习笔记、个人记忆
🔬 开发 Profile
实验性配置、测试不同模型、调试工具、开发版 Skills

📖 使用 Profile

# 启动时指定 Profile
hermes --profile work start
hermes --profile personal start

# 查看当前使用哪个 Profile
hermes config get profile

# 创建新 Profile
mkdir -p ~/.hermes/profiles/myprofile
# 在目录中创建独立的 config.yaml 和 .env

📁 Profile 目录结构

~/.hermes/profiles/
├── default/               # 默认配置(不指定 profile 时使用)
│   ├── config.yaml
│   ├── .env
│   ├── skills/
│   └── memory.db
├── work/                  # 工作 Profile
│   ├── config.yaml        # 独立的模型/工具配置
│   ├── .env               # 公司的 API Key
│   ├── skills/            # 工作相关的 Skills
│   │   ├── code-review/
│   │   └── daily-report/
│   └── memory.db          # 独立的记忆库
├── personal/              # 个人 Profile
│   ├── config.yaml
│   ├── .env               # 个人的 API Key
│   ├── skills/
│   │   ├── stock-check/
│   │   └── study-helper/
│   └── memory.db
└── dev/                   # 开发 Profile
    ├── config.yaml
    ├── .env
    └── skills/

🛠️ 创建新 Profile

# 方式1:手动创建目录
mkdir -p ~/.hermes/profiles/work
# 复制默认配置作为起点
cp ~/.hermes/config.yaml ~/.hermes/profiles/work/
# 创建独立的 .env
touch ~/.hermes/profiles/work/.env

# 方式2:让 HERMES 帮你创建
你:帮我创建一个新的 Profile 叫 work
你:创建开发用的 Profile 叫 dev

# 启动时指定 Profile
hermes --profile work start --gateway
hermes --profile dev start

📋 Profile vs 多实例对比

特性Profile多实例
同时运行一次只能用一个可同时运行多个
端口相同端口每个实例不同端口
记忆隔离✅ 独立记忆库✅ 完全隔离
配置隔离✅ 独立配置✅ 完全独立
资源占用一份多份(各占内存)
适合场景工作/个人切换多角色同时在线

💡 Profile 使用技巧

  • 切换 Profile 需要重启 HERMES——不同的 Profile 不会同时运行
  • 默认 Profile(default)在不指定 --profile 时使用
  • 每个 Profile 有独立的记忆库——工作记忆不会混入个人记忆
  • 共享 Skills 可以放在公共目录,各 Profile 通过符号链接引用
  • 不同 Profile 可以使用不同的 API Key 和模型配置,方便费用管理

19 🏠 后台守护模式

📌 什么是守护模式

守护模式(Daemon)让 HERMES 在后台持续运行——即使关闭了终端窗口或 SSH 连接断开,HERMES 仍在工作。配合网关(Gateway),你可以随时通过飞书/微信给后台的 HERMES 发消息。

🚀 启动守护模式

# 最简单的启动方式
hermes start --daemon --gateway

# 指定 Profile 启动
hermes --profile work start --daemon --gateway

# 指定端口(避免冲突)
hermes start --daemon --gateway --port 8081

🪟 Windows 自启动(bat 脚本)

# 创建 start_hermes.bat,放到「启动」文件夹
@echo off
cd /d D:\hermes-agent
call .venv\Scripts\activate
hermes start --daemon --gateway

# 或创建 VBS 脚本(无窗口后台运行)
' start_hermes.vbs
CreateObject("WScript.Shell").Run "cmd /c D:\hermes-agent\start_hermes.bat", 0, False

🔧 管理守护进程

操作命令
查看运行状态hermes status
查看最近日志hermes logs --tail 50
持续跟踪日志hermes logs --follow
停止守护进程hermes stop
重启hermes stop && hermes start --daemon --gateway

🪟 Windows 注册为服务(后台常驻)

# 使用 NSSM(Non-Sucking Service Manager)注册为 Windows 服务
# 1. 下载 nssm.exe https://nssm.cc/download
# 2. 注册服务
nssm install HermesAgent

# 在弹出的界面中配置:
# Application Path: C:\path	o\.venv\Scripts\hermes.exe
# Arguments: start --daemon --gateway
# Startup directory: C:\path	o\hermes-agent

# 3. 启动服务
nssm start HermesAgent

# 4. 查看状态
nssm status HermesAgent

# 5. 设置开机自启(默认已开启)
nssm set HermesAgent Start SERVICE_AUTO_START

🔄 守护进程生命周期管理

阶段操作命令
启动启动后台守护hermes start --daemon --gateway
检查确认运行中hermes status
监控跟踪日志hermes logs --follow
更新升级后重启hermes stop && git pull && pip install -e . && hermes start --daemon
停止安全关闭hermes stop

💡 建议

  • 配合 系统自启动 使用,开机自动运行
  • Windows:启动文件夹 bat / VBS 脚本,或注册为 NSSM 服务
  • Linux:用 systemd 服务(见第 32 章详细配置)
  • 定期检查日志(每周一次),确保守护进程正常运行
  • 升级前先 hermes stop,升级完成再启动
  • 建立启动日志,遇到问题时方便回溯
⚠️ 注意:Windows 上如果以 bat 方式启动,关闭 cmd 窗口会结束进程。建议用 VBS 脚本(无窗口)或注册为 Windows 服务。Linux 上务必使用 systemd 服务管理。

20 🔍 调试与排错

📌 诊断命令大全

命令用途示例
hermes logs --tail 30查看最近 30 行日志快速定位最新错误
hermes logs | grep error过滤错误信息找出所有 ERROR
hermes logs -f持续跟踪日志输出实时监控运行状态
hermes status查看运行状态是否在运行
hermes config get查看当前配置检查配置是否正确
hermes config reset重置配置到默认配置乱了时恢复

🔧 常见问题与解决

问题原因解决
command not found虚拟环境未激活运行 .venv\Scripts\activate
ModuleNotFoundError依赖未安装运行 pip install -e .
Port already in use端口被其它进程占用hermes stop 或指定其他端口
Connection refusedAPI 地址/Key 配置错误检查 config.yaml 和 .env
启动后无响应API Key 无效或网络不通检查 .env 中的 Key,测试网络连通性
工具调用超时命令执行时间过长增加 timeout 参数
中文乱码编码问题终端设为 UTF-8,使用英文路径

🌐 网络诊断工具

命令检查内容正常结果
ping api.deepseek.com基础网络连通性有响应时间
curl -v https://api.deepseek.comHTTPS 连接全过程TLS 握手成功,HTTP 响应
nslookup api.deepseek.comDNS 解析返回 IP 地址
curl -s -o /dev/null -w "%{time_total}s" https://api.deepseek.com响应总耗时> 5s 说明网络慢
curl -s https://httpbin.org/ip本机公网 IP返回 IP 地址

🔄 恢复步骤(按严重程度排序)

  1. 查看日志 — 先看 hermes logs --tail 30,日志里有最详细的错误原因
  2. 发日志给 HERMES帮我看看这个日志哪里错了,它自己能分析自己的错误
  3. 重启hermes stop && hermes start,解决很多临时问题
  4. 检查网络 — 用上面的网络诊断工具测试 API 连通性
  5. 备份并重置 — 备份 ~/.hermes,然后 hermes config reset
  6. 重装依赖 — 删除 .venv 重新 uv pip install -e .

💡 调试技巧

  • 查看日志永远是第一步——日志里有最详细的错误信息
  • 把日志内容直接发给 HERMES:帮我看看这个日志哪里错了
  • 升级前先备份 ~/.hermes 整个目录
  • 遇到奇怪问题先试试重启——能解决大部分临时故障
  • 升级后如果出问题,检查是否需要更新 config.yaml 格式
⚠️ 最后手段:如果所有方法都无效,在 GitHub 上提 issue,附上日志和前 30 行配置(去掉 API Key)。

21 🔒 安全与最佳实践

📌 API 安全——最高优先级

🔴 绝对不要:把 API Key 写在代码里、提交到 Git 仓库、截图分享、在对话中直接明文发送
🟢 正确做法:所有 API Key 和 Secret 放在 .env 文件,.env 加入 .gitignore,通过 ${KEY} 引用

🛡️ 安全清单

项目建议风险等级
API Key 管理放在 .env,使用环境变量引用 ${KEY}🔴 高
Git 提交.env、memory.db、*.log、*.db 加入 .gitignore🔴 高
网关端口不要暴露到公网,用防火墙限制访问 IP🟡 中
HTTPS 加密生产环境务必配置 HTTPS(见第 32 章)🟡 中
定期轮换每季度更换一次 API Key,不要长期使用同一个🟢 建议
权限最小化只给 HERMES 需要的最小权限🟢 建议

📋 .gitignore 推荐配置

# 必加项(防止密钥和数据库泄露)
.env
*.db
*.log
__pycache__/
.venv/

# 建议添加
config.yaml          # 如果包含敏感信息
*.key
.secrets
credentials*
token*
secret*

# HERMES 特定
~/.hermes/
hermes.log
.cache/
*.pid

🛡️ 攻击面分析与防范

攻击面风险防范措施
API Key 泄露他人使用你的 Key 调用付费 API.env 不外泄,季度轮换,用量监控
网关暴露公网可访问网关端口防火墙限制 IP,配置 HTTPS 和认证
Computer Use 滥用Agent 误操作系统文件不授予管理员权限,HERMES 会自动询问确认
记忆数据泄露敏感信息长期留在记忆中定期清理,不存密码,使用 Profile 隔离
插件安全第三方插件可能有恶意代码审查插件源码后再安装,限制权限
日志泄露日志中可能包含敏感信息日志不提交 Git,定期轮转清理

✅ 最佳实践汇总

👤 Profile 隔离
工作和个人使用不同 Profile,配置和记忆互不干扰
🧹 定期清理
hermes new 定期开启新会话,减少上下文泄露风险
📦 备份配置
定期备份 ~/.hermes 目录到安全位置
🛡️ 计算机权限
Computer Use 功能注意授权范围,不让它操作敏感区域
⚠️ 提醒:如果你的 API Key 泄露了,立即在提供商平台撤销并重新生成。不要在公共网络中使用网关功能。

22 🎓 大模型应用训练

📌 提示词工程基础

好的提示词(Prompt)能让 HERMES 的输出质量提升数倍。以下是经过验证的核心原则——理解这些,你的 HERMES 使用体验会有质的飞跃。

🎯 提示词五大原则

🎯 具体明确
不要说"帮我整理一下",要说"提取前3个重点,每点不超过50字,用数字列表"
📋 提供格式
指定输出格式:JSON、表格、Markdown、纯文本、代码块
📚 给足上下文
提供背景信息、前置条件、约束条件,而不是让 HERMES 猜测
🔄 迭代优化
不满意就补充要求("改成表格"、"再加一列"),不需要从头重写
🎭 设定角色
"你是一个资深 Python 开发者"、"你是一名数据分析师"——角色设定提升专业性
📏 控制长度
"用3句话总结"、"不超过200字"、"列出要点"——避免长篇大论

📝 提示词模板示例

# 结构化的提示词
你:[角色]作为数据分析师,
[任务]分析下面这份销售数据,
[格式]用表格展示:月份、销售额、增长率,
[约束]只输出表格,不要其他文字,
[数据]2024年Q1:1月100万、2月120万、3月150万

# 效果:HERMES 会严格按照你的四段式指令执行

💡 System Prompt 优化

在 config.yaml 中设置 system_prompt,让 HERMES 始终保持特定风格和行为模式:

# config.yaml
system_prompt: |
  你是一个专业的 Python 开发助手。
  回复要简洁,代码要有注释。
  先解释思路,再给代码。
  不要使用 "首先/然后/最后" 等过渡词。
  如果问题不明确,先问清楚再回答。

🔁 多轮对话技巧

# 第1轮:提出任务
你:帮我分析这份服务器日志

# 第2轮:补充要求
你:只看 ERROR 和 WARN 级别
你:按时间排序显示
你:把重复的错误去重

# 第3轮:调整输出
你:改成表格,加一列"出现次数"
你:导出为 CSV 文件保存到桌面

📖 Few-Shot 示例引导

给 HERMES 提供输入输出示例,能显著提升特定任务的准确性:

你:我需要把产品名称转成标准格式,示例如下:
输入:"苹果 iPhone 15 Pro Max 256GB 深黑色"
输出:iPhone 15 Pro Max / 256GB / 深黑

输入:"华为 Mate60 Pro 512GB 雅丹黑"
输出:Mate60 Pro / 512GB / 雅丹黑

现在帮我转换:
输入:"三星 Galaxy S24 Ultra 1TB 钛灰"

🧠 Chain of Thought(思维链)

让 HERMES 展示推理过程可以提高复杂任务的准确率:

你:一步一步思考,然后回答:
公司A 的营收是 1000万,成本是 600万
公司B 的营收是 800万,成本是 500万
问:哪家公司的利润率更高?
请先列出计算过程,再给出答案

🎭 角色设定模板

# 不同的角色设定适合不同的任务类型
你:你是一个资深 Python 架构师,帮我 review 这段代码
你:你是一个金融分析师,分析这个股票的技术面
你:你是一个资深编辑,帮我润色这篇文章
你:你是一个系统管理员,帮我诊断服务器问题
你:你是一个法律顾问,帮我审查这份合同的条款
💡 黄金法则:第一次问不好没关系,继续补充要求。HERMES 会记住上下文,在多轮迭代中逐步逼近你想要的精确结果。

23 🔧 工作流搭建与应用

📌 什么是工作流

工作流是一系列有序步骤的组合——将多个工具调用和判断逻辑串联起来完成一个复杂任务。HERMES 会自动规划执行路径并逐步完成,你只需要描述想要的结果。

🏗️ 工作流通用结构

触发
指令/定时
步骤1
获取数据
步骤2
处理分析
步骤3
生成输出
步骤4
发送结果

📖 三种搭建方式

方式说明适合场景
对话式直接描述步骤,HERMES 自动执行一次性或临时任务
Cron 定时设定 schedule,自动执行每日/每周定期任务
Skill 封装保存为 Skill 可随时复用高频执行的标准化流程

📋 实战示例:每日数据报告

# 第1步:在工作流运行之前先准备好
你:帮我设计一个每日数据报告工作流

# 第2步:描述工作流步骤
1. 每天早上8点从数据库拉取昨日销售数据
2. 计算关键指标(日活用户、收入、转化率)
3. 与上周同期对比,标注涨跌
4. 生成简洁的 HTML 报告
5. 发送到飞书团队群

# 第3步:保存为 Skill
你:把这个工作流存为 Skill 叫 daily-report
# 之后只需说:用 daily-report 技能跑今天的报告

🔀 带条件分支的工作流

你:帮我设计一个带条件判断的工作流
每天早上8点:
1. 获取服务器状态(CPU、内存、磁盘)
2. 判断状态:
   - 如果所有指标正常 → 记录日志,不通知
   - 如果 CPU > 80% → 发送告警到飞书
   - 如果磁盘 > 90% → 发告警并建议清理
   - 如果有任何指标异常 → 生成状态报告
3. 保存状态快照到文件

📋 工作流设计模式

模式结构适用场景
流水线A → B → C → D数据处理、报告生成
分支条件判断 → A 或 B监控告警、分类处理
并行A + B + C → 汇总多源数据采集
循环A → 判断 → 继续/停止批量处理所有文件
重试A → 失败 → 等待 → 重试 A网络请求、API调用

💡 工作流设计原则

🎯 步骤清晰
每个步骤只做一件事,步骤之间边界明确
✅ 可测试
每一步都能独立验证结果是否正确
🛡️ 有容错
某一步失败时知道如何处理(重试/跳过/告警)
📦 可复用
保存为 Skill,替换参数即可重复使用
💡 从简单工作流开始(2-3步),验证通过后再增加复杂度。好的工作流应该让 HERMES 一次执行成功率 > 90%。条件分支善用"如果...否则..."句式。

24 📚 知识库相关知识

📌 什么是知识库(RAG)

知识库是 HERMES 的外部知识来源——把你公司的产品文档、技术手册、操作规范放进去,HERMES 在回答时会先检索相关知识再生成回答(RAG:检索增强生成)。这意味着 HERMES 可以回答它训练数据中不存在的特定领域问题。

🏗️ RAG 工作流程

你的
文档
知识库
索引
检索
匹配
HERMES
回答
你提问 → 检索相关文档 → 注入上下文 → 生成精准回答

📁 知识库目录结构

~/.hermes/knowledge/
├── 产品手册/
│   ├── 功能介绍.md
│   ├── 版本更新.md
│   └── FAQ.md
├── 技术文档/
│   ├── API参考.md
│   ├── 部署指南.md
│   └── 数据库设计.md
├── 培训资料/
│   ├── 新手教程.md
│   └── 最佳实践.md
└── 公司规范/
    ├── 代码规范.md
    └── 安全制度.md

📖 使用方式

# 添加文档到知识库
你:把这份产品文档加到知识库
你:把这个 FAQ 文件导入知识库

# 基于知识库提问
你:根据产品手册,介绍一下核心功能
你:查一下我们的 API 限流规则是什么
你:根据部署指南,新服务器需要装哪些依赖

# 更新知识库
你:把新的 API 文档替换旧的版本

🏗️ RAG 技术实现原理

  1. 文档索引:知识库中的文档被解析成文本块并建立索引
  2. 查询检索:用户提问时,系统根据问题在知识库中检索最相关的文档块
  3. 上下文注入:检索到的相关文档块被注入到 LLM 的上下文中
  4. 增强生成:LLM 基于检索到的知识 + 自身能力生成更准确的回答

📁 支持的文件格式

格式说明推荐用途
.md(Markdown)纯文本标记语言文档、手册、规范 ⭐推荐
.txt纯文本简单笔记、日志
.json / .yaml结构化数据配置参考、数据字典
.csv表格数据FAQ 列表、参数对照表

📚 企业知识库搭建案例

# 推荐结构
~/.hermes/knowledge/
├── 产品手册/
│   ├── 01-产品概述.md
│   ├── 02-功能说明.md
│   ├── 03-版本更新日志.md
│   └── FAQ.md
├── 技术文档/
│   ├── API参考.md
│   ├── 部署指南.md
│   ├── 数据库设计.md
│   └── 架构说明.md
├── 培训资料/
│   ├── 新手教程.md
│   └── 最佳实践.md
└── 公司规范/
    ├── 代码规范.md
    ├── 安全制度.md
    └── 流程规范.md

💡 知识库最佳实践

  • 文档格式:推荐 Markdown 格式,结构清晰,层级分明,易于检索
  • 分门别类:按主题/部门/项目分类存放,文件名加编号便于维护
  • 定期更新:文档更新后同步更新知识库,避免回答过时信息
  • 质量控制:知识库内容的质量直接决定回答的准确性,定期审核
  • 原子化:每个文档聚焦一个主题,不要把所有内容堆在一个文件里
  • 版本管理:重要文档加版本号,方便追踪变更历史
💡 知识库特别适合企业场景——产品手册、内部规范、培训资料都可以放进去,打造属于你团队的专业 AI 助手。一个好的知识库能让 HERMES 的回答准确率从 70% 提升到 95%+。

25 🧭 图示化决策与排查树

🔍 安装问题排查树

从顶部开始,根据你的情况跟着箭头走。每一步都有对应的解决方案和具体命令。

❓ HERMES 启动报错?
├─ ✅ 是 "command not found"
│ └─ 没激活虚拟环境 → 先运行 .venv\Scripts\activate(Windows)或 source .venv/bin/activate(Mac/Linux)
├─ ✅ 是 "ModuleNotFoundError"
│ └─ 依赖没装全 → pip install -e .uv pip install -e .
├─ ✅ 是 "Port already in use"
│ ├─ 另一个 HERMES 在跑 → hermes stop
│ └─ 其他程序占端口 → netstat -ano | grep 端口号 找进程杀掉
├─ ✅ 是 "Connection refused"
│ ├─ API 地址填错 → 检查 config.yaml 里的 api_base
│ ├─ 网络被墙 → 开 Watt Toolkit 或换网络环境
│ └─ API Key 无效 → 重新生成并更新 .env
├─ ✅ 是 "SSL certificate" 错误
│ └─ 证书问题 → curl 加 -k 或更新 CA 证书
├─ ✅ 是 "Timeout" 超时
│ └─ 网络不稳定或模型太慢 → 检查网络,换更快的模型
└─ ❌ 其他错误
└─ 看日志 → hermes logs --tail 30 → 把最后几行发给 HERMES 分析
└─ 如果以上都不行 → 重置配置 hermes config reset 或重新安装

⚡ 模型响应慢排查树

❓ 模型回复很慢?
├─ 是否使用云端模型?
│ ├─ ✅ 是(云端)
│ │ ├─ 网络慢 → 测速 curl -s -o /dev/null -w "%{time_total}s" https://api.deepseek.com(>2s 说明网络慢)
│ │ ├─ 模型太大 → 换轻量模型 deepseek-v4-flash(比 chat 快 3-5 倍)
│ │ ├─ API 限流 → 等 1 分钟再试,降低请求频率
│ │ └─ 响应太长 → 设 max_tokens: 1024 缩短输出长度
│ └─ ❌ 否(本地模型)
│ ├─ 显存不够(OOM) → 加 --lowvram 参数,可降低 30-40% 显存占用
│ ├─ 模型太大 → 换小模型(7B → 3B 如 phi-3)
│ ├─ CPU 模式(极慢) → 确认 GPU 驱动正常 nvidia-smi,安装 CUDA
│ └─ 推理框架 → 确保用 llama.cpp 或 Ollama,不要用纯 CPU 推理
└─ 优化后仍慢 → 检查系统资源(内存/CPU/磁盘IO),或换回云端模型

🔧 工具调用失败排查树

❓ 工具调用失败?
├─ 终端工具
│ ├─ "command not found" → 命令没装 → apt installbrew installpip install
│ └─ 权限不足 → Windows 用管理员终端,Linux 加 sudo
├─ 文件工具
│ ├─ 路径不存在 → 检查路径拼写和大小写
│ ├─ 中文路径问题 → 尽量用英文路径,避免特殊字符
│ └─ 权限拒绝 → 检查文件是否被其他程序占用
├─ 网络工具
│ ├─ HTTPS 证书错误 → curl 加 -k 跳过验证
│ ├─ DNS 解析失败 → nslookup api.deepseek.com 检查 DNS,换 8.8.8.8
│ └─ 连接超时 → 检查防火墙和代理设置
├─ 浏览器工具
│ ├─ 页面空白 → 确认 URL 可访问,检查网络
│ └─ 点不动元素 → 页面未完全加载,等一会儿再试
├─ Computer Use
│ ├─ 空白截图 → 指定 app="目标应用" 参数
│ └─ 点击没反应 → 元素被遮挡,先 focus_app 再试
└─ 通用方案 → 重启 HERMES hermes stop && hermes start

📱 网关连接排查树

❓ 飞书/微信发消息没回复?
├─ 网关启动了吗?
│ ├─ ❌ 没启动hermes start --gatewayhermes start --daemon --gateway
│ └─ ✅ 已启动
│ ├─ 检查网关状态 → hermes gateway status
│ ├─ 端口通吗? → curl http://localhost:8080/health 应返回 OK
│ └─ 飞书配置对吗?
│ ├─ App ID / Secret 填错 → 检查 .env
│ ├─ 权限没开 → 飞书开放平台检查权限(im:message)
│ ├─ 事件没订阅 → 添加 im.message.receive_v1 事件
│ └─ 回调地址不对 → 确认 URL 是网关公网地址 + /webhook/feishu
└─ 还是不行 → 看日志 hermes logs | grep -i gateway 定位错误

📋 通用排错检查清单

如果上面的排查树没命中你的问题,按以下顺序检查:

  1. 网络连通性ping api.deepseek.comcurl -v https://api.deepseek.com
  2. API Key 有效性:在提供商网站测试 Key 是否正常
  3. 日志分析hermes logs --tail 50 | grep -i error 提取错误信息
  4. 版本兼容:更新到最新版本 git pull && pip install -e .
  5. 最小化测试:新建一个最小 config.yaml,排除配置问题
  6. 环境检查:确认 Python 版本 >= 3.10 python --version
  7. 依赖重装uv pip install -e . 确保所有依赖正确安装

⚠️ 错误日志快速定位指南

日志关键词可能原因解决方案
ConnectionError / Timeout网络不通或 API 超时检查网络、换代理、加超时时间
401 UnauthorizedAPI Key 无效重新生成 Key,检查 .env
ModuleNotFoundError依赖缺失重新安装 uv pip install -e .
FileNotFoundError文件路径错误检查路径拼写和权限
Permission denied权限不足Windows 用管理员,Linux 加 sudo
Address already in use端口被占用换端口或杀掉占用进程
JSONDecodeErrorAPI 返回非 JSON检查 API 地址是否正确

26 ⚡ 性能调优专题

📈 模型响应速度优化方法一览

方法效果操作适用场景
换更快的模型提升 2-5 倍deepseek-chat → deepseek-v4-flash所有场景
降低 max_tokens提升 10-30%config 里设 max_tokens: 2048短回复任务
降低 temperature略微提升temperature: 0.1精确任务
启用流式输出首字快 3 倍stream: true所有场景 ⭐推荐
本地用小模型提升 3-5 倍qwen2.5:7b → qwen2.5:3b 或 phi-3本地推理
减少上下文轮数提升 10-20%hermes new 定期清空长会话
💡 实测数据(DeepSeek):
• deepseek-chat:首字 1.2s,1000 tokens 约 5s
• deepseek-v4-flash:首字 0.3s,1000 tokens 约 1.5s(快 3 倍)
建议日常用 Flash,复杂任务切 Chat 或 Sonnet。

⚡ 模型响应速度对比

⚡ DeepSeek V4 Flash < 1s 首字 ⭐推荐
⚡ GPT-4o Mini ≈ 0.8s 首字
⚡ DeepSeek Chat ≈ 1.2s 首字
⚡ Claude Sonnet ≈ 1.5s 首字
⚡ Qwen2.5:7b 本地 GPU ≈ 8-15s 首字
⚡ Qwen2.5:7b CPU ≈ 30-60s 首字(不推荐)

💾 显存管理技巧

场景显存占用建议
纯云端模型0 MB不需要独立显卡
本地 7B 模型(FP16)~6 GB加 --lowvram 降到 ~4 GB
本地 13B 模型~10 GB需要 12 GB+ 显存
本地 7B 模型(4bit 量化)~4 GB推荐——几乎无质量损失
ComfyUI SDXL~4-6 GB加 --lowvram 运行
ComfyUI + 本地模型同时~10 GB+不建议同时运行
⚠️ --lowvram 原理:模型分块加载到显存,用完一部分就卸载。速度会慢 10-20%,但显存占用降低 30-40%。如果你的显卡是 6GB 且遇到 OOM,这是首选方案。

💰 API 费用节省策略

策略节省操作方法年省估算
日常用便宜的模型50-80%Flash / Mini 替代旗舰模型数千元
压缩提示词20-40%system_prompt 精简到 200 字以内数百元
缓存常见回答30-60%常见问答设为 Skill,避免重复调用数百元
减少上下文长度10-30%定期 hermes new,不要一个会话用太久数百元
用本地模型做简单任务100%简单问答、格式转换用 Ollama 本地跑完全免费

🎯 模型选择决策指南

❓ 选哪个模型?
├─ 只是日常聊天、简单问答?
│ └─ → deepseek-v4-flash(又快又便宜,性价比之王)
├─ 要写代码、调 Bug?
│ └─ → claude-sonnet-4gpt-4o(代码能力最强)
├─ 要看图分析(多模态)?
│ └─ → qwen-vl-maxgpt-4o
├─ 完全免费离线运行?
│ └─ → qwen2.5:7b(Ollama 本地部署,完全免费)
├─ 要生成图片?
│ └─ → Agnes-2.0ComfyUI(SDXL 工作流)
├─ 处理超长文档/论文?
│ └─ → gpt-4oclaude-sonnet-4(大上下文窗口)
└─ 企业级、要求高准确率?
└─ → claude-sonnet-4gpt-4o + RAG 知识库

⚡ 日常使用优化清单

  1. 默认模型设 Flash:日常 90% 的任务完全够用,费用仅为旗舰模型的 1/30
  2. 开启流式输出:stream: true,首字显示快 3 倍,体验更好
  3. 控制 max_tokens:简单问答设 1024,复杂任务设 4096,避免浪费
  4. 定期清会话:每 20-30 轮 hermes new 一次,减少上下文消耗
  5. 常用任务存 Skill:减少重复的提示词和上下文,节省 30-60% token
  6. 配置 temperature:精确任务设 0.1,创意任务设 0.8

📊 性能基准测试方法

# 测试 API 响应速度
curl -s -o /dev/null -w "总耗时: %{time_total}s
连接: %{time_connect}s
首字: %{time_starttransfer}s
" \
  https://api.deepseek.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer *** \
  -d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"你好"}],"stream":false,"max_tokens":10}'

# 测试令牌生成速度(多次取平均)
for i in 1 2 3; do
  curl -s ... -o /dev/null -w "%{time_total}s\n"
done

⚡ 不同场景的模型推荐

场景推荐模型温度max_tokens
日常问答DeepSeek V4 Flash0.71024
代码生成Claude Sonnet 40.24096
数据分析DeepSeek Chat0.34096
创意写作GPT-4o0.92048
翻译GPT-4o Mini0.32048
简单格式转换本地 Qwen2.50.1512

27 🤝 多 Agent 与团队协作

🏗️ 多 Agent 架构图解

多 Agent 协作的核心思想是分工合作——一个主 Agent 负责任务拆解和结果汇总,多个子 Agent 并行执行独立任务,大幅提升效率。

🧑 你
发任务
主 Agent
分配/汇总
↙ ↓ ↘
子Agent A
搜索
子Agent B
分析
子Agent C
写作
各结果 → 主 Agent 汇总 → 给你

🔄 用 delegate_task 实现多 Agent

在同一个 HERMES 实例里,你可以同时派出多个子任务并行工作——每个子任务有自己独立的上下文和工具集:

# 同时做三件事,互不干扰
你:帮我同时做以下三件事:
1. 搜索今天AI行业新闻
2. 查看我的日程安排
3. 检查项目A的代码是否有错误

# HERMES 内部会这样调度(你不需要手动写这个)
delegate_task(tasks=[
  {goal: "搜索今天AI行业新闻", toolsets: ["web"]},
  {goal: "查看日程文件 ~/schedule.md", toolsets: ["file"]},
  {goal: "检查项目A代码是否有语法错误", toolsets: ["terminal"]}
])
# 每个子任务独立运行,结果自动返回

🎯 delegate_task 参数详解

参数说明示例
goal任务目标(必填)"搜索今天AI新闻"
context背景信息"我关注大模型和机器人领域"
toolsets可用工具集["web"]、["terminal","file"]

🖥️ 多 HERMES 实例协作(高级)

你可以同时运行多个 HERMES 实例,每个干不同的活,通过不同端口访问:

# 终端1:启动实例A(用默认配置,做日常问答)
hermes start --port 8081

# 终端2:启动实例B(用工作配置,做代码审查)
hermes --profile work start --port 8082

# 终端3:启动实例C(用网关,接飞书消息)
hermes start --gateway --port 8083
⚠️ 注意:多实例运行时,每个实例需要不同的端口。知识库目录可以共享,但 sessions.db 是每个实例独立的。

📂 团队共享知识库

把 HERMES 的知识库放在共享目录,团队成员可以共用同一套配置和知识:

# 推荐目录结构
共享盘:/HERMES_知识库/
├── config.yaml              ← 团队统一配置
├── .env                     ← 共享 API Key(需权限管理)
├── skills/                  ← 团队共享技能
│   ├── 客服流程/
│   └── 代码规范/
├── knowledge/               ← 团队知识文档
│   ├── 产品手册/
│   ├── 技术文档/
│   └── 培训资料/
└── cron/                    ← 共享定时任务

👥 团队协作工作流示例

角色HERMES 任务频率
项目经理汇总各成员周报 → 生成项目周报 → 发到团队群每周五
开发人员代码审查 → 运行测试 → 自动部署到测试环境每次提交
运营人员监控业务数据 → 生成运营报表 → 异常自动告警每日
客服主管分析客服对话记录 → 提取常见问题 → 更新知识库每周
# 示例:团队周报汇总 Cron 工作流
cronjob(
  action="create",
  name="团队周报汇总",
  schedule="0 17 * * 5",        # 每周五下午5点
  prompt="
    1. 查看团队共享目录中的周报文件
    2. 提取每个人的核心工作内容
    3. 按项目分类汇总进度
    4. 标注风险和阻碍项
    5. 生成格式化的团队周报
    6. 发送到飞书团队群",
  deliver="feishu:oc_team_group"
)

💡 多 Agent 使用建议

  • 任务要独立——子 Agent 之间不能互相依赖结果
  • 给足上下文——每个子 Agent 需要独立、完整的任务描述
  • 适合场景:多源数据收集、并行分析、批量文件处理
  • 不适合:需要前一步结果的任务、需要用户确认的任务
  • 限制:同时最多 3 个并发子 Agent(可配置)

🔁 Agent 通信模式

模式工作方式适用场景
扇出(Fan-out)主 Agent 分发 → 子 Agent 并行执行 → 汇总结果多数据源查询、并行处理
管道(Pipeline)Agent A → Agent B → Agent C 串行传递数据处理链条(提取→转换→加载)
竞争(Competitive)多个 Agent 做同一任务,选最优结果关键决策、代码审查
监督(Supervisor)主 Agent 监控子 Agent,处理异常长时间运行的批量任务

📋 扇出模式实战:市场调研

你:帮我做一个市场调研,同时查以下信息:
1. 搜索"2026年 AI 行业市场规模预测"
2. 搜索"主要 AI 公司最新财报"
3. 搜索"AI 行业政策变化"
汇总成一份市场调研报告,包含数据来源

28 🏢 企业应用场景

📌 HERMES 能为企业做什么

HERMES 不仅是个人的效率工具,更是企业的数字化员工。它可以 7x24 小时不间断工作,处理重复性、流程化的任务,让团队成员专注于更有创造性的工作。

📊 自动化报表
每日/周自动从数据库拉取数据,生成经营报表并分发到团队群
🤖 智能客服
接入飞书/微信,7x24自动回答常见问题,复杂问题转人工
📝 代码审查
自动检查代码质量、安全漏洞、规范符合性,输出审查报告
📈 监控告警
定时监控业务指标和系统状态,异常时自动通知相关人员
📄 文档处理
批量处理合同、报告、邮件——自动生成、翻译、总结、分类
🎯 数据分析
连接公司数据库,按需查询分析,输出可视化报告和决策建议

🏗️ 企业部署架构

团队
成员
飞书/微信
网关
云服务器
HERMES
API 模型
知识库
团队成员通过 IM 与 HERMES 交互,服务器 7x24 运行

🎯 企业部署建议

建设项建议方案
部署方式云服务器(2核4GB)+ 网关,7x24 运行
团队接入通过飞书/微信机器人,全员可用
配置管理不同部门用不同 Profile 隔离
知识共享统一的产品文档、FAQ、技术手册放在共享知识库
权限控制管理员统一管理 API Key,定期轮换
成本管理日常用 Flash 模型,复杂任务用高级模型

🏢 企业案例研究

📊 某电商公司 —— 运营报表
每日自动从数据库拉取 GMV、订单量、客单价,生成运营日报发送到管理群,节省运营团队每天 2 小时
🤖 某科技公司 —— 智能客服
接入飞书机器人,自动回答产品FAQ,复杂问题转人工。首月即处理了 2000+ 咨询,人工介入率仅 15%
📝 某创业公司 —— 代码审查
每次 PR 自动触发代码审查,检查规范符合性、安全漏洞、测试覆盖,审查效率提升 70%
📈 某金融公司 —— 市场监控
7x24 监控市场新闻、政策变化、竞品动态,异常时自动推送摘要到投资团队

📈 企业 ROI 参考

80%
报表编写时间节省
60%
客服响应时间缩短
70%
代码审查效率提升
24h
自动化不间断运行

🔧 企业落地建议时间表

阶段时间目标
第一阶段:试点第1-2周部署 HERMES,接入飞书,跑通日报功能
第二阶段:扩展第3-4周添加知识库,接入更多数据源,创建常用 Skill
第三阶段:集成第2-3月与内部系统集成,建立自动化工作流体系
第四阶段:优化第3月+根据反馈优化提示词,迭代工作流,推动全员使用

29 📈 提高效率与企业管理

📌 提效场景对比

场景传统方式用 HERMES节省时间
写周报30 分钟手动整理邮件和文档自动汇总各渠道数据生成周报80%
查数据登录后台系统 → 导出 → Excel 分析一句话:查一下昨天的销售额90%
代码审查逐行阅读代码→记录问题→写报告自动扫描输出审查报告70%
客户回复手动打字回复每一条客户消息AI 生成回复草案,人工确认发出60%
邮件处理逐一阅读→分类→回复自动分类、总结、生成回复建议70%
会议纪要边听边记→整理→分发给参会人自动整理会议记录和待办事项75%

🔄 典型自动化工作流

每天
8:00
Cron触发
日报任务
获取数据
分析处理
生成报告
飞书发送

🏢 企业管理应用场景

📋 任务追踪
跟踪项目进度,自动提醒到期任务
📊 KPI 监控
定时拉取关键指标,异常自动告警
🔄 审批流
自动初审申请单,标记异常项
📝 合同管理
提取合同关键条款,比对标准模板

⏱️ 效率提升基准数据

任务类型人工耗时HERMES 耗时提升倍数
写周报30 分钟1-2 分钟15-30x
查数据+分析20 分钟30 秒40x
代码审查(1000行)45 分钟3-5 分钟9-15x
翻译文档(5000字)2 小时5 分钟24x
生成报表1 小时2-3 分钟20-30x
批量文件处理(100个)30 分钟10 秒 - 1 分钟30-180x

📋 管理周报自动生成示例

# 保存为 Skill 后每周自动执行
你:帮我生成这周的管理周报

1. 查看本周的团队 Git 提交记录
2. 汇总每个人的核心工作内容
3. 统计本周完成的项目里程碑
4. 标记延期或有风险的任务
5. 对比上周数据,标注变化
6. 生成格式化的周报文档
7. 发送到管理团队群

💡 管理实施建议

  • 先小后大——从 1 个简单的 Cron 任务开始(如每日数据推送),验证流程后再增加
  • 标准化——将验证通过的流程存为 Skill,团队成员共享调用
  • 定期优化——每月回顾工作流效果,根据反馈调整提示词和步骤
  • 人机协作——HERMES 负责执行和初稿,人类负责审核和决策
  • 衡量效果——记录每个自动化任务节省的时间,量化 ROI 推动更多场景落地
⚠️ 建议:不要一开始就期望全自动化。先让 HERMES 辅助(生成草案→人工审核),逐步过渡到自动执行。90% 的自动化失败案例都是因为一步到位、跳过了人工验证环节。

30 👤 对个人的帮助

📌 个人使用场景

HERMES 对个人来说是一个全能数字助手——学习、工作、理财、创作,几乎无所不能。以下是你日常可以派上用场的场景:

📚 学习助手
用通俗语言解释复杂概念、总结长篇论文、翻译外语文章、生成学习笔记
💻 编码伙伴
从零搭项目框架、调试疑难 Bug、代码审查、API 集成、Git 操作辅助
📝 写作帮手
润色文字、生成文章大纲、写邮件、起草方案、校对错别字
📊 理财助手
查股票实时行情、分析板块涨跌、记账、生成收支报表
🎯 效率工具
批量重命名文件、格式转换(图片/文档/数据)、整理杂乱目录
🔍 信息搜索
搜索和汇总特定主题的资料、验证事实、做竞品调研

🚀 5 步从入门到精通

  1. 装好就试——启动后问"你好"、"现在几点"、"帮我看看电脑状态",马上感受 Agent 的能力
  2. 让 HERMES 记住你——"记住我喜欢用 Markdown"、"记住我的项目在 D:/Projects",减少重复说明
  3. 从简单任务开始——文件整理、格式转换、信息查询——这些成功率最高,建立信心
  4. 逐步进阶——尝试 Cron 定时任务让 HERMES 每天自动发晨报,再试试多 Agent 并行
  5. 创建个人 Skill——把你每周都要做的事(周报、账单统计等)存为 Skill,以后一句话搞定

⏰ 个人每日使用时间线

时间任务命令示例
🌅 7:30晨间简报查天气、日程、新闻,汇总发我手机
💼 9:00工作准备查看项目进度、待办事项、邮件整理
📝 10:00文档撰写帮我起草方案/周报/邮件,润色文字
💻 14:00代码开发调试 Bug、代码审查、API 集成辅助
📊 16:00数据分析分析今日数据、生成报表、输出结论
📋 17:30日终总结整理今日完成事项,生成明日计划
🌙 21:00个人学习总结今天的文章、翻译外语、解释概念

💡 日常实用指令示例

你:帮我整理桌面文件,按类型分到不同文件夹
你:把这个网页内容总结成 3 个要点
你:把这张图片从 PNG 转成 JPG,压缩到 500KB 以内
你:帮我搜索一下今天重要的 AI 行业新闻
你:把这个 Excel 里前 10 行提取出来做成 Markdown 表格
你:把这篇文章翻译成英文,保留原格式
你:帮我列出下周需要完成的所有任务
你:分析一下这个月的支出,哪些类别超预算了
你:帮我比较这三款产品的优缺点,用表格展示

🛠️ 个人常用的 Skill 推荐

📰 daily-briefing
每日晨间简报:天气+日程+新闻
📊 expense-track
记账和支出分析
📝 note-summary
笔记和文章自动总结
🔄 file-organizer
桌面和下载文件夹整理
💡 记住:HERMES 的能力上限取决于你的想象力。任务描述越具体、越清晰,结果越好。大胆尝试,HERMES 会告诉你它能不能做。把每天重复的任务存为 Skill,日积月累能省下大量时间。

31 完整实战教程:搭建股市简报机器人

📌 项目概述

从头搭建一个每日股市简报机器人——每天早上8点,HERMES 自动查A股行情、分析板块涨跌、生成精美报告并准时发到你微信/飞书。全程约 20 分钟,零代码基础也能完成。

数据源
存到记忆
写提示词
告诉怎么做
创建Cron
设定时
测试运行
验证
存Skill
复用
接网关
手机收

🔧 第1步:准备数据源

先让 HERMES 记住我们需要的数据源地址:

你:记住以下数据源,用于股票查询:
1. 大盘指数行情(上证、深证、创业板)
   http://qt.gtimg.cn/q=sh000001,sz399001,sz399006
2. 板块涨跌排行
   http://push2.eastmoney.com/api/qt/clist/get
3. 个股实时行情
   http://qt.gtimg.cn/q=代码(如 sh600519)

📝 第2步:编写完整的提示词

每天8点执行以下工作流,生成股市简报并发给我:

📊 数据获取
1. 获取三大指数行情:
   curl -s "http://qt.gtimg.cn/q=sh000001,sz399001,sz399006"
   提取:名称、最新价、涨跌额、涨跌幅(%)

2. 获取板块涨跌排行:
   curl -s "http://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=10&po=1&np=1&fid=f3&fs=m:90+t:2"
   提取涨幅前5和跌幅前5的板块

📋 生成简报(格式如下)
   ┌─────────────────────┐
   │ 📊 今日股市简报     │
   │ 2026-07-21          │
   └─────────────────────┘

   📈 大盘表现
   上证指数:xxxx (+x.xx%)  成交额:xxx亿
   深证成指:xxxx (+x.xx%)  成交额:xxx亿
   创业板指:xxxx (+x.xx%)

   🏆 领涨板块 Top 5
   1. xxx (+x.xx%)
   2. xxx (+x.xx%)

   📉 领跌板块 Top 5
   1. xxx (-x.xx%)
   2. xxx (-x.xx%)

   💡 简评:一句话总结今日市场情绪

4. 把完整简报发送给我

⏰ 第3步:创建 Cron 定时任务

你:帮我把上面的完整流程设成每天早上8点的定时任务

cronjob(action="create",
  name="每日股市简报",
  schedule="0 8 * * 1-5",   # 工作日早8点(周一到周五)
  prompt="(把上面的完整提示词贴在这里)",
  deliver="origin")

# 也可以直接对 HERMES 说
你:创建一个定时任务,每天早上8点(工作日)查股市发简报给我

🧪 第4步:测试运行

# 创建完任务后先手动测试一下
你:运行一下每日股市简报任务

# 查看执行结果
你:简报收到了吗?内容对不对?

# 如果数据格式不对
你:提取数据时注意只取涨跌幅百分比,不要其他符号

# 如果 API 返回空
你:先用 curl 测试一下数据源能不能正常返回
curl -s "http://qt.gtimg.cn/q=sh000001,sz399001,sz399006"

🧪 第5步:数据验证(确保每次数据正确)

# 建议在简报中包含数据质量检查
你:在生成简报前先验证:
1. 三大指数的数据不能为空
2. 涨跌幅数值应在合理范围内(-10% ~ +10%)
3. 板块数据至少返回 5 条以上
4. 如果数据异常,标记出来并重试一次

💾 第6步:保存为 Skill

# 测试通过后保存
你:把股票数据源和完整的简报流程存为 Skill,取名 "stock-briefing"

# 以后只需要一句话
你:用 stock-briefing 技能查今天行情
# 或者
你:用 stock-briefing 技能跑一次简报发我手机上

🌐 第6步:连接网关(可选)

# 如果想在手机上收简报,启动网关
hermes start --gateway

# 在 Cron 任务中修改 deliver 地址
deliver="origin"    # 发到当前对话
deliver="all"       # 发到所有已连接平台
⚠️ 注意事项:第一次运行如果报 Failed to fetch,开 Watt Toolkit 或检查网络。数据格式不对直接告诉 HERMES 提取哪些字段。建议先在终端测试 curl 命令是否能正常返回数据。
💡 进阶:你还可以添加更多数据源,如北向资金流向、港股行情、美股夜盘等。保存为 Skill 后,每天自动运行,再也不用手动查行情。

32 ☁️ 云端 7x24 部署

🎯 为什么部署到云端

把 HERMES 部署到云服务器,让你拥有一个7x24 小时在线的 AI 助手。你不需要一直开着电脑,团队也能共享使用。

🔄 24小时在线
云服务器不间断运行,不用一直开着本地电脑
📱 随时访问
手机通过飞书/微信发消息,即时得到回复
🌐 固定公网
有固定公网 IP/域名,团队可以共享一个入口
🔒 数据安全
数据在自己控制的服务器上,不出国

🏛️ 架构方案对比

你/团队
微信/飞书
云服务器 (VPS)
HERMES + Gateway
frp 内网穿透
(如需要)
AI 模型
云端API / 本地
方案A:全部在云服务器 → 方案B:本地HERMES + frp穿透
方案优点缺点费用
A:云服务器稳定、7x24、公网固定月费 50-100 元50-100 元/月
B:frp 穿透本地机器、无月费需公网服务器、本地不能关机穿透服务器约 30 元/月
C:Cloudflare Tunnel免费、安全国外节点、可能延迟高免费

☁️ 方案A:购买云服务器完整部署

❶ 选择服务器

推荐配置:2核4GB,40GB SSD,CentOS/Ubuntu 22.04。国内厂商:阿里云、腾讯云、华为云(约 50-100 元/月)。如果预算充足,4核8GB 体验更好。

❷ 连接服务器

# 用 SSH 连接
ssh root@你的服务器IP

# 安装基础环境
apt update && apt install -y python3 python3-pip git curl
pip3 install uv

❸ 部署 HERMES

# 克隆并安装
cd ~
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
python3 -m venv .venv
.venv/bin/pip install -e .

# 创建配置目录
mkdir -p ~/.hermes

# 上传本地的配置文件和 .env
# 可以用 scp 从本地传到服务器:
# scp ~/.hermes/config.yaml root@服务器IP:~/.hermes/
# scp ~/.hermes/.env root@服务器IP:~/.hermes/

❹ 设为系统服务(systemd)

# 创建 systemd 服务文件
sudo tee /etc/systemd/system/hermes.service << 'EOF'
[Unit]
Description=HERMES Agent
After=network.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/hermes-agent
ExecStart=/root/hermes-agent/.venv/bin/hermes start --daemon --gateway
Restart=always
RestartSec=10
StandardOutput=append:/root/hermes-agent/hermes.log
StandardError=append:/root/hermes-agent/hermes.log

[Install]
WantedBy=multi-user.target
EOF

# 启用并启动
sudo systemctl daemon-reload
sudo systemctl enable hermes
sudo systemctl start hermes

# 查看状态
sudo systemctl status hermes

# 查看日志
sudo journalctl -u hermes -f

❺ 配置 HTTPS(强烈推荐)

# 用 Caddy 自动配置 HTTPS(免费证书,自动续期)
sudo apt install -y debian-keyring debian-archive-keyring
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy

# 配置 Caddyfile
sudo tee /etc/caddy/Caddyfile << 'EOF'
你的域名.com {
    reverse_proxy localhost:8080
}
EOF

sudo systemctl restart caddy

🔗 方案B:内网穿透(frp)

如果你用自己的电脑跑 HERMES,但需要公网访问(如飞书回调),用 frp 穿透:

# 需要:一台有公网IP的服务器(最低配) + frp

# 服务端(公网服务器)frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080

# 客户端(你的电脑)frpc.ini
[common]
server_addr = 你的服务器IP
server_port = 7000

[web]
type = http
local_port = 8080
custom_domains = 你的域名.com

🌐 方案C:Cloudflare Tunnel(免费)

# 不需要公网服务器,Cloudflare 免费做穿透
# 1. 在 Cloudflare 控制台创建 Tunnel
# 2. 在本地安装 cloudflared
# macOS: brew install cloudflared
# Windows: winget install cloudflare.cloudflared
# 3. 登录并运行
cloudflared tunnel login
cloudflared tunnel create hermes-tunnel
cloudflared tunnel route dns hermes-tunnel hermes.yourdomain.com
cloudflared tunnel run hermes-tunnel

🐳 方案D:Docker Compose 一键部署

# docker-compose.yml
version: '3'
services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - ./config:/root/.hermes
      - ./data:/root/hermes-agent/data
    environment:
      - TZ=Asia/Shanghai
    command: hermes start --daemon --gateway

📊 部署后监控与告警

# 1. 进程监控(systemd 自带)
systemctl is-active hermes

# 2. 健康检查端点
curl -f http://localhost:8080/health || echo "HERMES 宕机!"

# 3. 资源监控
htop                    # 实时资源
journalctl -u hermes --since "1 hour ago" | grep -i error  # 错误检查

# 4. 日志轮转(避免磁盘占满)
sudo tee /etc/logrotate.d/hermes << 'EOF'
/root/hermes-agent/hermes.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}
EOF

📋 部署后维护清单

周期操作命令
每日检查是否在线systemctl is-active hermes
每周检查异常日志journalctl -u hermes --since "7 days ago" | grep -i error
每月更新版本git pull && .venv/bin/pip install -e . && systemctl restart hermes
每季更换 API Key更新 .env 文件,检查磁盘 df -h

❓ 常见云端部署问题

问题解决
systemd 启动失败journalctl -u hermes -n 30 看具体错误
端口被占用netstat -tlnp | grep 8080 找出占用进程
内存不足(OOM)加 Swap:fallocate -l 4G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
HTTPS 证书失效sudo systemctl restart caddy 自动续期
飞书回调收不到检查防火墙:ufw allow 8080 或云平台安全组规则
磁盘快满了journalctl --vacuum-size=500M 清理系统日志
💡 省钱建议:不想买服务器的话,Cloudflare Tunnel 完全免费。临时调试用 Ngrok 也很方便。
2核
CPU 推荐
4GB
内存推荐
40GB
硬盘
¥50-100
月费用
⚠️ 重要:部署后务必先手动运行 hermes start --daemon --gateway 测试能正常启动,再配置 systemd。遇到问题先 journalctl -u hermes -n 30 看日志。

🤖 HERMES Agent 完全操作手册 · 32章完整版(含高级专题详细内容)

由《HERMES Agent 操作手册》与《HERMES Agent 高级专题手册》合并而成

Toobey Network Technology · 2026-07-21