ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

让Linus和Andrew Morton都侧目的AI审查系统:Sashiko的诞生背景与核心价值

让Linus和Andrew Morton都侧目的AI审查系统:Sashiko的诞生背景与核心价值

【免费下载链接】sashiko

Agentic review of Linux Kernel code changes

项目地址:https://gitcode.com/gh_mirrors/sa/sashiko
点击查看免费下载

Sashiko 是一个由 Linux 基金会支持的AI 代码审查系统,专为 Linux 内核补丁而生:它用多阶段 LLM 审查流水线自动揪出补丁里的逻辑错误、内存泄漏与安全问题,连 Linus Torvalds 与 Andrew Morton 都公开称赞它的检出能力。本文带你全面了解 Sashiko 的诞生背景、核心工作原理与实际价值。

Sashiko 是什么:名字背后的故事

Sashiko(日语"刺し子",意为"小刺")原本是一种日本传统缝纫技法——用密集的白色缝线在靛蓝棉布上绣出几何图案。它最初的用途,是加固衣物易磨损的部位、修补磨损与破洞。

这个比喻恰好就是项目的使命:用自动化、智能化的补丁审查来"加固" Linux 内核,在缺陷扩散到主线之前,先把它"缝补"掉。而部署页面上的吉祥物,正是一只戴着放大镜、手拿针线缝补丁的企鹅——一针一线,缝的就是内核补丁 🧵

诞生背景:内核补丁审查的现实困境

每个内核发布周期,都会有大量补丁涌向邮件列表。人工审查再仔细,也总有顾不上的角落:

  • 审查者精力有限,细节疏漏在所难免
  • 很多缺陷要等数月后靠Fixes:补丁才被发现
  • 子系统维护者要同时盯守多个邮件列表,压力不小

Sashiko 正是为了补上这个缺口而生:让 AI 先把补丁读一遍,人类再做最终裁决。这个思路与内核社区"第一条规则就是别引入 bug"的信念完全一致。

为什么 Linus 和 Andrew Morton 都侧目

Linus Torvalds:公开盛赞"AI 100% 正确"

Linus 在邮件列表上这样评价 Sashiko 的报告:

"But I think that lately quite a noticeable percentage of reports have become very much valid... we've seen some truly stellar reports too. Things that are deep and subtle, and the AI is 100% correct."

他还点出了 Sashiko 的本质价值:它是一个"能提升你对补丁信任度"的工具——AI giveth, and AI taketh away,但关键在"信任"二字。

Andrew Morton:"命中率 50% 就足以证明价值"

"Rule #1 is, surely, 'don't add bugs'. This thing finds bugs. If its hit rate is 50% then that's plenty high enough to justify people spending time to go through and check its output."

BPF 维护者 Alexei Starovoitov 更有过被 Sashiko "说服"的经历:他读完 AI 的推理日志后,承认自己判断错了,直接采纳了修复方案。

数据说话:53.6% 的历史缺陷检出率

官方基准测试面向最近 1,000 个带Fixes:标签的上游提交(即"确曾溜进主线、后来被修复"的历史缺陷),结果如下:

指标数值说明
缺陷检出率53.6%人类审查漏掉、最终合入主线的缺陷中,Sashiko 能找出的比例
误报率< 20%人工抽样统计,多为"灰色地带"式疑问

测试使用 Gemini 3.1 Pro 作为模型。基准测试方法详见 docs/benchmarking.md,维护者原话收录在 PRESS.md。

多阶段审查流水线:Sashiko 如何审查一个补丁

Sashiko 不是"问一次 LLM 就完事",而是一套多阶段验证协议(multi-stage verification protocol),并搭配内核子系统专属提示词库(见 third_party/prompts/kernel/subsystem/)。

并行分析:7 个维度同时开火

阶段关注点
goal架构缺陷、UAPI 破坏、概念正确性
implementation代码与提交说明是否一致、未声明的副作用
execution-flow逻辑错误、缺失的返回值检查、off-by-one
resources内存泄漏、use-after-free、双重释放
locking并发、死锁、RCU 规则违反
security缓冲区溢出、越界读写、TOCTOU 竞态
hardware寄存器访问、DMA 映射、内存屏障

其中 goal、implementation、execution-flow 必定运行,其余由规划阶段按需选择。

顺序整合:三关过滤,只留"铁证"

  1. verification— 汇总各阶段发现与驳回理由,筛掉噪音
  2. post-verification— 对仍有争议的可疑点,派出最多 10 个并行验证任务,用 git blame、git log、grep 等工具逐一证实或证伪
  3. report— 仅将确认的缺陷整理成标准 LKML 风格的审查报告

工具箱源码位于 src/toolbox/,完整系统设计见 designs/DESIGN.md。

两种使用方式:本地审查与守护进程

本地审查:开发者三步上手

无需部署服务器,直接在你的内核代码检出目录里运行:

cargo install sashiko # 安装(需 Rust 1.90+、Git) sashiko init # 生成配置文件 export LLM_API_KEY="your-key" # 设置 LLM API Key sashiko review # 审查最新提交

本地审查使用临时沙箱克隆,不会触碰你的工作区。默认模型是 Gemini,也可切换到 Claude、OpenAI 兼容接口、Bedrock、Vertex AI 等,详见 docs/llm-providers.md。

守护进程模式:维护者的"自动哨兵"

以守护进程部署后,Sashiko 会自动从内核邮件列表与 git forge 摄取补丁、完成审查、并以标准 LKML 邮件回发结果,同时提供 Web UI 查看每个补丁集的审查状态。维护者可以逐列表配置跟踪范围、收件人、embargo 等策略:

  • 维护者配置指南:MAINTAINERS_GUIDE.md
  • 守护进程与 Web UI 文档:docs/daemon.md
  • 邮件列表跟踪配置示例:projects/linux/mailing_lists.toml

核心价值:不同角色各得其所

角色价值
内核开发者补丁提交前让 AI 先挑毛病,减少被打回的概率
子系统维护者自动盯守邮件列表,可疑缺陷第一时间浮现
内核社区多一双"永不疲倦的眼睛",降低缺陷进入主线的概率
开源生态项目正探索将 Sashiko 推广到 Linux 内核之外的其他开源项目

⚠️ 注意:Sashiko 会把补丁数据与相关上下文发送到你配置的 LLM 服务商,请确认自己有权与所选服务商共享代码,并留意多阶段审查带来的 token 消耗。

延伸阅读

  • README.md — 项目总览与快速开始
  • docs/configuration.md — 完整配置参考
  • docs/sashiko-cli.md — 命令行工具手册
  • benchmarks/ — 基准测试数据集
  • CONTRIBUTING.md — 参与贡献指南

【免费下载链接】sashiko

Agentic review of Linux Kernel code changes

项目地址:https://gitcode.com/gh_mirrors/sa/sashiko
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进