GitHub、AI エージェントによる PR 増加に対応するマテナーの課題を報告
本文の状態
日本語全文を表示中
詳細モードで約14分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
GitHub Blog
GitHub は、AutoGPT の創設者ニコラス・ティンドル氏へのインタビューを通じて、プルリクエストが AI エージェントによって書かれるケースが増えている現状と、その対応に関するマテナーの議論を紹介した。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るAI深層分析を開く2026年8月13日 03:35
AI深層分析
キーポイント
AI エージェントによるプルリクエストの増加と課題
AutoGPT の事例では、Copilot や OpenClaw などのエージェントが作成したプルリクエストが大量に流入し、メンテナのレビュー負担が増大する問題が発生している。
ドキュメント依存からの脱却と配置の重要性
エージェントは自動的にドキュメントを読まないため、CLAUDE.md や AGENTS.md といった指示ファイルをコードディレクトリ直下に配置し、エージェントが参照しやすい構造への変更が必要である。
スキル機能による動的なルール適用
AGENTS.md はディレクトリスコープを持ち、スキル機能を用いることで特定のタスクやフォルダに紐付いた指示を動的に読み込み、フロントエンドとバックエンドで異なるルールを自動適用可能にする。
テンプレート強制とテスト実行の自動化
プルリクエストテンプレートを厳格に適用し、違反した場合はエージェントが自動的にクローズする。テンプレート内の「テストプラン」記述をトリガーにして、エージェントがブラウザを起動してコードを実行・検証する仕組みを導入している。
CI を壁として機能させる
カバレッジ閾値を必須チェックとし、満たさない場合エージェントが自らテストを書き込むことでマージを阻止する。これにより人手を介さずに品質基準を満たすプロセスを確立している。
重要な引用
It's basically somebody else paying for your compute.
Agents read what's in front of them, at the level of the directory they're working in.
A skill can be discovered outside that directory.
If you don't follow the template, I know you're probably a person, and I'm going to be kinder.
編集コメントを表示
編集コメント
AI エージェントが自律的にコードを生成する時代において、人間が管理すべきルールをどうエージェントに伝えるかが新たな課題となっている。この記事は、単なるドキュメントの整備ではなく、エージェントの動作原理に合わせた技術的アプローチの転換点を示唆している。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
メンテナー同士の会話で繰り返し問われることがあります。エージェントが書いたプルリクエストが溜まり始めたとき、どう対処すべきかという問いです。
これは AutoGPT の創設 AI エンジニアである Nicholas Tindle さんも毎日直面している課題です。私は 5 月、メンテナー・マンスのために彼にインタビューしました。その時点での AutoGPT はスター数が 18 万を超え、オープンなプルリクエストは約 150 件ありました。これらのプルリクエストの多くは Copilot や OpenClaw、そして AutoGPT 自身の内部ツールなど、エージェントによって作成されたものでした。
私が話を聞いた多くのメンテナーが同じ反応を示します。「門を閉ざす」のです。プルリクエスト機能をオフにし、チームに質の低い作業(スロップ)のレビューという負担をかけないよう徹底する姿勢です。
しかし Nicholas は別の側面にも目を向けていました。
「要は、誰かがあなたの計算資源(コンピュート)を無料で提供してくれるようなものです」
Nicholas Tindle, AutoGPT 創設 AI エンジニア
彼の考えでは、貢献者が自分のトークンを使ってプロジェクトの改善に費やしたいなら、それを許せばよいのです。重要なのは、「通れる道はあなたにとって都合の良い方法だけにする」というルールを設けることです。
ドキュメント自体が問題なのではありません。問題は「発見」です。
AutoGPT はまず当然と思われる対策を試みました。貢献者向けのガイドラインの強化、ドキュメントの改善、リポジトリとの連携に特化した Wiki の整備などです。
しかし、どれも効果はありませんでした。なぜなら、ツール側が自らドキュメントを読みに行くことはあり得ないからです。多くの人がここで勘違いしています。「エージェントはドキュメントを見つけに来る」と思い込んでいますが、実際にはそうなりません。エージェントが見るのは目の前の情報であり、作業中のディレクトリレベルの文脈だけです。
AutoGPT は、エージェントが参照する場所に指示を配置し始めました。最初は CLAUDE.md ファイルです。これは、Claude がリポジトリ固有の文脈不足のままプルリクエストを生成していたためです。コミットトレイラーに記述されることで、各ファイルは一目で識別できるようになりました。
しかし、次の壁にぶつかりました。Copilot や Codex は Claude ファイルを無視するのです。なぜなら、それらは「Claude」ではないからです。そこで AutoGPT は標準として AGENTS.md を一元化し、Claude 用のファイルをこれへ誘導しました。
私が最も有用だと感じたのは、AGENTS.md のスコープがディレクトリ単位に限定されている点です。一方、「スキル」は、その外側からでも発見可能です。(まだ実装していない場合は補足:スキルとは、エージェントがいつ読み込むべきかを示す説明を含む指示ファイルのことです。エージェントは事前に説明をスキャンし、タスクが一致した際に完全な指示を読み込みます。)
AutoGPT の AGENTS.md は、自身が管理するコードの隣に置かれます。この配置自体も、指示内容そのものと同じくらい重要です。
バックエンドのテストを書いている最中にフロントエンドの作業を想定した場合、スキルは動的に読み込まれる可能性があります。AGENTS.md ファイルを探すディレクトリをエージェントが自動で特定できない場合でも、スキル側からそれを指示することができます。
フロントエンドエンジニアが同じ種類の失敗するプルリクエストにうんざりしたため、ガイドを作成し、それをリポジトリ内のスキルとして実装しました。その説明にはトリガーとなるフレーズが含まれており、「コンポーネントが特定のフォルダにある場合は Storybook テストを書く」というものです。これにより、リポジトリに触れるすべてのハッチ(環境)が自動的にこれを検出するようになりました。バックエンドも同様に独自のルールを適用します。「カバレッジが 80% に達しない限り、プルリクエストは開かない」というルールです。
実際に機能するゲート
これらは、あなたのプロジェクトでも適応可能なゲートの例です。
プルリクエストテンプレートを強く強制しましょう。AutoGPT は、テンプレートに一致しないプルリクエストに対して、躊躇なく自動的にクローズされるようエージェントに指示します。彼らは実際にそれを実行するツールを構築しましたが、結果としてその実行自体が必要ないことに気づきました。AutoGPT では、ルールが自動化が走る前にすでにエージェントの行動を変化させたのです。エージェントはテンプレートに従いました。人間によるコントリビューターにはもう少し柔軟性が必要な場合があり、ニコラスはそのようなケースを「機能」として捉えています。
「テンプレートに従わない場合は、おそらくあなたは人間でしょうから、私はもっと優しく接します」
テストプランのトリック。テンプレートではテストプランの作成が必須とされており、その文言の中で「プルリクエストのテスト」について casually(カジュアルに)言及しています。このフレーズが「test PR」と呼ばれるスキルを起動させます。これにより、エージェントは許可を得てブラウザを立ち上げ、アプリを起動して変更を実行します。本来はチェックボックスを埋めるはずだったのが、結果としてコードの実行に至ったのです。
もはや、動作しないプルリクエストはほとんど受け付けません。現在届くのは「動作するがロードマップに合わない」というもので、これはむしろ好ましい問題です。
CI(継続的インテグレーション)を提案ではなく壁として機能させましょう。Codecov のカバレッジ閾値は必須チェック項目です。エージェントがプルリクエストを開き、数分後に再確認してマージできないと判断すると、テストスキルのロードを開始し、必要なテストコードを書きます。誰かが指示する必要はありません。
CLA(コントリビューターライセンス契約)を人間検出器として活用してください。AutoGPT はデュアルライセンスですが、ニコラス氏はすべてのプロジェクトでこの運用を行うべきだと主張しています。MIT ライセンスのプロジェクトでも同様です。署名にはブラウザと別ドメインでの GitHub OAuth フローが必要です。現在のエージェントはこれが苦手です。その理由も明白です:ほとんどのメンテナーは、ブラウザ上で広範なアカウント権限を持つエージェントを GitHub にログインさせることを望んでいません。
CLA の署名が 1 週間経っても完了していない場合、プルリクエストを「CLA を署名してください」というコメントと共にクローズし、完了後に再オープンします。
この仕組みが機能するのは、人間をプロセスに戻すからです。CLA は一つの選択肢に過ぎません。行動規範への同意チェックボックスでも同じ役割を果たせます。
レビュースレッドを解決する前に、コミットの SHA を必須にしましょう。一部のエージェントはコードに触れずにすべてのレビュースレッドを「解決済み」とマークしてしまいます。AutoGPT の対策として、リポジトリ内に「pr-address スキル」を設置し、有効な手順を「修正→コミット→プッシュ→返信→解決」という順序で定義しています。この返信には、コミット後に git rev-parse HEAD で取得した完全な SHA を含め、古い SHA の流用を防ぎます。さらに、このスキルではアンチパターンも明記されています。「Acknowledged(了解)」は修正ではないし、問題のある行に触れていないコミットを引用するのも同様です。
彼らがオフにしたゲート
チェックに失敗すると、AutoGPT はエージェントが実行ログを読み込み、何が壊れたかをコメントする仕組みを持っていました。最初のバージョンでは Claude Code を GitHub Actions に組み込み、ワークフロー内で認証を行っていました。これは CI 環境内に広範な認証情報を追加することと同義です。Copilot を同様にワークフローで実行しても同じ結果になります。Nicholas はこれを高く評価しています。
「信じられないほど素晴らしいです。もう YAML とおさらばできました。アクション用のワークフローを書くことも二度とありません。」
その後、彼らはコメント機能をあえてオフにしました。CI の失敗は頻繁に起こるため、1 日中ボットがすべての失敗を解説し続けるのは、失敗そのものよりもマシではありません。教訓は自制心にあります。メンテナの負担を減らす機能は残し、ノイズとなる機能は遮断することです。
書き留めておくべき 4 つの注意点
「AGENTS.md」ファイルが不適切なものは、存在しないよりも悪いです。AutoGPT は当初、あちこちにこのファイルを配置してしまい、コンテキストを汚染し、エージェントの注意を重要なファイルから逸らしていました。もし動作が悪化したら、自分が書いた内容を見直してください。
GraphQL API にはレート制限があります。チーム内のすべてのツールが個別のユーザーとして CLI にアクセスすると、すぐに上限に達してしまいます。GitHub App を作成し、それを通じて CLI の認証を行うようにしてください。
厳格なレビューツールの利用には実費がかかります。彼らのプルリクエストテスト環境は、ブランチをクローンし、異なるタスクを担当する 8 つのエージェントを起動し、スタック全体を実行してスクリーンショットをアップロードします。素晴らしい仕組みですが、コストが高すぎるため、現在は非常に小さいか非常に大きなプルリクエストに対してのみ実行しています。
許可されたアプリの監査を行ってください。AutoGPT は「Secure Open Source Fund」の一部であり、これは Nicholas 氏がこの活動から得た教訓の一つです。彼らが試して却下したツールはすべて、認証情報を残したままになっています。
GitHub アプリの使用を停止したら、必ず許可リストから削除してください。今回のストリームの直後に簡単な監査を行い、自分が何を持っているか確認してください。驚くはずです。
GitHub でのログインはこの時点で非常に自動化されており、多くの人が設定画面を確認することさえありません。私はストリーム中に設定を開いてみました。彼は正しかったです。
すべてがゲートではない
Nicholas 氏から得た教訓のうち、2 つはツールとはほとんど関係のないものでした。
まず、すべてのプルリクエストを受け入れる必要はありません。他人の LLM が出力したコードをマージするのは非対称な行為です。あなたは永遠にメンテナンスを担当することになります。プルリクエストをクローズして自分で修正を作ることも、正当な選択肢の一つです。
プルリクエスト機能を完全に無効にすることもできます。また、イシュー作成をコラボレーターに限定することも可能です。ニコラスはインタビューで繰り返し強調していた点、つまり「メンテナーには制御機能が必要だ」という考え方にこれらの設定を結びつけました。場合によっては、突発的なプルリクエストを減らすことが正解になることもあります。あるいはイシューのみを受け付ける方針や、「事前に相談してほしい」というルールも有効です。
SQLite は外部からのコード貢献を受け付けていません。バグ報告のみを受け入れています。これもオープンソースにおける正当な境界線の一つです。あなたのプロジェクトにも、同様のルールを設けることができます。
次に、プルリクエストをクローズして自分で実装する場合、状況に応じて貢献者を共著者として加えることを検討してください。AutoGPT には約 800 人の貢献者がいるため、一人増えたところで負担になることはありません。多くの場合、重要なのは「自分の問題が解決された」ことと、「自分が気づいてもらえた」という事実です。
私が撤回した考えについて
オープンソースは常に、協働を明確にすることによって進化してきました。ライセンスで利用許諾を明示し、イシューで作業の可視化を図り、プルリクエストでレビューを共有 practice にしました。リポジトリ内の指示もその延長線上にあると言えますが、私はこれをあまり厳格に捉えるべきではないと考えています。まだ最適な形は確立されていません。AutoGPT も現在 3 バージョン目ですが、これはまず不完全なバージョンを公開し、エージェントがそれらとどう向き合うかを観察しながら到達したものです。
まだ決定権はあなたにあります。基準を設けるのもあなたです。違いは、その判断の多くがコードの隣に存在するようになる点です。貢献者たちとそのエージェントもすでにそこにいます。
AutoGPT のリポジトリを見て、彼らがどのようにエージェントファイルを構成しているかを確認してください。
その後、maintainers.github.com へ参加しましょう。私がそう勧めるのはここで働いているからですが、ニコラスの言葉をお聞きください:
そこに行く必要があります。登録も必須です。そこで GitHub が求めるすべてのつながりが得られます。私はそこでこのすべてを学び、共有しています。
また、Tiny Wins(小さな勝利)が優先される場所でもあります。これは週次で、メンテナからの要望に基づいた改善点を少しずつ取り入れる仕組みです。これらの要望の一部は、すでにメンテナ月間に GitHub が強調したコントロール機能として現れています。さらに、製品マネージャーやエンジニアがリリース前にフィードバックを読む場でもあります。プラットフォームが次にメンテナのために何を行うかについて発言権を持ちたいなら、ここがその場所です。
あなたの貢献者はすでに AI フォーストームです。次のプルリクエストが着く前に、ルールをコードの隣に置いておきましょう。
この記事「Your contributors are AI-first now. Is your project?」は、The GitHub Blog に最初に投稿されました。
原文を表示
The same question keeps coming up in maintainer conversations: what do you do when the pull request queue fills with work written by agents?
It’s something Nicholas Tindle, founding AI engineer at AutoGPT, also deals with every day. I spoke with him in May for Maintainer Month. At the time of the interview, AutoGPT had over 180,000 stars and around 150 open pull requests. A big chunk of those pull requests were written by agents, including Copilot, OpenClaw, and AutoGPT’s own internal tooling, among others. Most maintainers I talk to have the same reaction: close the door. Turn off pull requests. Don’t tax the team with reviewing slop.
Nicholas saw an upside:
It’s basically somebody else paying for your compute.
Nicholas Tindle, founding AI engineer at AutoGPT
The way he sees it, if a contributor wants to spend their tokens improving your project, let them. Just make it so the only way through the door is the way that works for you.
Your docs aren’t the problem. Discovery is.
AutoGPT tried the obvious thing first. Better contributor guidelines. Better docs. A whole wiki dedicated to working with the repo.
None of it moved the needle. It turns out the tools aren’t going to go read your docs unless they’re told to. That’s the part a lot of us get wrong. We treat documentation like the agent will go find it. It won’t. Agents read what’s in front of them, at the level of the directory they’re working in.
So AutoGPT started putting instructions where agents look. First CLAUDE.md files, because laude was generating pull requests without enough repository-specific context. The commit trailer made each one easy to spot, because they announced themselves in the commit trailer. Then they hit the next wall: Copilot and Codex ignore Claude files, because they’re not Claude. So they centralized the standard AGENTS.md and pointed Claude files at it.
Here’s the nuance I found most useful. AGENTS.md is scoped to a directory. A skill can be discovered outside that directory. (If you haven’t shipped one: a skill is an instruction file with a description that tells the agent when to load it. The agent scans descriptions up front and pulls in the full instructions when the task matches.)
AutoGPT’s AGENTS.md sits beside the code it governs. That placement matters as much as the instructions themselves.
If you’re writing backend tests and you think about doing front-end stuff, a skill may load dynamically. It’s not going to know what directory to go look in for an AGENTS.md file, but the skill can tell it that.
Their front-end engineer got tired of the same class of broken pull request, so they wrote a guide, and shipped it as a skill in the repo. The description contained trigger phrasing: write a Storybook test if your component lives in these folders. Now every harness that touches the repo discovers it automatically. The backend enforces its own version of the rule the same way: hit 80% coverage or don’t open the pull request.
Gates that actually work
These are the gates you can adapt for your project.
Enforce the pull request template, loudly. AutoGPT tells agents that pull requests not matching the template get closed automatically with zero hesitation. They built the tooling to actually do it, then found they didn’t need to run it. At AutoGPT, the rule changed agent behavior before the automation ever ran. The agents followed the template. Human contributors sometimes needed more room, which Nicholas treats as a feature:
If you don’t follow the template, I know you’re probably a person, and I’m going to be kinder.
The test plan trick. The template requires a test plan, and its wording casually mentions testing the pull request. That phrase triggers a skill called test PR, which installs agent browser (with permission), spins up the app, and executes the change. The agent set out to fill in a checkbox and ended up running the code.
They almost never get pull requests that don’t work anymore. What they get now is pull requests that work but don’t fit the roadmap, which is a much better problem to have.
Make CI a wall, not a suggestion. Codecov coverage thresholds are required checks. The agent opens the pull request, checks back a few minutes later, sees it can’t merge, loads the testing skill, and writes the tests. Nobody had to ask.
Use the CLA as a human detector. AutoGPT is dual licensed, but Nicholas argues every project should do this, MIT included. Signing requires a browser and a GitHub OAuth flow on a separate domain. Agents are bad at that today, and for good reason: most maintainers do not want an agent logged into GitHub in a browser with broad account access.
If your CLA is not signed after a week, we close the pull request with a comment that says sign the CLA, reopen when you’re done.
That gate works because it puts a human back in the loop. A CLA is one option. A code-of-conduct checkbox can do the same job.
Require a commit SHA before resolving a review thread. Some agents mark every review thread as resolved without touching the code. AutoGPT’s fix is a pr-address skill in the repo that declares the only valid sequence: fix, commit, push, reply, then resolve. The reply has to link the fixing commit, with the full SHA pulled from git rev-parse HEAD after committing, so the agent can’t recycle an old one. The skill even names the anti-patterns: “Acknowledged” is not a fix, and neither is citing a commit that doesn’t touch the flagged line.
The gate they turned off
When a check fails, AutoGPT had an agent read the run and comment on what broke. Their first version wired Claude Code into GitHub Actions and authenticated it inside the workflow, which meant one more broad credential living in CI. Running Copilot in the workflow gets the same result without that. Nicholas is a fan:
It’s unbelievable. I’m so happy I never had to bother with YAML ever again. I’m never writing a workflow for an action ever.
Then they turned the commenting off anyway. Their CI fails a lot, and a bot narrating every failure all day is not much better than the failure itself. The lesson is the restraint: keep what lowers the maintainer burden, shut off what becomes noise.
Four gotchas worth writing down
A bad AGENTS.md file is worse than no AGENTS.md. AutoGPT littered them everywhere at first and ended up polluting context, pulling the agent’s attention toward files that didn’t matter. If behavior gets worse, go read what you wrote.
The GraphQL API will rate limit you. When every tool on your team hits the CLI as an individual user, you hit the ceiling fast. Create a GitHub App and authenticate the CLI through it.
The heavy review tooling costs real money. Their pull request test rig clones the branch, spawns eight agents with different jobs, runs the whole stack, and uploads screenshots. It’s great. It’s also expensive enough that they now run it only on very small or very large pull requests.
Go audit your authorized apps. AutoGPT is part of the Secure Open Source Fund, and this was one of Nicholas’s takeaways from that work. Every tool they trialed and dropped left an authorization behind.
If you stop using a GitHub app, remove it from the authorized apps. Do a little audit right now after this stream and go see what you have. You’ll be surprised.
Logging in with GitHub is so automatic at this point that most of us have never gone back to look. I opened my settings during the stream. He was right.
Not everything is a gate
Two takeaways from Nicholas had almost nothing to do with tooling.
First: you don’t have to accept every pull request. Merging someone else’s LLM output is asymmetric. You do the upkeep, forever. Closing the pull request and building the fix yourself is a legitimate choice.
You can disable pull requests entirely. You can restrict issue creation to collaborators. Nicholas tied those controls back to the thing he kept coming back to in the interview: maintainers need knobs. Sometimes the right answer is fewer drive-by pull requests. Sometimes it’s issues only. Sometimes it’s “talk to us first.”
SQLite doesn’t take external code contributions. They take bug reports. That’s a valid open source boundary. Your project can have one too.
Second: when you close a pull request you’re going to rebuild yourself, add the contributor as a co-author if it makes sense. AutoGPT has around 800 contributors, so one more costs them nothing. For most people, the thing that matters is that their problem got fixed and somebody noticed they showed up.
What I’m taking back
Open source has always evolved by making collaboration explicit. Licenses made permissions explicit. Issues made work visible. Pull requests made review a shared practice. Instructions in the repo look like another step in that direction, though I’d hold that loosely. Nobody’s landed on the right shape yet. AutoGPT is on its third version, and it got there by shipping bad versions first and watching what agents did with them.
You still decide what belongs. You still set the bar. The difference is that more of that judgment can live next to the code, where your contributors and their agents already are.
Go look at the AutoGPT repo and read how they structured their agent files.
Then go join maintainers.github.com. I’d tell you that anyway because I work here, so take it from Nicholas instead:
You’ve got to go there. You’ve got to sign up. It gets you all the connections you want at GitHub. That’s where I learned about all this stuff, and where I share it.
It’s also where Tiny Wins gets prioritized, the weekly drip of small maintainer-requested improvements. Some of those asks have already shown up in the controls GitHub highlighted during Maintainer Month. It’s also where our product managers and engineers read feedback before anything ships. If you want a say in what the platform does for maintainers next, that’s the room. Your contributors are already AI-first. Put the rules next to the code before the next pull request lands.
The post Your contributors are AI-first now. Is your project? appeared first on The GitHub Blog.
関連記事
News to Guide
ニュースの次に確認する
発表内容を、現在の料金や仕様と照らし合わせられる関連ガイドです。
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み