专栏系列:
第一篇:认知导论|从 Harness 工程到 Hermes,五大核心概念厘清
第二篇:核心内核拆解|五大支柱深度解析(Memory/Skill/Soul/Crons/自进化闭环)
本篇为第三篇:实战部署篇,面向想要跑通实例的开发者,提供可复制、可调试完整流程,支持Windows本地、Linux VPS两套环境。
前置阅读建议:务必看完前两篇,理解Memory、Skill五大支柱概念,本篇不讲解底层原理,专注动手跑通。
0. 写在部署前:硬件&环境前置评估
很多同学部署Agent踩坑第一步就是硬件预估错误,Hermes不是重度微调大模型框架,它属于Agent编排层框架,本身不跑大模型推理,模型可以外接OpenAI兼容接口(DeepSeek、通义千问、Ollama本地模型)。
✅ 硬件最低要求
- Windows本地部署(开发调试)
- CPU:4核8G内存起步,推荐8核16G
- 显卡:非必需,如果你用Ollama本地跑大模型,则显存≥8G(7B模型);使用远程API,显卡无要求
- 系统:Windows10/11,开启PowerShell,安装Git
- Linux VPS(线上运行,生产测试)
- 配置:2核4G最低,推荐4核8G,磁盘≥40G
- 系统:Ubuntu 22.04 / 24.04,推荐
⚠️重要提醒:Hermes只是智能体运行框架,大模型推理消耗资源另算,绝大多数新手建议优先使用API接口,不要本地跑大模型,减少调试障碍。
✅ 需要提前准备
- Git环境
- Python >=3.11,小于3.13(版本不兼容坑,不要用3.13)
- 一个大模型API Key(DeepSeek、OpenAI、阿里云百炼均可,兼容OpenAI接口格式)
- VPS环境:开放端口(默认CLI模式不需要开放端口,如果后续启动网关需要放行端口)
常见踩坑预告:Python版本过高、git克隆网络超时、API代理错误、配置文件路径写错、权限不足。本篇所有命令均为PowerShell命令,Windows直接复制运行;文末附带Linux适配说明。
1. 源码拉取:克隆Hermes仓库(PowerShell)
注意:不要直接下载zip压缩包,部分skill模板、子模块会缺失,优先git clone。
打开PowerShell,切换到你想要存放项目的目录,例如 D:\ai_project
powershell
# 切换工作目录
cd D:\ai_project
# gitee镜像仓库,解决github访问慢问题
git clone https://gitee.com/mirrors/hermes-agent.git
cd hermes-agent
执行完成后目录结构预览,你可以在终端输入 ls 查看,关键目录:
hermes-agent/
├── config/ # 核心配置文件夹,.env、人格配置hermes.md放这里
├── skills/ # skill技能库,自动生成的技能全部存在此处
├── memory/ # memory持久化记忆存储目录,运行后自动生成
├── crons/ # Crons定时任务脚本目录
├── docs/ # 橙皮书原版文档
└── main.py # 程序入口

📌Demo小提示:此时还不能运行,没有配置密钥会直接报错。很多新手克隆完直接运行main.py,出现大量报错,属于正常现象。
2. 依赖安装
建议使用虚拟环境隔离Python依赖,避免和本机其他项目包冲突,强烈推荐。
PowerShell Windows:
powershell
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
.\venv\Scripts\Activate.ps1
# 安装全部依赖
pip install -r requirements.txt
Windows报错:PowerShell禁止运行脚本
powershell
# 管理员打开PowerShell执行一次,解决执行策略限制
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Linux(VPS Ubuntu)对应命令参考
bash
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
依赖安装完成,虚拟环境激活成功后,终端提示符前面会出现 (venv),代表环境生效。后续所有运行操作都必须在虚拟环境内执行。
3. 核心配置文件修改:配置大模型接入
复制环境变量模板,生成.env配置文件
PowerShell:
powershell
# 复制模板配置
Copy-Item .\config\.env.template .\config\.env

用记事本 / VS Code打开 config/.env 文件。
示例配置(使用DeepSeek API,OpenAI兼容格式)
env
# LLM基础配置
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx你的key
LLM_MODEL=deepseek-v3
# Hermes五大支柱开关,全部开启
ENABLE_MEMORY=true
ENABLE_SKILL=true
ENABLE_SOUL=true
ENABLE_CRON=true
ENABLE_SELF_EVOLVE=true
# 记忆文件存储路径
MEMORY_STORE_PATH=./memory
# 技能库路径
SKILL_LIB_PATH=./skills
# 定时任务存放路径
CRON_PATH=./crons
# 人格配置文件路径
SOUL_CONFIG_PATH=./config/hermes.md
# 日志级别 DEBUG/INFO/WARN,调试阶段设置DEBUG,方便排查问题
LOG_LEVEL=DEBUG
✨ 如果你想用本地Ollama模型,修改这两行即可,不需要api key:
env
LLM_BASE_URL=http://127.0.0.1:11434/v1
LLM_API_KEY=dummy
LLM_MODEL=qwen2.5:7b
编辑完成保存文件。
重点:
SOUL_CONFIG_PATH指向人格文件,把橙皮书示例的hermes.md放到config目录,也就是Soul支柱的人格规则。
极简 hermes.md Demo样例(config/hermes.md)
markdown
# Soul人格配置示例
你是Hermes自进化Agent,遵循下面规则:
1. 回答尽量简洁,不要多余空话;
2. 如果不会做,优先尝试生成Skill技能,而不是直接拒绝用户;
3. 所有记忆会自动保存,记住用户的偏好;
4. 定时任务收到指令会写入crons目录;
5. 禁止编造不存在文件,执行工具前确认路径。
这就完成Soul支柱基础配置,对应第二篇讲的Soul人格引擎。
4. CLI模式启动,第一次交互调试
CLI模式是开发调试首选,不需要部署web网关,直接终端对话,用来验证Memory、Skill、自进化是否正常工作。
PowerShell,保证虚拟环境处于激活状态(venv)
powershell
python main.py --mode cli
正常启动成功日志输出示例:
[INFO] Hermes Agent 启动中
[INFO] ✅ Memory 三层记忆模块加载完成
[INFO] ✅ Skill技能库初始化,扫描 ./skills
[INFO] ✅ Soul人格引擎加载 config/hermes.md
[INFO] ✅ Cron调度器已就绪
[INFO] ✅ 自进化闭环模块开启
[INFO] CLI交互模式就绪,请输入你的指令,exit退出
>>>
🧪 Demo实操样例1:测试记忆模块(Memory支柱)
在cli输入框输入:
我的名字叫森迪,居住在西安,平时喜欢研究AI Agent开发
Agent正常应答之后,继续输入:
我叫什么,住在什么地方?
✅预期效果:Agent读取持久记忆,正确输出你的名字和城市。
底层行为:这条信息会写入memory目录下的事实记忆json文件。你可以打开
memory/fact_memory.json,肉眼查看写入的内容,这就是第二篇提到的三层记忆中的持久事实记忆。
❌异常现象:记不住信息。排查:检查.env中ENABLE_MEMORY=true,确认memory文件夹有读写权限。
🧪 Demo实操样例2:触发自动生成Skill(Skill支柱)
CLI输入指令,让Agent生成一个简单技能:
帮我写一个skill,实现读取当前目录所有txt文件,统计文件行数
✅预期行为:
- Agent判断现有技能库没有该能力;
- 触发技能自动生成流程,在
skills/目录输出count_txt_lines.skill.md; - 调用该skill执行任务,输出统计结果。
打开生成的skill文件,样例内容参考:
markdown
## skill_name: count_txt_lines
## description: 统计当前目录所有txt文件总行数
## params: {}
python
import os
def run():
total = 0
for filename in os.listdir("."):
if filename.endswith(".txt"):
with open(filename,"r",encoding="utf-8") as f:
lines = len(f.readlines())
total += lines
print(f"{filename}: {lines}行")
print(f"全部txt合计:{total}行")
if __name__ == "__main__":
run()

这就是Hermes核心能力:按需自动产出Skill,存入技能库,后续同类请求直接复用,不用重复生成,对应第二篇的自进化闭环。
🧪 Demo实操样例3:测试Crons定时调度
cli输入:
每间隔30秒,输出一句hello hermes
✅预期:Agent将定时任务写入crons/文件夹,调度器循环执行,终端周期性打印输出。
注意:CLI模式下crons仅进程存活期间生效;程序关闭定时任务暂停。
输入exit退出CLI终端。
5. 常见部署排错清单(高频问题)

| 现象 | 排查方案 |
|---|---|
| 启动直接报错,LLM接口401 | API Key错误、检查LLM_BASE_URL地址是否正确,部分服务商需要去掉/v1后缀 |
| 模型返回正常,但是无法生成Skill | 检查ENABLE_SKILL=true;大模型能力不足,更换更强模型 |
| 记忆无法保存,memory文件夹为空 | 目录读写权限不足;Windows不要放在系统保护目录 |
| python包报错模块找不到 | 确认已经激活venv虚拟环境;重新执行pip install -r requirements.txt |
| git clone失败 | 使用gitee镜像地址,不要用github源 |
6. VPS后台常驻运行(线上部署进阶)
在VPS上想要后台持续运行,关闭ssh连接程序不终止,使用tmux。
bash
tmux new -s hermes
# 激活虚拟环境
source venv/bin/activate
python3 main.py --mode cli
按Ctrl+B再按D,脱离会话,程序后台运行;重新接入会话 tmux a -t hermes。
⚠️注意:本篇只讲CLI调试模式,Web网关、MCP服务属于第四篇《落地场景开发》内容,本篇不展开。
7. 本篇小结 & 下一篇预告
本篇完整走完源码拉取、依赖安装、环境变量配置、CLI交互调试全流程。通过3个小Demo,直接观测Memory、Skill、Crons五大支柱真实运行效果,不再是纸上架构。
你现在已经拥有一个本地可以跑的Hermes实例:
- 可以记住用户信息(Memory)
- 遇到未知任务自动生成技能复用(Skill)
- 加载自定义人格规则(Soul)
- 支持简单定时任务(Crons)
- 全部行为落地文件,可以直接观察框架输出产物。
下一篇:第四篇《落地场景开发|MCP集成、多平台网关、自定义Skill开发》,我们会脱离纯CLI模式,对接MCP工具协议,开发自定义Skill,搭建网关实现外部程序调用Hermes Agent,实战子Agent协同。
