各セッションには専用のクラウドコンピューターとブランチが割り当てられます。エージェントはバグを再現し、修正を書き、テストを実行し、変更リクエストを作成します。あなたは差分をレビューします。
packages/queue/src/retry.tsconst delay = base * 2 ** attempt;// Full jitter. Without it every worker wakes on the same tick and the// retry storm is indistinguishable from the outage that caused it.const delay = Math.random() * base * 2 ** attempt; packages/queue/src/retry.test.tstest("spreads retries across the window", () => { const spread = sample(1_000).stddev / EXPECTED_MEAN; expect(spread).toBeGreaterThan(0.4);});大規模な書き換えではありません。その下にある小さく明確な作業です。再現、依存関係の更新、不安定なテスト、200ファイルにまたがる名前変更。
報告を受け取り、自分のマシンで状況を構築し、失敗するテストか、再現できなかった理由を返します。再現できないセッションはそう伝えます。見ていないバグの修正をでっち上げることはありません。
スイートをループ実行し、実際に失敗するテストと頻度を特定し、その背後にある共有状態やタイミング依存を見つけます。変更リクエストには、変更前後で測定した失敗率が含まれます。
アップグレード、ビルド、スイート実行、破壊的変更の注記をチェンジログで確認、移動した呼び出し箇所を修正。スイートが失敗しても、失敗内容を説明に記載した変更リクエストを作成し、成功したかのようには主張しません。
名前の変更、APIの移行、lintルールの有効化。1ファイルなら簡単でも、大規模になると耐え難い変更です。専用ブランチでファイルごとに処理し、レビュー可能な1つの差分として反映します。
その日に発生したエラーを読み取り、メッセージではなく根本原因で分類し、影響を受けた人数で優先順位を付け、最上位の問題をパッチまで仕上げます。
文書化された動作と実際の動作を比較し、コードに合わせて文書を修正するか、誤っているのはコードだと指摘します。ここではどちらも同じ種類のコミットです。すべてがファイルだからです。
返ってくるのは、作成したマシンですでにテストを実行済みのブランチ上の差分です。新たに読み方を学ぶ必要はありません。
packages/queue/src/retry.ts-const delay = base * 2 ** attempt;+// Full jitter. Without it every worker wakes on the same tick and the+// retry storm is indistinguishable from the outage that caused it.+const delay = Math.random() * base * 2 ** attempt;packages/queue/src/retry.test.ts+test("spreads retries across the window", () => {+ const spread = sample(1_000).stddev / EXPECTED_MEAN;+ expect(spread).toBeGreaterThan(0.4);+});
エージェントはセッションブランチにコミットし、mainに対する変更リクエストを作成します。レビューに届くのは説明付きの差分。人の同僚が作成するものと同じです。
サンドボックスは実際のLinuxマシンなので、エージェント自身がインストール、ビルド、スイート実行を行います。失敗した変更リクエストは、成功したかのように装わず、説明に失敗内容を記載します。
セッション間で作業ツリーを共有することはありません。20個のセッションを同じリポジトリに対して同時実行しても、それぞれ専用のブランチとコンピューターで動くため、互いに干渉しません。
作業の大半は、セッションがクローンしたリポジトリ内で行われます。残りはコネクターが担い、資格情報はマシン内に入らず、こちら側に保持されます。
Easy connectは各サービスのOAuth画面を通じて3,000以上のアプリに対応します。カタログにないものもMCP、OpenAPI、GraphQL、raw HTTP経由で接続できます。内部サービスには通常こちらが正直な方法です。そもそも公開カタログの項目がないからです。
同じセッションを開始する3つの方法。トリガーが変わっても、分離とレビューの流れは変わりません。
Slackスレッドでバグを説明するか、WebアプリまたはCLIからセッションを開始します。ボットの投稿ではなく、自分のメッセージにリアクションが付き、返信は同じスレッドに届きます。
アクションをAskに設定すると、呼び出し時に実行が一時停止し、アクションと引数が表示されます。承認すると同じ呼び出しが完了し、停止した地点からセッションが再開します。
06:00に夜間の例外をトリアージします。あるいはアラートを署名付きwebhookにつなぎ、インシデントのペイロードをプロンプトに含めたセッションをページングイベントから開始できます。
問題はエージェントが何を書けるかではなく、何を反映できるかです。正確な答えを示します。
1つのプロジェクト、1セットのコネクタ、積み重なる1つのメモリ。各チームが自分の仕事に必要なスキルを書き、別のシステムを立ち上げる必要はありません。