凌晨两点,告警群又炸了。
有人要查错误率,有人要拉 Trace,还有人怀疑容器磁盘满了。你开一个 AI 窗口,它要么泛泛而谈,要么把指标、日志、SSH 搅在一起——越问越乱。
多开几个窗口更糟:各说各话,最后没有一份能直接转故障群的结论。
很多人第一反应是:一个更强的模型、一个更长的 Prompt,不就够了吗?值班里真碰到复杂故障,往往不够——原因和医院一样:不是医生不够聪明,而是专科、设备、流程本来就该分开。
想象急诊来了一个病人,主诉胸痛。你不会指望一个全科医生同时去做心电图、抽血化验、拍 CT、上台手术、还要翻用药手册——他就算再厉害,也没有心内科的监护仪、影像科的 CT 机、手术室的权限。硬一个人包打天下,结果是每项都浅尝辄止,还容易把化验单和手术方案搅在一起下错判断。
运维值班是一回事。你问「集群有没有异常」,背后可能同时涉及:
- 问数——去 Doris 查延迟、错误率,沿 Trace 追慢请求(像化验科看指标)
- 巡检——扫 30 多个服务的 JVM、GC、下游依赖(像体检中心做分级筛查)
- 运维——SSH 上机看容器日志、磁盘、进程(像外科要上手术台)
- 答疑——翻产品文档,告诉你 OTel 端口、告警菜单在哪(像医务科解答流程)
四套工具不同、权限不同、回答规范也不同。塞进同一个 Agent 的 Prompt 里,上下文会迅速膨胀:指标口径和 Shell 命令混在一起,模型容易串味、越权、幻觉——就像让一个人同时记四本专科手册,还边记边给你下结论。
一个窗口扛所有:查数、巡检、SSH、翻文档全塞一个 Prompt。
复杂故障只能排队查;工具和权限边界模糊;上下文越长越容易乱。
适合:简单问答、单一动作——像感冒开药,全科够用。
分诊台判断叫谁;各专家只干本行,用本行工具查本行数据。
问数和巡检可以同时开工;每份结论带证据,最后合成一张「病历摘要」。
适合:跨域诊断、要并行、要可转发的故障报告——必须会诊。
那多开几个聊天窗口呢?也不行。相当于病人家属自己跑科室:没有分诊台,不知道先挂哪科;各窗口互不知道对方查了什么,最后汇总还得靠你人肉拼——凌晨两点谁受得了。
把 DataBuff 的 AI 平台想成医院值班会诊——前面说了为什么要会诊,这里说会诊长什么样:
- 你只对一个分诊台(AI 大脑)说话
- 分诊台自己不做化验、不上手术台,只负责叫对口科室
- 问数、巡检、运维、产品答疑各查各的数据,交带证据的报告
- 分诊台合成一份你能直接处置的答复
这和「侧边栏挂一个 ChatGPT」本质不同:后者常常读不到你环境里的真实指标和链路;DataBuff 从第一天按 AI 原生 APM 设计——AI 长在 OpenTelemetry 数据之上,专家必须调工具查数,不能靠猜。
扩展一种新能力,不靠往一个巨大 Prompt 里堆说明,而是三层组合——仍然用医院来对照:
- 工具——化验仪、CT、手术器械:查服务列表、拉 Trace、跑巡检、受控执行命令
- 专家——专科医生:问数懂指标口径,巡检懂全集群扫描,运维能上机,答疑懂产品文档
- 规范——诊疗路径:每个科室怎么问诊、怎么开检查、报告怎么写;分诊台还有专门的路由规范
新开一个「科室」≈ 组合工具 + 写规范 + 注册专家,不必改建医院本身(观测链路不用动)。对患者——也就是你——始终只对一个分诊台说话。
这里没有一堆「if 告警 then 巡检」的规则表。大脑加载路由规范后,结合当前所有专家的职责描述,做语义匹配,再发出派活:指定哪位专家 + 一段任务说明。
两个关键约束,决定协同是否靠谱:
- 任务说明忠实原意——你只问「最近一小时服务列表」,大脑不会擅自加上错误率、拓扑等你没提的维度
- 大脑不越权——它不亲自查指标、不跑巡检、不敲 Shell;只做分诊和汇总,边界清晰
典型直觉:查指标/Trace → 问数或巡检;要健康报告 → 巡检;产品怎么用 → 答疑;容器/磁盘/进程 → 运维;业务异常又怀疑环境 → 可同时叫巡检 + 运维两个不同专家。
很多人一听「多专家」,脑子里是多个聊天窗口互 @。DataBuff 不是这套——派活是一条工单链路:
你可以把它理解成:大脑是分诊台,派活是开检查单,专家是各科室,交付物是化验报告——不是几个模型在群里聊天。
直觉上,同步最简单:派给问数专家,等它查完,再派巡检,再汇总——像函数调用一样 await 就行。为什么 DataBuff 不这么做?
- 专家任务太慢。一次巡检报告常常要几十秒甚至一分钟以上;问数要多次查指标、追 Trace;运维可能要 SSH 多步排查。同步等 = 你盯着空白聊天框干瞪眼。
- 长连接扛不住。对话走流式输出,如果大脑回合一直卡在「等专家」,HTTP/SSE 容易超时,前端体验是「卡死」或「断流」。
- 并行做不了。值班最值钱的是「问数追链路」和「巡检扫集群」同时跑。同步模型只能排队:先问数 40 秒,再巡检 80 秒,合计两分钟;异步可以压到「取最大值」。
- 专家自己会多轮调工具。一个专家内部就是小型 ReAct 循环(想一步、查一步、再想)。同步会把整段循环都绑死在大脑的一个回合里,上下文和错误恢复都更难做。
异步最怕两件事:同一专家被塞两单活,以及大脑还没收齐报告就对外瞎总结。DataBuff 用四条硬规则兜住:
另外,并行时每个工单带独立工作上下文,避免两个专家的结果串味;同一专家若被串行派了多次,则共享该专家在会话里的记忆,方便追问补查。
共享的是会话历史、上传文件、生成的报告目录;APM 数据不会在路由前整包塞进上下文——各专家按需实时查,既省成本,也降低幻觉。
下面截图来自在线体验环境 demo.databuff.ai。浏览器打开后进入 AI 大脑,不手动选专家,只问一句:
接下来是传统 APM 做不到的——大脑并发派了两单:一边给智能问数,一边给智能巡检。思考区里能看到两次派活和各自执行轨迹:
巡检带回 S/A/B 分级总览:34 个服务里多数落在 S/A 级,整体运行平稳;service-b 标 B 级需关注,InsufficientStockException 集中在库存 SKU DEMO-10001,伴随约百条 ERROR 日志。
大脑把两边证据合成一份可预览、可转发的 HTML 报告,附 P0/P1 建议行动项——可直接转故障群:
市面上不少「多专家」产品,界面上确实摆着问数、巡检、运维、答疑四个入口——但你点进去之前,得自己猜该找谁。进去之后,这一整段对话也只属于那一个专家:换人要重新开窗口,前面的上下文带不过去;想一句里同时让问数查错误率、让巡检扫 JVM?做不到,得你自己当调度员,一个一个窗口试。
这就像病人到了医院门口,匾牌写着心内科、影像科、检验科——没有分诊台,只能靠症状自己挂号。挂错了白排队;挂对了也只能跟一个科室聊,化验单和 CT 报告最后还得家属自己去各窗口凑。
四个入口四扇门,进门只能和一位专家单聊。想联合诊断,得自己开多个窗口、自己传话、自己拼结论。
值班凌晨最伤的是:你不知道该先点谁,也不知道另外几扇门的对话互相看不见。
只进 AI 大脑这一个入口,像到分诊台说一句症状;大脑判断叫谁、能不能并行,开出检查单交给问数和巡检。
上文 Demo 已演示——一句话,两支专家同时查,最后合成带 P0/P1 和证据链的报告,不用你切换窗口对传。
差别不在「界面上有没有四个头像」,而在谁来派活:是你手动选专家单聊,还是大脑接单后分派、并行、汇总。后者才对应值班里那四件事——一个入口、大脑派活、合法并行、证据链汇总。
体验 DataBuff
开源 · 多专家协同 · 一个入口派活、问数巡检并行
在线 Demo:https://demo.databuff.ai
GitHub:https://github.com/databufflabs/databuff