【免费下载链接】sashiko
Agentic review of Linux Kernel code changes
Sashiko 是一款面向 Linux 内核的自动化 AI 代码审查(agentic review)系统,它内置了Gemini、Claude、AWS Bedrock、Google Vertex AI、Ollama、vLLM等 10 多种 LLM 提供商的完整配置支持。无论你是想快速上手默认配置,还是追求零成本订阅后端、完全本地私有的模型方案,本文都会手把手带你完成 LLM 提供商的选择与配置,帮助你用最合适的模型跑起内核补丁审查。
一、30 秒快速开始:默认用 Gemini
Sashiko 默认使用 Gemini,也是最简单的一条配置路径,适合想尽快跑通第一次审查的新手:
# 复制官方示例配置 cp docs/examples/Settings.example.toml Settings.toml # 设置 API Key export LLM_API_KEY="your-gemini-api-key"示例配置的核心内容如下(Settings.example.toml):
[ai] provider = "gemini" model = "gemini-3.1-pro-preview" max_input_tokens = 950000所有配置都存放在项目根目录的Settings.toml中。你也可以用环境变量覆盖任意配置项,规则是SASHIKO前缀 +__分隔符,例如:
export SASHIKO__AI__PROVIDER=gemini export SASHIKO__AI__MODEL=gemini-3.1-pro-preview💡 小贴士:配置解析逻辑见 src/settings.rs,多提供商的统一入口(provider 分发逻辑)在 src/ai/mod.rs 中,感兴趣可以围观一下每种 provider 是如何被实例化的。
二、10+ LLM 提供商全景速览
先通过下表对号入座,再跳到对应章节看配置细节:
| 提供商 | provider值 | 类型 | 凭证要求 | 示例配置 |
|---|---|---|---|---|
| Gemini(默认) | gemini | 云端 API | API Key | Settings.example.toml |
| Claude | claude | 云端 API | API Key | Settings.claude.toml |
| AWS Bedrock | bedrock | 云端托管 | AWS IAM 凭证 | Settings.claude-bedrock.toml |
| Google Vertex AI | vertex | 云端托管 | gcloud 默认凭证 | Settings.claude-vertex.toml |
| OpenAI | openai | 云端 API | API Key | Settings.openai-api.toml |
| OpenAI 兼容端点 | openai-compatible | 自建/网关 | 视端点而定 | Settings.openai-compat.toml |
| Ollama | ollama | 本地私有 | 无 | Settings.ollama.toml |
| vLLM | vllm | 本地私有 | 无(可选 Key) | Settings.vllm.toml |
| Claude Code CLI | claude-cli | 本地订阅 | 订阅登录 | Settings.claude-cli.toml |
| GitHub Copilot CLI | copilot-cli | 本地订阅 | 订阅登录 | Settings.copilot-cli.toml |
| Codex CLI | codex-cli | 本地订阅 | 订阅登录 | Settings.codex-cli.toml |
| Devin CLI | devin-cli | 本地订阅 | 订阅登录 | Settings.devin-cli.toml |
| Kiro CLI | kiro-cli | 本地订阅 | Key 或浏览器登录 | Settings.kiro-cli.toml |
| goose | goose | 本地桥接 | 视后端而定 | Settings.goose-cli.toml |
所有示例文件都集中在 docs/examples/ 目录,各提供商的详细官方说明见 docs/llm-providers.md。
三、云端 API 提供商配置教程
3.1 Claude API:开启提示词缓存更省钱
cp docs/examples/Settings.claude.toml Settings.toml export ANTHROPIC_API_KEY="sk-ant-..." # 或通用兜底变量 LLM_API_KEY示例配置(Settings.claude.toml):
[ai] provider = "claude" model = "claude-sonnet-4-6" max_input_tokens = 40000 # 控制成本的默认值,完整窗口为 200K [ai.claude] prompt_caching = true # 5 分钟 TTL 的提示词缓存 max_tokens = 32768自带能力:提示词缓存(重复上下文更省)、完整的工具调用支持、限流自动重试,还可以通过[ai.claude]下的thinking与effort调节推理深度。实现见 src/ai/claude.rs。
3.2 AWS Bedrock:走企业 IAM,免 API Key
⚠️ 前置条件:需要用
--features bedrock编译 Sashiko。
在 AWS 控制台为目标模型与区域开通访问权限后,用任意标准 AWS 认证方式提供凭证:
export AWS_ACCESS_KEY_ID="..." export AWS_SECRET_ACCESS_KEY="..." export AWS_REGION="us-east-1"cp docs/examples/Settings.claude-bedrock.toml Settings.toml[ai] provider = "bedrock" model = "us.anthropic.claude-sonnet-4-6-20250514-v1:0" max_input_tokens = 40000 [ai.bedrock] region = "us-east-1" prompt_caching = true max_tokens = 8192Bedrock 走 Converse API,兼容任意 Bedrock 托管模型(Claude、Llama、Mistral 等),还支持跨区域推理 profile(如us.anthropic.claude-*)。实现见 src/ai/bedrock.rs。
3.3 Google Vertex AI:GCP 基础设施上的 Claude 与 Gemini
⚠️ 前置条件:需要用
--features vertex编译。
先完成 GCP 认证并设置项目与区域:
gcloud auth application-default login export ANTHROPIC_VERTEX_PROJECT_ID="my-gcp-project" export CLOUD_ML_REGION="us-east5"cp docs/examples/Settings.claude-vertex.toml Settings.toml # 用 Claude cp docs/examples/Settings.gemini-vertex.toml Settings.toml # 用 Gemini模型名决定走哪条链路:claude-开头的走 Anthropic 的rawPredict端点,gemini-开头的走 Google 的generateContent,其他名称会在启动时直接报错。Vertex 上 Claude Opus 4.7/4.6 与 Sonnet 4.6 支持1M 上下文窗口。实现见 src/ai/vertex.rs。
四、订阅制 CLI 后端:零按量计费
如果你已有 Claude Code、GitHub Copilot、Codex、Devin 或 Kiro 的订阅,可以让 Sashiko 直接把这些本地 CLI 当作补全后端——不需要 API Key、不按 token 计费。
| CLI 后端 | 前置条件 | 特点 |
|---|---|---|
| Claude Code | 安装并登录claude | 无状态、每次请求独立进程,自动提示词缓存;model支持opus/sonnet等别名 |
| GitHub Copilot | copilot在$PATH且已登录 | 提示词通过 stdin 传入,绕开 Linux 参数长度上限 |
| Codex | 安装并认证codex | 以codex exec --sandbox read-only只读模式运行,effort可调推理深度 |
| Devin | devin auth login完成认证 | 每次请求写入临时提示词文件后调用 |
| Kiro | KIRO_API_KEY或浏览器登录 | 内置隔离的 deny-all 临时 agent,防止误执行工具 |
以 Claude Code 为例(Settings.claude-cli.toml):
cp docs/examples/Settings.claude-cli.toml Settings.toml[ai] provider = "claude-cli" model = "claude-sonnet-4-6[1m]" # 后缀 [1m] 表示开启 1M 上下文⚙️ 注意:每次审查可能拉起多个 CLI 进程,如果撞上订阅限流,把[review] concurrency调低即可。相关实现分别位于 src/ai/claude_cli.rs、src/ai/copilot_cli.rs、src/ai/codex_cli.rs、src/ai/devin_cli.rs、src/ai/kiro_cli.rs。
五、完全本地私有部署:Ollama 与 vLLM
对代码保密性要求高、或希望零 API 成本?这两条路线让审查完全在本地进行,代码不出内网。
5.1 Ollama:一条命令拉模型
# 1. 安装 Ollama 并拉取模型 ollama pull deepseek-v3 # 2. 应用示例配置 cp docs/examples/Settings.ollama.toml Settings.toml[ai] provider = "ollama" model = "deepseek-v3" max_input_tokens = 32768 [ai.ollama] base_url = "http://localhost:11434" context_window_size = 32768 # 对应 Ollama 的 num_ctx think = "medium" # 推理模型的思考强度亮点:无需任何 Key、支持推理模型(think设置)、私有本地执行。实现见 src/ai/ollama.rs。
5.2 vLLM:生产级本地推理服务
# 1. 启动 vLLM 服务 vllm serve Qwen/Qwen3-8B --max-model-len 32768 --host 0.0.0.0 --port 8000 # 2. 应用示例配置 cp docs/examples/Settings.vllm.toml Settings.toml[ai] provider = "vllm" model = "Qwen/Qwen3-8B" max_input_tokens = 32768 [ai.vllm] base_url = "http://localhost:8000" context_window_size = 32768 # 与服务器 --max-model-len 保持一致 enable_thinking = false # 针对 Qwen3 等推理模型关闭思考vLLM 后端会自动分离think块与正式回答,context_window_size一定要与服务器启动参数对齐。实现见 src/ai/vllm.rs。
5.3 goose:给本地模型套一层标准协议
goose 是 Linux 基金会旗下的 Agent 客户端,可作为「桥接层」把 Sashiko 接到任意它支持的后端(vLLM、Ollama、云端模型),是通往纯本地审查的捷径:
[ai] provider = "goose" model = "qwen3-8b-ov" [ai.goose_cli] goose_provider = "openai" context_window_size = 32768 [ai.goose_cli.env] OPENAI_HOST = "http://localhost:8000" OPENAI_BASE_PATH = "v1/chat/completions" OPENAI_API_KEY = "dummy"⚠️ goose 会在每个请求前附加自己的系统提示词(约 5k token),请把max_input_tokens设得明显低于context_window_size。真实 API Key 建议放环境变量,而不是写进配置文件。
六、OpenAI 兼容端点:一个配置接入半个互联网
只要对方实现了 OpenAI chat completions 接口,就能通过openai-compatible提供商接入(z.ai 智谱 GLM、OrcaRouter、本地 LiteLLM 等都在其列)。核心配置(Settings.openai-compat.toml):
[ai] provider = "openai-compatible" model = "glm-5.2" [ai.openai_compat] base_url = "http://localhost:8080/v1" context_window_size = 128000 max_tokens = 16384base_url支持两种写法:
- 短格式:如
http://localhost:8080/v1,/chat/completions后缀会自动补全; - 完整 URL:路径非标准时直接写全,例如某些厂商的 coding 网关端点。
如果用的是 OpenAI 官方 API,则改用 Settings.openai-api.toml:provider = "openai"+ 导出OPENAI_API_KEY即可。部分推理模型网关会拒绝temperature字段,Sashiko 会自动重试并在后续请求中省略该字段,无需手动处理。实现见 src/ai/openai.rs。
七、选哪个?三种典型场景建议
- 快速尝鲜 / 追求审查质量上限:直接用默认的 Gemini(
gemini-3.1-pro-preview),或预算充足时上 Claude(开启prompt_caching省成本)。 - 企业合规 / 云资源已有:AWS 用户选 Bedrock(免 API Key,走 IAM 审计);GCP 用户选 Vertex AI(Claude 还能拿到 1M 上下文)。
- 代码保密 / 零成本:内网部署 Ollama 或 vLLM,代码不离开机器;已有 AI 编程订阅的用户则直接用 CLI 后端,零按量计费。
🔒 提醒:Sashiko 会把补丁数据及相关上下文文件发送给所选提供商,请务必确认你有权与所选服务商共享这些代码,并关注多阶段审查可能产生的 token 账单。
八、常见问题(FAQ)
Q1:配置不生效怎么办?优先检查Settings.toml是否位于项目根目录,或是否被~/.config/sashiko.toml覆盖;环境变量(SASHIKO__AI__PROVIDER等)可以临时覆盖文件配置,注意排查是否残留了旧变量。
Q2:Bedrock / Vertex 报错说"需要 feature"?这两个提供商需要编译时启用对应特性(--features bedrock/--features vertex),默认构建不包含。
Q3:本地模型上下文放不下长补丁?把context_window_size和max_input_tokens同时调低,并适当减少[review] concurrency;本地小模型建议配合 goose 桥接以获得更稳的工具调用行为。
Q4:想同时评估多个模型的效果?Sashiko 自带基准测试能力,可用 docs/benchmarking.md 中的方法对历史Fixes:提交做准确率对比,用数据决定最终选型。
📚 延伸阅读:docs/llm-providers.md 提供商官方文档、docs/configuration.md 完整配置参考、src/ai/ 全部提供商源码目录。
【免费下载链接】sashiko
Agentic review of Linux Kernel code changes
相关推荐
nao 多LLM提供商配置指南:OpenAI、Anthropic、Gemini到本地Ollama自由选择
nao 多LLM提供商配置指南:OpenAI、Anthropic、Gemini到本地Ollama自由选择 nao 是一款开源数据分析智能体(Analytics
Karakeep AI Provider 配置指南:OpenAI、Ollama、Gemini 等多供应商推理与 Embedding 模型接入
Karakeep AI Provider 配置指南:OpenAI、Ollama、Gemini 等多供应商推理与 Embedding 模型接入 Karakeep(
后端前端移动开发AI 应用知识管理全文检索MCP 服务Xget AI推理API加速终极指南:OpenAI、Claude、Gemini等主流提供商快速配置教程
Xget AI推理API加速终极指南:OpenAI、Claude、Gemini等主流提供商快速配置教程 Xget是一款专为开发者设计的极速、免费、可靠的开源内容
后端API网关缓存
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考