「要件定義からシステムへ」 Babelは可視化にフォーカス
大谷:ZoltraakはOSSで公開され、その後Babelに至るわけですね。こちらはよりシステム開発よりのツールですね。
元木:はい。Babelの構想は去年の12月頃ですかね。Zoltraakを公開したときは確かに反響もあったし、2週間で1万ダウンロードまでいったのですが、ピンと来ない方も多かったんです。リリースしてみると、やはり反響やノウハウも溜まってきたし、ClaudeのArtifactを使ったら、われわれはなにをするのか試作も増えてきた。これでBabelの具現化に近づいたと思います。
当時は画像生成AIがめちゃくちゃ流行っていて、システムの可視化みたいなものを構想したんです。Zoltraakをベースにした魔導書があって、話しかけると、成果物がモワンと飛びだいてくるようなイメージを持っていました。
これは構想というか、ほぼ妄想に近かったのですが、文章で要件定義書を書いて、それをベースに粒子としてシステムが可視化されて、ボンとできあがるようなものを作りました。これがBabelになります。
大谷:BabelはZoltraakに比べて、可視化の機能がフィーチャーされていますね。
元木:可視化に関しては、Babelのプレスリリースにも書いたのですが、システム障害や外部の攻撃が起こったときって、どこに障害が起こり、どこを切り離さなければいけないかをいち早く知りたい。そのためには可視化してあげた方がいいと考えました。
実際にClaudeのグラフエディターでモックを作ってみたら、インシデントのあった場所を視覚化したら、やっぱりわかりやすいんです。生成AIでインシデントを表現すると出力されるテキストの分量が多すぎるので、もっと抽象的に俯瞰できるエディターが必要だと思って、Babelのような可視化になりました。
大谷:単なる可視化だけじゃなく、なんだかきれいですよね。
元木:システムって視覚的に見えないじゃないですか。対称性や芸術的な美しさというのは、わかる人にしかわからない。一般的な人はシステムをきれいだと思わないという課題はあるんです。だから、見て美しいものを目指しました。
生成AIの登場により、ゼロからイチを作り出す起業家や創業者のパワーって高まっていると思うんです。そういった経営者には、売上や顧客動線などを直感的に理解するダッシュボードって、ビジュアル化した方がさらに使いやすくなる。今の生成AIは音声や動画などの非構造化データも取り込めるし、見える化に役立つフロントエンドの技術もどんどん進化している。入口も、出口も技術的には充実しているので、今なら「見える化2.0」みたいなことにチャレンジできるかなと思い、Babelに実装しました。
大谷:可視化という点でもZoltraakとは役割が違うんですね。
元木:Zoltraakは攻撃の魔法なので、要件定義を出して、システムを構築する流れをカバーします。Babelってバベルの塔から来ているのですが、みんなで造るプラットフォームをイメージしました。みんなで造るなら、可視化したほうがいいですからね。
大谷:それにしてもここまで約半年ですから、スピーディーですよね。
元木:もともとシステム生成の領域に関しては、なにかしら起こると思っていたのですが、自分自身で作っていても、まさかこんなスピードで実現できるようになるとは思いませんでした。
システムは自律的に自身を伸ばしていく、ある意味デジタル生命体
大谷:では、要件定義からシステムを構築するまでのBabelの動作を教えてください。
元木:実際に動いているのを見てもらうのがよいですね。「新規のシステム開発」のボタンを押して、録音するので。なんか大谷さん、お願いします。
大谷:えーっと、私たちはメディアなので、「うちのメディアを見て、読者が面白いと感じているのか、つまらないと感じているのかを把握するシステム」とかですかね。
元木:はい。これでシステム作り始めます。
一点注意したのは、要件定義って、システム開発する人が記述するので、一般的な人が知らなくてよいような定義までずらりと書いてある点です。それだと意識合わせしにくいので、要求を整理した概要の箇条書きにいったん落とし込みます。OKを出したら、システムのフレームワークはこちらで決めてしまい、ファイルを生成し始めます。
大谷:おっ、もくもくと増えてきましたね。
元木:最初に出てくるのはシステムのDNAに当るもの。要件定義書って設計図と同じなので、それ自体でなにかできあがっているものではない。ここでやっているのは、設計図をベースにして構築システムが作られているのと同義。1000行くらいの日本語のYAMLファイルが出てきて、文書を元にシステムが立ち上がってくるイメージ。二次元と三次元の見え方を選べます。魔導書を読むと、ほわっと出てくるイメージは視覚的に実現できていると思います。
同時に、これってある意味デジタル生命的なものに捉えられると思います。
ハーバード大学でリフージョンモデルを開発した方と以前、吞む機会があったのですが、そのときに「システムって自律的に考えて、自律的に枝を伸ばしていくようになるよね」という話をしたことがあるんです。
大谷:先ほどの生成画面見ていると、確かに生命体な感じしますね。シナプスというか、増殖というか。
これって「AI 2.0」みたいなものだと思っていて、人間の神経経路を似ている。フロントエンドはユーザーと密にインタラクションする部分なので、目や口などのインターフェイス。そこから入った情報が神経を伝って脳みそで処理されみたいなイメージで捉えると、けっこう生き物に近いんですよ。
大谷:なんならビジュアル化のアイデアとして、実際に皮膚くっつけてもいいかもしれませんね(笑)。Babelも複数のAIエージェントの連携で動いているんですよね。
元木:Babelは、この要件定義のコアプログラム、顧客要件や外部情報をセンシングするフロントエンド、そして複数のAIエージェントから構成されています。
このAIエージェントは、まさにAnthropicのCEOが語っている「群知能(Swarm Intelligence)」に近いアイデアです。あちらは複数のAIエージェントたちを同時に動かそうみたいな考えですが、こちらはベースのAIが存在していて、そこから指令書を複数出しているイメージですかね。先ほどの例は要件定義のファイルが3つ出てきましたが、これを異なるAIエージェントがそれぞれ考えてシステムを構築しているんです。
加えて、中のプログラムもAIがいろいろ考えて、動的に変化させていきます。それぞれの目的についてファイルに話しかけると、あたかも人格を持っているかのように回答してくれます。今後は会話の結果、自らを複製して、より大きなシステムを作れるようにしていく予定です。そうすると、ある意味ノードの1つ1つがAIと考えることもできるし、先ほど話した群知能に近くなっていると思います。
大谷:なるほど。人間がノードに対して指示を出してシステムを拡張することもできるし、ノード自身が自律的にシステムを拡張していくこともできるわけですね。
元木:LLMがいわば脳細胞1つ分の発明だとするならば、群知能は脳全体を作ることに等しい。しかもフロントエンドはユーザーにも見えるインターフェイスなので、先ほど大谷さんが言っていたように皮膚や外観を作ることも可能ですよね。こうなるともはや生命体に近いものです。
AIの仕組みを使えば、自律的に修復したり、拡張することも可能です。昔、私はコオロギを飼っていたことあるんですが、目が見えないコオロギは触覚がすごく発達しているんです。
大谷:欠けているセンシング能力を自律的に拡張させているということですね。
元木:目が見えない方が、耳から得られる聴覚情報で事物を立体的に捉えるようになるという脳の働きです。
私もBabel自体をBabelで開発しているのですが、必要な機能って自分で伸ばすんですよ。まあ、伸びすぎると見通しが悪くなって、どこかで整理整頓しなければいけないんですけど、システムって伸ばさなければいけないところは自分で伸びていくんです。AIに勝手に開発させたわけではなく、私が開発した結果としてそうなったんですけど、こうなるともはや生命と考えた方がいいのではないかと思います。