The-PR-Agent/pr-agent — 複数LLMに対応したオープンソースの自動PRレビューツール
The-PR-Agent/pr-agent
★ 15,882 ・ Python ・ MIT
概要
pr-agent は、プルリクエスト(PR)のレビューや要約、改善提案を大規模言語モデル(LLM)を用いて自動化するためのオープンソースツールです。開発元の Qodo(旧 CodiumAI)からコミュニティへ寄贈され、現在は独立したオープンソースプロジェクトとしてメンテナンスされています。
開発者が日常的に行うコードレビュー作業では、PR の変更意図の把握やコード品質の確認、質問への応答などに一定の時間が割かれます。pr-agent を導入すると、PR の説明文の自動生成(/describe)、コードレビューコメントの投稿(/review)、コードの改善コード提案(/improve)、PR に対する自由形式の質疑応答(/ask)などを bot を通じて自動化できます。
本ツールは、GitHub や GitLab などの各種 Git プロバイダ上で CI/CD パイプラインや webhook と連携させたいチームや、自身のインフラでプライバシーを管理しながら AI レビュー環境を整えたい開発者に向いています。
主な特徴
- 1回のLLM呼び出しで完結する設計:
/reviewや/improve、/askといったコマンドは単一の LLM コールで処理される構成となっており、約30秒程度で結果が返るため、低レイテンシかつ低コストで運用できます。 - 大規模なPRに対応する圧縮戦略: 変更行数が多いプルリクエストでも処理できるよう、独自の「PR Compression strategy(PR圧縮戦略)」を備えており、サイズに関わらず効率的に解析を行います。
- 高度なカスタマイズ性: JSON ベースのプロンプティングを採用しており、設定ファイル(
configuration.toml)を編集することでレビューカテゴリやツールの振る舞いをチームの規約に合わせて細かく調整できます。 - 多様な Git プラットフォームへの対応: GitHub だけでなく、GitLab、Bitbucket、Azure DevOps、Gitea をサポートしており、CLI、GitHub Actions、Docker、webhook など柔軟な形態で展開可能です。
- 幅広い LLM プロバイダのサポート: OpenAI(GPT)や Anthropic(Claude)、Google(Gemini)、DeepSeek、Mistral に加え、LiteLLM 経由で AWS Bedrock、Vertex AI、Azure OpenAI、Ollama などのモデルを利用できます。
- 課題検索コマンドの提供: PR に対する操作だけでなく、Issue を対象に類似する過去の課題を検索する
/similar_issueコマンドも備えています。
使い方
README では、推奨される導入方法として GitHub Action を利用する手順と、ローカル環境で実行する CLI の手順が案内されています。
1. GitHub Action による導入
リポジトリ内にワークフローファイルを作成し、PR のオープンや同期イベントをトリガーにして実行します。
# .github/workflows/pr-agent.yml
name: PR Agent
on:
pull_request:
types: [opened, synchronize]
jobs:
pr_agent_job:
runs-on: ubuntu-latest
steps:
- name: PR Agent action step
uses: the-pr-agent/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2. ローカル環境での CLI 実行
Python のパッケージマネージャを用いてインストールします。Git プロバイダ向けの依存関係は extras として分かれており、GitHub を対象とする場合は pr-agent[github] を指定します。すべての連携機能を含める場合は pr-agent[all] も利用可能です。
pip install "pr-agent[github]"
export OPENAI_KEY=your_key_here
pr-agent --pr_url https://github.com/owner/repo/pull/123 review
3. PR 上でのコマンド実行
連携済みのリポジトリでは、PR のコメント欄に以下のコマンドを投稿することで bot が応答します。
/describe: PR の概要と変更内容の説明文を生成する/review: コードの品質、バグの可能性、ベストプラクティスを評価する/improve: 具体的な修正案や改善コードを提示する/ask "質問内容": PR の変更点に関する自由形式の質問に回答する/similar_issue: (Issue 側で実行)リポジトリ内の類似した課題を検索する
技術的なポイント
実装言語には Python が採用されています。テスト実行には pytest およびパッケージマネージャの uv が利用されており、リポジトリルートから PYTHONPATH=. uv run pytest を実行することでユニットテスト(tests/unittest 配下)を検証できる構成となっています。
モデルの呼び出し層には LiteLLM が組み込まれており、クラウド事業者が提供する商用 API だけでなく、ローカル環境で動作する Ollama などのセルフホスト型推論基盤とも接続できる抽象化がなされています。
また、差分情報の解析にあたっては、単純に git diff をモデルへ投入するのではなく、トークン数制限やコストを考慮した「PR Compression strategy」を介して情報を要約・整理する仕組みが導入されています。これにより、大規模な変更を含む PR においても LLM のコンテキストウィンドウ超過を防ぎながら解析が行われます。
注意点
- プロジェクトの位置付けと商用版との差異: 本リポジトリは Qodo から寄贈されたオープンソース版であり、Qodo の商用 AI プラットフォーム(Qodo 2.0 など)そのものではありません。README に記載のとおり、コミュニティによって維持されている独立したプロジェクトです。
- Docker Hub のネームスペース変更: バージョン
0.34.2以降、Docker イメージの配信先がpragent/pr-agentに変更されています。旧ネームスペース(codiumai/pr-agent)はv0.31までのアーカイブとして凍結されているため、Docker 構成を更新する際はイメージ指定の変更が必要です。 - 一部機能の一時的な停止: バージョン
0.36.1以降、認証情報の露出に関する課題(Issue #2445)に対応するため、/help_docsコマンドが一時的に無効化されています。 - データプライバシー: セルフホスト環境で自身の API キーを利用して外部 LLM(OpenAI 等)を呼び出す場合、コード情報は直接各 LLM 提供元へ送信されます。機密コードを扱う際は、各プロバイダの利用規約やプライバシーポリシー、ローカルモデルの併用などを確認する必要があります。
- ライセンス: 本プロジェクトは MIT ライセンスの下で公開されています。
まとめ
pr-agent は、オープンソースとしてコミュニティ主導で開発されているプルリクエスト自動レビューツールです。特定の Git プロバイダや LLM に依存せず、自身のインフラや運用ポリシーに合わせたコードレビュー自動化環境を構築したいチームにとって有力な選択肢となります。





