先这样答
Agent 护栏的分层设计本质是纵深防御,业界通常按数据流向分为输入、对话与检索、执行以及输出几个核心层级。这种结构确保从用户输入到模型输出的每个环节都有独立的安全控制。
在输入侧,核心目标是防止提示词注入。机制上需要对输入进行校验与消毒,并采用结构化提示将外部内容当作数据而非指令处理。对于网页或文档等远程内容,间接注入风险高,必须单独过滤。对话流控与检索护栏则负责在多轮交互中维持状态,并在知识库内容进入上下文前进行拦截。输入护栏默认可以与 Agent 并行执行以节省延迟,但在触发异常中止前,模型可能已经消耗了计算资源。
在执行侧,护栏把控工具调用闸门,严格遵循最小权限原则。工具仅授予只读或受限作用域的账号权限,并按用户身份与会话上下文校验每次调用的参数。高危操作必须转入人工审批流程,同时辅以预算上限、单工具超时控制与应急停机开关。
在输出侧,护栏在响应返回给用户前运行。它负责核查事实、检测幻觉,并过滤可能泄露系统提示或密钥的敏感数据,最后对渲染格式进行消毒。面试时可以总结说,单一控制无法完全抵御注入攻击,必须在架构层用权限隔离与校验兜底,把模型自身的审查仅作为防御链条中的一环。
面试官会怎么追问
-
「为什么 prompt injection 不能靠写好系统提示解决?」 注入的本质是指令与数据的边界模糊,模型自身无法绝对可靠地区分两者。OWASP 明确指出系统提示单独使用是不够的,持续攻击者使用大量变体最终可能得手,有研究显示在 GPT-4o 上足够多次尝试后成功率约百分之八十九。必须在架构层通过权限隔离和结构化输入来兜底。
-
「工具权限具体怎么设计?」 必须从最小权限起步,默认提供只读权限并使用白名单工具集。每次调用都要校验用户身份与会话上下文,对于敏感或不可逆的动作,采用读操作自动执行、写操作人工审批的机制。
-
「护栏模型的延迟和误拦怎么权衡?」 输入护栏可以与 Agent 并行运行来节省延迟,代价是触发拦截异常前模型可能已产生消耗。如果采用阻塞模式则会增加延迟。误拦问题通常通过针对不同场景设定差异化阈值,并依赖人工复核数据回流来进行调优。
回答的坑
- 认为部署了独立护栏模型就能解决安全问题。正确方向是明确模型式护栏只是纵深防御的一层,不能替代传统的参数校验与权限控制。
- 忽视人工确认环节本身的安全风险。正确方向是指出人工确认界面必须展示真实的动作后果,且审批通道在架构上不能被 Agent 绕过。
同系列的题