[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-how-to-add-ai-code-review-to-pull-requests-zh":3,"article-related-how-to-add-ai-code-review-to-pull-requests-zh":30,"series-ai-agent-a2cb472e-8e8b-4a48-a667-20574a1db80b":83},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"a2cb472e-8e8b-4a48-a667-20574a1db80b","how-to-add-ai-code-review-to-pull-requests-zh","如何為 Pull Request 加上 AI Code Review","\u003Cp data-speakable=\"summary\">這篇教你把 AI \u003Ca href=\"\u002Ftag\u002Fcode-review\">code review\u003C\u002Fa> 接到 Pull Request，讓它先抓出常見 bug，再交給人工審查收尾。\u003C\u002Fp>\u003Cp>這篇給維護 \u003Ca href=\"\u002Ftag\u002Fgithub\">GitHub\u003C\u002Fa>、GitLab 或 Bitbucket 專案的開發者和團隊管理者看。照著做完，你會得到一套能在 PR 開啟時自動留言的 AI 審查流程，並且能依團隊規範調整它的判斷標準。\u003C\u002Fp>\u003Cp>這不是概念介紹，而是實作指南。你會完成\u003Ca href=\"\u002Fnews\u002Fbest-prompt-engineering-tools-2026-zh\">工具\u003C\u002Fa>選型、PR 觸發器、政策上下文、雜訊調整與成效驗證，最後留下可持續維護的審查工作流。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>一個 GitHub、GitLab 或 Bitbucket 帳號，且對至少一個 repository 有管理權限。\u003C\u002Fli>\u003Cli>一個 AI code review 工具帳號，或可自架的模型 endpoint。\u003C\u002Fli>\u003Cli>對應供應商的 API key 或 OAuth 憑證。\u003C\u002Fli>\u003Cli>Node 20+ 或 Python 3.11+，用於本機腳本與 webhook 檢查。\u003C\u002Fli>\u003Cli>一個正在運作、會產生 pull request 的 repository。\u003C\u002Fli>\u003Cli>一份團隊 style guide 或 security policy。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>官方文件先看 [GitHub Pull Requests docs](https:\u002F\u002Fdocs.github.com\u002Fen\u002Fpull-requests)，再看你選用的 review 工具 GitHub repository，例如 [\u003Ca href=\"\u002Ftag\u002Fopenai\">OpenAI\u003C\u002Fa> GitHub](https:\u002F\u002Fgithub.com\u002Fopenai) 或供應商專案頁。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779981492165-ctvc.png\" alt=\"如何為 Pull Request 加上 AI Code Review\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Ch2>Step 1: 選定 review engine\u003C\u002Fh2>\u003Cp>這一步的產出是「Review Engine Decision」。你要先決定使用託管服務，還是自架模型端點，避免後面接好流程才發現權限或資料保留不合規。\u003C\u002Fp>\u003Cp>比較三件事：repository 存取方式、資料保留政策、是否能讀完整 repo 而不只看 diff。能拿到完整上下文的工具，較容易抓到跨檔案錯誤與重複實作。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到一個可登入的 vendor dashboard，或一個能成功回應的本機 endpoint，而且它能列出目標 repository。\u003C\u002Fp>\u003Ch2>Step 2: 連接 Pull Request 觸發器\u003C\u002Fh2>\u003Cp>這一步的產出是「PR Review Workflow」。目標是讓 AI 在 PR 開啟、更新、重新開啟時自動\u003Ca href=\"\u002Fnews\u002Fwhy-webassembly-became-a-production-runtime-zh\">執行\u003C\u002Fa>，先於人工分派完成初步審查。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779981477524-mqi3.png\" alt=\"如何為 Pull Request 加上 AI Code Review\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>name: ai-review\non:\n  pull_request:\n    types: [opened, synchronize, reopened]\njobs:\n  review:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Run AI review\n        run: .\u002Fai-review --repo \"$GITHUB_REPOSITORY\" --pr \"$PR_NUMBER\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>把這個流程放在人工指派之前，能先擋掉明顯的 null check、測試缺口與重複邏輯，讓資深工程師把時間留給架構與風險判斷。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到一則自動留言或 status check，在測試 PR 開啟後幾分鐘內出現。\u003C\u002Fp>\u003Ch2>Step 3: 載入團隊政策與程式上下文\u003C\u002Fh2>\u003Cp>這一步的產出是「Policy Pack」。把 style guide、安全規則、測試要求與專案慣例餵給審查工具，讓它依照你們的標準，而不是通用建議來評論。\u003C\u002Fp>\u003Cp>請加入命名規則、錯誤處理、logging、依賴使用與禁用模式。如果有高風險路徑，像 auth、payments 或 infrastructure，也要明確要求模型把這些變更升級給人工審查。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到評論直接引用你們的規則，例如缺少測試、錯誤處理不一致，或使用了被禁用的 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa>。\u003C\u002Fp>\u003Ch2>Step 4: 調整訊號與雜訊比例\u003C\u002Fh2>\u003Cp>這一步的產出是「Noise Control Profile」。先只看變更檔案，再視需要擴展到相關檔案與測試；一般修補用小模型，複雜差異再交給較大的模型。\u003C\u002Fp>\u003Cp>啟用真正缺陷的 inline comment，降低純風格建議的權重。如果工具支援 severity，請把安全與正確性問題設為 blocking，將輕微建議保留為 informational。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到重複性評論變少，而人類 reviewer 會想直接採用的可行建議變多。\u003C\u002Fp>\u003Ch2>Step 5: 量測審查品質與成本\u003C\u002Fh2>\u003Cp>這一步的產出是「Review Scorecard」。你需要\u003Ca href=\"\u002Fnews\u002Fhow-to-track-anthropic-events-and-webinars-zh\">追蹤\u003C\u002Fa> merge 時間、PR 前被抓出的缺陷數、false positive 比例，以及每個 repository 或每個 PR 的成本。\u003C\u002Fp>\u003Cp>每週抽樣檢查被接受與被拒絕的建議，還有漏掉的 bug。若流程有效，你應該看到 review 週期縮短，且進入 production 的缺陷變少。\u003C\u002Fp>\u003Cp>驗收標準：你應該看到 PR 等待時間下降，並且在第一次調整後，false positive 比例維持穩定或持續下降。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>指標\u003C\u002Fth>\u003Cth>基準／優化前\u003C\u002Fth>\u003Cth>結果／優化後\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Time to merge\u003C\u002Ftd>\u003Ctd>Human-only review\u003C\u002Ftd>\u003Ctd>20% 到 40% 更快的 AI-first review\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Developer productivity on common tasks\u003C\u002Ftd>\u003Ctd>Baseline coding workflow\u003C\u002Ftd>\u003Ctd>GitHub Copilot research 顯示提升超過 50%\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Defect escape rate\u003C\u002Ftd>\u003Ctd>Manual review only\u003C\u002Ftd>\u003Ctd>AI review 先跑時通常更低\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>讓 AI 單獨批准高風險變更。修法：security、payments、auth、infrastructure 一律要求 human owner。\u003C\u002Fli>\u003Cli>只看 diff，不看 repo context。修法：啟用 full-repository retrieval，或至少把相關檔案與測試一起送進上下文。\u003C\u002Fli>\u003Cli>忽略隱私與保留設定。修法：確認 code 是否會被儲存、記錄或用於訓練；若政策要求，改用 self-hosted。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>當 PR 審查流程穩定後，可以把同一套 policy pack 延伸到 test generation、security scanning 與 architecture rules，讓單次審查覆蓋更多風險。\u003C\u002Fp>","這篇教你把 AI code review 接到 Pull Request，讓它先抓出常見 bug，再交給人工審查收尾。","www.devx.com","https:\u002F\u002Fwww.devx.com\u002Funcategorized\u002Fai-code-review-llms-catching-bugs-2026\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779981492165-ctvc.png","ai-agent","zh","90c3b3c4-b3db-40ad-8e8d-84c97ecf22b4",[17,18,19,20,21],"AI code review","Pull Request","GitHub Actions","webhook","repository policy",[23,24,25],"先選擇符合隱私與權限需求的 review engine，再接 PR 觸發器。","把團隊政策與 repo context 餵給模型，才能得到可用的審查意見。","用指標追蹤 merge 時間、false positive 與缺陷逃逸率，持續調整雜訊。",2,"2026-05-28T15:17:25.553729+00:00","2026-05-28T15:17:25.531+00:00","e3b68196-9e64-4c18-a3b6-a73e73bfb367",{"tags":31,"relatedLang":42,"relatedPosts":46},[32,35,37,39,41],{"name":33,"slug":34},"pull request","pull-request",{"name":21,"slug":36},"repository-policy",{"name":17,"slug":38},"ai-code-review",{"name":19,"slug":40},"github-actions",{"name":20,"slug":20},{"id":15,"slug":43,"title":44,"language":45},"how-to-add-ai-code-review-to-pull-requests-en","How to Add AI Code Review to Pull Requests","en",[47,53,59,65,71,77],{"id":48,"slug":49,"title":50,"cover_image":51,"image_url":51,"created_at":52,"category":13},"ef96a410-24bd-4e35-8536-439f21f820e6","claude-code-dynamic-workflow-ai-harness-zh","Claude Code 動態工作流：AI 自寫 Harness","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781035378200-qkm9.png","2026-06-09T20:02:21.942031+00:00",{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":13},"9fb91fbe-64cd-4732-aba7-5b20daacf962","agent-orchestration-enterprise-ai-layer-zh","企業 AI 缺的是編排層","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780984981291-rodj.png","2026-06-09T06:02:30.929215+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":13},"2e389faa-a4ab-4f7a-b6da-c2ba69d5f14b","ai-agents-use-blockchain-trust-layer-zh","AI 代理用區塊鏈當信任層","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780980509390-6s0i.png","2026-06-09T04:48:01.259033+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":13},"1c433948-634b-47e4-a119-dd567203a712","8-rag-patterns-demos-into-prod-zh","8 種 RAG 模式把 Demo 變上線","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780971552397-h12o.png","2026-06-09T02:18:36.130013+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":13},"7d860405-aca6-486b-8de0-1c5193a3b06d","fine-tuning-beats-rag-style-not-facts-zh","當目標是文風不是事實時，微調比 RAG 更有效","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780924689232-5elu.png","2026-06-08T13:17:25.235242+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":13},"3d1e5ef7-8f31-4e57-b286-306825d7f38e","openclaw-small-business-ai-staff-zh","OpenClaw把AI變成夜班員工","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780904888882-6w0v.png","2026-06-08T07:47:27.229503+00:00",[84,89,94,99,104,109,114,119,124,129],{"id":85,"slug":86,"title":87,"created_at":88},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":125,"slug":126,"title":127,"created_at":128},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":130,"slug":131,"title":132,"created_at":133},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]