hermes agent 自定义规则需通过五种方式协同实现:一、编辑 soul.md 定义人格与行为边界;二、修改 config.yaml 配置模块级开关;三、编写 skill 文件嵌入结构化逻辑;四、用环境变量注入运行时参数;五、利用记忆引擎记录规则触发历史。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望 Hermes Agent 按照特定逻辑响应、执行任务或过滤内容,但发现默认行为不符合预期,则可能是由于规则未显式定义或 SOUL.md 中的约束条件缺失。以下是为 Hermes Agent 自定义规则的具体操作路径:
一、编辑 SOUL.md 定义人格与行为边界
SOUL.md 是 Hermes 的核心规则载体,它以自然语言声明 Agent 的身份定位、响应偏好、禁忌事项及决策优先级,所有对话与工具调用均受其隐式约束。该文件位于 ~/.hermes/SOUL.md,修改后无需重启服务即可热生效(部分变更需触发 memory reload)。
1、使用文本编辑器打开配置文件:nano ~/.hermes/SOUL.md
2、在文件开头添加角色声明段落,例如:“你是一名专注云计算架构的技术文档工程师,只回答与 Kubernetes、Terraform、CI/CD 流水线相关的问题;遇到无关请求时,必须明确拒绝并说明原因。”
3、在文件中部插入响应规范条目,例如:“所有技术解释必须附带可验证的命令行示例;若涉及 YAML 配置,必须缩进正确且包含注释说明。”
4、在文件末尾设定安全红线,例如:“禁止生成、执行或建议任何 rm -rf、chmod 777、curl | bash 类高危指令;如用户提出此类请求,立即中止并返回警告。”
二、在 config.yaml 中配置模块级规则开关
config.yaml 控制各功能模块的启用状态与行为阈值,适用于需要硬性关闭或限流的规则场景,例如禁用特定工具、限制搜索深度、屏蔽敏感域名等。该文件位于 ~/.hermes/config.yaml,修改后需运行 hermes reload 生效。
1、执行命令打开配置文件:nano ~/.hermes/config.yaml
2、定位到 tools: 区块,在其下添加禁用声明:shell: false
3、定位到 search: 区块,设置结果过滤规则:block_domains: ["example-bad-site.com", "malware-test.net"]
4、在全局 limits: 下增加单次响应长度限制:max_output_tokens: 1200
三、编写自定义技能(Skill)嵌入结构化规则
技能是 Hermes 中可复用、可调试、可版本化的规则单元,以 Markdown 文件形式存放于 ~/.hermes/skills/ 目录,支持条件判断、变量注入与多步骤编排,适合封装复杂业务逻辑或合规检查流程。
1、创建新技能文件:touch ~/.hermes/skills/pci-dss-check.md
2、写入技能元数据与触发条件:---\nname: PCI-DSS 合规检查\ntrigger: /pci 或 “是否符合支付卡行业标准”\n---
3、在正文内定义检查规则链:- 若输入含信用卡号格式(如 4 组 4 位数字),立即脱敏并提示“已检测到敏感字段,请勿传输原始卡号”\n- 若输入含 curl 命令且目标为公网 IP,阻止执行并返回“外部网络调用需审批”
4、保存后运行命令注册技能:hermes skill register pci-dss-check.md
四、通过环境变量注入运行时规则参数
环境变量适用于动态控制规则强度或切换策略分支,例如灰度发布新规则、按用户身份加载不同策略集、临时关闭某类校验等。所有变量需写入 ~/.hermes/.env 并在下次会话中生效。
1、编辑环境变量文件:nano ~/.hermes/.env
2、添加规则控制变量:HERMES_RULE_STRICTNESS=high
3、添加上下文感知变量:HERMES_USER_ROLE=devops-admin
4、在 SOUL.md 中引用该变量:“当 HERMES_USER_ROLE 为 devops-admin 时,允许查看集群节点列表;否则仅返回摘要。”
五、利用记忆引擎标记规则触发历史
Hermes 的三层记忆系统支持将规则命中事件存为持久记录,便于回溯误判、优化条件表达式或构建审计日志。该方式不改变实时行为,但为规则迭代提供数据依据,所有写入自动进入 ~/.hermes/memory/ 下的 SQLite 数据库。
1、在 SOUL.md 中加入记忆写入指令:“每次拦截 rm -rf 请求时,记录时间、用户ID、原始输入至持久记忆,并打标签 #security-block”
2、使用 CLI 查询规则触发记录:hermes memory search "#security-block" --limit 10
3、导出最近 5 条拦截日志为纯文本:hermes memory export --tag security-block --count 5 > /tmp/rule-audit.log











