1. 凌晨两点的告警电话:我决定把日志诊断交给AI
先还原一个真实场景。某天凌晨两点半,手机震动,线上服务异常告警。我爬起来打开终端,熟练地敲下那串早就刻进肌肉记忆的命令:先看错误率曲线,再进日志平台搜ERROR关键字,按时间倒序翻页,对着密密麻麻的时间戳和堆栈信息一条条比对。运气好时十分钟定位到问题,运气不好时——比如日志被大量刷屏、报错堆栈被截断、调用链跨了三个服务——可能得折腾一两个小时,等到天都快亮了。
这种"手动日志诊断"的套路,几乎所有做过后端开发或运维的人都不陌生。它的核心瓶颈不在于"找不到日志",而在于"日志太多了、太杂了、上下文太长了",人的眼睛和大脑在高负载排查场景下,效率会急速下降。后来我尝试把 AI 引入这个流程,再配合 MCP(Model Context Protocol,模型上下文协议)打通日志平台、监控系统和知识库,效果出乎意料:单次线上日志诊断从平均四十分钟压缩到几分钟以内,而且判断链条是完整可追溯的。
这篇文章就把这套实践完整拆开讲清楚。我假设读者已经有基本的命令行经验和日志平台使用经验,但完全没接触过 MCP 也没关系,后续章节会把协议的角色、边界和集成方式说透。你会看到我为什么选 MCP 而不是直接调 API,AI 在日志诊断里到底负责哪一部分,哪些环节仍然必须由人拍板,以及落地过程中踩过的坑。
2. 手动查日志的一天:痛点越具体,方案才越有方向
2.1 传统排查链路里,时间到底消耗在哪里
先别急着谈方案,我们把手动排查的完整链路拆开看。一次典型的线上日志诊断,大致包含六个环节:
- 明确故障现象:错误率上升、超时比例增加、某接口报错,或用户侧反馈异常。
- 圈定时间窗口:根据告警时间前后推几分钟到几十分钟。
- 检索相关日志:按服务、接口、错误关键字组合查询,可能需要多次调整条件。
- 阅读与过滤:从几万条日志里筛出真正相关的几百条,这一步最耗神。
- 串联上下文:把同一请求ID的日志串起来,对比前后时间戳、参数、上下游返回结果。
- 定位根因并处理:找到异常代码位置或外部依赖故障,决定回滚、扩容还是改配置。
我曾粗略统计过团队里几次典型故障的处理时长。一个印象很深的例子:某次缓存服务抖动导致大量接口超时,告警触发后,光是在日志平台里反复切换筛选条件、查找"超时到底发生在哪个调用链环节",就花了一个多小时。真正的问题其实在日志里写得很明确——某次Redis连接池获取连接超时,但那行日志被淹没在每分钟上万条的业务日志里。
2.2 手动模式的三座大山
把这个过程抽象一下,传统手动诊断的痛点可以归纳为三个:
第一座山:检索条件与目标错位。你搜索"ERROR",得到的可能是几百个不同模块的报错,其中大量是已知噪音——比如某些业务场景下故意抛出的异常、重试机制里的预期错误。真正需要关注的"关键错误"反而被淹没。
第二座山:上下文碎片化。单条日志本身往往没有完整信息。比如一条报错只会打出异常堆栈的尾部,或者只记录了一个错误码,你需要再去查对应错误码的含义、再翻前面的INFO日志找参数来源。这个过程完全依赖人的记忆和熟练度。
第三座山:知识遗忘与团队瓶颈。很多根因判断依赖历史经验——"这种情况上次也出现过,是某个依赖包的兼容性问题"。但这类经验要么在某个老同事脑子里,要么散落在过期的文档里,排查时根本想不起来。
正是因为这三座山,我意识到单纯把日志变得更"好看"是不够的,需要让 AI 扮演一个有经验的诊断助手:它要能快速过滤噪音、拼接上下文、调取历史知识,并把完整的推理依据展示给我。
2.3 为什么是"AI+MCP"这个组合
AI 模型本身已经具备很强的文本理解和推理能力,直接给它一段日志让分析,它也能说出一些东西。但真正落地到生产环境,会遇到三个现实问题:
- 模型无法直接读写内部日志平台,需要人把日志复制粘贴过去——这又回到了手动操作。
- 模型没有"工具调用"能力时,只能基于你给它的有限上下文做判断,无法主动扩大搜索范围、查上下游依赖状态。
- 不同团队有不同的知识库、错误码表、监控大盘,怎么让 AI 按照统一的规范去使用这些资源?
MCP 解决的核心问题就是后面两个。它定义了一套标准化的方式,让 AI 模型能够通过协议调用外部工具、访问外部数据源,并且支持复用。换句话说,MCP 把日志平台、监控系统、错误码知识库封装成 AI 可以"操作"的工具,而不是让用户复制粘贴内容。这正是标题里"从手动到自动"的关键转折点。
3. MCP在日志诊断里的角色边界:AI负责推理,工具负责执行
3.1 用生活类比理解MCP的架构
想象你没带钥匙被锁在门外,你要做两件事:一是判断应该找谁帮忙,二是让那个人把门打开。MCP 在这个类比里不是那个帮你判断的人,也不是开锁师傅,而是 BETWEEN 你们之间的一套标准通话协议——规定了"你怎么描述问题""开锁师傅怎么回复进度""完成后怎么确认"。
在技术层面,MCP 有两个关键角色:MCP Host(宿主)和MCP Server(服务端)。Host 是 AI 模型运行的地方,比如一套智能助手框架;Server 是和具体工具打交道的服务,比如日志平台连接器。Host 与 Server 之间通过 JSON-RPC 格式的消息通信,Server 暴露三类能力:Tools(可执行的工具操作)、Resources(可读取的数据资源)、Prompts(可复用的提示词模板)。
放到日志诊断场景里:
- Tools:执行日志查询、调用监控接口、触发诊断脚本、拉取配置信息。
- Resources:读取错误码映射表、服务拓扑、历史故障文档。
- Prompts:封装"标准日志分析模板""故障复盘模板"。
3.2 为什么不用简单的HTTP回调或直连API
可能有人会问:既然只是调接口,为什么非得引入一套协议?直接用函数调用不行吗?这里有一个容易被忽略的分层问题。
如果只为日志诊断这一个场景开发,确实可以自己写一个函数调用工具,甚至直接封装几个API。但问题在于,AI 能力不止用在一个场景:今天要诊断日志,明天要做智能变更评审,后天要做知识库问答。每接一个系统就自定义一种交互方式,维护成本会指数级上升。
MCP 的价值恰恰在于标准化的分层解耦。AI 侧不需要知道日志平台的查询语法细节,日志平台侧也不需要理解模型能力。只要双方按照 MCP 协议接入,任何支持 MCP 的 AI 客户端都可以复用这套工具。用术语说,这是一种"工具即服务"的抽象,和"平台无关"(platform-agnostic)架构。
在实际落地时,我们的做法是维护一个独立的 MCP Server 进程,它专门负责和日志平台、监控平台、CMDB 配置库交互。AI 侧只和这个 MCP Server 通信,内部再通过各自的 SDK 去访问具体系统。这样日志平台的接口变更、鉴权方式调整,都不会影响 AI 侧逻辑。
3.3 在日志诊断链路中,AI和工具的分工边界
很多人对 AI 排查的想象是"AI 全自动定位根因,人等着看结论"。实操下来这种想法既危险也不现实。我最后采用的分工模型是:
| 环节 | 负责人 | 原因 |
|---|---|---|
| 理解故障现象、确认影响范围 | 人机协作(AI 总结,人确认) | 故障现象可能与业务语义强相关,需要人校准 |
| 扩大检索范围、批量筛选日志 | AI(通过 MCP 工具) | 量大、机械重复,AI 检索速度远超人工翻页 |
| 串联调用链、比对时间窗口 | AI | 对时间顺序、ID 关联等模式识别是 AI 强项 |
| 判断根因、决定处置动作 | 人 | 涉及业务判断、风险评估、变更决策,必须人拍板 |
| 输出诊断报告和后续建议 | AI 起草,人修订 | 借助模板化输出提高效率 |
关键点在于:AI 负责"广度和速度",人负责"深度和决策"。MCP 让 AI 能够自主执行查询和筛选,但不会让它绕过人的审批去执行任何变更操作。这个边界在架构设计时就要明确下来。
4. 架构与核心组件:一条从日志源到诊断结论的流水线
4.1 整体结构拆解
这套日志诊断系统在架构上分为四层,分工明确:
- 数据接入层:日志采集与存储。
- MCP 服务层:将数据访问能力封装成协议接口。
- AI 推理层:大模型基于工具返回结果进行分析。
- 诊断展示层:面向使用者的交互界面和报告输出。
在实际实现中,我用了五个核心组件:
- 日志采集端:沿用团队现有的采集方案(比如以 Filebeat 为代表的轻量采集器),负责把分散的日志统一收集到日志存储中,并自动按服务名、时间、级别打标。
- 日志存储:采用索引优先的存储方案,便于按时间范围和服务名快速过滤。索引设计时要考虑日志查询的常用维度,后续会展开讲。
- MCP Server(日志查询工具):封装了
search_logs、get_log_context、aggregate_errors、trace_request四个核心工具。每个工具对应一类日志操作能力。 - MCP Server(监控与元数据工具):封装
get_service_metrics、get_error_code_meaning、get_service_dependencies,用于提供日志之外的上下文。 - AI 推理引擎:以对话方式接收诊断请求,自主编排调用顺序,汇总得出结论。
4.2 核心工具定义与输入输出设计
工具定义是这套系统里最关键的工程点。一个设计不好的工具,AI 用起来会频繁出错。每个 Tool 的输入参数要尽量符合 AI 模型的自然语言理解习惯,输出字段要稳定、简洁。
以search_logs为例,它的输入参数我最终定义成这样:
{ "service": "order-service", "start_time": "2025-06-18T02:10:00Z", "end_time": "2025-06-18T02:30:00Z", "level": "ERROR", "keywords": ["timeout", "redis"], "request_id": "" }输出结构则保持扁平,比如:
{ "total_count": 342, "sample_logs": [ { "timestamp": "2025-06-18T02:15:03.182Z", "level": "ERROR", "message": "redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool", "service": "order-service", "host": "10.0.4.21" } ], "aggregation": { "top_message": "Could not get a resource from the pool", "unique_error_types": 3 } }这里有一个重要的设计取向:不要一次性返回上万条日志。模型上下文窗口有限,一次塞入太多原始日志反而会降低分析精度。正确做法是让工具先返回聚合统计和少量采样,再由 AI 决定是否需要按某个模式深挖。这既节约 token,又符合人查日志的自然习惯——先看概览,再下钻。
4.3 AI 侧的工作流编排:从问题到结论的路径
MCP 只是给了 AI"手",但 AI 怎么用这些手,取决于系统设计的工作流。我给这套系统内置了一套通用的诊断工作流,AI 在收到诊断请求后会按预设顺序执行:
- 澄清阶段:如果用户没有明确时间窗口,AI 会主动询问或从告警上下文推断。
- 概览阶段:调用
search_logs获取错误概览,再调用aggregate_errors看错误类型分布。 - 关联阶段:对高频率错误,调用
get_log_context获取同一 trace 的前后日志;调用get_service_dependencies分析上下游。 - 对照阶段:把高频错误码与
get_error_code_meaning返回的结果对照,确认是否为已知问题。 - 归纳阶段:AI 综合所有工具返回结果,输出结构化的诊断报告,包括可疑根因、证据链、建议动作。
这套流程不是硬编码的 if-else,而是通过系统提示词(system prompt)注入 AI 的"工作准则"。模型在执行时会有一定的灵活性,但整体方向受约束,不会出现 AI 一上来就疯狂拉取全量日志的失控行为。
4.4 诊断报告模板:不仅给结论,更给证据链
日志诊断的价值一半在结论,另一半在可复现性。如果 AI 说"问题出在数据库连接池",却拿不出对应时间点的日志证据,开发同事很难信服。所以我要求 AI 的报告必须包含三段式结构:
- 结论摘要:一至三句话说明最可能原因。
- 证据链:时间线表格 + 关键日志节选 + 关联的监控指标变化。
- 建议事项:立即处置建议(比如扩容连接池)、后续排查方向、代码或配置层面的改进点。
在我使用的提示词模板里,特意强调了一个要求:"所有结论必须引用你通过工具获取到的日志原文或指标数据,禁止引用你自身预训练时获得的通用知识作为依据;如果你认为信息不足,必须明确说'目前证据不足',而不是猜测。"
这一点非常重要。AI 在不加约束时,很容易"脑补"出一个看似合理但完全没有日志支撑的结论,这在故障排查场景里是会误导人的。
5. 关键实现细节:让AI真正读懂日志的四个设计决策
5.1 日志切片:上下文窗口与检索精度之间的平衡
模型上下文窗口虽然越来越大,但依然有限。日志诊断场景里,真正的高价值信息往往集中在故障发生前后的几分钟到十几分钟。因此我在系统里设定了一个默认的"搜索窗口"逻辑:
- 单次查询默认时间跨度为 15 分钟;
- 如果 15 分钟内检索结果过多,则自动按 1 分钟粒度做聚合;
- 如果 AI 判断需要进一步扩大范围,必须由用户确认,避免无意间拉取海量日志。
这个设计和人类排查思路一致:先在短窗口内看趋势,逐步扩大范围。忘记这个原则的后果是——早期测试时,AI 收到告警后直接查了最近 24 小时日志,返回了超过十万条记录,读取时严重超时,还烧掉了大量 token。
5.2 日志落盘格式统一:结构化是AI分析的前提
很多时候 AI 分析效果不好,问题不在模型,而在数据本身。如果日志是不规则的一长串,模型很难准确提取字段。我做的第二个工程决策是把团队所有核心服务的日志格式统一为结构化 JSON:
{ "timestamp": "2025-06-18T02:15:03.182Z", "level": "ERROR", "service": "order-service", "trace_id": "7b7e8a2f1c9d4a0e", "request_path": "/api/v1/orders/{id}", "error_code": "DBCONN_001", "message": "Could not get a resource from the pool", "duration_ms": 1234, "extras": {} }关键字段包括trace_id(用于串联调用链)、error_code(用于关联错误码表)、duration_ms(用于发现性能劣化)。做了这个改造之后,AI 的字段识别准确率明显提升,trace_request工具的关联成功率从大约 60% 上升到 95% 左右。
当然,统一日志格式在存量系统里是个不小的工程,不是短期能完成的。我采取的是渐进式策略:先对告警率最高的三个服务做改造,验证效果后逐步推广,不急着一口气全量切。
5.3 赋予AI"记忆":错误码知识库与历史故障文档
前面提到传统排查依赖老同事的经验,AI 系统同样需要"经验库"。我做了两块:
- 错误码表:把所有常见错误码、含义、常规处理建议整理成结构化数据,通过 MCP 的 Resource 能力暴露给 AI。
- 历史故障复盘文档:把过去半年内的重要线上故障复盘报告整理成索引,标注故障类型、根因、影响时长、修复方式,同样暴露为 Resource。
这里的关键点是:AI 在诊断时,会先查错误码含义和历史故障文档,再结合当前日志判断,而不是凭大模型预训练时代的知识猜测。让我印象很深的是一次生产事故:某个服务的错误码DB_READ_TIMEOUT在历史文档里记录过根因是连接池上限配置过小。AI 定位到同一错误码后,自动拉取了历史复盘报告,第一轮判断就直接指向了配置问题。这个能力是人无法持续保持的——老员工不可能每次都在十分钟内想起半年前的某次复盘。
5.4 工具调用权限和操作留痕
让 AI 自动调用工具,权限控制是必须认真对待的问题。我设定的权限原则是:
- 只读操作自动放行:日志查询、指标读取、文档查询,AI 可以自主执行。
- 写操作强制人工审批:任何涉及配置变更、日志清理、重启操作的工具调用,都需要人到交互界面点击确认。
- 每一步留痕:所有工具调用参数和返回结果摘要自动记录,便于事后审计和复现。
这本质上是把"AI 是助手而非决策者"的原则落地为技术约束。日志诊断这个场景里,AI 需要的是能快速读取,而不是能随意操作。
6. 实测对比:从"翻一小时日志"到"一分钟拿到证据链"
6.1 一次缓存服务故障的完整排查过程
先给一个完整的实测案例。某天傍晚,用户反馈订单列表页加载明显变慢,监控大盘显示订单服务的P99延迟从 180ms 飙升到 1100ms。传统做法是先去查慢日志、看 TOP 耗时接口、再关联数据库指标。这次我用 AI 诊断系统进行了测试。
在对话界面里,我发出指令:"订单服务延迟升高,时间窗口是今天 17:00-17:30,帮我排查原因。"
AI 的诊断过程如下:
- 调用
search_logs查询订单服务在对应时间窗口的 WARN 和 ERROR 日志,发现JedisConnectionException出现频率陡增。 - 调用
aggregate_errors按错误类型聚合,显示约 82% 的错误集中在 Redis 连接池获取超时。 - 调用
get_service_dependencies确认订单服务的依赖列表,发现一个名为cart-cache的 Redis 实例处于可疑状态。 - 调用
get_log_context追踪某条高耗时请求的完整链路,确认耗时主要花在缓存访问上。 - 查询错误码知识和历史故障文档,发现在两周前同类故障的根因是缓存服务所在宿主机负载过高。
最终 AI 输出的诊断结论是:缓存服务cart-cache所在宿主机 CPU 负载过高,导致 Redis 响应变慢,订单服务连接池被占满,进而引发雪崩式超时。建议动作是:扩容缓存服务或迁移部分 key 到另一实例,同时检查连接池配置。
整个过程的工具调用有十几步,但从发出指令到获得完整报告,只用了不到两分钟。我核对了关键证据,和实际情况完全吻合。
6.2 量化效果与成本对比
为了客观一点,我记录了两周内所有用 AI 诊断的故障和过去人工诊断相似故障的历史数据:
| 对比项 | 人工诊断(历史均值) | AI+MCP 诊断(实测均值) |
|---|---|---|
| 平均定位时间 | 38 分钟 | 3.2 分钟 |
| 平均工具切换次数 | 8-12 次 | 2-3 次(多为核对确认) |
| 跨服务关联准确性 | 依赖个人经验 | 稳定引用 trace 和依赖元数据 |
| 诊断报告产出 | 需要单独写文档 | 自动生成,人工修订即可 |
| 团队新人独立排查能力 | 弱,需 guidance | 可借助 AI 较快上手 |
当然这里要特别说明:这个时间对比并不完全公平。人工诊断的历史均值包含了大量"平台来回切换、思路不明确"的损耗,AI 系统在数据接入完备的前提下,天然省去了这些损耗。但即使考虑到这一层,从四十分钟压缩到几分钟的提升幅度也是实打实的。
另一个实际约束是成本。每一次完整诊断的 token 消耗大约在 10 万到 30 万 tokens 之间,按通用模型价格折算,一次诊断的成本大约在几元到十几元不等。相比节省的人力时间,这笔支出是划算的。但要注意:如果没有日志切片和聚合设计,这个成本可能会膨胀十倍。
6.3 什么类型的问题适合AI诊断,什么不适合
用了一段时间后,我总结出 AI+MCP 日志诊断的适用边界:
适合的场景:
- 故障现象明确,时间窗口清晰(告警触发、错误率升高);
- 日志结构化程度较高,字段可解析;
- 根因可以通过日志、指标、知识库交叉定位。
不适合的场景:
- 故障涉及复杂业务逻辑判断,日志信息不足以区分多种可能;
- 数据质量问题严重,日志大量缺失、时间戳错乱;
- 需要即时的人工沟通和业务判断(比如某接口是否为预期内的活动流量峰值)。
这套工具是"侦察兵"和"情报分析员",不是"指挥官"。定位到可疑范围后,最终决策必须回到人身上。
7. 落地过程中踩过的坑与对策
7.1 日志格式混杂:AI无法理解的"半结构化"数据
第一次让 AI 分析订单服务日志时,效果很差。原因很简单:日志里有相当一部分是早期开发的"free style"格式,比如订单 12345 下单失败, user_id=8888, err=timeout,时间戳格式也不统一,有的带时区,有的不带。AI 和正则表达式都不能稳定提取字段。
这个问题的解法没有捷径:先清理最高频的日志场景,再推动全量格式化。我排出一个优先级清单,按告警触发率排序,先把触发告警最多的三类日志全部改为 JSON 输出,其余日志暂时保留原文,但 AI 提示词中明确要求"遇到非结构化的日志时,先尝试推测字段范围,并在报告中标注置信度"。至少先保证 AI 不会被噪音干扰到无法工作。
7.2 上下文超长与Token浪费:一次失控的工具调用
早期测试时发生了一次"事故"。某个深夜,模拟故障注入后,AI 收到告警,直接调用了search_logs,参数时间窗口设置成了最近 24 小时,而且没有限制服务名,返回了超过 50 万条日志的聚合结果。MCP Server 费了好大劲压缩响应,AI 还是长时间处理,最终 Token 消耗了正常值的二十倍以上。
事后我做了三重修复:
- 在 MCP Server 端硬性限制单次查询的最大时间窗口和最大返回条数,超出直接报错;
- 在提示词中明确要求"第一次查询必须从故障发生前 5 分钟开始,时间窗口不超过 15 分钟";
- 在 AI 侧增加"费用预估"节点,预估可能产生大额消耗时先和用户确认。
这一套组合拳之后,再也没有出现过类似的失控调用。
7.3 工具返回结果的稳定性设计
MCP Server 和各类平台对接时,返回结果的结构可能因接口版本差异而变化。有一次我们升级了日志平台接口,返回字段从timestamp变成了@timestamp,AI 立刻陷入困惑,反复查询却找不到时间字段。
解决思路有两个层面。第一层,在 MCP Server 内部做字段归一化,不管底层接口怎么变,MCP Server 返回给 AI 的始终是约定好的标准结构。第二层,为每个工具增加版本元数据,AI 发现返回结构异常时可以主动报告"工具返回格式异常",而不是强撑着分析。
字段归一化这个设计一定要做好。它等于在底层系统的不稳定性和 AI 对稳定的高要求之间加了一个适配层,是整个链路能稳定运行的地基。
7.4 安全与合规细节:日志内容里的敏感数据
日志里经常藏着用户ID、手机号、IP 地址、甚至请求体里的敏感参数。把日志交给 AI 分析前,必须做好脱敏管理。我的做法是在日志采集端就完成脱敏处理,字段值在落盘时就已经替换成脱敏占位符,比如手机号138****1234,用户ID用哈希值代替。这样即使日志被 AI 引用到报告中,也不会泄露原始敏感信息。
另外,MCP Server 的连接凭证全部集中管理,AI 先生不会直接接触底层系统的账号密码。即使是只读操作,也建议走独立的服务账号,方便审计。
8. 如果要复刻这套实践,我建议你先做这三件事
经常有同事问我要这套系统的部署方案。坦白说,完整搭建一套 AI+MCP 日志诊断系统的第一天工作量不小,但如果按优先级拆解,真正需要先完成的只有三件事。
第一件事:先选一类高频故障场景做闭环。不要一开始就追求覆盖所有日志类型。梳理最近一个月告警记录,找到出现频率最高的一类故障(比如数据库超时、缓存连接异常),围绕这一个场景打通日志采集、MCP 工具、AI 分析、报告输出。这类故障占告警量的很大比例,搞定它就能带来可感知的收益。
第二件事:把错误码和过去三个月内处理过的故障报告整理成知识库。这是 AI 判断力的直接来源。不需要一次做全,第一批有个二三十条常见错误码和近十份复盘报告就够用了。随着使用持续补充,AI 会越来越"懂"你的系统。
第三件事:给 AI 划定清晰的操作边界。在提示词和工具权限两个层面明确哪些可以自动做、哪些需要人工确认。一开始宁可限制多一些,也不要让 AI 在不可控的状态下执行操作。日志诊断系统里最重要的不是 AI 多智能,而是每一步都可解释、可回退。
做完这三件事,你就拥有了一个虽然朴素但真正能用的日志诊断助手。后续再逐步扩展监控指标、依赖拓扑、告警关联这些能力,方向也非常清楚。
我自己实际用下来的一个体会是:这套系统的价值曲线不是一条从零到一的陡线,而是一条爬坡很慢但越用越陡的曲线。刚开始数据不全时,AI 的表现可能只是"偶尔有用"。一旦知识库积累到一定量级、日志格式全部结构化,它能给出的诊断几乎可以稳定覆盖日常大部分故障场景。那种感觉就像把一个刚入职但学习极快的新同事,慢慢培养成了对系统了如指掌的资深工程师。
另一个建议是:给 AI 诊断报告建立"复盘反馈"机制。AI 给出结论后,人在处置完毕后应该把真实根因反馈回系统,无论 AI 猜对了还是猜错了。这个反馈数据是下一轮改进知识库和提示词算法的最重要输入。猜错的案例尤其珍贵——用它们来完善系统的盲区,比单纯堆正确案例更能提升诊断准确率。
日志诊断这个老话题,在 AI 和 MCP 的组合下重新变得有趣了。它没有玄妙的技术魔法,更多的是一种分工重构:用协议打通数据孤岛,用模型承担记忆和推理,用人守住决策和风险。如果你手里也有一堆排查效率低下的日志平台,不妨从一个小场景开始,把这条流水线跑起来,然后让它越长越大。