---
title: "护栏（guardrails）是什么"
description: "护栏是在模型之外加的检查与限制，管输入、管输出、管工具权限、管花费；各层分工、误杀与漏放的权衡，以及为什么不能只靠系统提示，是设计时的重点。"
updated: 2026-11-13
canonical: https://docai.cc/concepts/guardrails/
markdown_mirror: https://docai.cc/concepts/guardrails.md
---
## 它是什么

护栏是围在模型外面的一组检查点：什么内容能进、什么内容能出、能碰哪些工具、最多花多少。它不改变模型本身，而是在请求前后做判断与拦截。

把护栏理解成门禁，比理解成「让模型更听话」的提示更准确。模型负责生成，护栏负责决定生成的东西能不能被使用。

## 怎么工作

按位置分，护栏主要覆盖这几处：

- 输入过滤：内容审核、长度与格式限制、注入与越狱特征检测。目的是在花钱调用模型之前，挡掉明显不该处理的内容。
- 输出校验：结构校验、敏感信息检查、引用与事实抽查。模型返回的结构化数据可能字段缺失，回答里也可能带上不该出现的隐私。
- 工具权限：白名单、参数校验、读写分级。模型只能调用明确允许的工具，参数要按定义校验，写操作与读操作分开授权。参考[工具调用](/concepts/tool-use/)的权限设计。
- 预算上限：按次、按用户、按天限制 token 与调用次数，超限直接停止。失控的重试循环比坏内容更容易造成实际损失。

模型层与应用层要分工。模型层通过[系统提示](/concepts/system-prompt/)与训练对齐，让模型「倾向于不做」；应用层用代码判定、权限系统与人工审批，保证「做不成」。只靠前者，等于把安全交给概率。

## 误杀与漏放

任何过滤都是在误杀与漏放之间取舍。太严，正常用户被挡住；太松，坏内容流出去。

做法是按风险分级：低风险场景允许放行并记录，高风险场景宁可误杀也要拦住，再给人工申诉通道。每一步都要记录拦截原因——命中哪条规则、原文是什么、当时用的什么阈值。没有记录的拦截无法复盘。

高风险动作要有硬兜底：转账、删除数据、对外发送消息，不要交给模型自行判断，用固定规则加人工确认或二次验证。

## 常见误解

- **「系统提示就是护栏」**：提示可以被[提示注入](/concepts/prompt-injection/)覆盖，也不能阻止越权的工具调用。它只是第一层。
- **「护栏配一次就永久有效」**：攻击手法在变，业务也在变，规则和阈值需要定期回看。
- **「过滤越严越安全」**：过度拦截会把用户推向绕过的方式，也增加人工复核成本。安全与可用要一起看。
- **「模型自己会拒绝」**：[越狱](/concepts/jailbreak/)的存在说明对齐降低的是概率，不是权限。工具能不能调用，由应用层决定。
