paper2skills Playbook

Agent Error Budget — 双向错误预算:自主权随可靠性动态调整

Skill-Agent-Error-Budget · 16-智能体工程

causalexperimentmulti_agentpricing供应链与补货客服与VOCMAS与智能体工程定价与利润WF-A 智能补货WF-C 客服分诊WF-D 选品扫描WF-E Review监控WF-F 动态定价
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色CTO / 技术负责人 · 产品经理 · 数据工程师
适用平台跨境运营 AI Agent 工程落地 · Amazon SP API + LLM 集成 · 多平台数据采集 Agent
什么情况下用想把 AI 集成到业务系统,但 LLM 稳定性差、幻觉问题、成本控制都是挑战;Agent 任务失败了不知道哪步出了问题
成功是什么样的AI Agent 在生产环境稳定运行,失败可追踪,成本可控,复杂任务完成率 >85%
业务痛点
LLM 返回结果不稳定不可靠AI 幻觉导致业务决策错误Agent 任务失败了不知道哪步出问题AI 调用成本控制不住

1. 解决的问题

传统 SRE 错误预算是单向消耗品:违反 SLO 就消耗预算,预算耗尽就停止发布,恢复后窗口重置。Agent 双向错误预算在此基础上引入自主权预算(Autonomy Budget):好行为可以赢回预算,自主权随可靠性动态升降。

2. 核心算法逻辑

传统 SRE 错误预算是单向消耗品:违反 SLO 就消耗预算,预算耗尽就停止发布,恢复后窗口重置。Agent 双向错误预算在此基础上引入自主权预算(Autonomy Budget):好行为可以赢回预算,自主权随可靠性动态升降。

3. 业务应用场景

场景一:WF-D 选品 Agent 能力升级

新版选品算法(支持竞品价格实时对比)渐进发布:① Canary 5% → 监控 48h → Task SLI ≥99.9% + Judgment SLI ≥92% → Gate 通过 → ② 扩量 20% → 监控 72h → Gate 通过 → ③ 全量 100%。第 2 阶段发现 Judgment SLI 跌至 89%(新算法对某类目漏判),自动回滚至旧版,触发告警通知产品团队修复后重新发布。每阶段 SLO Gate 结果自动更新选品 Agent 的自主权水位。

场景二:WF-A 补货 Agent 混沌测试

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI:能力升级不再盲目,预算烧尽自动限速而非人工介入;自主权与可靠性绑定,避免"偶尔正确的高风险 Agent"
  • 难度:⭐⭐☆☆☆ | 优先级:⭐⭐⭐⭐⭐

7. 代码模板

代码块数量:1 · 路径:paper2skills-code/llm_agent_engineering/agent_error_budget

"""
Agent Error Budget — 双向自主权预算
来源:Microsoft agent-sre + SRE for Agents 2026
"""
from dataclasses import dataclass, field
from enum import Enum
from typing import List, Optional, Dict


class DeliveryStage(Enum):
    CANARY = "canary"           # 5% 流量
    PARTIAL = "partial"         # 20% 流量
    FULL = "full"               # 100% 全量
    ROLLED_BACK = "rolled_back"


class ExperimentType(Enum):
    LLM_PROVIDER_DOWN = "llm_provider_down"
    INFERENCE_LOOP = "inference_loop"
    PROMPT_INJECTION = "prompt_injection"
    POLICY_BYPASS = "policy_bypass"


@dataclass
class AutonomyBudget:
    agent_id: str
    level: float = 5.0
    good_behavior_reward: float = 0.1
    bad_behavior_penalty: float = 0.5

    def reward(self, reason: str = "") -> None:
        self.level = min(10.0, self.level + self.good_behavior_reward)

    def penalize(self, reason: str = "") -> None:
        self.level = max(0.0, self.level - self.bad_behavior_penalty)

    @property
    def requires_human_review(self) -> bool:
        return self.level < 3.0


@dataclass
class ErrorBudgetTracker:
    slo_target: float
    window_size: int
    _events: List[bool] = field(default_factory=list)

    @property
    def allowed_failures(self) -> int:
        return int(self.window_size * (1.0 - self.slo_target))

    @property
    def consumed_failures(self) -> int:
        return sum(1 for e in self._events if not e)

    @property
    def remaining_budget(self) -> int:
        return max(0, self.allowed_failures - self.consumed_failures)

    @property

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。