在庫はあるのに、実行数がゼロだった
社内では複数のAIに作業(チケット)を任せて動かしています。作業を実際に取って実行するAIを「艦長」、艦長たちの集まりを「艦隊」と呼んでいます。この日、作業の在庫を定時に数えている見張り役のAIから「作業の在庫は53本ある」という報告が来ました。数字だけ見れば仕事は十分にある状態です。ところが実際にどれだけ実行されているかを確認すると、直近で完了した作業はゼロでした。
「在庫がある」と「動いている」は別の話だ、というのがこの日いちばん痛感したことです。在庫本数という見かけの指標だけを見ていたら、この詰まりには気づけませんでした。実行側の記録(誰がいつ何を取って、どうなったか)まで遡って初めて異常が見えました。
1段目の原因: 死んでいる作業を配り続けていた
まず作業を取りに行く側のAI(仮にWindows機の艦長と呼びます)の挙動を見ると、15分おきに作業を1本取っては却下される、を繰り返していました。取っていた作業を調べると、実は同じ5本を何度も掴んでいて、しかもそのすべてが「再試行の上限に達済み」の作業でした。つまり最初から成立しない作業を、供給側が除外せずに配り続けていたのです。
これは供給の仕組み(作業を外部へ出す処理)の実装漏れでした。修正は、「再試行上限に達した作業」を配布対象から除外する条件を足すことが中心でした。本番に反映すると、在庫は53本から47本に減りました。減った6本はすべて死んでいた作業で、これで空回りは止まりました。
ただし、この時点ではまだ実行数はゼロのままでした。空回りは止まったものの、Windows機の艦長が新しく取れる作業がゼロになっていたからです。
2段目の原因: 割り振り先が固定されたままだった
次に調べたのは「作業の割り振り」の設定でした。もう1台の艦長(別マシン)が既定の割り振り先になっていたのですが、このマシンは数日前から停止したままでした。停止していても割り振り設定は生きたままだったため、作業はずっと動いていないマシン宛てに送られ続け、稼働しているはずのWindows機には回ってきていませんでした。
ここでの修正は、割り振りのたびに停止中の艦長の状態を確認し、止まっている間は、その艦長宛ての作業から、稼働中のWindows機の手持ちが3本になる分だけを回す(failover)処理を足すことでした。定期実行のタイミングでこの修正が反映されると、Windows機の艦長は初めて新しい作業を取得し、承認を経て実行に着手するところまで一気に進みました。在庫があっても実行につながらなかった流れが、ここでようやく1本につながった形です。
その先で見つかった、さらに古い詰まり
ここで終われば良かったのですが、実際に実行が始まってすぐにエラーで止まりました。原因は「配布用の作業一式(リポジトリ)に、取り出すはずの基準の版(main)が入っていない」というものでした。調べると、この配布物は約10日前に作られた時点で既に壊れていて、その事実自体は配布物の管理ファイルに「基準の版と一致しない」という印として一度記録されていました。ただし、印が書かれただけで誰も作業として起票しておらず、そのまま10日間放置されていたのです。
その場で配布物を再生成し、次の定期実行で正しい状態が配られるところまで確認しました。ただし、最初に回った2本は、直した配布物が届く前に再試行の上限(3回)を使い切っていました。1つの詰まりを直したら、その先でもう1つ別の(しかもより古い)詰まりが見つかった、という流れです。
まとめ: 見つけた3つの教訓
今回の一連の対応から、次の3点を運用ルールとして残すことにしました。
- 「在庫がある」と「動いている」は別の指標として扱う。在庫本数だけでなく、実行側の記録(誰が・いつ・何を取って・どうなったか)を必ず追う。
- 検知しただけの異常は、放置される前提で扱う。異常を見つけた時点で自動的に作業として起票する仕組みがないと、検知結果は記録されるだけで終わる。
- 割り振り(failover)は毎回その場の健康状態を見て決める。「このマシンが既定」という設定を固定で持たせると、片方が止まった瞬間に全体が詰まる。
複数のAIに作業を任せる運用は便利な反面、詰まりの原因が「供給」「割り振り」「配布物」のどの層にあるかが分かりにくいという弱点があります。今回は幸い同じ午後のうちに、供給と割り振りの2段を直し、その先の配布物の詰まりにも手を打てました。ただし、止まった艦長宛ての作業の大半はその夜も残ったままで、稼働中の艦長に回るのは一度に3本までです。いずれも、見かけの在庫数だけを見ていたら気づけなかった問題でした。
AIに仕事を任せているのに、成果が出ているか分からない
ラポ秘書サービスでは、任せた作業がきちんと実行されているかを在庫数だけでなく実行記録まで遡って確認できる仕組みを整えています。AI導入後の「動いているつもり」を無くしたい方は、まずはお気軽にご相談ください。