Claude Code | | 约 5 分钟 | 1,634 字

Sashiko:代理驱动的 Linux 内核代码审查

Linux Foundation 推出的 AI 代码审查系统,9 阶段审查流程发现 53.6% 的内核 bug

什么是 Sashiko

Sashiko(刺し子) 源自日语,意为”小针脚”,原指日本的一种装饰性加固刺绣工艺。项目以此命名,寓意”通过自动化、智能化的补丁审查来加固 Linux 内核”。

Sashiko 是一个代理型(agentic)Linux 内核代码审查系统,归属于 Linux Foundation,由 Google 提供计算资源和 LLM Token 资助。

9 阶段审查流程

Sashiko 采用多阶段审查协议,模仿一支专业审查团队从多个角度评估补丁:

阶段名称审查重点
1分析提交主要目标宏观视角、架构缺陷、UAPI 破坏、概念正确性
2高级实现验证代码是否符合 commit 声明、缺失片段、副作用
3执行流程验证C 代码执行流、逻辑错误、返回检查、错误路径
4资源管理内存泄漏、UAF、双重释放、对象生命周期
5锁与同步并发问题、死锁、RCU 规则违规、线程安全
6安全审计缓冲区溢出、OOB 读写、TOCTOU 竞态、信息泄露
7硬件工程师审查寄存器访问、DMA 映射、内存屏障、状态机约束
8验证与严重性评估整合前7阶段反馈,去重,减少误报
9报告生成转换为礼貌、标准格式的 LKML 邮件回复

技术原理

监控与摄入

  • 自动化摄入:通过 lore.kernel.org 监控邮件列表获取新补丁
  • 手动摄入:支持从本地 git 仓库导入补丁

提示词系统

依赖 Chris Mason 创建的分子系统提示词和通用提示词(存放在 review-prompts 仓库)。

多 LLM 支持

  • 不依赖第三方代理工具
  • 支持多种 LLM 提供商
  • 当前已支持 Gemini 和 Claude

审查质量

在使用 Gemini 3.1 Pro 的测试中:

  • 从最近 1000 个带有 Fixed: 标签的上游提交中,成功识别 53.6% 的 bug
  • 这些 bug 都曾通过了人工代码审查并被接受到主线
  • 误报率估计在 20% 以内

这意味着 Sashiko 的 bug 发现率甚至已超过人类水平

使用方式

Web 界面

访问 sashiko.dev 使用 Web 界面提交补丁审查。

CLI 工具

# 手动导入补丁进行审查
sashiko review /path/to/patch.diff

数据隐私

Sashiko 会将补丁数据以及 Linux 内核 git 历史的大量相关代码发送给 LLM 提供商。使用前需确保有权与第三方 LLM 共享这些代码。

总结

Sashiko 代表了 AI 代码审查的重要方向:

  1. 专业化:9 阶段审查覆盖了代码安全的各个方面
  2. 自动化:从 LKML 自动摄入补丁,无需人工干预
  3. 高质量:53.6% 的 bug 发现率已经超越人类审查员
  4. 开源:Apache License 2.0,Linux Foundation 背书

对于开源项目和企业内部代码审查系统,Sashiko 都是一个值得关注的方向。

项目地址:sashiko-dev/sashiko

评论

加载中...

相关文章

分享:

评论

加载中...