カスタムエージェントはベータ版です。動作や画面は今後変わる可能性があります。
概要
カスタムエージェントは、チームが 1 つの関心事のために書くレビュアーです。アーキテクチャの境界、重複コード、セキュリティポリシー、E2E テストのカバレッジなどが対象になります。各エージェントには次のものがあります。- Instructions:何を探すか、何を無視するか、指摘にどんな証拠が必要か
- Files:レビュー対象の glob。プルリクエストがそのいずれかを変更したときだけ実行されます
- Skills & docs:エージェントが従うリポジトリ内のガイド
- Tools:読み取り専用のプラグイン、チームの CLI、ast-grep ルール
- Comments & model:タグ、形式、最小重大度、コメント上限、書き方、モデル
@kody -v でも、Try it でも実行されません。保存済みのエージェント、スキル、ドキュメントは保持され、アップグレード後に再び実行されます。
Skills、docs、ツール
リポジトリのガイド、プラグイン、チームの CLI、ast-grep ルールを紐付けます。
ベストプラクティス
本当の問題を見つけ、それ以外では静かなエージェントを書きます。
場所
Code review → What to review を開きます。Custom agents セクションはレビューカテゴリの下にあり、New agent ボタンと Skills & docs へのリンクがあります。 各行には、エージェントのスイッチ、タグの色、指示の 1 行目、ファイル・skills・docs・ツールのチップ、最近の実績(例:9 PRs · 15 posted · 30 days)が表示されます。行をクリックするとエージェントのページが開きます。⋯ メニューには Edit、Try it、Delete があります。
カスタムエージェントはアプリでのみ設定します。
kodus-config.yml の customAgents と knowledge キーは無視され、レビューの最終コメントでその旨が通知されます。FAQ を参照してください。レベル
エージェントは、他の設定と同じく Code review グループ上部のスコープピッカーに従います。
ディレクトリでは、継承したエージェントは読み取り専用で開き、Override at this directory ボタンが表示されます。オーバーライドするとエージェントが同じ id でディレクトリにコピーされ、そのディレクトリではコピーがリポジトリのエージェントを置き換えます。指示を変えたり、オフにしたりできます。オーバーライドを削除すると、リポジトリのエージェントが戻ります。
ディレクトリのエージェントは、レビューがそのディレクトリの設定を使うときに実行されます。プルリクエストがどの設定を使うかは ディレクトリレベルの設定 を参照してください。
エージェントを作成する
1
New agent をクリック
What to review → Custom agents で New agent をクリックします。
2
出発点を選ぶ
Templates は書き済みの指示から始まります。
Import from repository は、リポジトリのデフォルトブランチで見つかった skills を一覧表示し、1 つを毎回のレビューでそれを読み込むレビュアーに変換します。skills は各リポジトリにあるため、グローバルレベルでは使えません。
3
エージェントのページで調整
エージェントはすぐに保存され、そのページが開きます。ファイルを設定し、skills と docs を紐付け、ツールを追加します。
4
Try it で試してからオンにする
新しいエージェントはオフで始まります。実際のプルリクエストで Try it を実行し、コメントが適切ならオンにします。
エージェントのページ
ページには、ステータス行(オン/オフ、実行対象のファイル、過去 30 日の投稿数)、4 つのカード、Try it パネルがあります。ページ上の変更は Save で保存します。Instructions
Files & knowledge
glob は、ディレクトリレベルを含むすべてのレベルで、リポジトリのルートからのパスと照合されます。
無視されたファイル。 リポジトリの無視パス(General)は引き続き適用されますが、例外が 1 つあります。ファイルを名指しする glob は、リポジトリが無視していてもそのファイルに届きます。パスのセグメントのうち少なくとも 1 つがリテラルで、最後のセグメントが
* や ** だけでなければ、その glob はファイルを名指ししています。
シークレットファイル(
.env*、*.pem、*.key、*.p12、*.pfx、*.jks、*.keystore、id_rsa* などの SSH 鍵)は、名指しする glob があっても、無視パスからエージェントに渡されることはありません。
変更ファイルがすべて無視されているプルリクエストも、そのうちいずれかを名指しするエージェントにはレビューされます。レビューするのはそのエージェントだけで、Kody 自身のレビューには対象がありません。
Tools
コードを読む以外にエージェントが実行できるもので、すべてチームのシステムに対して読み取り専用です:Plugins(MCP)、CLIs(最大 3 つ)、そして Advanced の下の Structural search (ast-grep rules)。Skills、docs、ツール を参照してください。Comments & model
Try it
Try it は、画面上のエージェントを保存の有無にかかわらずそのまま、リポジトリの 1 つのプルリクエストで実行します。何も投稿されません。1
プルリクエストのリンクを貼る
エージェントのページで、このリポジトリのプルリクエストのリンクを貼り、Run agent をクリックします。大きな変更では数分かかります。
2
結果を読む
ヘッダーには、指摘の数、保持された数、投稿される数が表示されます。その下に:
- Warnings:実行で失われたもの。チェックアウトなし(エージェントは diff だけを読んだ)、インストールできなかった CLI、使えなかった skill や doc など
- Skills opened:エージェントが読んだ参照ファイルとともに
- ツール呼び出し:それぞれの入力と出力(CLI の出力を含む)
- 指摘:それぞれ kept、dropped、unverified のいずれかで、理由、引用したルール、投稿される Comment 付き
3
変更して再実行
指示、glob、ツールを編集して再実行します。実行後に編集すると、結果が以前のバージョンのものであるとページが警告します。
プルリクエストで 1 つのエージェントを実行する
1 行目にエージェントのコマンド名を書いて、プルリクエストにコメントします。レビューでの実行の流れ
1
エージェントの選択
glob が少なくとも 1 つの変更ファイルに一致する、オンのエージェントがすべて実行されます。一致するファイルのないエージェントは実行されません。
2
レビュー
各エージェントは Kody のレビューと並行して自分のファイルだけをレビューし、指示が求めることだけを報告します。skills と docs はターゲットブランチから読み、ツールを使います。
3
指摘ごとのチェック
規約に関する指摘は、紐付けたガイドまたはエージェントの指示から、適用したルールを引用する必要があります。ターゲットブランチのガイドにない引用は破棄されます。”…” で短縮した引用は、各部分が順番どおりに存在すれば通ります。その後、検証器がエージェントの担当範囲外の指摘やコードに裏付けのない指摘を破棄します。ast-grep のマッチはそれ自体が証拠になります。
4
エージェントの設定を適用
エージェントの最小重大度、次にコメント上限(重大度の高いものが残ります)。
5
メインレビューとの統合
エージェントと Kody が同じ問題を報告した場合、コメントは 1 つだけ残ります。エージェントの担当範囲内のチームルールならエージェントのコメントが、それ以外は Kody のコメントが残ります。
6
投稿
コメントにはエージェントのタグが付きます。規約のコメントは適用したルール(ガイドとその文言、または “agent’s instructions”)を引用します。CLI に基づく指摘は、ファイルを名指しする CLI 出力の行を Evidence に表示します。
制限
FAQ
エージェントが実行されなかったのはなぜですか?
エージェントが実行されなかったのはなぜですか?
次の順に確認してください。
- オフになっている。新しいエージェントはオフで始まります。
@kody -v <名前>ならそれでも実行されます。 - Files の glob に一致する変更ファイルがない、またはすべて Except に該当する。
- ファイルがリポジトリの無視パスにあり、glob がそれを名指ししていない。ファイルを明示的に名指ししてください(Files & knowledge を参照)。
- プルリクエストでファイルが削除された。
- 独自のリストを持つリポジトリには、後からグローバルレベルで追加したエージェントは届きません。
- ディレクトリで、レビューがリポジトリの設定を使った(例:プルリクエストが設定済みの 2 つのディレクトリに触れた)。
指摘が破棄されたのはなぜですか?
指摘が破棄されたのはなぜですか?
同じプルリクエストで Try it を実行してください。破棄された各指摘に理由が表示されます。よくある理由:
- 引用がターゲットブランチのガイドにない(言い換えられた、またはガイドがプルリクエスト内でだけ変更された)。
- 指摘がエージェントの指示の範囲外。
- 検証器がコードに裏付けを見つけられなかった。
- エージェントの最小重大度を下回った、またはコメント上限を超えた。
- Kody のレビューが同じ問題を報告し、そのコメントが残った。
kodus-config.yml でエージェントを設定できますか?
kodus-config.yml でエージェントを設定できますか?
できません。
kodus-config.yml の customAgents と knowledge は読み込まれません。最終コメントに “kodus-config.yml: customAgents is not read from this file; configure custom agents in the app.” と表示されます。プルリクエストが自分を評価するルールを変更できますか?
プルリクエストが自分を評価するルールを変更できますか?
できません。skills、docs、ast-grep のルールファイルはプルリクエストのターゲットブランチから読み込まれます。プルリクエスト内での編集はマージ後に反映されます。
エージェントを削除すると過去のコメントはどうなりますか?
エージェントを削除すると過去のコメントはどうなりますか?
過去のプルリクエストの指摘はそのまま残ります。skills と docs も Skills & docs ページに登録されたままです。