
Harmonist安全边界详解HITL危险命令门禁与PROTOCOL-SKIP逃生的完整指南【免费下载链接】harmonistPortable AI agent orchestration with mechanical protocol enforcement. 186 agents, zero runtime dependencies.项目地址: https://gitcode.com/gh_mirrors/ha/harmonistHarmonist是一个零运行时依赖的便携式 AI Agent 编排框架它的核心卖点不是提示词礼貌请求而是机械化协议执行mechanical protocol enforcement。其中两道安全边界最值得新手理解一是HITLHuman-in-the-Loop人在回路危险命令门禁——AI 执行破坏性 shell 命令前必须先经人工确认二是PROTOCOL-SKIP 逃生机制——允许 AI 对琐碎改动声明跳过评审门禁但每一次跳过都会被记录、审计、并在滥用时触发告警。本文带你完整看懂这两道闸门的工作原理与配置方法。为什么需要机械门禁而不是提示词约束大多数 AI 编码框架把规则写在提示词里完成前请运行 QA删除操作请谨慎。但模型可以同意、然后默默跳过——它无法被强制。Harmonist 的做法是把规则变成磁盘上的状态机集成后项目会安装一套 IDE hooks钩子脚本覆盖 Agent 的整个生命周期钩子阶段职责安全角色sessionStart重置会话状态、注入历史记忆、暴露未处理事故审计入口afterFileEdit记录每一次文件写入数据采集subagentStart/subagentStop解析子代理身份标记、并发上限、判定评审结果流程管控beforeShellExecutionHITL 门禁破坏性命令先问人或拒绝 命令安全stop协议门禁评审没跑、记忆没更新就不让结束回合 协议安全六个阶段的注册配置见 hooks/hooks.json全部由纯标准库 Python 实现hooks/scripts/hook_runner.py跨平台行为一致。HITL 危险命令门禁AI 动危险命令前必须先问你门禁的触发位置HITL 门禁挂在beforeShellExecution阶段——AI 助手每执行一条 shell 命令之前都会先经过它。核心判定逻辑在 hooks/scripts/hook_runner.py 的phase_before_shell_execution中命令文本与一组危险命令正则模式逐一匹配一旦命中按配置返回两种裁决之一ask默认命令暂停弹出确认框由人类确认后才执行deny直接拒绝执行。内置的危险命令模式清单默认模式列表定义在 hook_runner.pyDEFAULT_DANGEROUS_COMMAND_PATTERNS覆盖的是灾难性意图而刻意放过了日常操作模式类别命中示例为何危险高危递归删除rm -rf /、rm -rf ~、rm -rf --no-preserve-root /、rm -rf $HOME根目录/家目录/通配符级删除强制推送git push --force、git push -f覆写远端历史--force-with-lease被放行破坏性 git 操作git reset --hard、git clean -f丢弃未提交工作磁盘覆写dd of/dev/sda、mkfs.、 /dev/nvme0直接擦盘/格式化Fork 炸弹:(){ :|: };:瞬间耗尽系统进程关机类shutdown、reboot、poweroff中断所有工作权限失控chmod -R 777全局开放写权限管道执行远程脚本curl ... \| sh、wget ... \| bash供应链攻击经典入口数据库摧毁DROP TABLE/TRUNCATE DATABASE大小写不敏感不可逆删表删库一个关键设计rm -rf node_modules这类常规清理命令不会被拦截——门禁只对灾难性命令暂停日常开发几乎无摩擦。三层 fail-closed失败即保守设计Harmonist 对 HITL 门禁采用了不确定就拦下的工程哲学这一点非常值得学习空命令载荷 →ask如果宿主没有传来命令文本门禁无法评估安全性宁可疑问也不静默放行hook_runner.py门禁自身出错 →ask内部异常时返回请人工确认绝不让一条坏掉的门禁静默通过缺少 python3 →askPOSIX 参考路径 gate-shell.sh 在没有 Python 可评估模式时直接输出人工确认请求而非放行。换句话说门禁的每一种失效模式最终都落到停下来问人而不是悄悄跳过检查。如何调整 HITL 门禁配置默认策略是hitl_enabled: truedangerous_command_action: ask。集成到项目后可在.cursor/hooks/config.json中按需覆盖完整配置样例见 hooks/README.md{ hitl_enabled: true, dangerous_command_action: ask, dangerous_command_patterns: [在此追加项目专属正则] }三种典型姿势更严格把dangerous_command_action改为deny危险命令直接拒绝更宽松hitl_enabled: false完全关闭仍会启动解释器有约 30–100ms/命令的延迟开销自定义在dangerous_command_patterns中追加项目专属正则比如针对内部工具的危险子命令。注意写错的正则会打 WARNING 日志并跳过该条而不是让门禁静默失效。PROTOCOL-SKIP 逃生琐碎任务不必走全套评审stop 门禁到底查什么在讲逃生之前先明确它逃的是什么。每次 AI 想结束回合stop钩子会检查见 hook_runner.py 的phase_stop至少调用过一个review类评审代理如qa-verifier、security-reviewer强制要求的qa-verifier确实跑过session-handoff.md已为当前任务写入状态条目。任一不满足钩子返回followup_message把缺口列得明明白白回合被强制重开重试上限loop_limit: 3耗尽后任务被强制关闭并记为 PROTOCOL-VIOLATED 事故下个会话开始时以醒目横幅提醒事故持久化于.cursor/hooks/.state/incidents.json。正确打开 PROTOCOL-SKIP对于改个错别字、调一句注释这类任务跑完整评审纯属表演。这时 AI 只需在最终消息中包含一行PROTOCOL-SKIP: 仅修正 README 中的一处拼写错误钩子检测到该标记后放行本次回合并把理由写入会话状态与遥测计数器hook_runner.py。这里有两个精妙的安全细节只在最终消息字段中检测钩子刻意不扫描整个输入载荷因为会话种子文本和上次 followup 里就原样包含PROTOCOL-SKIP: reason模板——全量扫描会让模板本身变成绕过门禁的漏洞代码注释在 hook_runner.py 中把这一点解释得很清楚回显模板无效理由若以开头即原样复读占位符模板视为未声明。内置滥用审计好绕过不好藏PROTOCOL-SKIP 本质是荣誉制——它永远会被记录但不会被阻塞。作为制衡sessionStart阶段每次开新会话都会做一次审计hook_runner.py当 PROTOCOL-SKIP 次数≥ 5 次且占全部完成回合比例≥ 25%时下一个会话开始时直接弹出一条审计横幅!! PROTOCOL-SKIP audit: ...明确要求如果你用它绕过真实代码变更的 qa-verifier立刻停下跑完整门禁。阈值同样可配protocol_skip_warn_threshold_count/protocol_skip_warn_threshold_ratio。这个计数器 比例双门槛的设计既不误伤低频合理使用也让系统性滥用无处遁形——所有细节都可审计于.cursor/hooks/.state/activity.log。清醒的认知门禁是流程约束不是安全边界Harmonist 的官方文档hooks/README.md 的 Limitations 一节非常坦诚地划定了边界.cursor/下的状态与配置文件匹配默认skip_path_patterns恶意 AI 可以改写config.json或session.json而不被记录PROTOCOL-SKIP是荣誉制从不被硬阻塞门禁约束的是诚实但健忘的 Agent防不了蓄意对抗的 Agent。把 Harmonist 的安全边界理解为工程纪律的机械执行器而非沙箱/权限系统你就抓住了它的设计定位。快速自检三道安全闸都生效了吗集成完成后用这个清单逐项确认检查项方法6 个钩子全部加载IDE 设置中的 Hooks 页确认无错误HITL 门禁在线让 AI 执行git reset --hard应弹出人工确认stop 门禁在线让 AI 改一个源码文件却不跑评审回合应被 followup 打回审计链路完整查看.cursor/hooks/.state/activity.log有hitl_gated/protocol_skips计数供应链完整python3 agents/scripts/check_pack_health.py19 项预检含 MANIFEST.sha256 校验总结Harmonist 用两个极简机制回答了AI Agent 安全边界这个难题HITL 危险命令门禁——在命令执行的最后一刻插入人工确认且每一种失效模式都 fail-closed 到停下来问人PROTOCOL-SKIP 逃生——给协议开一个受审计的合法出口用计数 比例双阈值让滥用可见而不是用复杂权限体系把琐碎任务拖进审批地狱。配合 README.md 中介绍的供应链校验MANIFEST.sha256 upgrade.py拒绝被篡改源文件与记忆密钥扫描这套零依赖的markdown 标准库 Python组合构成了新手理解 AI Agent 安全治理的一个优秀范本。【免费下载链接】harmonistPortable AI agent orchestration with mechanical protocol enforcement. 186 agents, zero runtime dependencies.项目地址: https://gitcode.com/gh_mirrors/ha/harmonist创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考