别再迷信AI的“自觉性”了——我用五层Harness架构,把它关进了安全笼子
不是靠AI自觉,是靠系统强制。
这是我在系统引入AI辅助开发后,最深刻的感悟。
如果你也用过AI写代码、做开发,大概率会有过这样的焦虑:
“它会不会顺手改了我的生产配置?会不会把数据库密码打印在日志里?”
很多人觉得这是杞人忧天,但做过生产级开发的人都懂:大模型本质上只是个“猜下一个词”的概率统计机器,它不懂“边界”,更没有“敬畏心”。
靠Prompt里加几句“请注意安全”约束AI,就像靠道德自觉维护系统稳定——理论可行,早晚出问题。
我负责的系统是Spring Boot 3.4.4 + Vue 3的前后端分离架构,容不得半点差错。为此,我设计并落地了一套五层AI Harness架构,把AI的行为牢牢锁在安全边界里。
今天把完整思路整理出来,不管你是做后端、前端,还是负责AI落地,这套架构都能启发与参考。
先搞懂:什么是AI Harness?
Harness的原意是“挽具、缰绳”——就是套在马脖子上,控制方向、防止乱冲的那根绳子。
放到AI领域,它的核心逻辑很简单:
不是限制AI的能力,而是锁定AI的边界。
让AI在你划定的安全区间内尽情发挥效率,一旦越线,就自动拦截、强制终止。
这套五层架构,每层职责独立、相互协同,缺一不可,形成一套“纵深防御”体系,从认知到执行,把安全做到闭环。
五层AI Harness架构详解
第一层:上下文层(Context Layer)— 让AI“认清自己的位置”
核心文件:`CLAUDE.md`
这是最容易被忽视,但最基础的一层——它是AI的“项目说明书”,每次会话启动时,AI会首先读取这份文件。
里面要写清楚3件事:
•项目基础:比如“这是前后端分离系统,后端Spring Boot + MyBatis-Plus,前端Vue 3 + Element Plus”;
•角色定位:代码生成时是“高级开发工程师”,代码审查时是“技术审查员”;
•规范标准:代码命名、文件路径、提交信息的格式要求。
没有这一层,AI就像“无头苍蝇”——可能生成和项目技术栈不匹配的代码,可能创建不符合规范的文件,甚至误解业务背景做出方向性错误。
简单说:上下文层解决“AI理解项目”的问题,是所有管控的基础。
第二层:约束层(Constraint Layer)—— 告诉AI“什么绝对不能做”
核心文件:`AI_HARNESS.md`
如果说上下文层告诉AI“它是谁”,那约束层就是告诉AI“什么碰不得”——这是整个架构的“法律条文”,建议跨项目通用,不轻易修改。
我用表格明确了三类核心边界,清晰易懂、便于执行:
•安全规则:禁止泄露密码、API Key、私钥;禁止访问.env、credentials.*等敏感文件;拦截“ignore previous instructions”这类提示词注入攻击;
•危险操作清单:rm -rf、git push –force、curl | bash等命令一律阻断;git reset –hard、删除文件、推送远程等操作,必须二次确认;
•违规等级体系:L1(警告后继续)、L2(阻断需确认)、L3(阻断并终止会话),处理梯度清晰,不模糊。
这里要注意和CLAUDE.md的区别:前者是跨项目的“安全底线”,后者是项目特有的“配置说明”。
第三层:工具层(Tool Permission Layer)—— 把规则“固化成权限”
核心配置:`.claude/settings.json`
约束层定了“法律”,工具层就是“执法工具”——把规则固化为系统级权限,让AI物理上无法违反。
核心思路是最小权限原则:AI要读代码,就给读权限;要执行测试,就给测试命令权限;不需要的工具(比如删除文件、修改系统配置),一概不开放。
这一层的关键价值的是:权限控制在系统配置里,而不是Prompt里。
Prompt里的规则,理论上只要提示词足够巧妙,就可能被绕过;但系统配置里的权限,AI再“聪明”也无法突破——从根源上杜绝违规操作。
第四层:中间件层(Middleware / Hook Layer)—— 全生命周期“实时拦截”
核心文件:`pre-tool.sh` / `post-tool.sh` / `session-end.sh`
这是架构的“核心执行层”,由3个Shell拦截脚本组成,实现工具调用全生命周期的三重管控,相当于给AI加了“三道防火墙”。
•pre-tool.sh(前置拦截器)—— 阻断型AI调用工具前触发,逐一检测危险命令、禁止访问的文件、关键路径操作。只要命中规则,立即终止调用(exit 1),比如检测到rm -rf,直接拦截,不允许执行。同时还会检查端口、路径冲突,防止AI踩坏已有服务。
•post-tool.sh(后置审查器)—— 告警型工具调用完成后触发,用正则扫描AI的输出内容,检测凭证泄露、隐私数据(身份证、手机号)、安全漏洞(硬编码密钥)、代码质量问题。不阻断操作,但会实时告警,并写入审计日志。
•session-end.sh(会话归档器)—— 审计型会话结束时触发,汇总工具调用次数、安全告警数、被阻操作数,生成JSON审计报告,按日期归档,自动清理7天前的历史记录——每一次AI协作,都有迹可循、可追溯。
第五层:编排层(Orchestration Layer)—— 规范AI“怎么做才对”
核心文件:`harness-flow.md`
前四层解决了“不能做什么”和“怎么管控”,而编排层解决的是“怎么做才规范”——定义标准化工作流,让AI的每一步操作都有章可循。
我设计了四阶段工作流,配套标准模板,强制AI执行:
1.理解确认:动手前必须复述任务、识别边界、标注风险、确认方案——杜绝AI“边想边写”,减少无用功;
2.规划分解:复杂任务(超过3步)必须拆步骤、分析依赖、检查资源,等待用户批准后再执行;
3.执行实施:在中间件的保护下逐步执行,每完成一步,向用户报告进度;
4.验证交付:AI自我检查、用户验收,触发会话归档,完成闭环。
五层协作:为什么是“纵深防御”?
这五层不是独立运作的,而是层层递进、相互兜底,哪怕某一层失效,也不会导致系统崩溃:
•L1(上下文)建立认知,L2(约束)设立红线,L3(工具)固化权限,L4(中间件)实时执法,L5(编排)规范流程;
•即便Prompt被注入攻击,绕过了L2约束层,L3的权限控制和L4的拦截脚本仍会兜底,阻止违规操作;
•每一层都有独立日志,整体可观测、可审计、可追溯,出问题能快速定位根源。
写在最后:别把安全交给AI的“自觉”
银行柜员不能仅凭职业道德保证不挪用公款——需要双人复核、监控录像、系统权限控制。
AI辅助开发也是一样。
系统的安全性,从来不应依赖执行者的道德自觉。
我们拥抱AI,是为了提升开发效率,但不能以牺牲系统安全为代价。这套五层Harness架构,本质上就是把“写在Prompt里的建议”,变成“写在系统里的强制约束”。
在享受AI带来的便利之前,先把安全的笼子建好——这才是对生产系统、对自己的工作,最基本的工程师态度。
最后再强调一句:
不是靠AI自觉,是靠系统强制。
夜雨聆风