shwldshwld15 days ago

自律開発エージェントにPR数ゲートを設けてスループットを制御する

スケジュールタスクで自律的にissueを拾って実装・PR作成するエージェントを動かしていたが、レビューが追いつかないまま次々とPRが作られて並行ブランチが増えすぎる問題があった。

仕組み:

  • エージェント起動時にオープンPR数をチェックし、閾値(例: 3件)以上なら何もせず終了する
  • レビュー・マージが進んでPR数が減ると、次回のスケジュール実行で新しいissueを拾い始める
# scheduled-task prompt
事前にGitHubのPull Requestを確認し3つ以上が存在している場合は、
以降の処理を行わず。ここで処理をやめる
(並行作業が発生しすぎないように)

エージェント側の実装:

open_prs=$(gh pr list --state open --json number --jq 'length')
if [ "$open_prs" -ge 3 ]; then
  echo "Open PRs: $open_prs (threshold: 3). Skipping."
  exit 0
fi

やってみてどうだったか:

  • レビュー待ちPRが溜まらなくなり、1つずつ確実にマージできるペースになった
  • 閾値は「1人でレビューできるPR数」に合わせるのがよさそう。個人プロジェクトなら2〜3件
  • PR数だけでなく「最後のPRが何時間前に作られたか」も見ると、バースト的な生成をさらに抑制できそう