<!-- title: 行为合约四栈：让Agent越权不可能 -->

2026年自主智能体治理正在经历一次根本性范式断裂：**把安全从"对随机系统的礼貌请求"搬进确定性应用代码**。OWASP 与 ICML/ICLR 的实测把旧范式的死刑判决写得很清楚——自适应攻击对 GPT-4o、Claude 3、Llama-3 的越狱成功率仍是 100%，而 56% 的企业根本没有 FinOps 护栏，token 单价暴跌 280 倍的同时推理账单反而涨了 320%。新范式回答三个问题：**这次动作被允许吗？是哪个 Agent 干的？你能否证明发生过什么？** 四栈在此刻成型——形式化行为合约（AgentAssert、pactrun）、确定性策略引擎（Microsoft Agent Governance Toolkit）、特权环沙箱（Agent Runtime）、预算熔断（Agentic FinOps / agent-budget-guard）。它们共享一句口号：被内核拒绝的动作不是"不太可能"，而是**结构上不可能**。

## 对比表格：自主Agent治理四栈

| 维度 | AgentAssert (ABC) | pactrun | MS Agent Governance Toolkit | agent-budget-guard |
|------|-------------------|---------|------------------------------|---------------------|
| 定位 | 形式化行为合约引擎 | 会话级合约 + 预算门 | 运行时治理全家桶 | 预算追踪与熔断 |
| 强制点 | 每轮输出 / 节点 / 任务 | 每次 LLM 调用前（最坏情况） | 每次工具调用 / 委派前 | 每次 API 调用后 + 执行前预估 |
| 核心机制 | ContractSpec DSL + (p,δ,k) 满足 + Theta | 20 谓词 + 6 恢复模式 + Page-Hinkley | YAML/OPA/Cedar 策略 + Ring 0-3 | track/check/summary + MCP |
| 数学保证 | Lyapunov 稳定性、组合证明 | 最坏情况预算界 | fail-closed 确定性决策 | 硬阈值 block |
| 集成 | LangGraph/CrewAI/OpenAI Agents | OpenAI/Anthropic/Gemini/LiteLLM/LangGraph | PyPI+npm+NuGet+Rust+Go、Claude Code 插件 | MCP 服务器 |
| 许可证 | AGPL-3.0 | 待 PyPI | MIT | MIT |
| 成熟度 | 论文+293场景基准 | alpha v0.1.0（214 测试） | Public Preview（9 包） | v0.1.1 |

## 深度分析

### 一、范式断裂：从"概率劝说"到"结构性不可能"

旧治理把规则写进系统提示，本质是"请一个概率系统遵守礼貌"。这条路在 2025 年被正式判死：Andriushchenko 等人在 ICLR 2025 用 logprob 访问 + 后缀优化做自适应攻击，对 GPT-4o、GPT-3.5、Claude 3、Llama-3 取得 **100% 攻击成功率**（JailbreakBench 基准）。微软自家红队《Lessons from Red Teaming 100 GenAI Products》也承认"缓解措施无法完全消除风险"，并把"攻击成功率 ASR"列为该类失效的权威度量。

新范式的工程含义很直接：**安全必须在意图抵达网络之前，由确定性代码拦截**。AgentAssert 把它叫"运行时强制（runtime enforcement）"，微软 AGT 叫"结构上不可能（structurally impossible）"，pactrun 叫"出账前拒绝（refused before it bills）"。三种说法指向同一件事——把约束从 prompt 里抽出来，下沉成 `if/raise`、状态机谓词和策略引擎，让违反约束的动作根本无法构造。这是 2026 年自主 Agent 工程里唯一被严肃对待的方向。

### 二、AgentAssert：形式化行为合约的六支柱

AgentAssert（`agentassert-abc`，arXiv:2602.22302）是这一波里最"学院派"的栈，把 Eiffel 的按契约设计（Design-by-Contract）整体搬进 Agent 世界。它用 YAML 写 **ContractSpec DSL**（14 个操作符），把约束分成 **硬约束（违反即拦）** 和 **软约束（记分、降级、恢复）** 两层，并配 **Jensen-Shannon 散度漂移检测** 捕捉会话中行为分布的悄然偏移。

```python
import agentassert_abc as aa
adapter = aa.load("contracts/examples/healthcare-triage.yaml")
result = adapter.check_and_raise({
    "output.pii_detected": False,
    "output.brand_tone_score": 0.85,
    "output.recommendation_relevance_score": 0.9,
})
summary = adapter.session_summary()
print(summary.theta, summary.theta >= 0.90)  # 可靠性分 + 部署门槛
```

它的杀手锏是 **(p, δ, k)-满意度**——给出带统计界的概率合规保证，外加组合安全证明（多智能体管线有形式化界）和基于 Ornstein-Uhlenbeck 动力学的 Lyapunov 稳定性证明。落地层面对 LangGraph 节点拦截、CrewAI 任务护栏、OpenAI Agents SDK 输出护栏三套适配器。缺点同样明显：Python 3.12+、AGPL-3.0（商业集成需法务过一遍），且当前基准 pass rate 全 1.00，说明 AgentContract-Bench 还偏"白盒"，对抗鲁棒性仍待第三方复现。

### 三、pactrun：会话级合约与"最坏情况"预算门

pactrun（原 `agentpact`）抓住了旧护栏的一个致命盲区：**消息级护栏管不到会话**。一个 Agent 可以每一轮都通过内容审核，却在整个会话里烧掉 50 美元、死循环、或调用了一个绝不该调的工具。pactrun 的定位是会话级行为合约——一行 `wrap()` 把任意 OpenAI/Anthropic 客户端包起来，每次调用**在计费前**算最坏情况成本界，超预算直接 `ViolationError`。

```python
client = pactrun.wrap(
    openai.OpenAI(),
    max_cost="$0.50",                 # 整轮预算——越过它的那次调用在出账前被拒
    no_loops=True,                    # 停止重复工具循环
    forbid_tools=["delete_account"],  # 永不让模型调这个
    max_drift=0.5,                    # 标记每轮成本爬升
)
```

它的工程完成度相当高：20 个内置谓词（成本/工具/输出/时序/行为）、6 种恢复模式（log/warn/block/escalate/retry/fallback）、Page-Hinkley + EWMA 双漂移检测、214 个测试。关键设计是**延迟求值**——`must_call`、`tool_order` 这类只能事后评判的谓词自动推迟到会话结束，而成本/循环/延迟检查是逐事件评估，`block` 模式违规会瞬间停机。当前短板：alpha、Gemini/LiteLLM 的预调用门还没做（目前只覆盖 OpenAI/Anthropic），正式多智能体组合还在路线图。

### 四、Microsoft AGT：九包治理栈与确定性拦截

2026 年 4 月 2 日微软开源 **Agent Governance Toolkit (AGT)**，是目前体量最大的运行时治理栈，覆盖 **OWASP Agentic Top 10 全部 10 项**。它把问题压成三个提问：动作被允许吗？是哪个 Agent 干的？能否证明发生过什么？对应三层：确定性策略引擎（YAML/OPA/Cedar）、零信任身份（SPIFFE/DID/mTLS）、防篡改审计日志。

```python
from agentmesh.governance import govern
safe_tool = govern(my_tool, policy="policy.yaml")   # 每次调用检查+日志+强制
```

```yaml
# policy.yaml
rules:
  - name: block-destructive
    condition: "action.type in ['drop','delete','truncate']"
    action: deny
  - name: require-approval-for-send
    condition: "action.type == 'send_email'"
    action: require_approval
    approvers: ["security-team"]
```

它的卖点是"任何框架、一行接入"——PyPI / npm / NuGet / Rust / Go 全语言 SDK，还能作为 Claude Code 插件（`/plugin install agt-governance`）。九个包各司其职：Agent OS（策略引擎）、Agent Control Specification（Rust 核心、fail-closed 决策）、Agent Mesh（信任网格）、Agent Runtime（沙箱）、Agent SRE（kill switch + 混沌测试）、Agent Compliance（OWASP 验证）、Agent Marketplace（插件信任评分）、Agent Lightning（RL 训练治理）、Agent Hypervisor（执行审计）。还有 MCP 安全网关做工具投毒/漂移/拼写劫持扫描。短板：Public Preview，GA 前可能有破坏性变更；策略 DSL 自有格式带来一定迁移税。

### 五、特权环与补偿事务：Agent Runtime 的执行监管

AGT 里的 Agent Runtime（`agentmesh-runtime`，上游 `agent-hypervisor`）把操作系统的权限环思想搬进 Agent，分四级 **Ring 0-3**：Ring 0 系统级、Ring 1 可信、Ring 2 标准、Ring 3 沙箱。每次 `session.execute` 必须指定环号，越权动作在执行前被拒。

```python
from hypervisor import Hypervisor, SessionConfig, ConsistencyMode
hv = Hypervisor()
session = await hv.create_session(
    config=SessionConfig(consistency_mode=ConsistencyMode.EVENTUAL))
result = await session.execute(
    agent_id="researcher-1", action="tool_call",
    tool="web_search", ring=2)  # 受限权限环
```

它解决的是自主 Agent 的"爆炸半径"问题：**Saga 补偿事务**给多步工作流提供回滚（某步失败自动触发补偿），**联合责任（Joint Liability）**追踪多智能体协作里的归因、担保与隔离，**Kill Switch** 带审计轨迹的即时终止，**哈希链审计日志**保证可证明性。一致性模式分 strict/eventual/causal 三档，对应多智能体并发下的不同一致性/可用性取舍。这套思路的实质是：**给 Agent 一个真正的执行内核，而不是让它在裸进程里跑**。这是从"Agent 框架"演进到"Agent 操作系统"的关键一步。

### 六、预算熔断：Agentic FinOps 与 280x/320% 悖论

自主 Agent 的失控首症是**成本**。一组刺眼数字：过去一年 token 单价跌了约 280 倍，但生产推理账单反而涨了 320%——因为 Agent 会子智能体调子智能体、上下文越堆越长、推理模型动辄吐几千 token。Gartner 数据显示 **56% 的组织根本没上 FinOps 护栏**，这正是预算深夜暴雷的温床。

`agent-budget-guard` 是这一层的轻量代表（由 AI co-founder"沐"自建自用，24/7 监控自己）。它暴露 `track`（调用后写 JSONL）、`check`（执行前预估，返回 approve/warn/block）、`summary`（按模型/任务汇总）三件事，并提供 MCP 服务器让任何 MCP 客户端复用。实测单日（2026-03-01）25 次调用 $0.55，还能标出 output token 是均值 3 倍的异常点。

```python
from agent_budget_guard import BudgetGuard
guard = BudgetGuard(budget_usd=2.0)
guard.record(model="claude-sonnet-4-6", input_tokens=3000, output_tokens=400)
if guard.is_over_budget():
    raise RuntimeError("预算超限，停止执行")
```

更成熟的做法是 pactrun 的"出账前最坏情况门"和 AGT 的网关级成本归因（在网关收口、而非在 Agent 代码里）。Agentic FinOps 的核心信条只有一句：**成本必须在出账前可拦截，而不是月底账单里才发现**。

### 七、AgentContract-Bench：合约保真度的真实账本

光有合约引擎不够，还得能测。AgentAssert 内置 **AgentContract-Bench**：293 个场景、12 个领域（电商、金融顾问、医疗分诊、MCP 工具、RAG、代码生成、客服、电信支持……）。当前 v0.1.0 全域硬/软约束 P/R/F1 都是 1.00——这说明基准偏"规约白盒"，离对抗性红队还有距离。

更说明问题的是它对真实模型的 **Live LLM 基准**：在 10-16 轮电商会话、`retail-shopping-assistant` 合约下：

| 模型 | 轮次 | 硬违规 | 软违规 | Theta 可靠性 | 平均漂移 |
|------|------|--------|--------|--------------|----------|
| GPT-5.3 | 16 | 0 | 11 | 0.688 | 0.034 |
| Claude Sonnet 4.6 | 10 | 4 | 0 | 0.823 | 0.020 |

数据本身比分数更值得读：**GPT-5.3 零硬违规但软违规 11 次**（合规但越界边缘），**Claude Sonnet 4.6 零软违规但硬违规 4 次**（边界守得严但偶发越线）。两者 Theta 都未到 0.90 的部署门槛。这印证了核心论点：**没有任何模型能在 prompt 层稳定守住合约**，Theta 这种量化分才是"能否上线"的硬门槛，而不是模型评测分。

## Mermaid：自主Agent确定性拦截栈

```text
flowchart TD
    U[用户任务/自然语言目标] --> A[Agent Loop 规划+工具调用]

    substack 拦截栈["确定性拦截栈 — 出账/出网之前"]
        direction TB
        L1["① 行为合约层<br/>AgentAssert / pactrun<br/>硬软约束 · Theta · 漂移检测<br/>违约即 block/escalate"]
        L2["② 策略引擎层<br/>Microsoft AGT<br/>YAML/OPA/Cedar · fail-closed<br/>deny / require_approval"]
        L3["③ 特权环沙箱层<br/>Agent Runtime<br/>Ring 0-3 · Saga 补偿<br/>Kill Switch · 爆炸半径"]
        L4["④ 预算熔断层<br/>agent-budget-guard / FinOps 网关<br/>最坏情况成本界<br/>出账前 block"]
    end

    A --> L1 --> L2 --> L3 --> L4
    L4 -->|全部放行| T[工具/网络/数据库]
    L1 -.违约.-> X[ViolationError 拦截]
    L2 -.deny.-> X
    L3 -.越环.-> X
    L4 -.超预算.-> X
    X --> AU[防篡改审计日志<br/>谁 · 做了什么 · 为何允许/拒绝]

    style L1 fill:#e8f0fe
    style L2 fill:#fce8e6
    style L3 fill:#fef7e0
    style L4 fill:#e6f4ea
    style X fill:#fbbc04
```

图里有一条贯穿全栈的红线：**每一层都能独立把动作拦下，且任何一次拦截/放行都进防篡改审计日志**。这正是"三问"的工程化——动作是否允许（合约+策略）、是谁做的（特权环身份+归因）、能否证明（哈希链日志）。四层叠加的意义在于纵深防御：即便某一层被绕过（比如模型在 prompt 里被注入），下游的策略引擎、特权环、预算门仍会把越权动作拦在网络之前。

## 推荐方案

**轻量起步（单 Agent、想先止血）**：先上 `agent-budget-guard` 或 pactrun 的 `max_cost` 一行包——把"月底账单惊喜"先堵住。这是 ROI 最高、迁移成本最低的一步，适合所有还在 prompt 里裸跑的团队。

**合规与可审计（金融/医疗/电信、监管场景）**：直接上 Microsoft AGT，理由有三——OWASP Agentic Top 10 全覆盖、多语言 SDK、防篡改审计日志天然满足"可证明性"。再叠 AgentAssert 的硬约束 + Theta 部署门槛做质量门。这两者互补：AGT 管"能不能做"，AgentAssert 管"做得够不够好"。

**多智能体与长程自治**：AGT + Agent Runtime（Ring 特权环 + Saga 补偿）是当前唯一把"爆炸半径"和"补偿回滚"做实的组合。pactrun 的会话级合约可做第二道闸，专门抓死循环与会话级成本漂移。

**研发与实验**：AgentAssert 的 (p,δ,k) 满足度和组合安全证明适合做形式化研究；pactrun 的最坏情况预算门和 20 谓词适合做护栏原型迭代。

**变现/训练营评估**：这一栈的变现路径清晰——"自主 Agent 安全治理"是 2026 年企业落地的硬刚需，56% 的组织缺口就是市场。可包装成三层产品：(1) 预算熔断 SaaS（agent-budget-guard 路线，低门槛、高频）；(2) 合约 + 审计合规包（AgentAssert + AGT 路线，高客单）；(3) 多智能体治理咨询（Ring/Saga/责任归因路线，定制化）。训练营选题建议锁定"从 prompt 护栏到运行时合约"这条迁移线，用 GPT-5.3 vs Claude Sonnet 4.6 的 Theta 对比做钩子——数据冲突感强、可复现、直接指向"Theta 0.90 部署门槛"这个落地指标。

## 参考来源

1. [Introducing the Agent Governance Toolkit — Microsoft Open Source Blog](https://opensource.microsoft.com/blog/2026/04/02/introducing-the-agent-governance-toolkit-open-source-runtime-security-for-ai-agents/) — 微软 2026-04-02 开源九包运行时治理栈，三问框架与确定性拦截论述
2. [microsoft/agent-governance-toolkit — GitHub](https://github.com/microsoft/agent-governance-toolkit) — 策略引擎 YAML/OPA/Cedar、Ring 0-3、Saga、Kill Switch、OWASP 10/10、Claude Code 插件
3. [AgentAssert: Formal Behavioral Contracts for Autonomous AI Agents — arXiv:2602.22302](https://arxiv.org/abs/2602.22302) — ContractSpec DSL、硬/软约束、(p,δ,k) 满足度、Lyapunov 稳定性、AgentContract-Bench 293 场景
4. [beyhangl/pactrun (原 agentpact) — GitHub](https://github.com/beyhangl/agentpact) — 会话级行为合约、最坏情况出账前预算门、20 谓词与 6 恢复模式、Page-Hinkley 漂移
5. [woodwater2026/agent-budget-guard — GitHub](https://github.com/woodwater2026/agent-budget-guard) — Agent API 成本追踪与预算熔断，MCP 服务器，2026-03-01 真实 usage_log 单日 $0.55/25 调用
6. [The Agent Compute FinOps Crisis — AgentMarketCap](https://agentmarketcap.ai/blog/2026/04/15/agent-compute-finops-crisis-production-inference-costs) — token 单价 -280x 而推理账单 +320% 的悖论与企业成本失控案例
7. [56% Skip AI FinOps Guardrails: The Fix (June 2026)](https://agileleadershipdayindia.org/blogs/agent-finops-per-session-cost-control/finops-for-agentic-ai-guardrails.html) — Gartner 口径下 56% 组织缺失 FinOps 护栏与 per-session 成本控制工程化路径
8. [Andriushchenko et al., Jailbreaking Leading Safeguarded LLMs with Greedy Coordinate Gradient — ICLR 2025](https://arxiv.org/abs/2404.02151) — 自适应攻击对 GPT-4o/Claude 3/Llama-3 达 100% ASR，奠定"prompt 层不可靠"的工程前提

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
