本文是 Hermes Agent 系列的第三篇。如果你还没看过前两篇,建议先阅读 《安装与使用指南》 和 《配置与进阶使用》 。
概览 前两篇覆盖了安装、基础配置和部署。这一篇聚焦实战中的高阶技巧 :如何用 SOUL.md 塑造 Agent 人格、如何设计多代理协作管线、如何用 Cron 做自动化、以及生产环境的加固策略。读完你就能把一个”能用”的 Agent 变成一个”好用且懂你”的 Agent。
flowchart LR subgraph "人格层" A[SOUL.md] --> B[AGENTS.md] B --> C[IDENTITY.md] end subgraph "能力层" D[自定义 Skill] E[多代理管线] F[Cron 工作流] end subgraph "运维层" G[安全加固] H[日志监控] I[性能调优] end C --> D D --> E E --> F F --> G G --> H H --> I style A fill:#7C3AED,color:#fff style D fill:#F59E0B,color:#000 style G fill:#10B981,color:#fff
1. 人格系统:比你想象的更强大 Hermes Agent 最大的差异化能力不是工具调用,而是持续进化的个性系统 。三个核心文件构成它的”灵魂”:
文件
作用
加载时机
SOUL.md
人格定义:说话风格、价值观、边界
每次会话启动
AGENTS.md
行为规范:工作流、工具使用规则、红线和自由区
每次会话启动
IDENTITY.md
身份名片:名字、emoji、头像
仅首次
1.1 SOUL.md 高阶写法 普通的 SOUL.md 只写”你是一个友善的助手”。高阶写法让 Agent 真正理解在什么场景下用什么样的表达 :
# SOUL.md —— 范例 ## Core Truths **先行动后解释。** 能直接做的事不要先问"要不要做"。你的用户是技术背景,默认跳过入门解释,直接给方案。 **有立场。** 你可以反对、有偏好、觉得无聊。和一个只会说"好主意"的助手相处很累。 **知道何时闭嘴。** 群聊里别人没 @ 你,就安静待着。不是每条消息你都需要参与。 ## 场景感知 - 私聊:直接执行,给结论不啰嗦- 群聊:只在被 @ 或能提供关键信息时发言- 定时任务:除非失败或产出重要结果,否则不发消息- 深夜 (23:00-07:00):只处理紧急事务,不闲聊## 边界 - 不帮写钓鱼邮件、不帮猜密码- 外部动作(发邮件、发帖、发消息)先确认- 文件操作默认用 trash,不直接 rm
关键技巧:
用场景分隔 让 Agent 在不同上下文切换行为模式
写清楚不做什么 往往比写”做什么”更重要
每 2-4 周回顾并迭代 SOUL.md,像打磨产品一样打磨它
1.2 AGENTS.md 工作流模板 AGENTS.md 是 Agent 的”标准作业程序”。好的 AGENTS.md 能让每次会话开头的上下文加载自动建立正确的工作姿态:
# AGENTS.md —— 工作流规范 ## 会话启动(自动) 1. 读取 SOUL.md → 了解我是谁2. 读取 memory/YYYY-MM-DD.md → 回顾最近对话3. 如果是主会话:读取 MEMORY.md → 加载长期记忆## 写文章的流程 1. 先用 `exec` 检查工作区状态(git status)2. 确认分类和标签(参考已有文章的前置元数据)3. 写完后本地 `hexo generate` 验证构建4. 通知用户确认,不自动 deploy## 记忆管理 - 当日事件 → memory/YYYY-MM-DD.md(按小时记录)- 重要决策/模式 → MEMORY.md(人工提炼)- 不要"心里记住"任何事——写文件## 工具使用原则 - 读文件永远比问用户快- 并行工具调用优先(可并行的查询一次发出)- 长时间操作用 `exec` + `yieldMs` ,不阻塞
关键技巧:
把流程性知识 固化到 AGENTS.md,减少每次对话的开销
持续更新——从每次”我要是早知道”中学习
参考 skill-creator 生态已有的 AGENTS.md 模板
2. 自定义 Skill 开发实战 Skill 是 Hermes Agent 的能力插件。每个 Skill 一个目录,包含 SKILL.md 定义文件。
2.1 Skill 结构 ~/.hermes/ skills/my-skill/ ├── SKILL.md └── scripts/ └── helper.py
2.2 SKILL.md 模板 # SKILL.md ## 触发条件 - 用户提到"生成周报" 或 "weekly report"- 每周五自动触发(配合 Cron)## 执行步骤 1. 读取 ~/workspace/notes/ 下本周的所有 .md 文件2. 用 LLM 提取每条笔记的关键行动项3. 按项目分组,生成 Markdown 表格4. 保存到 ~/reports/weekly-{date}.md5. 通知用户报告已生成## 依赖 - 需要 workspace/notes/ 目录存在- 需要写入权限到 reports/ 目录
2.3 实战:自动代码审查 Skill 以下是一个真实可用的代码审查 Skill:
# SKILL.md —— code-review ## 触发 - 用户消息包含"review" + 文件路径- 或 git push 后自动触发(需配置 webhook)## 步骤 1. `git diff HEAD~1 --name-only` 获取变更文件2. 对每个 .py/.ts/.js 文件执行: a. 读取文件内容 b. 检查:类型注解、异常处理、SQL 注入、硬编码密钥 c. 生成审查意见(严重 / 建议 / 风格) 3. 汇总输出 Markdown 审查报告4. 如果发现严重问题,阻止后续部署流程## 输出格式 | 文件 | 严重度 | 问题 | 建议修复 | |------|--------|------|---------| | api.py:42 | 🔴 严重 | SQL 拼接 | 使用参数化查询 | | utils.ts:17 | 🟡 建议 | 缺少类型注解 | 添加 `: string` |
3. 多代理协作管线 当单个 Agent 不够用时,用 sessions_spawn 派生子代理并行工作。
3.1 基础模式:分而治之 主 Agent(协调者) ├── 子代理 A :分析需求文档 ├── 子代理 B :检查现有代码库 └── 子代理 C:搜索最佳实践 ↓ 主 Agent 汇总输出
3.2 实战:多代理文章写作管线 主 Agent 指令: "我要写一篇关于 Kubernetes 自动扩缩容的技术文章。 请同时启动 3 个子代理: 子代理 1:搜索 HPA/VPA/KEDA 最新文档和最佳实践 子代理 2:回顾我 blog 中已有的 K8s 文章,避免内容重复 子代理 3:找 3 个生产环境扩缩容的真实案例 全部完成后汇总,生成文章大纲给我审核。"
每个子代理的用法:
sessions_spawn({ task: "搜索 Kubernetes HPA 最新文档、版本变化和最佳实践,输出结构化摘要" , mode: "run" }) sessions_spawn({ task: "读取 ~/blog/source/_posts/computer-science/devops/ 下所有文章, 提取已覆盖的 K8s 主题,输出已覆盖主题列表和可扩展的空白领域" , mode: "run" })
关键决策:什么时候用子代理?
场景
直接用
子代理
简单查询
✅
❌
单个文件操作
✅
❌
3+ 个独立搜索任务
❌
✅
需要不同模型处理不同任务
❌
✅
长时间运行的任务
❌
✅
3.3 子代理的上下文管理 sessions_spawn({ task: "..." , context: "isolated" }) sessions_spawn({ task: "..." , context: "fork" })
⚠️ 经验法则: 能用 isolated 就用 isolated。fork 虽然方便但会成倍消耗 token,而且是子代理的 token 加上主会话的 token 双份计费。
4. Cron 高级编排 Hermes Agent 的 Cron 不只是”每天 9 点发送天气预报”。配合子代理和条件逻辑,它能构建复杂的工作流。
4.1 基础 Cron 语法 cron.add ({ schedule : { kind : "cron" , expr : "0 8 * * *" , tz : "Asia/Shanghai" }, payload : { kind : "agentTurn" , message : "运行 _scripts/generate-hotspots.js,如果生成了新文件则通知我" } }) cron.add ({ schedule : { kind : "every" , everyMs : 30 * 60 * 1000 }, payload : { kind : "systemEvent" , text : "HEARTBEAT: 检查邮件、日历、天气" } })
4.2 实战:智能日报生成管线 cron.add ({ name : "ai-daily-generator" , schedule : { kind : "cron" , expr : "0 18 * * *" , tz : "Asia/Shanghai" }, sessionTarget : "isolated" , payload : { kind : "agentTurn" , message : `请执行以下步骤: 1. 抓取 ArXiv 今日 AI 领域新论文(cs.AI, cs.CL, cs.CV) 2. 抓取 Hacker News 和 Twitter AI 趋势 3. 抓取 GitHub Trending AI 项目 4. 汇总为一篇 Markdown 文章,格式参考 source/_posts/ai-daily/ 现有文章 5. 保存到 ~/blog/source/_posts/ai-daily/AI日报-{today}.md 6. 如果生成成功,提醒我去飞书审核发布` , model : "deepseek/deepseek-chat" , timeoutSeconds : 300 }, delivery : { mode : "announce" , channel : "feishu" } })
4.3 故障转移与告警 cron.add ({ name : "critical-backup" , schedule : { kind : "cron" , expr : "0 2 * * *" }, payload : { kind : "agentTurn" , message : "执行数据库备份..." }, failureAlert : { after : 2 , channel : "feishu" , cooldownMs : 3600000 } })
5. 安全加固清单 5.1 审批模式 openclaw config set approvals.mode smart
审批模式对照:
模式
行为
适用场景
manual
纯文本 /approve
所有平台可用,无依赖
smart
可点击卡片按钮
飞书需配事件订阅,交互更友好
5.2 工具白名单 tools: deny: - rm - sudo - curl.*pipe.*bash - eval readonly_paths: - /etc/ - ~/.ssh/
5.3 生产环境检查清单
会自动检查:
SSH 配置与暴露面
防火墙规则
未使用的开放端口
Cron 定时任务安全
文件权限异常
依赖版本过期
6. 性能优化 6.1 上下文精简 # 在 AGENTS.md 中加入上下文预算意识 ## Token 预算 - 每次对话的上下文加载控制在 3000 token 以内- 超过 30 天未更新的 memory 文件归档到 memory/archive/- 定期清理 HEARTBEAT.md 中的残留任务
6.2 模型路由策略 model_routing: default: deepseek/deepseek-chat reasoning: deepseek/deepseek-reasoner fast: minimax-portal/MiniMax-M2.7-highspeed vision: openai/gpt-4o rules: - keywords: ["代码审查" , "review" , "安全审计" ] model: anthropic/claude-sonnet-4-20250514 - keywords: ["翻译" , "translate" ] model: deepseek/deepseek-chat
6.3 并行化策略 read (~/file-a.md) + read (~/file-b.md) + read (~/file-c.md)read (~/file-a.md) → 等结果 → read (~/file-b.md) → 等结果 → ...
7. 实战模式总结
模式
场景
核心配置
私教模式
编程教练、面试陪练
SOUL.md 写严厉导师人设,AGENTS.md 写教学 SOP
编辑模式
博客写作、文档维护
Skill 定义写作流程,子代理并行调研
巡检模式
服务器监控、定时检查
Cron + systemEvent,failureAlert 配置告警
秘书模式
邮件筛选、日历管理、信息汇总
Cron 定时拉取,子代理分类筛选
安全模式
代码审查、漏洞扫描
工具白名单 + approval smart + healthcheck
结语 Hermes Agent 的可塑性远超普通聊天机器人。它的核心差异不在于某一个功能,而在于三个系统的叠加效应 :
人格系统 (SOUL.md / AGENTS.md)—— 让它越来越懂你
能力系统 (Skills / Cron / 子代理)—— 让它能做越来越多的事
安全系统 (审批 / 白名单 / 审计)—— 让你放心让它做越来越多的事
这三层不是一次性配置,而是持续迭代 的。每两周回头看看 SOUL.md 是不是还符合你的期待,每月检查一次 Cron 任务是不是还合理,每次犯错都在 AGENTS.md 里加一条规则。
最终目标不是”一个更聪明的聊天机器人”,而是”一个真正理解你工作方式的数字搭档”。
Hermes Agent 系列: