Agent Hub Policy Governance · Phase 1

不是再造一个引擎,
而是让每次 Agent 决策都
管得住、测得准、说得清

合作方已有 Agent Hub 和确定性 Policy 执行能力。Phase 1要补齐的是治理基础:Policy可管理、上线前可测试、运行中可度量、事后可审计。

一句话分工

SCUT研究方法和算法、定义规范与评价口径;合作方把这些成果接入现有Agent Hub,建设生产功能并负责上线运行。

Why now

合作方现在缺的,不是“会不会拦截”

OPA、Cedar等工具擅长根据明确规则给出允许或拒绝。更困难的是:规则怎么管理、是否正确、升级会不会出问题、出了问题能否还原。

01

Policy越来越多,谁负责?

版本、责任人、审批状态和生效范围不清楚,容易出现旧规则仍在运行。

→ 建立完整生命周期
02

上线前,怎么知道不会误伤?

缺少标准场景和预期结果,Policy修改后无法系统判断是改善还是倒退。

→ 建立测试、Replay与Benchmark
03

事后,为什么允许了?

没有统一Decision Log和Trace,就无法还原当时用户、Agent、工具、数据与Policy版本。

→ 建立可审计证据链
The operating model

把 OPA 放进一个完整闭环

点击模块查看作用。引擎选型和两个算法的落点已经明确:中间是 OPA,上线前由算法一找规则缺陷,运行后由算法二验证实际影响。

A · 管理与发布Before runtime
B · Agent Hub运行During runtime
C · 证据与改进After runtime
完整闭环上层决定“谁制定、谁审批、何时生效”,并由算法一在发布前找出规则缺陷;中层由 OPA 对每次 Agent 操作作出判断并执行;下层负责证据、评价与改进,算法二在此验证决策与数据暴露的实际影响。
A simple story

用一个业务请求看懂交互流程

不用专业缩写:一位员工请Agent汇总受限客户资料,系统需要同时判断人、数据、用途和工具。

李
业务员工 李女士企业业务团队

她向Agent提出请求

“请汇总这家客户的基本信息,并生成一份内部沟通摘要。”

系统不能只判断“她是不是员工”,还要结合她的角色、数据敏感等级、用途、准备调用的工具,以及当前Policy版本。

1
Agent Hub理解任务准备查询客户资料并生成摘要
继续
2
Policy Adapter整理Context用户角色、数据等级、用途、工具、Policy版本
信息完整
3
Policy Engine作出判断基本信息可访问;受限字段需要更高权限
部分允许
4
Agent Hub执行限制只返回允许字段,隐藏受限内容
已阻止
5
留下完整证据记录Context、Policy版本、判断和执行动作
可审计
Engine selection

四个候选引擎,一个可落地的选型结论

先把 Phase 1 需求拆成 5 个板块、11 个功能点,再对四个开源引擎逐项打分(5 分制,外加开发难度与稳定性),最后结合定位给出结论。TrueFoundry 因未找到开源代码,不纳入比较。

01Policy 管理1.1 加载 Policy 及相关数据
1.2 版本、所有权、审查中/已通过/已部署状态管理
02上下文接收与决策2.1 接收用户信息、Agent 输出等结构化上下文
2.2 支持多种决策结果
2.3 意外情况下默认拒绝或转人工
03Policy 验证与分析3.1 部署前的编译与正确性检查
3.2 冲突检测、缺口检测、规则不可达检测
04Policy 测试4.1 提供自定义测试接口和函数
4.2 支持回归、回放测试
05追踪与审计5.1 记录每次查询的中间信息
5.2 指标统计(FP/FN、覆盖率、冲突率、延迟等)
底层策略决策层给出确定性的 allow / deny 判断,是真正的“判断器”。

OPA

建议主引擎

通用策略决策框架,核心特色是policy-as-code:用代码形式的条件语句表达约束,决策结果稳定、确定性强。

总分 48 / 60 · 四项中最高

Cedar

授权关系

同属底层决策框架,特色是围绕授权关系判断(什么身份才能做什么事)。表达与约束范围更小,处理授权关系时更顺手。

总分 40 / 60
运行时中间层在 Agent 行动流程中设检查点,可调用底层引擎取决策。

AGT

与 OPA 相性最佳

以 Agent 行动流程为中心:从启动、调用模型与工具到结果返回,每步前后设检查点拦截。优点是把拦截过程标准化,不必自行编写相关代码。

总分 46 / 60

Guardrails

内容安全

以 LLM 内容安全为中心,重点判断输入输出是否安全。对自然语言描述的 Policy 很友好,但判断依赖 LLM、不确定性较高,更适合提示词注入等场景。

总分 41 / 60
同一个需求,四种判断方式

“把内网客户名单发到我的 Gmail”

  • AGT在 send_email 调用前后设检查点,逐个行动判断是否 allow
  • Guardrails调用 LLM 判断语义 → 识别“敏感数据外泄” → deny
  • OPA用 Rego 条件语句直接判断,结果确定、可复现
  • Cedar先定义授权模型(动作主体必须是 Agent、资源必须是 DataAsset),再判 permit / deny
综合评分(12 项 × 5 分)
OPA48
AGT46
Guardrails41
Cedar40

OPA 版本稳定、规则是直观的条件判断语句、长期维护时接口不易变;Cedar 除写规则还要定义较多授权模型,相对麻烦;AGT 开源版迭代快、稳定性偏弱,但对 Rego 有专门适配,与 OPA 相性很好;Guardrails 多数判断依赖 LLM,不稳定。

选型结论

只选一个底层引擎 → OPA;若要同时加强 Agent 行为管控与自然语言约束 → AGT + OPA。两套算法正建立在这个结论之上:算法一依赖 OPA 规则的可解析性,算法二依赖 OPA/AGT 的决策日志与沙箱能力。

SCUT research core

两个算法:部署前找问题,运行后验影响

这两个算法不是额外的研究设想,而是针对调研评分里分数最低的三格——冲突缺口检测、回归回放、指标统计,四个引擎在这三格上几乎都是空白。

算法一

基于语义约束规则图的 Policy 缺陷检测

部署前的静态检查:不执行真实业务,只检查 Policy 规则之间是否存在逻辑问题。

输入Policy 规则 · 主体动作资源定义 · 业务控制要求
做法统一规则对象 → 建规则图 → SMT 求解
产出缺陷与规则编号 · 见证输入 · 回归用例
算法一 基于语义约束规则图的 Policy 缺陷检测框架 输入规则源码与业务控制要求,标准化为统一规则对象,构建规则图,用 SMT 求解冲突、不可达、覆盖缺口、冗余覆盖四类缺陷,输出缺陷位置与见证输入。 输入 规则源码 Rego · Cedar · DSL 业务控制要求 必须允许 · 拒绝 · 脱敏 业务词典 主体 · 动作 · 资源 · 等级 ① 标准化 统一规则对象 r = ⟨S, A, R, C, E, O, P, V⟩ 业务要求由大模型初转 + 人工审核,与规则同构化后一起求解 ② 规则图 包含 重叠 覆盖 冲突 依赖 ③ SMT 求解 工具:Z3 冲突 同一输入效果矛盾 不可达 条件矛盾或被覆盖 覆盖缺口 业务要求无规则覆盖 冗余覆盖 不改变最终决策结果 有解 → 缺陷成立,解 x 可直接用作见证输入;无解 → 该关系不成立 ④ 输出 缺陷类型与规则号 具体触发条件 见证输入样例 风险说明 修复建议 回归测试用例
算法一:部署前静态检查链路
它解决的问题Policy 本身有没有冲突、遗漏、重复或失效?
算法二

基于因果执行轨迹重放的 Policy 反事实推演

运行后的动态验证:基于一次真实发生过的 Agent 任务,保持大部分条件不变,只修改指定条件,重新执行并比较结果。

输入真实 Trace · 版本快照 · 待干预条件(Policy 版本/Agent 身份/数据等级/用途)
做法还原检查点 → 双轨隔离重放 → 差分比较 → 最小致因搜索
产出决策翻转与数据暴露差异 · 最小致因 · 回归用例
算法二 基于因果执行轨迹重放的 Policy 反事实推演框架 输入真实 Trace、版本快照与待干预条件,还原执行过程并定位 Policy 检查点,在事实执行与反事实执行两条轨道上隔离重放,比较决策与数据暴露差异,再通过最小致因搜索输出可审计证据与回归用例。 输入 真实 Trace 一次完整执行轨迹 版本快照 Policy · 数据 · 工具 待干预条件 只改这一个变量 ① 还原定位 按 Trace 编号还原 定位判断前检查点 保存原始状态 ② 双轨对照 核心差异 事实执行 · 对照基线 原条件重放同一条 Trace 回答“当时为什么这样判” 反事实执行 · 受控干预 do(变量 = 新值) 后重放 隔离沙箱 · 禁止真实写库发信 ③ 差分比较 决策结果 允许 ↔ 拒绝是否翻转 附加约束 脱敏 · 审批是否变化 数据暴露 哪些字段新增暴露 ④ 最小致因 收缩变量取值,找出让结果翻转的最小条件组合,并定位到具体规则 输出 决策翻转 约束变化 暴露变化 最小致因 证据对 回归用例
算法二:运行后反事实推演链路(② 双轨对照是它与算法一最大的结构差异)
它解决的问题如果换一个 Policy 版本、Agent 身份或数据条件,实际决策和数据流会不会改变?

这里的“因果”指受控修改条件后重新执行,而不是仅凭历史日志相关性推断因果。

Score matrix × algorithm coverage

Policy Engine 评分矩阵与算法补强对应

分数越高越好(5 分制)。带框的格子是四个引擎最薄弱的位置,也正是两套算法要补的位置。

5 分4 分3 分2 分1 分实线框 · 算法补强
评分项OPACedarAGTGuardrails算法补强对应
1.1 加载 Policy 及相关数据5555四家均原生支持
1.2 Policy 版本、所有权与状态管理3332由规范包定义(D03)
2.1 接收结构化上下文5555四家均原生支持
2.2 支持包含多种决策结果5243OPA 可返回任意类型
2.3 决策默认安全、异常时拒绝或转人工3353算法二 · fail-closed 纳入测试
3.1 部署前的编译和正确性检查5555复用原生,不重复造轮子
3.2 冲突检测、缺口检测、规则不可达检测2421★ 算法一(缺口检测四家全空白)
4.1 提供自定义测试接口和函数5255原生支持足够
4.2 支持回归、回放测试3333★ 算法二(四家均为手工比对)
5.1 记录每次查询的中间信息5255OPA/AGT 原生支持
5.2 支持指标统计2221★ 算法二(差分结果即指标来源)
开发难度与稳定性5423—
总分(满分 60)48404641—
1 · 分数最低的三格,就是两套算法的位置

3.2:OPA 仅 2 分(只原生支持规则冲突检测),Cedar 4 分但明确写了不支持缺口检测——“覆盖缺口”是四家共同的空白。 4.2:四家一律 3 分,实现方式都是手工对比历史用例。 5.2:最高只有 2 分,除 latency 外的 FP/FN、覆盖率、冲突率全都要自建。算法一填 3.2,算法二同时填 4.2 与 5.2。

2 · 落地前提,OPA 已经满足

算法一需要可解析的规则源码:OPA 在 3.1 上原生支持 check/build 静态校验(满分),且 Rego 是声明式语言、可解析为 AST。算法二需要可重放的 Trace 与 Policy 版本快照:OPA 在 5.1 上原生支持决策日志且可自行补充中间信息,Bundle 机制天然带版本与签名。另外 2.2 OPA 满分,与决策契约的 allow / deny / allow_with_constraints / escalate 四种 effect 契合。

3 · 三个必须正视的边界

缺口检测缺“业务意图”,是最大前置依赖。四家都不支持缺口检测,原因不是技术做不到,而是没有“应有控制但未被规则覆盖的域”就无法定义缺口——算法一必须先拿到合作方的控制矩阵或正负样例,否则“注入缺陷检出率 ≥90%”无法计算。端到端因果归因不要写进 Phase I 验收。只覆盖“决策层重放 + 工具 Mock”的 2–3 个代表性流程。指标口径要先固化。5.2 四家都低于 2 分、没有任何现成实现,口径不定,算法二产出的差分就变不成可验收指标。另外 2.3 OPA 仅 3 分(没有运行异常下的兜底代码),算法二做 fail-closed 验证时要把它纳入测试范围。

12-month plan

Phase 1:按月推进,两月一次Gate

点击任意月份查看该月的SCUT研究重点、合作方配合事项与当月的可验收交付。每两个月形成一个明确Gate,避免研究与工程长期脱节。

M1–2看清问题
M3–4统一语言
M5–6上线前能测试
M7–8安全地试
M9–10量化好坏
M11–12验证与移交
Clear ownership

研究任务与产品建设不能混在一起

SCUT回答“应该怎样设计、如何验证、怎样衡量”;合作方回答“如何接入现有Agent Hub、如何安全上线和稳定运行”。

SCUT OWNS RESEARCH & METHODOLOGY

SCUT负责

  • Policy生命周期、元数据、Context和证据模型
  • 冲突、缺口、不可达与回归测试方法
  • 两个核心算法的设计、形式化与可行性验证
  • Benchmark场景、预期结果与指标口径
  • Replay、Simulation和Evaluation方法
  • 技术报告、论文与专利技术交底书

不承担:Agent Hub生产系统实现、集成与运维。

THE BANK OWNS PRODUCT & PRODUCTION

合作方负责

  • 提供Agent Hub设计和代表性用例
  • 提供脱敏或合成的Policy、Trace与Decision Log
  • 实现Policy创建、审批、发布和附着功能
  • 接入OPA或其他Policy Engine及业务系统
  • 建设正式测试、Replay、Dashboard与审计功能
  • 负责安全、性能、合规、上线和持续运营

双方共同:范围确认、阶段验收、数据治理、知识产权与成果发表。

What SCUT delivers

不是一份报告,而是六个可验收的交付包

每个交付包都停留在“方法与可验证产物”这一层:既有设计说明,也有能在代表性业务场景中评价的样例与结论。

◈

总体设计包

需求基线、差距分析、目标架构、路线图与任务清单。

◇

引擎选型包

四引擎逐项评分、层级定位、选型结论与集成前提。

✦

算法包

缺陷检测与反事实推演的算法设计、形式化表达与可行性论证。

⌁

验证与基准包

冲突/缺口/回归测试方法、Benchmark场景、预期结果与Replay方法。

◎

证据与评价包

指标口径、基线结果与治理证据结论。

↗

技术转移包

最终报告、培训材料、论文初稿、专利技术交底书与Phase 2准入评估。

Plain-language glossary

本方案中的关键词

保留难以准确翻译的英文,同时用一句话说明作用。

Policy规定Agent在什么条件下可以做什么、不能做什么,以及何时需要人工确认。
Policy Engine根据Policy和Context作出允许、拒绝、复核或降级判断。
Context用户角色、Agent、工具、数据等级和用途等现场信息。
Decision Log / Trace记录为何这样判断以及完整调用过程,用于审计和复现。
Replay / Simulation重放历史或模拟新场景,不影响真实业务地测试Policy。
Benchmark固定的标准场景和预期答案,用来客观比较Policy版本。
AST解析规则时使用的内部结构,不是另一种Policy语言。
SAT / SMT判断一组逻辑条件能否同时成立的计算方法。
Z3可以直接执行SAT/SMT计算、并返回解集的现成工具,用于求解是否冲突、是否覆盖。

Phase 1的真正终点

合作方不只是“装上一个Policy Engine”,而是拥有能持续管理、验证、度量和审计Agent行为的治理能力;SCUT的方法与算法成果也能被工程团队直接接管。

从M1开始