徹底解説· 5 分で読めます

「動かない勇気」を持つ自律型 GitHub ボットの設計

cookbook の GitHub エージェントレシピは、OpenCode と Muse Spark で issue トリアージ・PR レビュー・バグ修正を GitHub Actions に組み込みます。本当に持ち帰るべきはガードレールの設計です。

#github-actions#automation#agents#code-review

このボットは何をするのか

このレシピで構築するのは、4 つのジョブを持つ自律型の GitHub Actions ボットです。issue のトリアージ、プルリクエストのレビュー、AI スロップ(低品質な AI 生成コード)の検出、そしてバグ修正 PR の作成。実行環境は OpenCode、モデルは Muse Spark で、Model API が既存のエージェント CLI とドロップイン互換であることを利用しています。重要なのは、すべてが自分のリポジトリの Actions 内で完結し、他人のインフラには一切依存しない点です。

「動かないこと」を設計要件にする

「LLM を Webhook につなぐだけ」の素朴なプロジェクトとこのレシピを分けるのは、動かないための仕組みにどれだけ紙幅が割かれているか、です。レビューエージェントには明示的な「NOT slop」リスト、つまりフラグを立ててはいけない変更パターンの基準が用意されており、正当なコードに対してオオカミ少年になることを防ぎます。トリアージは issue を決してクローズしません。それは人間の判断として残されます。バグ修正エージェントは、まずバグを再現できなければ PR を開きません。Meta の姿勢は明快で、過剰発火は「あると嬉しい配慮」ではなく、明確な障害モードとして扱われています。

引用の規律もあります。Q&A 機能はリポジトリ内のファイルだけを根拠に回答し、主張にはファイルとセクションの引用を必ず添え、答えがリポジトリにない場合は捏造せずに回答を拒否します。公開スレッドでプロジェクトの顔として発言するボットにとって、「根拠を示すか、黙るか」以外に守れるポリシーはありません。

AGENTS.md:全エージェントを束ねる 1 ファイル

レシピ内のすべてのエージェントは、共有の AGENTS.md を自動で読み込みます。ここにはリポジトリのコンテキスト(エージェントに規約を推測させないため)と、全員が継承するセキュリティルールが書かれています。Meta はこれを「自分のプロジェクトに合わせて書き換えるべき、唯一にして最重要のファイル」と位置づけています。同梱版は Python / pytest / uv スタック向けの実例であり、SECURITY セクションだけはそのまま残しつつ、それ以外は自分のスタック用に書き直すことが前提です。

段階的ロールアウト:書き込み権限は「実績で獲得」する

デプロイのガイドラインは、4 フェーズの信頼ラダーになっています。フェーズ 1 は PR レビューとトリアージを読み取り専用で。実トラフィックで品質を検証しつつ、影響範囲はゼロです。フェーズ 2 は明示的な /oc コマンド。メンテナーが意図的にエージェントを呼び出す形にします。フェーズ 3 はラベルをゲートにした自動バグ修正。フェーズ 4 はハードニングで、ブランチ保護、CODEOWNERS、CI ゲートを整えます。書き込み権限は実績によって獲得するものであり、初日に与えるものではない。これは Muse Code 自身の監査可能性の設計思想と同じ哲学です。自律性は、検証が追いつく速度でしか拡張しない。

Meta はどう検証したか

真似する価値のあるディテールをひとつ。このレシピの検証では、実際のエージェントをヘッドレスで起動し、スクリプト化された issue / PR シナリオに対して走らせました。PATH 上に偽の gh を置いて Action のプロンプトを再構築することで、本物のリポジトリには一切触れずに、エージェントの出力だけを読んで評価しています。信頼できない自動化をテストするのと同じやり方で、自分のボットもテストしましょう。本番に触れる前に、瓶の中で。実行可能なレシピは cookbook のユースケース配下にあります。

続けて読む