Skip to content

Agent Guardrails Pipeline:Agent 防护流水线怎么设计 ​

这篇文章解决什么问题 ​

Guardrails 不是单个正则,也不是系统提示里写“不要做坏事”。生产级 Agent 需要在输入、检索、上下文、工具、输出和反馈多个阶段设置防护点。

Agent Guardrails Pipeline 的目标是把安全从 Prompt 变成可测试、可审计、可回滚的工程流水线。

防护位置 ​

阶段防护点
InputPII、越权请求、恶意指令、任务边界
Retrievaluntrusted content、权限过滤、文档状态
Context Packinstruction/evidence 分离、token budget
Tool Callschema、scope、risk、approval、args_hash
Outputschema、citation、PII、policy、unsafe claim
Feedback负反馈分诊、安全样本入库

Pipeline 设计 ​

mermaid
flowchart TD
  Input[User Input] --> InputGuard[Input Guard]
  InputGuard --> Retrieve[RAG / Memory]
  Retrieve --> ContextGuard[Context Guard]
  ContextGuard --> Model[Model]
  Model --> ToolGuard[Tool Guard]
  ToolGuard --> Tool[Tool Executor]
  Model --> OutputGuard[Output Guard]
  OutputGuard --> User[User]
  OutputGuard --> Trace[Safety Trace]

Guardrail 输出结构 ​

字段说明
guardrail_id防护规则 ID
stageinput、context、tool、output
decisionallow、block、rewrite、approval_required
reason_codeinjection、pii、permission、unsafe_tool
severitylow、medium、high、critical
evidence_refs触发依据
fallback拒答、澄清、人工接管
policy_version策略版本

不同风险的处理 ​

风险处理
不清楚任务ask_clarification
轻微格式问题rewrite / repair
无权限数据block + explain
高风险工具approval_required
Prompt Injectionignore untrusted instruction + log
PII 泄漏redact + safe answer
危险操作block 或 human_review

评测 ​

Guardrails 也要有评测集:

  • prompt injection 样本。
  • 越权数据请求。
  • PII 输入和输出。
  • 高风险工具调用。
  • RAG 冲突证据。
  • 无答案问题。
  • 格式破坏样本。

面试表达 ​

可以这样讲:

> 我不会把 Guardrails 当成一句系统提示,而是设计成输入、检索、上下文、工具和输出多阶段流水线。每个 guardrail 都返回 decision、reason_code、severity、fallback 和 policy_version,并进入 Trace。这样安全策略可以被评测、审计、灰度和回滚。

落地检查清单 ​

  • [ ] 是否有 input/context/tool/output 多阶段防护?
  • [ ] 每次拦截是否记录 reason_code 和 policy_version?
  • [ ] 高风险工具是否返回 approval_required?
  • [ ] 输出是否检查 schema、citation、PII 和 policy?
  • [ ] 是否有安全评测集和回归样本?
  • [ ] 是否能按策略版本灰度和回滚?