从用户描述故障,到根因分析报告,全程可观测、可评测、可复盘。
不是聊天机器人,而是工程化的 Agent 系统。
从 Router、Workflow、ToolRegistry,到 Working Memory、Trace、Eval,每个环节都有设计。
先用 heuristic 处理确定性信号(trace_id / 504 / 500),高置信直接路由;低置信输入才调 LLM,节省 token 又保持灵活。
每条 route 对应显式 workflow,每个 step 声明 allowedTools 白名单。关键路径由代码控制,LLM 是可替换的能力接口。
统一注册 resolve_app、日志查询、慢 SQL、表结构、代码问答、restart_service 等工具,并绑定 schema、allowedTools 和 risk level,避免 Agent 乱调用。
工具执行结果反馈到 Policy,Policy 决定继续、收窄重试还是终止。Loop 有三种明确退出条件:completed(满足)、max_iterations(超限)、tool_error(出错),全程写入 Trace 可回溯。
Agent 的结构化工作记忆。工具调用后先由 evidence_summarizer(小模型)语义压缩,再以带 source / kind / confidence 标注的 EvidenceItem 写入。报告 LLM 只消费高质量摘要,而非原始输出——这是 Context Engineering 的核心实践。
高风险工具(如 restart_service)进入 pending 状态,run 暂停等待人工 approve / reject,结果写入 Trace 可复盘。
手机号、邮箱、Secret 在进入 LLM / report 前脱敏;日志里的 prompt injection 文本作为数据处理,不作为指令执行。
每次 run 保存 JSON trace,含 router decision / tool traces / LLM calls / approvals / evidence / report,支持离线复盘和 eval 回归。
13 个回归 case 覆盖核心路径、调用链耗时定位、失败降级、脱敏、注入防护和高风险工具审批。eval 检查 route / tool order / evidence keywords / token budget / approval status。
系统设计
LLM 作为可替换能力接入,关键路径由代码显式控制 · 点击左侧卡片内的彩色标签,可展示实现详情
自然语言故障描述,支持 trace_id / 错误码 / 服务名 / 时间窗口。CLI 或 POST /api/diagnose 均可。
先用 Rule 处理确定性信号,高置信不调 LLM;低置信交给 LLM Router,输出经 zod schema 校验。
五条 workflow,每条显式声明 steps[] 和 allowedTools 白名单。ToolRegistry 拒绝白名单外的调用。
工具统一注册,metadata 含 risk level。low/medium 自动审批;high/critical 由风险策略自动触发 HITL 暂停。
Agent 的结构化工作记忆。工具结果经 evidence_summarizer 语义压缩后以结构化 EvidenceItem 写入,控制送入 LLM 的 context 质量。手机号、邮箱、Secret 进 LLM 前脱敏;日志中的 prompt injection 文本作为数据处理。
基于 Working Memory 生成结构化报告。默认 mock,配置 LLM_MODE=openai 后走 OpenAI-compatible API。
每次 run 保存完整 JSON trace。Eval Runner 对核心路径做回归检查。
Eval Coverage
这组离线回归使用 mock adapter,将 Agent 的关键风险拆成可复现检查: 诊断路径、路由成本、Agent Loop、失败降级、安全边界、高风险控制。 真实模型质量使用独立在线评测,不与这里的通过率混报。
每个 case 都从 trace 中抽取 route、tool order、working memory keywords、confidence、LLM token budget、tool status、approval status 做断言。
route · tool order · working memory · confidence · token budget · approval
项目演进
三轮迭代,每轮解决一个工程化问题
验证 AI 辅助排障的可行性。把故障排查拆成固定步骤,调用 Claude Code CLI 做根因分析,Streamlit 展示结果。
使用 Agent 框架快速验证 tool-using 形态。把排障步骤拆成工具,由 Agent 根据自然语言选择调用顺序。
把控制层拿回来。LLM 作为可替换能力接入,关键路径由代码显式控制。
在 Policy Guard 后面引入 LLM Step Planner,让模型获得更多 planning 权重,但执行权仍由 ToolRegistry 和 allowedTools 控制。