开源项目第181期:Open Code Review — 阿里巴巴内部锤炼的 AI 代码审查工具,token 消耗仅为通用 Agent 的 1/9
弿ºé¡¹ç®ç¬¬181æï¼Open Code Review â é¿éå·´å·´å é¨é¤ç¼ç AI 代ç 审æ¥å·¥å ·ï¼token æ¶èä» ä¸ºéç¨ Agent ç 1/9
å¬å¥Lab 2026-08-09 0 é 读8åéå¼è¨
"éç¨ Agent å代ç 审æ¥çé®é¢ä¸æ¯å®çä¸åº bugï¼èæ¯å®ä¸ç¥é该çåªéï¼çå®äºæè¡å·æéï¼è¿ç¨äº 9 åç tokenã"
è¿æ¯ãæ¯æ¥ä¸ä¸ªå¼æºé¡¹ç®ãç³»åç第 181 ç¯ãä»å¤©çé¡¹ç®æ¯ Open Code Review ââ é¿éå·´å·´å°å é¨ AI 代ç 审æ¥å·¥å ·å¼æºçææï¼2026 å¹´åå¸ï¼å¨å¼æºä¹åå·²å¨é¿éå 鍿å¡äºæ°ä¸åå·¥ç¨å¸ï¼"è¯å«äºæ°ç¾ä¸ä»£ç 缺é·"ã
å¸é¢ä¸ç¨ LLM å代ç review çå·¥å ·ä¸å°ï¼ä½å¤§å¤æ°æ¯æ diff ç´æ¥æç»å¤§æ¨¡åç¶åçè¾åºãOpen Code Review çåºåç¹ä¸åï¼å®æä¸å¥æ··åæ¶æââç¡®å®æ§å·¥ç¨ç®¡éå¤ç"ç»å¯¹ä¸è½åºéçäº"ï¼æä»¶éåãä½ç½®å®ä½ãè§åå¹é ï¼ï¼LLM Agent åªå¤çéè¦å¨æå¤æçé¨åãç»ææ¯ï¼ç¸åçåºå±æ¨¡åï¼ç²¾ç¡®çå F1 弿´é«ï¼token æ¶è约为éç¨ Agent ç 1/9ã
18,100 é¢ Starï¼1,200 个 Forkï¼Apache 2.0ã
ä½ ä¼å¦å°ä»ä¹
- æ··åæ¶æç设计é»è¾ï¼ä¸ºä»ä¹æ"ç¡®å®æ§"å"Agent"åå¼
ocr reviewï¼å¢é审æ¥ï¼åocr scanï¼å ¨æä»¶å®¡è®¡ï¼çå·®å¼- Delegation 模å¼ï¼è®©ä½ èªå·±ç Agent è·å®¡æ¥ï¼ä¸éè¦ OCR ç API key
- Benchmark æ°æ®ï¼ä¸ Claude Code ä½ä¸ºéç¨ Agent ç对æ¯
- GitHub Actions éæåä¸ä¸ª SLA 审æ¥çº§å«
- AI çæä»£ç çç¹æç¼ºé·æ£æµ
åæç¥è¯
- æ Git 工使µç»éªï¼branchãdiffãPRï¼
- äºè§£ CI/CD çåºæ¬æ¦å¿µ
- ç¨è¿ Claude Code æç±»ä¼¼ AI ç¼ç¨å·¥å ·ä¼æå¸®å©
项ç®èæ¯
ä»å é¨å·¥å ·å°å¼æº
Open Code Review 䏿¯ä¸ºäºå¼æºèé çæ°é¡¹ç®ï¼èæ¯é¿éå·´å·´å é¨å®é è¿è¡å¤å¹´çå·¥å ·å¯¹å¤åå¸ãè¿ä¸ªåºå«å¾éè¦ï¼å®ç设计å³çæ¥èªçå®çè§æ¨¡åè¿è¥ç»éªï¼è䏿¯ä»é¶å¼å§çæ³è±¡ã
å¨å é¨çæ¬éï¼è¿å¥ç³»ç»ï¼
- æå¡äºæ°ä¸åå·¥ç¨å¸
- è¯å«äºæ°ç¾ä¸ä»£ç 缺é·
- çå®å¤çäºç产级å«ç代ç åºå¤æåº¦
éç¨ Agent å代ç review çé®é¢
æ diff ç´æ¥æç» Claude Code æ GPT å代ç reviewï¼æå ä¸ªç³»ç»æ§çå¼±ç¹ï¼
| é®é¢ | è¡¨ç° |
|---|---|
| æä»¶è¦çä¸å®æ´ | Agent èªä¸»å³å®çåªäºæä»¶ï¼å¯è½éæ¼å ³é®çè·¨æä»¶ä¾èµ |
| ä½ç½®æ¼ç§» | è¡å·æ 注ä¸åç¡®ï¼comment è½å¨é误çä½ç½® |
| è´¨éä¸ç¨³å® | åæ ·ç diff ä¸å次è¿è¡ï¼é®é¢ä¸¥éç¨åº¦ç夿差å¼å¤§ |
| token æ¶èé« | éç¨ Agent ä¼è¯»å大éä¸å¿ è¦çä¸ä¸æ |
è¿äºé®é¢çæ ¹æºæ¯ï¼éç¨ Agent 为äºçµæ´»æ§ï¼æææå³çé½äº¤ç» LLM 卿å¤çï¼å æ¬é£äºæ¬æ¥å¯ä»¥ç¨ç¡®å®æ§ä»£ç 精确å¤ççé¨åã
æ ¸å¿æ¶æï¼æ··å设计
Open Code Review ç设计å²å¦ï¼è®©ç¡®å®æ§çäºæ ç¨ç¡®å®æ§çæ¹å¼å¤çï¼è®© Agent åªå¤ççæ£éè¦å¨æå¤æçé¨åã
Git åæ´
â
[ç¡®å®æ§å±]
âââ 精确æä»¶éåï¼ä¸éæ¼ãä¸å¤éï¼
âââ æºè½ Bundle åç»ï¼ç¸å
³æä»¶èåæç¬ç«å Agent ä¸ä¸æï¼
âââ æ¨¡æ¿å¼æè§åå¹é
ï¼NPEã线ç¨å®å
¨ãXSSãSQL 注å
¥çï¼
âââ å¤é¨å®ä½ + åå°æ¨¡åï¼ç²¾ç¡®è¡çº§æ³¨éä½ç½®ï¼
â
[Agent å±]
âââ åºæ¯ä¸è°ç prompt åå·¥å
·é
âââ åºäºç产 tool-call trace åæä¼å
âââ 卿ä¸ä¸ææ£ç´¢åå·¥å
·è°ç¨
â
代ç 审æ¥ç»æï¼ç²¾ç¡®è¡çº§æ³¨éï¼
ç¡®å®æ§å±è´è´£ï¼
- ä» git åæ´é精确éåææéè¦å®¡æ¥çæä»¶
- æç¸å ³æä»¶æå æç¬ç«ç Bundleï¼æ¯ä¸ª Bundle å¨ç¬ç«ä¸ä¸æéå¤çï¼åèæ²»ä¹ï¼
- ç¨æ¨¡æ¿å¼æå¹é 常è§ç¼ºé·è§åï¼è䏿¯æ¯æ¬¡é½è®© LLM ä»å¤´å¤æ
- ç¡®ä¿è¾åºçè¡å·æ 注精确ï¼ä¸äº§çä½ç½®æ¼ç§»
Agent å±è´è´£ï¼
- åºäºç产ç¯å¢ç tool-call traces åæåä¼åè¿ç prompt
- éè¦è·¨æä»¶æ¨çç夿夿
- å¨æå·¥å ·è°ç¨
è¿ä¸ªåå·¥çç»æï¼ç²¾ç¡®çæ´é«ï¼ç¡®å®æ§å±é¿å äº LLM çéæºæ§ï¼ï¼token æ´çï¼Agent åªå¤ççæ£å¤æçé¨åï¼ã
Benchmark æ°æ®
Open Code Review å¢éæå»ºäºä¸å¥åºåæµè¯ï¼æ°æ®æ¥èªï¼
- 50 ä¸ªå¼æºä»åº
- 200 个 PR
- 10 ç§ç¼ç¨è¯è¨
- 1,505 ä¸ªæ æ³¨é®é¢ï¼ç± 80+ åå·¥ç¨å¸äººå·¥æ 注ï¼
ä¸ä½¿ç¨ç¸ååºå±æ¨¡åç Claude Codeï¼éç¨ Agent 模å¼ï¼å¯¹æ¯ï¼
| ææ | Open Code Review | Claude Codeï¼éç¨ Agentï¼ |
|---|---|---|
| Precisionï¼ç²¾ç¡®çï¼ | æ´é« | è¾ä½ |
| F1 å¼ | æ´é« | è¾ä½ |
| Recallï¼å¬åçï¼ | è¾ä½ï¼å»æåèï¼ | è¾é« |
| Token æ¶è | ~1/9 | åºå |
å ³äº Recall çåèï¼Open Code Review 廿æ Recall 设计å¾ä½äºéç¨ Agentï¼è¿ä¸æ¯ç¼ºé·ï¼èæ¯æè¡¡ââå®å¯å°æ¥ bugï¼ä¹ä¸è¦ç¨å¤§éåªé³æ·¹æ²¡çæ£çé®é¢ãå¯¹äº CI/CD æµæ°´çº¿æ¥è¯´ï¼é«ç²¾ç¡®çåä½åªé³æ¯é«å¬åçæ´å®ç¨ã
Token æ¶èçå®é å«ä¹ï¼åæ ·ç 100 个 PRï¼Open Code Review æ¶èç token 约çäºéç¨ Agent ç 11%ãå¨ CI/CD éæ¯ä¸ª PR é½è§¦å审æ¥çåºæ¯ä¸ï¼è¿ä¸ªå·®å¼ç´æ¥å³å®äºå·¥å ·è½ä¸è½ç¨ââä¸ä¸ªæç API è´¹ç¨å·®äºå°è¿ 10 åã
两ç§å®¡æ¥æ¨¡å¼
ocr reviewï¼å¢é审æ¥ï¼æå¸¸ç¨ï¼
åºäº git diffï¼åªå®¡æ¥åæ´é¨åï¼
# 审æ¥å½åå·¥ä½åºçæ¹å¨ï¼staged + unstagedï¼
ocr review
# 审æ¥ç¹å®åæ¯èå´
ocr review --from main --to feature/new-auth
# 审æ¥å个 commit
ocr review --commit abc1234
# æå®è¾åºæ ¼å¼
ocr review --output json
ocr review --output sarif # å¯å¯¼å
¥ GitHub Security
ocr scanï¼å
¨æä»¶å®¡è®¡
ä¸ä¾èµ git åå²ï¼ç´æ¥å®¡æ¥æä»¶å 容ï¼
# å®¡æ¥æå®ç®å½
ocr scan --path internal/
# 审æ¥å个æä»¶
ocr scan --path src/auth/handler.go
# è¾åº HTML æ¥å
ocr scan --path src/ --output html
éååºæ¯ï¼æ¥æå«äººç代ç åºåå®å ¨å®¡è®¡ãè项ç®ç代ç è´¨éæ¸åºã没æ git åå²ç代ç çæ®µå®¡æ¥ã
Delegation 模å¼
è¿æ¯ Open Code Review éææææç设计ä¹ä¸ã
ä¼ ç»æ¨¡å¼ï¼OCR ç Agent å±ä½¿ç¨ä½ é ç½®ç LLM APIï¼éè¦ Anthropic/OpenAI keyï¼æ¥æ§è¡å®¡æ¥ã
Delegation 模å¼ï¼OCR åªè´è´£ç¡®å®æ§å±ï¼æä»¶éåãBundle åç»ãè§åè§£æï¼ï¼æå®¡æ¥ä»»å¡å§æç»ä½ å·²æç Agentï¼Claude CodeãCodexãCursor çï¼ï¼ç¨é£ä¸ª Agent èªå·±ç LLM æ¥è·ã
# é¢è§ delegation 计åï¼ç OCR æç®æä¹æåä»»å¡ï¼
ocr delegate preview
# é对ç¹å®æä»¶çæè§åæè¿°ï¼ä¾ Agent 审æ¥
ocr delegate rule src/main.go src/handler.go
为ä»ä¹æç¨ï¼
- ä½ å·²ç»æ Claude Code è®¢é æ API keyï¼ä¸éè¦ä¸º OCR åç¬é ç½®å¦ä¸ä¸ª key
- OCR çç¡®å®æ§å±åäºæä»¶éååè§åè§£æï¼ä½ ç Agent åªéè¦åçæ£ç"çè§£å夿"
- æ´åå°å·²æç Agent 工使µéï¼ä¸éè¦åæ¢å·¥å ·
GitHub Actions éæ
ä¸åç§é ç½®ï¼æ¯ä¸ª PR èªå¨è§¦å审æ¥ï¼
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: raye-deng/open-code-review@v1
with:
sla: L2 # å®¡æ¥æ·±åº¦ï¼L1 / L2 / L3
threshold: 60 # è´¨éåä½äº 60 å fail
github-token: ${{ secrets.GITHUB_TOKEN }}
ä¸ä¸ª SLA 级å«
| çº§å« | 说æ | éç¨åºæ¯ |
|---|---|---|
| L1 | å¿«éç»ææ£æµï¼ä¸éè¦ AI | å¿«é PRãä½é£é©åæ´ |
| L2 | å å ¥è¯ä¹åæå embedding | 常è§åè½å¼å |
| L3 | 宿´ LLM æ·±åº¦æ«æï¼è·¨æä»¶ä¸è´æ§ãé»è¾ bug æ£æµã置信度è¯å | æ ¸å¿è·¯å¾ãå®å ¨ææä»£ç |
AI çæä»£ç çä¸é¡¹æ£æµ
Open Code Review å¨ GitHub Marketplace éå®ä½ä¸º"é¦ä¸ªä¸ä¸º AI çæä»£ç æå»ºç CI/CD è´¨éé¨"ï¼é对 AI ç¼ç¨å·¥å ·çç¹æè¾åºæ¨¡å¼åäºä¸é¡¹æ£æµï¼
| 缺é·ç±»å | å ·ä½è¡¨ç° |
|---|---|
| å¹»è§ import | å¼ç¨äºä¸åå¨çå ï¼å®æ¶éªè¯ npm/PyPI/Mavenï¼ |
| è¿æ¶ API | è®ç»æ°æ®éæä½å·²åºå¼çæ¹æ³ |
| ä¸ä¸æçªå£äº§ç© | è·¨å¤ä¸ªæä»¶çé»è¾çç¾ |
| è¿åº¦å·¥ç¨ | ä¸å¿ è¦çæ½è±¡åæ»ä»£ç |
| å®å ¨åæ¨¡å¼ | 硬ç¼ç å¯é¥ãeval() ä½¿ç¨ |
è¿äºé®é¢ä¼ ç» linter åºæ¬åç°ä¸äºï¼ä½å¨ AI çæç代ç éåºç°æ¦çæ¾èé«äºäººå·¥ç¼åç代ç ã
æ¯æè¯è¨ï¼TypeScript/JavaScriptãPythonãJavaãGoãKotlinï¼6 ç§ï¼ã
å®è£ åé ç½®
å®è£
# npmï¼æ¨èï¼
npm install -g @alibaba-group/open-code-review
# è¦æ± Git >= 2.41
git --version
é ç½® LLM
ocr config provider
# 交äºå¼é
ç½®ï¼éæ© Anthropic / OpenAI / èªå®ä¹å
¼å®¹æ¥å£
éè¿ .ocrrc.yml ç²¾ç»é
ç½®ï¼
sla: L3
ai:
embedding:
provider: ollama
model: nomic-embed-text
llm:
provider: ollama # æ¯ææ¬å° Ollama
model: qwen3-coder # ä»»ä½ OpenAI å
¼å®¹ç模å
ç¬¬ä¸æ¬¡è¿è¡
# å¨ä½ ç git ä»åºé
cd my-project
# 审æ¥å½åæ¹å¨
ocr review
# æ¥çä¼è¯ï¼æ¯ææç¹ç»ä¼ ï¼
ocr session list
项ç®å°åä¸èµæº
- ð GitHub: alibaba/open-code-review
- ð å®ç½/ææ¡£: open-codereview.ai
- ðª GitHub Marketplace: Open Code Review Action
- ð¦ npm:
@alibaba-group/open-code-review
æ»ç»
Open Code Review çæ ¸å¿è´¡ç®æ¯è¯æäºä¸ä»¶äºï¼å¨ä»£ç 审æ¥è¿ä¸ªç¹å®åºæ¯éï¼ç¨å·¥ç¨ææ®µçº¦æ LLM æ¯è®© LLM èªç±åæ¥æææ´å¥½ã
éç¨ Agent å code review çé®é¢ä¸æ¯ LLM è½åä¸å¤ï¼èæ¯æææå³çé½äº¤ç» LLM æ¬èº«å°±å¼å ¥äºä¸å¿ è¦çéæºæ§å token æµªè´¹ãææä»¶éåãè¡å·å®ä½ãè§åå¹é è¿äº"æç¡®å®çæ¡"çäºæ ç¨ç¡®å®æ§ä»£ç å¤çï¼LLM çæ³¨æåæè½éä¸å¨çæ£éè¦çè§£å夿çå°æ¹ã
è¿ä¸ªè®¾è®¡æè·¯å¼å¾æ¨å¹¿ï¼ä¸æ¯"æä¹è®© AI å徿´å¥½"ï¼èæ¯"åªäºé¨åæ¬æ¥å°±ä¸è¯¥è®© AI å"ãè¿æ¯å¾å¤ AI å·¥å ·å¨è§æ¨¡ååºç¨ä¸å夿å¢åæå¾åºçç»è®ºï¼é¿éå·´å·´æå é¨è¸©è¿çåæå è¿æ¥ä¸èµ·å¼æºäºã
æ¢ç´¢ PrimeSkills ââ ç²¾é AI Agent 䏿è½çå¸åºï¼æ¯ä¸ä¸ªé½ç»è¿çå®ä¼ä¸å·¥ä½æµéªè¯ï¼å»ææµ®å¤¸ï¼çä¸çæ£æç¨çã
欢è¿è®¿é®æç个人主页ï¼åç°æ´å¤æä»·å¼çè§è§£åæè¶£ç产åã
Aitishiku.com