news 2026/9/18 12:00:02

Agent SRE 可视化观测面板:基于 Streamlit 监控 AI 代理可靠性、成本与混沌实验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent SRE 可视化观测面板:基于 Streamlit 监控 AI 代理可靠性、成本与混沌实验

Agent SRE 可视化观测面板:基于 Streamlit 监控 AI 代理可靠性、成本与混沌实验

【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit

本篇技术指南以 Agent Governance Toolkit 仓库中agent-sre包的官方示例仪表盘为核心,讲解如何用 Streamlit 搭建面向 AI 代理系统的一站式可靠性观测界面,覆盖 SLO 健康度、成本治理、混沌工程、事件管理与渐进式交付六大视图。读完本文,你将掌握该仪表盘的启动方法、六大 Tab 的数据模型与交互逻辑,以及它如何与 agent-sre SDK 的真实类型(SLO、CostGuard、ChaosExperiment、IncidentDetector)衔接,为后续接入真实遥测数据打下基础。

仪表盘概览:AI 代理的 SRE 作战室

Agent SRE Dashboard 是一个可独立运行的交互式 Streamlit 应用,用于监控 AI 代理(Agent)的可靠性(Reliability)、成本(Cost)、混沌实验(Chaos Experiments)、事件(Incidents)与渐进式交付(Progressive Delivery)。它位于仓库的 agent-sre/examples/dashboard 目录,核心文件包括:

  • README.md —— 官方使用说明(本文的主体依据);
  • app.py —— 1081 行的完整仪表盘实现;
  • requirements.txt —— 依赖清单。

该面板的设计动机来自传统 SRE 实践向 AI 代理场景的迁移:传统 APM 只能告诉你"HTTP 200、延迟正常",却无法捕获代理"自信地给出错误答案"、"工具调用失控烧钱"或"Agent A 信任了产生幻觉的 Agent B 导致级联故障"这类问题。这个仪表盘把 agent-sre 的七大可靠性能力(SLO、错误预算、混沌测试、成本护栏、渐进式交付、事件管理与回放)浓缩成一个可视化界面,让你一眼看清整个代理群的运行健康度。

从 app.py 的源码可以看到,仪表盘实际包含6 个 Tab(比 README 描述的 5 个多出"Policy Heatmap"):

Tab展示内容
SLO Health错误预算、燃烧率(Burn Rate)、合规时间线、指标分解
Cost Management每代理预算、成本趋势、告警、Top 消费方
Chaos Engineering实验列表、韧性雷达图、故障注入时间线
Incidents按严重级别分类的活动事件、MTTR、信号关联
Progressive Delivery分阶段发布进度、预览测试匹配率
Policy Heatmap策略评估/违规热力图(OpenTelemetry 治理指标密度)

仪表盘内置 8 个模拟代理(support-botcode-reviewerdata-pipelinebilling-agentsearch-indexerdeploy-agentqa-testeronboarding-flow),见 app.py,开箱即可演示,无需任何后端服务。

快速开始:两条命令启动面板

按照官方 README 的 Quick Start,只需两步即可启动:

# 1. 安装依赖 pip install -r agent-governance-python/agent-sre/examples/dashboard/requirements.txt # 2. 运行仪表盘 streamlit run agent-governance-python/agent-sre/examples/dashboard/app.py

依赖清单非常轻量(见 requirements.txt):

streamlit>=1.54.0 plotly>=5.18.0 pandas>=2.0.0 numpy>=1.24.0

启动后,面板在http://localhost:8501打开。它独立运行、自带模拟数据;如果环境中已安装agent-sre包,则会使用真实的 SDK 类型进行更丰富的展示(这一点下文详述)。

双模式架构:模拟数据 + 真实 SDK 类型

仪表盘在启动时先尝试加载 agent-sre SDK,这段逻辑位于 app.py:

try: sys.path.insert(0, str(Path(__file__).parent.parent.parent / "src")) from agent_sre.slo.objectives import SLO, SLOStatus from agent_sre.slo.indicators import ( TaskSuccessRate, CostPerTask, ResponseLatency, HallucinationRate, ) from agent_sre.slo.dashboard import SLODashboard from agent_sre.cost.guard import CostGuard from agent_sre.chaos.engine import ChaosExperiment from agent_sre.incidents.detector import IncidentDetector _SDK = True except Exception: _SDK = False

这段代码有两点值得注意:

  1. 优雅降级:SDK 加载失败时置_SDK = False,仪表盘照常以纯模拟数据运行,不会崩溃;
  2. SDK 可见性提示:侧边栏会显示SDK detected: Yes / No (simulated)(app.py),方便你确认当前运行模式。

其中导入的SLODashboard来自 src/agent_sre/slo/dashboard.py,它负责收集 SLO 快照(SLOSnapshot)、记录合规历史(ComplianceRecord)并生成健康摘要(health_summary,输出 total/healthy/warning/critical/exhausted/unknown 计数)——这正是仪表盘 SLO Health Tab 中 KPI 指标卡的字段来源。而SLOSLOStatusErrorBudget定义在 src/agent_sre/slo/objectives.py,其中SLOStatus枚举了HEALTHY / WARNING / CRITICAL / EXHAUSTED / UNKNOWN五档状态,与仪表盘状态徽章一一对应。

另一个实现细节是确定性随机种子:app.py 把首次加载时间写入st.session_state["seed"],并用np.random.default_rng(seed)生成所有模拟数据,保证会话内刷新时数据保持一致、图表连续可读。

六大 Tab 深度拆解

SLO Health:错误预算与燃烧率

SLO Health Tab(app.py)围绕 4 个 SLO 指标构建:task-success(任务成功率,目标 99.5%)、p95-latency(P95 延迟,目标 99%)、cost-per-task(单任务成本,目标 98%)、hallucination-rate(幻觉率,目标 95%),与 SDK 中 indicators.py 提供的TaskSuccessRateCostPerTaskResponseLatencyHallucinationRate四类 SLI 一一对应。

视图组成:

  • KPI 指标卡:Total SLOs / Healthy / Warning / Critical / Exhausted 五联卡片,直观反映错误预算健康分布;
  • Error Budget Burn Rates:为每个 SLO 渲染 1 小时与 6 小时两个燃烧率仪表盘(Gauge)。燃烧率(Burn Rate)= 实际错误率 / 允许错误率,1.0 表示按预期速度消耗预算,大于 1.0 表示消耗过快。源码中的_gauge()函数(app.py)以(2.0, 6.0)为默认阈值分级着色:绿色(<2x)、黄色(2x–6x)、红色(>6x);
  • SLO Compliance Timeline:Plotly 折线图展示各 SLO 随时间变化的合规率,并用虚线标出每个 SLO 的目标线(fig_slo.add_hline(y=snap["target"], ...)),偏离目标线的部分一目了然;
  • Indicator Breakdown:按代理列出成功率、P95 延迟(ms)、单任务成本($)、幻觉率(%)的数据表。

这些概念与 objectives.py 中ErrorBudget的实现完全对应:burn_rate(window_seconds)在指定窗口内统计错误事件占比与允许错误率的比值,firing_alerts()依据burn_rate_alert=2.0burn_rate_critical=10.0两个阈值产出 warning/critical 告警——仪表盘上的黄/红状态正是这两档阈值的可视化。

Cost Management:成本护栏与告警

Cost Tab(app.py)回答"代理群今天花了多少钱、谁在超支":

  • KPI 卡片:Total Spent Today(今日总花费)、Daily Budget(日预算)、Avg Utilization(平均利用率)、Active Alerts(活动告警);
  • Per-Agent Budget Utilization:堆叠横向条形图,绿色代表已花费、灰色代表剩余额度;利用率 >90% 标红、>70% 标黄(与COLOR_CRITICAL/COLOR_WARNING常量对应);
  • Top Spenders:消费 Top 5 代理表格;
  • Cost Trend:按代理分色的成本趋势折线;
  • Daily Cost Breakdown by Agent:按日分组的堆叠柱状图;
  • Cost Alerts:带严重级别徽章(🔴 critical / 🟡 warning / 🔵 info)的告警表,告警消息如"Budget exceeded / Approaching limit / Cost recorded for "。

这些模拟告警背后对应 SDK 的 cost/guard.py(CostGuard)——真实的CostGuard支持每任务硬上限、每代理每日上限、组织月度预算、异常检测(Z-score / IQR / EWMA)与自动节流(auto-throttle)甚至 kill switch。仪表盘以可视化的方式呈现了这些护栏的"消费视图"。

Chaos Engineering:主动打破代理

Chaos Tab(app.py)演示混沌工程闭环:

  • KPI 卡片:Experiments(实验数)、Running(运行中)、Faults Injected(注入故障总数);
  • Experiments 列表:以可折叠面板展示每个实验的故障类型(如tool_timeoutllm_degradedcost_spike)、时长与注入故障数,运行中的实验自动展开(expanded=exp["state"] == "running");
  • Resilience Radar:针对已完成的实验绘制雷达图,四个维度为 Fault Tolerance(故障容忍度)、Recovery Time(恢复时间)、Degradation(劣化程度)、Cost Impact(成本影响)——与 SDK 中ChaosExperiment.calculate_resilience()返回的韧性评分结构一致;
  • Fault Injection Timeline:用散点条带图(px.strip)把每次故障注入标记在时间轴上,观察故障密度与分布;
  • Before / After Comparison:对比实验前后成功率、P95 延迟、平均成本的退化程度;
  • Run Chaos Test 按钮:点击后模拟向support-bot注入tool_timeout故障,带进度条与结果反馈("Resilience: 78.3%"),完整演示"注入 → 测量 → 评分"的流程。

Incidents:事件管理与 MTTR

Incidents Tab(app.py)围绕 4 个示例事件(INC-1039 ~ INC-1042)展开:

  • KPI 卡片:Active Incidents、Resolved (window)、MTTR (avg)、P1 Open;
  • Active Incidents 卡片流:每条事件以左侧彩色边框(P1 红、P2 橙、P3 黄、P4 蓝)展示严重级别、标题、状态(investigating / mitigating / resolved)与代理归属;
  • Incident Timeline:散点图标记每条事件的 Detected → Acknowledged → Resolved 三个时间点;
  • MTTR by Severity:按严重级别分组的平均修复时间柱状图;
  • Signal Correlation:信号(slo_breacherror_budget_exhaustedcost_anomalylatency_spiketool_failure_spike)与触发事件 ID 的关联表——这与 SDK incidents/detector.py 中IncidentDetector的信号关联(correlation_window_seconds)概念一致,便于发现"多个事件共享同一根因"的模式。

Progressive Delivery:安全发布代理版本

Delivery Tab(app.py)模拟一次名为deploy-agent-v2.4.0的金丝雀(Canary)发布:

  • KPI 卡片:Rollout 名称、Strategy(CANARY)、Current Weight(当前流量权重)、Shadow Match(影子模式匹配率);
  • Rollout Progress:横向条形图展示 Shadow(0%) → Canary 5% → Canary 25%(active)→ Canary 50%(pending)→ Full rollout(100%) 的五个阶段,绿色=complete、蓝色=active、灰色=pending;
  • Canary vs Baseline:分组柱状图对比金丝雀与基线版本的成功率、P95 延迟、单任务成本;
  • Shadow Test Match Rate:仪表盘显示影子模式输出与生产输出的一致率(阈值 90%,>90% 绿色);
  • Rollout Event Timeline:事件表记录"Shadow started → Shadow passed (match 95.2%) → Canary 5% started → Canary 5% passed analysis → Canary 25% started"的完整发布节奏。

这套阶段模型与 SDK delivery/ 模块(rollout.pygitops.py)的渐进式交付能力吻合:影子模式验证 → 小流量金丝雀 → 逐步放量 → 全量发布,每个阶段都有分析闸门(analysis gates)与自动回滚条件(如错误预算燃烧率 >5.0、策略违规 >0、成本异常)。

Policy Heatmap:治理指标密度热力图

README 未提及、但 app.py 中完整实现的第六个 Tab,将治理可观测性纳入同一面板:

  • 视图切换agent_x_time(代理 × 时间桶)或policy_x_time(策略 × 时间桶),时间桶宽度自适应(1 小时或 4 小时桶,最多 48 列);
  • 颜色指标:Evaluation Count(评估次数,蓝色系)或 Violation Count(违规次数,红色系);
  • 内置策略列表content-safetyrate-limitcost-budgetpii-filtertool-accesshallucination-guardauth-scopeoutput-filter八类策略;
  • KPI 条:Total Evaluations、Total Violations(含违规率 delta)、Peak Activity(单桶评估数最高的实体及其时间点)、Violation Rate(相对 5% 基线的偏差);
  • 分布图与汇总表:评估/违规分布横向条形图,以及按违规总数排序的汇总表(Total Evaluations、Total Violations、Violation Rate、Peak Bucket)。

源码注释明确说明(app.py):该热力图的数据形态对应 OpenTelemetry 治理指标管道(OTel conventions),模拟数据采用与 OTel exporter 相同的结构生成。结合 integrations/otel 目录下的metrics.pyconventions.py等实现,你可以把它视作把策略评估密度可视化到面板上的参考范式。

配置与交互:侧边栏控制台

仪表盘的交互配置集中在侧边栏(app.py):

  • Time range(时间范围):下拉框选择Last 1 h / Last 6 h / Last 24 h / Last 7 d / Last 30 d,默认 24 小时;数据点数量由N_POINTS = min(HOURS[time_range], 200)决定,长范围自动降采样;
  • Filter agents(代理过滤):多选框默认选中全部 8 个代理,所有 Tab 的数据生成都会以selected_agents为输入,实现全局联动过滤;
  • Auto-refresh(自动刷新):勾选后每 30 秒自动重载(time.sleep(30); st.rerun(),见 app.py),适合投放到大屏或值班监控场景;
  • SDK detected:提示当前运行模式。

页面整体采用layout="wide"宽屏布局与plotly_dark深色主题(app.py),状态色板统一:健康绿#2ecc71、警告黄#f1c40f、严重红#e74c3c、预算耗尽紫#8e44ad、信息蓝#3498db

从模拟到生产:如何对接真实数据

当前仪表盘默认使用模拟数据生成器(gen_slo_data()gen_cost_data()gen_chaos_data()gen_incident_data()gen_rollout_data()gen_policy_heatmap_data()),它们的输出结构与 SDK 的真实类型字段对齐,因此替换为真实数据的路径是清晰的:

  1. 接入 agent-sre 引擎:安装agent-sre后,用 quickstart.py 等示例中的方式创建真实的SLOCostGuardChaosExperimentIncidentDetector实例,把take_snapshot()(见 slo/dashboard.py)产出的SLOSnapshot直接喂给仪表盘的 SLO Tab;
  2. 对接 OpenTelemetry:agent-sre 原生支持 OTLP 导出(integrations/otel),也可将 Prometheus exporter 的数据写入仪表盘的数据层,替换 Policy Heatmap 的模拟数据源;
  3. 保留交互骨架:侧边栏的时间范围、代理过滤与自动刷新逻辑无需改动,只需替换各gen_*函数的内部实现为真实查询。

整个 dashboard 目录是 agent-sre 生态中"开箱即用的可视化参考实现",与仓库 examples/ 下的cost_guard.pychaos_test.pycanary_rollout.py等可运行示例互为补充——前者解决"怎么看",后者解决"怎么用"。对照 agent-sre/README.md 的架构图(SLO Engine → Error Budget → Chaos Engine → Circuit Breaker → Canary Deploy → Cost Guard → Incident Manager 的可靠性生命周期),这个仪表盘正是该生命周期全部环节的统一观测入口。

【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 11:57:42

为什么视频采集卡离不开FPGA?接口协议到像素处理全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 11:57:21

OpenHands 实战:TaoToken 跑通本地仓库的单测修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 11:53:46

通达信麟龙四量图原理与可运行公式详解

简介&#xff1a;本资源是一份面向股票技术分析初学者与通达信公式开发者的实用教程&#xff0c;详解麟龙四量图指标的原理、逻辑与实盘应用要点。文档系统拆解MID核心价线、牛线&#xff08;20日加权平滑&#xff09;、马线&#xff08;牛线6日均线&#xff09;及多层STICKLIN…

作者头像 李华
网站建设 2026/9/18 11:51:34

EKF与神经网络融合的锂电池SOC估算方案:原理、实现与Matlab代码

1. 锂电池SOC估算为什么值得死磕做BMS&#xff08;电池管理系统&#xff09;的同行都有一个共识&#xff1a;SOC&#xff08;State of Charge&#xff0c;荷电状态&#xff09;估算是整个系统里最核心、也最让人头疼的一块。说它核心&#xff0c;是因为SOC直接决定了续航显示、…

作者头像 李华
网站建设 2026/9/18 11:48:35

MIUI纯净官改ROM更新:11款机型去广告精简,保留完整功能与Root

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华