AI 应用护栏设计:从输入过滤到动作确认
整理 AI 应用常见护栏层次:输入风险识别、输出约束、工具权限、人工确认和审计。
AI 安全不是在提示词最后加一句“请安全回答”。对于带工具、带数据、带自动化动作的应用,护栏应该分布在输入、模型、工具和输出多个层次。
OpenAI moderation 和 safety best practices 相关资料强调了内容安全、策略评估和生产应用风险控制;工具文档也说明外部动作需要由开发者定义边界。[safe-001][safe-002][safe-003]
护栏分四层
第一层是输入过滤:识别明显违规、越权或注入式请求。第二层是上下文约束:告诉模型任务边界和禁止事项。第三层是工具权限:后端决定工具是否可执行。第四层是输出检查:在返回用户前做格式、安全和来源校验。
真正的护栏不依赖模型自觉,而是让高风险路径必须经过系统检查。
可以这样记录动作风险:
{
"action": "send_email",
"risk": "external_side_effect",
"requires_user_confirmation": true,
"audit_log": true
}写操作默认确认
工具调用让模型能连接外部系统,但写操作必须保守:
- 删除、付款、发信、提交代码都应确认。
- 读取敏感数据要按用户权限过滤。
- 高风险请求要转人工或拒绝。
- 工具返回错误时不要让模型猜测成功。
把安全也纳入评估
安全样例应该进入回归测试:
- 注入提示词。
- 请求泄露系统提示。
- 越权读取数据。
- 绕过确认执行动作。
- 诱导输出不合规内容。
综合这些资料可以推断:AI 护栏是一套工程控制面,而不是单一模型能力。越靠近外部动作,越应该由确定性代码接管。
参考资料
- [safe-001] OpenAI Developers, “Moderation”, https://developers.openai.com/api/docs/guides/moderation
- [safe-002] OpenAI Developers, “Safety best practices”, https://developers.openai.com/api/docs/guides/safety-best-practices
- [safe-003] OpenAI Developers, “Tools”, https://developers.openai.com/api/docs/guides/tools