服务器固件里蹦出一条异常日志,工程师的第一反应往往不是"找到问题了",而是"这条日志到底从哪来的"。真正的根因可能藏在更早的调用链里,藏在某个本该执行却没执行的恢复路径里。日志只是冰山露出水面的那一角。
在 OSFC2026(open source firmware conference)上,字节跳动 STE 固件团队分享了一个议题:Agentic AI Software Debugging in OpenBMC。他们给出的思路有点反直觉——不让大模型直接读海量日志猜根因,而是先用程序分析把证据链搭好,再让 AI Agent 在受约束的证据空间里做解释。
![]()
打个比方:传统 AI 调试像让模型在日志堆里找答案,这套方案更像让程序证据先还原现场,再让 Agent 解释现场。
OpenBMC 调试难在哪
OpenBMC 处在服务器管理控制链路的关键位置,管着传感器、硬件健康状态、系统事件、管理接口和恢复流程。它离用户不近,但一旦异常,影响会传导到整机稳定性、运维效率甚至数据中心可靠性。
实际调试中,工程师遇到的第一个问题不是没日志,而是日志太多。服务日志、systemd journal、D-Bus 调用记录、传感器状态变化、错误提示,全都在往外冒。真正指向根因的信号,散落在这些日志之间。
传统调试链路大致是这样:
- 从海量日志里筛异常片段
- 按关键字搜源码
- 手动定位函数、调用者和被调用者
- 结合经验判断异常路径和可能根因
痛点也很明确:日志规模大、噪声高;最后一条错误日志不一定是根因;调用链追踪高度依赖经验;文本相似不等于因果相关。
那直接把完整日志丢给大模型行不行?大模型的语言理解和归纳能力确实强,但在软件调试场景里,这么做容易撞上两个问题:上下文成本高,结论不可验证。
不让 LLM 当事实来源,让它当解释器
这套方案没有把 LLM 设计成"事实来源",而是放在另外三个位置上:证据解释器、假设组织者、行动建议生成器。
整体思路是先用确定性的程序分析完成事实抽取、证据构建和上下文压缩,再让 Agent 在边界清晰的证据空间里做解释和推理。
关键突破之一,是把运行时日志从"文本线索"转换成"程序足迹"。传统做法是复制关键字到代码仓库里搜,但同一条日志字符串可能在多个位置出现,或者日志经过格式化、变量替换和运行时拼接,纯文本搜索就可能定位不准。
这里有个设计要点:如果一条日志能被多个位置发出,系统不能直接选文本最相似的那项,而要结合模块、时间顺序、相邻日志、服务上下文和调用图可达性共同评分。异常日志不再只是文本,而是能反向映射到源码函数、文件位置和调用上下文的程序足迹。
路径重建:找的是分叉点,不是错误行
定位到源码锚点只是第一步。更关键的问题是:异常为什么会走到这里?正常情况下又该走向哪里?
方案引入了调用图和路径重建能力。系统从异常日志对应的函数出发,沿真实调用关系向上游和下游扩展,识别调用链里的关键节点、异常节点、事件节点,以及可能缺失的恢复节点。
对于 OpenBMC 这类事件驱动系统,路径重建还要考虑 D-Bus 调用、property 变化、signal、method call、systemd service 和异步回调等因素。
方法上的差异在于:系统不只看异常路径发生了什么,还会对比正常路径本应发生什么。如果某个恢复动作没执行、某个状态没更新、某个 fallback 没触发,这些路径差异就成了比单条错误日志更有价值的根因线索。
接下来是证据压缩。在 AI 调试系统里,"给模型更多上下文"并不总是更好。OpenBMC 这类复杂系统的完整日志和完整源码里,大量信息是无关的。直接堆叠上下文不仅成本高,还可能让模型被噪声带偏。所以方案里的 Evidence Compressor 不是普通摘要工具,而是面向因果价值的结构化裁剪模块,把日志、源码、调用链和路径差异组织成 Agent 可解释的结构化证据包。
给 Agent 划边界:能做什么,不能做什么
这套设计里,Agent 的能力边界被明确限定。它可以解释证据链、组织根因假设、给出验证步骤和修复建议,但不能凭经验虚构不存在的函数调用关系,也不能在证据不足时输出确定性结论。
Agent 可以做的:
- 解释证据链中各节点之间的因果关系
- 把日志、源码片段和调用链组织成可读 RCA
- 对多个候选根因排序并说明依据
- 给出下一步验证建议
- 在证据支持时提出修复方向
Agent 不应该做的:
- 凭经验虚构不存在的函数调用关系
- 把文本相似的日志直接当作根因证据
- 在证据不足时输出确定性结论
- 绕过源码锚点和调用图直接给出修复方案
最终输出的 RCA 报告,也不该只是"可能是某某原因"这样一句话。它应该包括现象摘要、日志匹配、源码锚点、调用链、路径差异、根因假设、验证步骤和修复建议。每个关键结论都要能回溯到对应证据。如果证据不足,系统需要明确标注"不确定",以及后续需要补充采集哪些信息。
从根因分析到闭环修复
这套方案的核心价值,是回答了基础设施工程里的一个关键问题:AI 应该如何被可靠地使用?答案既不是让模型替代工程师,也不是让模型在海量日志里自由发挥,而是让确定性的程序分析先完成事实抽取与证据构建,再让 Agent 在受约束的证据空间里完成解释和推理。
随着 AI 算力基础设施快速演进,服务器固件正在从隐藏在系统底层的基础组件,走向决定数据中心可靠性和运维效率的关键能力层。OpenBMC 软件调试的智能化,是这一趋势里的一环。
从长期看,这条路径还能继续往闭环修复演进:
- RCA with Evidence Chain:基于证据链输出可信根因分析
- Repair Recommendation:在证据支持下生成修复建议
- Patch Generation:结合代码上下文生成候选补丁
- Automated Validation:自动触发单测、仿真或复现实验
- CI/CD Regression:进入持续集成和回归验证流程
- Controlled Deployment:在可回滚、可观测前提下逐步部署
字节跳动 STE 固件团队表示,后续会继续探索 Agentic AI 在固件研发、调试、验证和运维中的工程化落地,让 AI 不只是"会回答问题",而是成为基础设施研发流程中可信、可控、可审计的效率杠杆。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.