AI同士で仕様をやり取りさせて分かった——別部署とのAI連携で決めた4つのルール
最近、別部署との仕様のやり取りを、人間同士ではなくAI同士で行うことが増えてきた。
こちらの部署のAIが仕様や確認事項をMarkdownにまとめ、相手部署のAIに渡す。相手側のAIが内容を確認して回答し、それをこちらのAIが受け取って作業を進める。
人間同士なら会議を開いたり、担当者に聞いたりしていた部分を、かなりAIに任せられるようになった。
ただ、実際にやってみると一つ分かったことがある。
AI同士なら勝手に話が通じる、というほど簡単ではない。
むしろ人間同士なら空気を読んで補完していた部分が通じない。
そこで何度か失敗した結果、最近はAI同士で仕様をやり取りするときに、いくつかルールを決めている。
1. Git管理の「キット」を共通の場所にする
部署間のAI同士のやり取りには、Gitで管理された共通の「キット」を使っている。
仕様、前提条件、質問、回答などをMarkdownで置き、キットに更新が入ったら「相手から何か連絡が来た」というルールにする。
こちらのAIが質問を書いてGitに反映し、相手側のAIが読んで回答を書き戻す。やり取りがすべてGitの履歴に残るので、「いつ、何を聞いて、どう回答されたか」も追える。
もちろん、更新したらSlackなどで人間向けに「確認お願いします」くらいの一言は送る。ただ、これはもはや挨拶に近い。実際の仕様のやり取りはGit上のキットが本体である。
さらに可能なら、双方のソースコードもGit経由でAIから参照できるようにする。相手の実装まで確認できれば、
「このAPI変更は、そちらのこの処理に影響しないか」
といった具体的な質問ができる。当然、回答側もコードを確認できるので精度が上がる。
AI同士を会話させるというより、Git上のキットを介して仕様を交換する。
今のところ、この形が一番安定している。
2. 回答方法は質問するときに決めてしまう
次に重要なのが回答形式だ。
例えば相手部署に、
「この仕様で問題ありませんか?」
とだけ聞く。
するとAIは親切なので、長々と説明してくれる。
結論、理由、補足、注意点、改善案。
人間が読むならありがたい場合もあるが、その回答を次に処理するのもAIである。
そこで最近は、質問を作る時点で回答方法まで決めてしまう。
基本は、
○か×。
問題なければ○。問題があれば×にして理由を書く。○×では回答できない場合だけ、別途コメントを書く。
回答を書く場所も最初から指定する。
要するに、AI同士に自由な会話をさせない。
別部署間の仕様確認なのだから、雑談能力はいらない。
必要なのは、回答を次の処理へ確実につなげられることだ。
こうなってくると、AI同士の会話というよりAPIのインターフェース設計に近い。
3. 相手に渡す前に「相手になって読め」とやらせる
これはかなり効果があった。
こちらのAIが相手部署への質問Markdownを作ったら、そのままGitに反映させない。
一度こちら側のAIに、
「今から相手部署のAIになったつもりで、このMarkdownを読め」
とやらせる。
そして、
「相手部署が持っている情報だけで、この質問を正しく理解して回答できるか?」
とチェックさせる。
すると結構な確率で穴が見つかる。
こちらの部署でしか使っていない用語だったり、IDだけ書いて何を指しているのか説明していなかったり、判断に必要な前提条件が抜けていたりする。
これはAI特有の問題でもない。
書いた本人には、書いていないことまで見えている。
頭の中にある前提条件を、文章にも書いたつもりになってしまう。
以前、「AIがこちらの意図を理解してくれない」と思ったことがあったが、実際にはAIの理解力が足りなかったのではなく、私の意図の一部が私の頭の中にしか存在していなかったということも多かった。
だから送る前に、一度相手側の席に座らせる。
単純だが、これだけで無駄な往復はかなり減る。
4. AI向け資料とは別に、人間向けのPowerPointも作る
AI同士の仕様調整がうまく回り始めると、今度は別の問題が起きる。
人間が置いていかれる。
こちらのAIが質問する。
相手部署のAIが回答する。
こちらのAIが修正する。
また確認する。
このサイクルが高速になるほど、人間からすると、
「で、結局何が決まったの?」
となる。
そこで必要なところでは、仕様確認用のMarkdownとは別に、人間向けのPowerPointも作らせるようにしている。
AIに渡す資料は機械的でいい。
前提条件、質問、回答欄、判定条件。
一方、人間が知りたいのは、そもそも何の話なのか、どこが問題なのか、何を確認して、最終的に何が決まったのかという全体像である。
同じ資料で両方を満たす必要はない。
AIにはAI向けの資料、人間には人間向けの資料を作ればいい。
AIなら、その二つを作るコストも大したことはない。
AIが賢くなっても、部署間調整は意外と地味だった
AI同士で仕様をやり取りするようになる前は、もっと簡単に考えていた。
賢いAI同士なのだから、多少曖昧でも勝手に解釈して話を進めてくれるだろう、と。
実際には逆だった。
部署が違えば、持っているコンテキストも違う。こちらでは常識の言葉が、向こうでは意味不明かもしれない。
だから、Git上に共通のキットを作る。可能ならソースコードまで参照させる。回答形式を先に決める。送信前に相手の立場でチェックする。そして人間が置いていかれないよう、別途説明資料を作る。
AI同士が勝手に仕事をする未来というと、もっとSFっぽいものを想像していた。
実際にはGitにMarkdownを置き、○×で回答させ、更新履歴を確認する。
そして人間同士はSlackで、
「更新しました。確認お願いします」
「ありがとうございます」
とだけ会話する。
仕事の話はAI同士がGitで済ませ、人間は挨拶だけしている。
考えてみれば、これはこれでかなり未来的なのかもしれない。