open-tam · SRE Agent

把 TAM 的排查工作显性化

新人照着 trace 学排查 · 老 TAM 梳理自己的工作 · 团队沉淀最佳实践

IN
AlertEvent

云监控告警标准化进入,字段对齐云监控格式。

护栏 白名单 · dry-run
orchestrator 运维专家
query_metrics
query_logs

编排只推理,取数全走 MCP;签名固定,mock 与实盘可互换。

OUT

根因报告

01 结论摘要
02 异常清单
03 建议动作

三段式结构落盘 reports/*.md

日班 夜班
01

把工作显性化

TAM Work, Made Visible

告警进来,报告出去——更重要的是:每一次排查都被完整留存。「排查故障」这件原本藏在个人经验里的事,变成可阅读、可评测、可复用的资产。

新人 · 照着 trace 学排查

入职不靠口口相传:读一遍完整 trace——思考、工具调用、观察、报告——看一次故障是如何被一步步收敛到根因的。

traces/AL-1024.jsonl
thought → tool_call → observation → report

老 TAM · 梳理自己的工作

排查不再是消失的聊天记录:每次沉淀为三段式报告与 trace 账本;故障模式注册表就是你的工作清单。

reports/<date>-<alert-id>.md
cpu_spike · slow_query · oom · pool_exhausted

团队 · 沉淀最佳实践

trace 回流语料库、沉淀为 Skill;故障注册表同时是评测集——好的排查经验成为可验证、可复制的团队能力。

corpus → skill
eval: 命中率 · 平均步数 · token 成本
02

排查即语料

Traces as Corpus
001thought制定排查计划:先确认指标异常,再取日志现场
002tool_callquery_metrics(cpu_usage, demo-app, -30m..now)
003observationcpu_usage 92.5% > 阈值 80%,持续 12 分钟
004tool_callquery_logs(demo-app, level=ERROR, keyword=slow)
005observationslow query detected · duration=2.34s ×47 条
006thought根因判定:慢查询打满 CPU,指标与日志证据闭合
007report写出三段式根因报告 → reports/<date>-<alert-id>.md

每步思考 / 工具调用 / 观察以 JSONL 落盘 traces/<alert-id>.jsonl——报告与 trace 都是语料资产,可回流语料库、沉淀 Skill。上表为 cpu_spike 演示样例。

03

大脑与手脚分离

Brain / Hands over MCP

orchestrator 只推理

运维专家 Agent(AgentScope ReAct):接告警 → 排查计划 → 调度子 Agent → 汇总报告。metric-agent / log-agent 独立协作。

model: qwen-plus ⇄ qwen-turbo
主备自动切换 · 重试退避

MCP 工具总线

数据获取全部走固定签名的 MCP 工具,mock 与真实后端互换零改动。

query_metrics(metric, service, start, end)
query_logs(service, start, end, level?, keyword?)
mock-metrics⇄alibabacloud-observability MCP
mock-logs⇄SLS 日志服务

护栏前置

命令白名单 + dry-run 预览 + 敏感操作人工确认,先于自主性。

audit.log
DENY rm -rf /data → 白名单外,拒绝并记录
PASS restart demo-app → dry-run 预览后人工确认
04

根因报告,三段交付

Structured RCA
已定位

根因报告

01 结论摘要

demo-app CPU 使用率 92.5%(阈值 80%)。根因:订单查询慢查询(duration≈2.3s)打满 CPU,指标与日志证据闭合。

02 异常清单
  • cpu_usage 92.5% > 80%,持续 12 分钟
  • ERROR 日志 47 条:slow query detected
  • load_1m 8.34,高于基线 2.7σ
03 建议动作
  1. 为订单查询补复合索引(dry-run 预览)
  2. 对慢查询接口限流降级
  3. 复盘后沉淀为巡检规则

reports/2026-08-28-AL-1024.md · traces/AL-1024.jsonl

不是聊天记录,是可交付文书

结论摘要、异常清单、建议动作三段结构固定落盘 Markdown;同一份证据链同时进入 trace 语料。故障模式注册表(cpu_spike / slow_query / oom / connection_pool_exhausted)既是演示剧本,也是评测集。

cpu_spikeslow_queryoomconnection_pool_exhausted
05

评测集即故障注册表

Measurable
根因命中率HIT RATE

按故障模式逐个跑通,断言报告产出且根因命中。

平均步数STEPS

最大 15 步 + token 预算双重上限,超限强制收敛。

token 成本COST

主备模型切换在成本与命中之间取平衡。

已排除项 → dnsdisknetwork gc

未点亮的格子也是设计:排查中排除掉的假设,以幽灵格留在面板上。

06

演进路线

Roadmap M0–M5
M0骨架CLI + demo-app + mock-metrics
M1排查闭环ReAct 排查 → 报告落盘
M2多 Agent + 语料log 子 Agent · trace 落盘
M3护栏 + 巡检白名单 / dry-run / 审计
M4Web UIFastAPI 单页聊天
M5实盘接入云监控 webhook + 可观测 MCP
后期演进(按需展开)
K8sGPT(kind/ACK)→ ACS Agent Sandbox(MicroVM 隔离执行)→ OpenSRE 式评测扩展 → 排查语料回流、沉淀为可复用 Skill。
07

三分钟跑通闭环

Quick Start
open-tam · no-key demo
uv sync
uv run open-tam fault inject cpu_spike
uv run open-tam investigate --alert-file /tmp/alert.json --fake
cat reports/*.md   # 三段式根因报告

无 Key 闭环用 FakeChatModel;换上 DASHSCOPE_API_KEY 即走 Qwen 真实模型排查。Python 3.12 · uv 管理环境。

↩ GTM 门户