新手程序员需搭建Hermes Agent本地开发环境:安装Python 3.9+、Git、curl;Windows用WSL2;克隆源码而非pip安装;建虚拟环境并激活;配置config.yaml启用dev_mode和mock模型;用hermes dev skill --watch或VS Code调试器验证技能;按模板创建file-checker.md并用hermes dev run测试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

新手程序员想让Hermes Agent真正听懂自己的业务逻辑,不是调API、不是写提示词,而是亲手开发可复用的技能模块——这需要一套干净、隔离、可验证的本地开发环境,否则改一行代码就触发全局重载,调试时输出乱序,技能注册失败却找不到报错源头。
准备开发基础环境
确保系统已安装 Python 3.9+(非3.8,【Hermes v0.8.0 要求最低 Python 3.9】)、Git 和 curl。Windows 用户必须使用 WSL2,原生 CMD/PowerShell 不支持 hermes dev 模式下的进程热重载。
执行命令验证版本:python --version && git --version。若输出中 Python 版本低于 3.9,立即升级——用 pyenv 管理多版本比修改系统默认更安全。
克隆并初始化 Hermes 开发仓库
进入工作目录,运行:
git clone https://github.com/NousResearch/hermes-agent.git && cd hermes-agent
这一步不能跳过或改用 pip install hermes-agent,因为技能开发必须基于源码根目录下的 skills/ 结构和 dev-tools 配置。pip 安装包里不包含 ./scripts/dev-start.sh 和 ./skills/template/ 等关键开发资产。
接着创建专用虚拟环境:
python -m venv .venv && source .venv/bin/activate
Linux/macOS 用户用 source;Windows WSL2 用户也用 source(不是 .venv\Scripts\activate),否则 hermes dev 命令无法识别当前环境。
配置开发专用 config.yaml
复制模板配置:
cp config.example.yaml config.yaml
用 nano 或 VS Code 打开 config.yaml,重点修改三处:
① 将 model_provider 改为 "mock"(开发阶段禁用真实 API 调用,避免扣费和网络干扰)
② 在 skills_dir 下方新增一行:dev_mode: true(启用热重载与技能语法校验)
③ 注释掉 memory.enabled: true 这一行(开发期关闭持久记忆,防止测试数据污染正式记忆库)
保存后执行 hermes config check —— 若输出 “Config is valid” 即通过,否则返回检查缩进和冒号后空格,YAML 对格式极其敏感。
启动技能调试服务
方法一:本地 CLI 快速验证
运行 hermes dev skill --watch。终端将启动监听模式,一旦检测到 skills/ 目录下 .md 文件变动,自动重新加载技能定义并打印解析日志。此时新建一个空白文件 skills/hello-world.md,内容仅写一行 # Hello World,你会立刻看到控制台输出 “Loaded skill: hello-world”。
方法二:接入 VS Code 调试器(推荐)
在项目根目录新建 .vscode/launch.json,填入以下配置:
{ "version": "0.2.0", "configurations": [ { "name": "Debug Skill Runner", "type": "python", "request": "launch", "module": "hermes.cli", "args": ["dev", "skill", "--debug"], "console": "integratedTerminal", "justMyCode": false } ] }
按 F5 启动后,VS Code 会停在技能解析入口函数,可逐行 inspect skill.metadata、step.actions 等结构体字段——这是排查“技能注册成功但不触发”的唯一可靠方式。
注意:调试模式下 hermes chat -q 不走技能链,必须用 hermes dev run --skill hello-world 显式调用,否则永远看不到断点命中。
创建首个技能文件并验证执行流
第一步:在 skills/ 目录下新建 file-checker.md
第二步:粘贴标准技能模板(含 YAML 前置+Markdown 描述):
```yaml
name: file-checker
description: Check if a local file exists and print its size
trigger: "check file
```
## Steps
1. Use `os.path.exists` to verify `
2. If exists, use `os.path.getsize` and return human-readable size
第三步:保存后观察 hermes dev skill --watch 终端输出——若出现 “✅ Validated: file-checker” 表示语法通过;若报错 “Missing required field 'actions'”,说明你漏写了 YAML 中的 actions 字段(新版强制要求)。
第四步:执行调试命令:
hermes dev run --skill file-checker --input '{"path":"/tmp/test.txt"}'
该命令会绕过 NLU 解析,直接注入 JSON 输入并触发技能执行链。输出应为类似 “File /tmp/test.txt exists. Size: 1.2 KB” 的结果。如果卡住无响应,大概率是 Python 路径未加入 sys.path——此时需在 .venv/bin/activate 后手动执行 export PYTHONPATH="$PWD:$PYTHONPATH"。











