SOP —— 必须遵守的规则
SOP(Standard Operating Procedure) 是 Hermes 系统的策略与门禁层,定义不可绕过或需要审批的安全边界。它回答"哪些事不能做"以及"做之前必须经过谁同意"。
与 Agent(谁执行)、Skill(怎么做)、MCP(用什么做)不同,SOP 是 负空间——它不定义能做什么,而定义不能做什么以及通过条件。SOP 可以是代码级的强制门禁,也可以是 AI 流程级的约定确认。
当前实例中的 SOP 清单
| 层次 | SOP 系统 | 位置 | 触发方式 | 用户感知 | 可绕过? |
|---|---|---|---|---|---|
| 🛡️ 终端门禁 | HARDLINE(无条件阻止) | tools/approval.py 12 条硬编码正则 |
每次 terminal() 自动匹配 |
直接拒绝,说明原因 | ❌ 不可绕过(连 --yolo 也无效) |
| Tirith(内容安全扫描) | tools/tirith_security.py + bin/tirith |
每次 terminal() 自动执行 |
扫描出 block/warn → 弹审批窗 | ⚠️ tirith_fail_open 控制是否放过 |
|
| DANGEROUS_PATTERNS(危险命令审批) | tools/approval.py ~47 条正则 |
每次 terminal() 自动匹配 |
CLI → TTY 确认 / Gateway → 按钮 approve | ✅ 可审批通过 / approvals.mode: off 关闭 |
|
| 📁 文件门禁 | Write Approval(敏感文件写入) | tools/write_approval.py |
write_file/patch 调用时 |
阻止覆盖 config.yaml、.env、~/.ssh/ 等 | ⚠️ 特定配置可关闭 |
| 🤖 AI 流程 | STDD Gates(3 道确认门) | .stdd/skills/_shared/confirm-gate.md |
AI Agent 在 STDD 流程中主动加载 skill | 对话中输出确认清单,等用户回复"确认" | ❌ skill 明确要求不可跳过 |
当前配置
# config.yaml
approvals:
mode: false # 关闭审批弹窗
cron_mode: approve # cron 自动批准危险命令
mcp_reload_confirm: false
destructive_slash_confirm: false
hooks_auto_accept: true
security:
tirith_enabled: true # Tirith 开启
tirith_fail_open: true # 失败时放行(不阻塞)
tirith_timeout: 5
# 已批准的白名单命令
command_allowlist:
- stop/restart system service
- kill hermes/gateway process
- recursive delete
- force kill processes
- shell command via -c/-lc flag
- ...
SOP 设计要点
- 代码级 SOP 是隐式的:用户不需要做任何事,每次 terminal() 自动经过 HARDLINE → Tirith → DANGEROUS → 审批全流水线
- AI 流程级 SOP 是约定的:由 AI 主动加载 skill 文档,在对话中等待用户确认——不是代码强制
- 配置级 SOP 是策略开关:
approvals.cron_mode/tirith_fail_open等控制无用户场景下的行为 - HARDLINE 是最后的物理防线:防止 AI 自我攻击(shutdown/rm -rf / / fork bomb),
--yolo也过不了