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 代码审查的重要方向:
- 专业化:9 阶段审查覆盖了代码安全的各个方面
- 自动化:从 LKML 自动摄入补丁,无需人工干预
- 高质量:53.6% 的 bug 发现率已经超越人类审查员
- 开源:Apache License 2.0,Linux Foundation 背书
对于开源项目和企业内部代码审查系统,Sashiko 都是一个值得关注的方向。
项目地址:sashiko-dev/sashiko
相关文章
🤖Claude Code
用 Claude Code 构建自动化代码审查机器人
基于 SDK 和 Headless 模式打造 PR 自动审查流水线
🤖Claude Code从零编写 Claude Code Autopilot 模式:从想法到代码的完全自动化实现指南
手把手教你从零开始构建一个类似 oh-my-claudecode 的 Autopilot 自动执行系统,包含需求分析、任务规划、代码执行、QA 验证等完整流程的实现
🤖Claude Codeoh-my-claudecode Autopilot 模式详解:从想法到代码的完全自动化
深入解析 oh-my-claudecode 的 Autopilot 模式,了解如何实现从模糊想法到完整产品的全自动开发
评论
加载中...
评论
加载中...