乐于分享
好东西不私藏

别再迷信AI的“自觉性”了——我用五层Harness架构,把它关进了安全笼子

别再迷信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、私钥;禁止访问.envcredentials.*等敏感文件;拦截“ignore previous instructions”这类提示词注入攻击;

危险操作清单rm -rfgit push –forcecurl | 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`

这是架构的核心执行层,由3Shell拦截脚本组成,实现工具调用全生命周期的三重管控,相当于给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自觉,是靠系统强制。