AIエージェントを並列に動かせば、調査やデータ整理を速く進められます。しかし、同じ顧客、同じ在庫、同じ記事を複数のAIが同時に更新すると、処理の速さよりも事故の速さが上回ります。
並列化する前に必要なのは、「どのAIが、どの対象を担当しているか」を重複なく管理する仕組みです。
調査の並列化と更新の並列化は別物
複数のAIに別々の資料を調べてもらう処理は、比較的並列化しやすい仕事です。一方、顧客台帳、予約、在庫、WordPress投稿など、同じ保存先を更新する処理は慎重に扱う必要があります。
例えば、2つのAIが同じ問い合わせを取得した場合、両方が返信案を作るだけならまだ修正できます。しかし両方がメールを送信すれば、同じお客様へ二重送信してしまいます。
よく起きる二重更新
- 同じ問い合わせへ2回返信する
- 同じ注文を2回登録する
- 一方のAIが、もう一方の修正を古い内容で上書きする
- 同じ記事を別々のタイトルやスラッグで重複投稿する
- 在庫数をそれぞれが減らし、実在庫と合わなくなる
- エラー時の再試行で同じ処理をもう一度実行する
「AIを1台しか動かしていない」場合でも、タイムアウト後の自動再試行によって二重処理が起きることがあります。
対象を受け取った時点で担当を確保する
基本は、AIが処理対象を取得するときに、その対象を「処理中」として確保することです。他のAIは、確保済みの対象を取得できないようにします。
管理したい状態は、未処理、処理中、確認待ち、完了、失敗などです。さらに処理を開始したAIの識別子と開始時刻も記録します。
処理中のまま長時間更新されていない場合は、AIが停止した可能性があります。その場合も、いきなり別のAIへ渡すのではなく、外部への送信や登録が完了していないかを確認してから再実行します。
一度だけ実行するための識別子を持つ
決済、メール送信、予約登録のような処理には、業務ごとの一意な識別子を付けます。同じ識別子の処理依頼が再び来た場合、保存先が「すでに完了」と判断できるようにします。
これは、AIを信用するかどうかの話ではありません。通信障害や再試行があっても同じ結果を重ねて作らない、一般的なシステム設計です。
同時更新では版を確認する
AIが顧客情報を読み込んでから保存するまでの間に、人や別のAIが内容を変更することがあります。このとき古い内容をそのまま保存すると、新しい修正が消えてしまいます。
保存時に更新日時や版番号を確認し、読み込んだときと違っていたら上書きを止めます。差分を見て統合できる場合と、人の確認が必要な場合を分けることが重要です。
並列化しやすい単位に仕事を分ける
安全に速くするには、同じ対象へ複数のAIを向けるのではなく、対象を重ならない単位に分けます。
- 顧客IDの範囲で分ける
- 地域や担当部署で分ける
- 調査、下書き、検証の役割で分ける
- 読み取り専用のAIと、更新を行うAIを分ける
最終更新を一つのAIまたは人に集約する方式も有効です。複数のAIは材料を集め、保存前の判断だけを一か所で行います。
並列化前のチェック項目
- 同じ対象を複数のAIが取得しないか
- 再試行しても二重登録にならないか
- 更新前後の版を比較しているか
- 読み取りと書き込みの権限を分けられるか
- 処理中のまま止まった対象を検知できるか
- 誰が何を変更したか履歴が残るか
OpenAIのAgents APIでも、複数のサブエージェントへ仕事を分けて並列処理する仕組みが提供されています。並列化は強力ですが、業務側の排他制御や二重実行防止まで自動で解決されるわけではありません。
速くする前に、同じ処理を重ねないこと。AIエージェントを実務へ入れるときの基本です。