バックグラウンドおよび並列エージェント
範囲を定めたタスクでエージェントを信頼できるようになると、次の一手は明らかだ:複数を一度に走らせること。現代の道具はバックグラウンドエージェントを——それぞれ自分のブランチやワークツリーで——立ち上げられるようにし、あなたが別のことをしている間に三つか四つの範囲を定めたタスクが進む。
これは本物の高速化だが、独立した仕事に限ってのことだ。あなたが引き換えにするコストは調整だ。同じファイルを編集する二つのエージェントは競合するdiffを生み、それを手でマージするのは節約した分より高くつきうる。
- 行数ではなく境界で分けよ。 各エージェントに他と重ならない塊を与えよ——別々のモジュール、別々の機能、別々のファイル。「エージェントAはエクスポート機能、エージェントBはドキュメント」はきれいだ。「両方のエージェントが
app.jsを編集」はマージの頭痛の予約だ。 - 作業空間を隔離せよ。 各エージェントを自分のgitブランチやワークツリーで走らせ、互いの未コミットの変更を踏まないようにせよ。一度に一つずつマージし直し、マージのたびに検査を回せ。
- 数を正直に保て。 それでも全部の結果を確認せねばならない。四つのエージェントが走っているとは、読むべき四つのdiffと信頼すべき四組のテストだ。ひと握りを超えると、エージェントではなくレビューの待ち行列があなたのボトルネックになる。
間違いは並列性を無料と扱うことだ。そうではない——あなたは仕事を書くことからレビューと統合へ移したのだ。しばしば素晴らしい取引だが、あなたが実際にレビューをする場合に限る。