1体のAIに全部やらせるのをやめた。役割で分けた“チーム”を組んでいる話
AIを1体で使い倒すのをやめて、係を分けてみた。
作る係とチェックする係を別のAIにしたら、見落としがぐっと減った話。
「これ、さっき君が書いたコードだよね」と、同じAIに向かって聞くのは、なんだか気まずい。
レビューを頼んでも、たいてい「問題ありません」と気持ちよく返ってくる。
でも、その気持ちよさが、僕はだんだん怖くなってきた。
うちのサイトの裏側は、いまほとんどAIと一緒に作っている。
最初のころは、1体のAIに全部やらせていた。
設計も、実装も、その見直しも、ぜんぶ同じ相手に。
便利だったけれど、ある時期からうまく回らなくなってきた。
ひとりに全部やらせる限界
いちばん困ったのが、レビューだった。
コードを書いた本人に「バグを探して」と頼んでも、自分の書いたものはなかなか疑えない。
これは人間でも同じで、書いた直後の文章の誤字が見つからないのとよく似ている。
「問題なし」が軽く返ってくるほど、僕は逆に不安になった。
「作る係」と「チェックする係」を分けた
そこで、役割を分けることにした。
実装をするのはメインの1体。
その成果物を見直すのは、別のAIにお願いする。
しかもただ見てもらうのではなく、「どこが壊れるかを探して」と頼み方を変えた。
作った本人ではない別の係に、粗探しの姿勢でぶつけてもらう。
遠慮のない相手になったとたん、「ここ、値が空のときに落ちますよ」といった指摘が、遠慮なく返ってくるようになった。
同じAIでも、立場を変えるだけで見えるものが変わるらしい。
係は、専門でさらに分ける
チェックする係も、ひとりの万能レビュアーにはしなかった。
狭くて深い担当を、何人か並べている。
書き方のルールに沿っているかを見る係。
表示が崩れないか、表示速度は落ちていないかを見る係。
抜け漏れや境界のバグを探す係。
攻撃者の視点でセキュリティの穴を突く係。
ひとりに「全部よろしく」と頼むより、専門を分けて並べたほうが、はるかに多く見つかる。
人間のチームと同じで、担当が違えば見えている景色が違うのだと思う。
全部の係を毎回は動かさない
ただ、係を増やせば増やすほど、動かすたびに費用がかさむ。
AIは呼び出すぶんだけお金がかかるから、専門の係を毎回フル稼働させるのは現実的じゃない。
だから段階を分けている。
ふだんは、作る係が自分でチェックリストを一周する。
ここは追加の費用がかからないぶん、軽いミスはここで拾ってしまう。
専門の係を呼ぶのは、複雑な変更のときや、公開直前など、本当に必要な場面だけにしている。
同じ考え方で、使うモデルも割り振っている。
難しい設計判断やセキュリティの最終確認は、賢いけれど高いモデルに任せる。
決まりきった整形のような単純作業は、安くて速いモデルで十分だ。
人を配置するのと同じ感覚で、仕事の重さに合わせて相手を選ぶ。
チームが経験で賢くなる仕組み
いちばん気に入っているのは、係が少しずつ賢くなる仕掛けだ。
それぞれの係に「学び台帳」という1枚のメモを持たせている。
チェックリストに載っていない新しい失敗や、僕が手で直した箇所が出たら、その台帳に症状と対策を1行だけ書き足す。
そして同じ失敗が3回続いたり、致命的だったりしたら、その1行を恒久ルールに格上げする。
次からは、係が最初からその点を気にして仕事をするようになる。
放っておいても、チームがだんだん自分たちの現場に馴染んでいく感覚があって、これがけっこう楽しい。
結局、ふつうのチーム運営だった
こうして並べてみると、特別なAIの裏技はどこにもない。
役割を分ける。
作る人とチェックする人を別にする。
専門で並べる。
費用を見て段階を分ける。
失敗を仕組みに変える。
どれも、人のチームを回すときに当たり前にやっていることばかりだ。
AIを1体の万能選手として使い倒すのをやめて、何人も雇ったつもりでチームに組み直す。
それだけで、全部を1体に押しつけていた頃より、ずいぶん安心して任せられるようになったと思う。