Agent Guardrails:运行时安全护栏实践
为什么Guardrails成为独立议题
Agent和普通LLM应用的根本区别:Agent会行动。一旦Agent具备工具调用、MCP、记忆、外部系统访问能力,它就是一个"会行动的软件主体"。Prompt Guardrail(输入过滤)不够用了——输出阶段的行为同样需要约束。
三层纵深防御
| 层级 | 技术 | 作用 |
|---|---|---|
| 模型层对齐 | RLHF / Constitutional AI / DPO | 出厂基线,不是终点 |
| 架构层设计 | 最小权限 + 沙箱 + 操作分级 | 从设计上限制风险 |
| 运行时护栏 | 输入Guard + 输出Guard + 行为Guard | 实时拦截兜底 |
操作分级审批
低风险操作(查询、搜索)→ 自动执行
中风险操作(写入、发送)→ 记录日志 + 限流
高风险操作(删除、转账)→ Human-in-the-Loop
Forge:开源Guardrails框架
2026年5月Hacker News 680+ upvotes。核心能力:Rescue Parsing(格式错误自动修复)、Retry Nudges(不满意自动引导重试)、Response Validation(输出结构校验)、Required Steps(强制关键步骤顺序)、Context Compaction(长对话自动压缩)。
效果:8B本地模型正确率从个位数→84%,搭配Sonnet 4.6达到98%。
# Proxy模式——兼容OpenAI和Anthropic API
forge proxy --port 8080
# Python SDK
from forge import Guardrails
guard = Guardrails(rescue_parsing=True, retry_nudges=True)
result = guard.run(agent, task)
AgentDoG 1.5:轨迹级运行时审计
将安全从"事后审计"推进到"运行时拦截"。Agent发出最终回复前,对完整执行轨迹做安全审计。检测到风险时阻止最终交付,而非事后报警。
关键指标
| 指标 | 无Guardrails | 加Guardrails后 |
|---|---|---|
| Prompt注入拦截率 | ~40% | >95% |
| 敏感信息泄露率 | ~12% | <3% |
| 高危操作误执行率 | ~8% | <0.5% |
| 任务完成率 | 85% | 82%(轻微下降) |
避坑经验
- 不要只靠Prompt做安全——"你是安全的Agent"对精心构造的攻击无效
- 高危操作必须Human-in-the-Loop
- Guardrails过度限制会降低任务完成率,安全与可用性需平衡
- 记录一切被拦截的操作,用于持续改进
- 定期用对抗样本测试Guardrails是否仍然有效