Coroidでは汎用型のエージェントは使用しません。各ステージは記述からpull requestまでのプロセスは狭い役割と意図的に制限されたツールセットを持つエージェントが処理します。
この制限こそが重要なのです。コードを書けないエージェントが誤って コードを書き込むことはありません。
役割
| 役割 | ステージ | コードを変更可能 |
|---|---|---|
| アーキテクト | 仕様と計画 | 不可 |
| デベロッパー | ビルド | 可能 |
| QA | 検証 | 不可 |
| レビュアー | レビュー | 不可 |
| ウェブテスター | 検証、ブラウザフロー | 不可 |
| エクスプローラー | 調査、任意のステージ | 不可 |
| 依存関係分析ツール | 分析 | 不可 |
最初の4つの役割が、すべてのタスクでこの順序で見られるパイプラインです:
アーキテクト→デベロッパー→QA→レビュアー
正確に言えば、リポジトリ内のファイルを変更できるのはデベロッパーのみです。他のすべての エージェントは読み取り、実行、報告、または後続作業の作成のみを行います。
アーキテクト
ユーザーの記述を仕様に変換し、さらに仕様を計画に変換します。実際のコードベースを参照して計画を現実に合わせますが、コードを書くことはありません。
ビルド開始前に承認する対象が、この出力結果です。
デベロッパー
関連コードを読み取り、変更を加え、テストを作成または更新し、ワークスペース内でテストが通るまでローカルで実行します。
「レビュアー」が検出結果を返すと、デベロッパーがそれらに対応する役割となります。
QA
コードを書いたエージェントとは独立して検証を実施します。つまり、プロジェクトに設定された品質ゲートや仕様に定められた受入基準、テストスイートを利用します。
QAは判定結果を報告します。発見した不具合を修正することはなく、失敗した項目はデベロッパーに再作業として戻されます。
レビュアー
完成した差分を確認し、組織で設定されたレビュー規則に従って検出結果を生成します。検出結果はデベロッパーに再作業として送り返されるか、pull requestに添付されてユーザーに渡されます。
ウェブテスター
アプリケーションのプレビュー版を実際のブラウザで動作させ、エンドツーエンドのユーザーフローを確認します。コードだけでは挙動を断言できない場合に利用されます。
エクスプローラー
読み取り専用の調査役割です。他のエージェントが自身のコンテキストに全データを読み込むことなく、コードベースに関する質問に答えるために利用します。「認証処理はどこか」「この関数を呼び出している箇所は?」などです。
依存関係分析ツール
依存関係や、プロジェクト間の依存関係が設定されている場合を含むコードベース全体での変更の影響範囲を調査します。
このような分離が重要な理由
このように作業を分割することで、以下の3つの特性が得られます:
- **検証が独立している。**作業をチェックするエージェントがコードを書いたエージェントと異なるため、結果に対して利害関係を持ちません。
- **影響範囲が限定される。**コードを書くツールを持つのはデベロッパー役割のみなので、レビューや分析での失敗がリポジトリを破損することはありません。
- **各役割に適したモデルが実行される。**計画立案には幅広い知識が求められ、コンパイル可能なコードを書くには別の能力が必要です。そのため AIプロファイルがまさにこの目的のために、役割ごとに異なるモデルを保持しているのです。
次へ
に戻るタスクがどのようにしてpull requestになるかこれらの役割が対応する工程についての説明、またはCoroidとは何か簡易な概要をご覧ください。