Policy(能力边界 / 工具策略)
它解决什么问题
一旦 Agent 能调用工具,就必须先定义 能力边界:
- 防止越权与危险行为(删文件、外发数据等)。
- 控制成本(限流、预算)。
- 让“能做什么/不能做什么”可审计、可复现。
实际工程里,Policy 往往就是:工具白名单/黑名单 + 约束规则,对每一次 tool call 生效。
什么时候用
- 计划把 Agent 上线,并允许它做真实动作。
- 工具多、风险级别不一。
- 希望在各种模式(ReAct、Agentic RAG、多智能体)里统一控制权限。
核心流程
flowchart TD
A["Agent 提议工具调用"] --> P["Policy 检查(白名单 + 约束)"]
P -->|允许| T["执行工具"]
T --> O["观察结果"]
P -->|阻止| B["返回违规原因"]
B --> R["改计划 / 选更安全的工具"]
演化路径
- 依赖:工具调用 + 结构化输出 + loop 控制器
- 常见下一步:
- Guardrails(运行时 Tripwire/校验器)
- HITL(高风险动作走审批)
- Evaluation(避免策略变更导致回归)
Repo 对应
- 代码:
src/agent_patterns_lab/runtime/policy.py - 示例:
examples/66_governance_hitl_policy_guardrails.py - 测试:
tests/test_policy.py