【作品名称】「1024 TiDB AIGC 黑客松」TiDB 急诊室:凌晨三点的告警,交给一支不下班的 Agent 小队
【选择的创作方向】平凯 Loop 实践
【作品形式】AI 程序
【作品介绍/描述】我是 DBA。用平凯 Loop 组建了一支 5 智能体急诊小队:分诊台、锁侦探、SQL 影像科、架构体检官、主任。它们直连部署在平凯云 TiDB 的演示集群,现场注入真实锁故障,自动分诊取证、跑诊断 SQL、检索向量病例库、开出带证据链的诊断报告,网页端实时点亮会诊状态。
【作品链接/文件】 在线体验 :http://120.71.158.155:8321 (急诊大厅 / 会诊回放 / 故障注入台 三个页签,可直接动手体验:点「注入故障」就能看到 PROCESSLIST 里的挂锁现场)
这里有个问题是,由于 Loop 是独立平台,没有对外 API 让网页实时唤起它的 Agent,所以我只能通过截图的方式展示我的急诊室的五位agent的相关诊断过程。希望后期官方能够开放一些API接口,方便三方去进行调用和过程展示。
它解决什么问题
DBA 的凌晨三点:告警响起,人肉三连——查 PROCESSLIST、找持锁会话、KILL 结案。我把这套排障 SOP 交给平凯 Loop 里的 5 个 Agent,让它们像真同事一样接诊、会诊、开处方;TiDB 既是故障现场,也是 Agent 的数据底座与病历库。
【图①:网站首页·急诊大厅】
【图②】第一幕·发病:网页点「注入故障」,事务持住 4000 行锁不提交,业务会话持续被卡——真实故障现场,不是动画。
【图③】TiDB 的锁超时是 ERROR 9004 (HY000): Resolve lock timeout,与 MySQL 的 1205 不同;实测等待约 80 秒。

【图④】第二幕·接诊:频道里一句"出急诊",消息转任务进看板,分诊台定级 P1、点名锁侦探。
第三幕·会诊:锁侦探连上 TiDB 跑 SHOW FULL PROCESSLIST,锁定 Sleep + in transaction 的挂锁会话,并从语句记录还原出持锁的那条 UPDATE——与注入脚本原文一字不差。
第四幕·翻病历:主任 Agent 用 VEC_COSINE_DISTANCE 检索向量病例库,"锁等待"症状命中既往病例 #6、#1(距离 0.005)。
【图⑨:报告入库】全部证据结构化落在平凯云 TiDB 的 diagnosis_report 表:站点、Agent、病历共用同一个数据底座。
技术解读(实测踩出来的平台差异,句句真实)
- serverless 集群禁用了 cluster_* / slow_query 等集群视图(1142),取证改用 SHOW FULL PROCESSLIST + 会话配对,同样锁定根因;
- 向量函数可用写法为 VEC_COSINE_DISTANCE(col, ‘[…]’),VECTOR_DISTANCE + COSINE 参数形式在该版本报函数不存在;
- 统计信息:自动 ANALYZE 积极,"掉分"难复现,改演示"未分析表 healthy=0 → ANALYZE → 100"的闭环;
- 在线 DDL:ADMIN SHOW DDL JOBS 观察状态推进,mysql.tidb_ddl_history 全程留痕,加索引期间业务读写不中断。
Loop 实践心得(含真实踩坑)
- 角色边界 + 任务看板驱动,显著减少多 Agent 抢答;把"平台实测可用/禁用 SQL 清单"写进每个 Agent 提示词,能有效防止 Agent 编造不存在的表;
- 踩坑:①Windows 代码页致任务标题中文变 ?,迁 Linux 端 daemon 解决;②撤回 @ 消息会让已认领任务变僵尸,需重启 daemon;③托管模型按任务预冻结积分,余额低于冻结额报 committed credit insufficient,换轻量模型解决。
- 使用的 AIGC 工具
- 平凯 Loop:多 Agent 编排、任务看板、频道协作(模型用托管 DeepSeek V4 Flash)
- 平凯数据库云服务 Starter:v8.5.3-serverless 集群,承载故障现场、诊断报告与向量病例库(数据底座)
- 千问工作助理:诊断脚本、前后端代码、平台能力实测探针
- 剪映:录屏素材处理

















