我扫描了 #1 GitHub 仓库,以下是我的发现
发布: (2026年4月25日 GMT+8 03:23)
4 分钟阅读
原文: Dev.to
Source: Dev.to
OpenClaw 拥有 250,000 颗星,是 GitHub 历史上增长最快的开源项目。Jensen Huang 称其为 “下一个 ChatGPT”。Peter Steinberger 被 OpenAI 雇佣,负责个人代理。
我决定深入内部——不是看功能,而是看代码质量。
我在 30 秒内发现的内容
- 355 个空的 catch 块 – 这个最受欢迎的 AI 代理负责管理你的邮件、日历和账户,却悄悄吞掉错误。当 git 提交失败、同步中断或 API 密钥过期时,既不记录也不警告或追踪,导致数据无声丢失。
- 564 条潜在的硬编码凭证 – 项目要求你将 API 密钥粘贴到配置文件中。安全研究人员已经指出这一点,但代码库中仍有数百处直接在代码里出现密钥,而不是使用环境变量。
- 335 条生产环境下的
console.log– 调试输出随产品一起发布,任何打开 DevTools 的人都能看到泄露的信息。 - 449 条双重类型断言 (
as unknown as) – TypeScript 的类型系统被强行压制,而不是被正确修复。
对比
-
n8n(162 K 星,工作流自动化)
- 939 条
@ts-ignore指令 – 将近一千处直接关闭 TypeScript 检查。 - 206 个空的 catch 块。
- 696 个未声明类型的变量。
- 939 条
-
Tolaria(1.4 K 星,代码质量评分 9.9/10)
- 关键路径(git 操作、自动同步)中有 10 个空的 catch 块。
- 零
@ts-ignore。 - 仅有 1 条
console.log。 - “9.9/10” 的评分忽略了最关键代码路径中的静默失败。
这意味着什么
- 星标不等于代码质量。 最受欢迎的项目每行关键代码的问题最多。GitHub 星标衡量的是热度,而非可靠性。
- AI 生成的代码需要审计。 最近的安全评估显示,92 % 的 AI 生成代码库至少包含一个关键漏洞。这类项目构建迅速,却很少审查静默失败模式。
- 空的 catch 块是新的技术债务。 它们比
TODO注释更难发现,因为它们不产生任何信号。你的监控显示一切正常,但用户却在失去数据。 - 修复通常很简单。 将
.catch(() => {})替换为.catch(err => console.warn('[context]', err))。一行代码,完整可见性。
我向这两个项目提交了 PR。两者都被 CI 自动接受。修复极小——没有行为改变,仅提升了错误可见性。
结论
代码质量并不是零缺陷,而是要知道何时出现了问题。