Agent SLO Manager — 三层 SLI 体系:服务/任务/判断质量
Skill-Agent-SLO-Manager · 16-智能体工程
experimentrecommendationmulti_agent广告与投放供应链与补货推荐与搜索数据采集与治理MAS与智能体工程风控与合规WF-A 智能补货WF-B 广告优化WF-D 选品扫描WF-E Review监控
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色CTO / 技术负责人 · 产品经理 · 数据工程师
适用平台跨境运营 AI Agent 工程落地 · Amazon SP API + LLM 集成 · 多平台数据采集 Agent
什么情况下用想把 AI 集成到业务系统,但 LLM 稳定性差、幻觉问题、成本控制都是挑战;Agent 任务失败了不知道哪步出了问题
成功是什么样的AI Agent 在生产环境稳定运行,失败可追踪,成本可控,复杂任务完成率 >85%
业务痛点
1. 解决的问题
传统 pass@1 仅衡量"至少一次成功",无法反映 Agent 在生产环境的持续可靠性。Agent 可靠性需要三层 SLI 互补
2. 核心算法逻辑
传统 pass@1 仅衡量"至少一次成功",无法反映 Agent 在生产环境的持续可靠性。Agent 可靠性需要三层 SLI 互补:
3. 业务应用场景
场景一:WF-A 供应链 MAS 上线前评估
新版补货 Agent 上线前需三层 SLI 全部达标。Canary 阶段(10% 流量,30 天观察窗口):Service SLI ≥99.5%、Task SLI ≥99.9%、Judgment SLI ≥92%(人工抽查 5% 补货单,协议率>90%)。只有 SLO 状态持续 HEALTHY 满 30 天,才解锁推全量。若任意 SLI 触发 WARNING,观察窗口重置;触发 CRITICAL 则自动回滚旧版。
场景二:WF-B 广告 Agent 持续监控
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- ROI:生产 Agent 质量可量化可告警,防止"可用但错误"的生产事故(如错误补货决策导致的资金损失);三层 SLI 缺一不可,Judgment SLI 是核心差异化护城河
- 难度:⭐⭐☆☆☆ | 优先级:⭐⭐⭐⭐⭐(P0,autoresearch 进化的度量基础)
7. 代码模板
代码块数量:1 · 路径:paper2skills-code/llm_agent_engineering/agent_slo_manager
"""
Agent SLO Manager — 三层 SLI 体系实现
来源:Microsoft agent-governance-toolkit + agent-sre 2026
"""
import time
import math
from enum import Enum
from dataclasses import dataclass, field
from typing import List, Optional, Dict
class SLIType(Enum):
SERVICE = "service" # 服务层:可用性/延迟
TASK_COMPLETION = "task_completion" # 任务完成率
JUDGMENT_QUALITY = "judgment_quality" # 判断质量(AI 决策)
class SLOStatus(Enum):
HEALTHY = "healthy"
WARNING = "warning"
CRITICAL = "critical"
EXHAUSTED = "exhausted"
UNKNOWN = "unknown"
class ExhaustionAction(Enum):
ALERT = "alert"
THROTTLE = "throttle"
FREEZE_DEPLOYMENTS = "freeze_deployments"
CIRCUIT_BREAK = "circuit_break"
@dataclass
class SLIMetric:
metric_name: str
sli_type: SLIType
target: float # 目标值,如 0.995
current_value: float # 当前值
window_seconds: int # 观察窗口(秒)
sample_count: int = 0 # 样本数量
@property
def is_meeting_target(self) -> bool:
return self.current_value >= self.target
@property
def error_rate(self) -> float:
return max(0.0, 1.0 - self.current_value)
@dataclass
class ErrorBudget:
sli_type: SLIType
target: float
window_seconds: int
total_events: int = 0
failed_events: int = 0
_alerts: List[str] = field(default_factory=list)
@property
8. 论文来源
未自动抽取;请查看原始 Skill 卡片。