文章配图:毒鸡蛋,修电脑?

毒鸡蛋,修电脑?

一个被华硕售后建议花 700 块重装系统的问题,最后被智谱送的“毒鸡蛋”token 换来的 AI Agent 修好了。

一个被华硕售后建议重装系统的问题,最后被智谱发的"毒鸡蛋"token 换来的 AI Agent 修好了。

§ 前情提要:电脑哑了

十月十号那天,电脑突然没声音了。

一开始症状还很迷惑:Chrome 里放视频有声音,PotPlayer 等本地播放器没声音。当时没当回事,结果症状持续恶化,到最后连 Google 和录音都彻底哑了——系统层面任何一个应用,多底层的调用方式都出不了声,麦克风也录不进东西。

本着"先软后硬"的原则,我把它带到了华硕官方售后。门店在电脑城就算了,大哥,你处理方式也别这么电脑城啊。。。第一眼说你这笔记本该清灰了清灰了。我态度比较强硬,坚持要求先检测硬件——毕竟去年四月才买,还在保啊。果然,硬件没问题。

售后大哥说,基本上是软件有冲突。我们也很难搞懂,建议直接重装系统,并让我买一张5年保修的卡。好家伙,700块。。。打人硕真有你的

§ 鸡蛋到位,开修

回家路上就在琢磨找谁修。正好Codex修电脑的比较多,而我Codex订阅又到期了,正巧唐总又双叒叕往我账号里塞了几亿 token。数据安全哪有我的安全重要,鸡蛋毒点就毒点吧,总好过 700 块的重装系统。

§ 把电脑交给 AI

打开 ZCode,直接开完全访问,告诉他系统没声音了,让他自己排查。把电脑交给它排查。整个过程我基本只负责点 UAC 弹窗和告诉他我有没有听到声音。

唐杰就知道发他那逼毒鸡蛋

§ 第一轮:常规排查,全绿

Agent 上来就是教科书流程:声卡驱动状态、Windows Audio 服务、设备管理器、系统日志、默认输出设备——全部正常。驱动版本还挺新。

中间有个小插曲:默认输出设备指向一只蓝牙耳机。摘了耳机问题依旧,排除。

按套路出牌,基本就不用看了,售后小姐姐的 700 块报价仿佛在屏幕外发光。

§ 第二轮:不猜了,上仪器

Agent 的转折点在这里:不靠耳朵,靠测量。

它写了个 WASAPI 工具,播放测试音的同时用音频端点的电平表做客观测量——结果播放期间扬声器端点峰值电平 0.0%。也就是说,不是"出声了听不到",是声音流根本没被渲染出去。同时底层调用音频引擎返回了稳定复现的错误码:0x80040154,“类未注册”。

它是 COM 体系的错误,不是驱动的、不是服务的、不是设备的。链路断在更深的地方。

§ 第三轮:所有"重启大法"集体失效

接下来是漫长的排除法,Agent 把每一层的软重置都做了一遍:

  • 重启音频服务和 audiodg 进程 → 无效
  • 重启 Realtek 音频设备 → 无效
  • 整机重启 → 无效(排除临时状态卡死)
  • 重置 MMDevices 音频注册表配置 → 无效
  • 摘掉火绒挂在音频设备类上的过滤驱动 → 无效(这条一度是头号嫌疑人,火绒的设备监控驱动确实挂在整个 MEDIA 类上,但实测无关)
  • 检查 COM 劫持的常规藏身处(IFEO、AppInit_DLLs、HKCU)→ 干净
  • SFC 扫描 → 系统文件完好

每一步都排除了一个方向,但问题依然稳定复现:0x80040154。

§ 第四轮:ETW 跟踪,一锤定音

Agent 开始用wpr 的 Audio 配置文件做 ETW 跟踪,复现一次故障,再解析几百万条事件。

然后音频栈自己招了。日志显示了完整的故障链:

FallbackError: apowrappersrv.cpp, AUDIODG.EXE,
               "APO CLSID {0ebd8507-17bb-4ae7-ad76-e86f99a425e9}", 0x80040154
    ↓
apowrapperclient.cpp → systemeffect.cpp → endpointcharacteristics.cpp
    ↓
MixFormatComputationError
    ↓
GetMixFormat FAILED —— 播放、录音全部无法建立音频流

一查这个 CLSID:FX_DolbyAPO_WrapperEFX_CLSID,杜比音效的 APO 组件。这台华硕带 Dolby Atmos,扬声器端点的音效链引用了杜比的处理对象,而这几个 COM 类的注册在注册表里整体丢失——驱动包和 DLL 都还好端端躺在 DriverStore 里,设备管理器里"Realtek Audio Effects Component"状态 OK,但 COM 层面它们已经"不存在"了。估计是之前在GitHub上下了什么野鸡开源项目,清内存搞出麻烦了。

§ 第五阶段:手写 420 项注册表

最后一公里反而最磨人:

  • pnputil 重装驱动包 → 无效,系统说"已是最新",拒绝重新执行注册
  • 重启杜比的软件组件设备 → 无效,同样不重新处理
  • 售后的"重装系统"当然能修好——把整个注册表炸了重来嘛,但这属于用核弹修门锁

最终方案:Agent 解析 DriverStore 里官方杜比 INF 的注册定义(包括 %13% DriverStore 路径展开、REG_EXPAND_SZ / DWORD 值类型、字符串表替换),严格按 INF 语义把 420 项 COM 注册手写回注册表,然后重启音频栈。

电平表读数从 0.0% 跳到 87.7%。

扬声器响了。录音也一并复活——毕竟走的是同一套 COM 类。全程没花七百块,没重装系统,清灰都不用。

§ 一些感受

1. “硬件没问题"和"软件没坏"之间隔着一整个注册表。 这台机器的症状在事后看非常经典:驱动正常、服务正常、设备正常、日志干净,但音频管线就是全断。断点在音效组件的 COM 注册这种"系统认为已存在"的暗层里。售后没有能力也不愿意往这个深度排查,“重装系统"对他们是成本最低的答案。——怕真有啥问题,去华硕售后时,我甚至拿了三个T的移动硬盘……

真要让人工帮我排查,700块估计零头都不够。但zcode只要忍受有可能被全量备份代码库的代价就好了。毕竟写的都是开源玩意儿,唐杰你拿去训练也炼不出什么来,随便呗

2. Agent 修电脑这件事,是真实可行的。 这次排查里 Agent 展示的能力不是"会答问题”,而是完整的工作闭环:写 WASAPI 工具做客观测量、用 wpr 抓几百万条 ETW 事件、解析官方 INF 提取注册定义、提权改注册表、每一步带验证。我全程的工作量是:点了几次 UAC 的"是”,以及在它修好之后确认了一下真的有声音。

3. 客观测量 > 主观感受。 “没声音"三个字能有一百种原因。电平表一上,“声音没被渲染"和"渲染了但硬件没放出来"立刻二选一,排查空间瞬间砍半。这次修电脑和做后端排障在方法论上是同一件事:先让系统自己说话,再动手。

4. zai

你知道的,唐杰是我的兄弟,我们曾在智谱清言的至暗时刻并肩作战。我从来没有嘲讽过"智障清言”,也从来没有嫌弃过毒鸡蛋上传全量仓库。GLM-5.3-Flash简直强得不可思议,每周末3亿token鸡蛋白送,我认为我们能够产生很棒的化学反应。有时候作出决定很简单,经过许多个日夜的思考,我决定把天赋带到Z.ai,加入周末排队领鸡蛋的大军,已经迫不及待用上免费的GLM-5.5万亿参数正式版了。至于DeepSeek、月之暗面和腾讯混元,我祝他们一切顺利。(doge

以上。

评论

欢迎分享你的想法;留言将同步到 GitHub Discussions。

评论区正在加载…