見出し画像

AIエージェントの組織化

OpenAI社のChatGPTに代表される会話型AIが注目を集めています。私はシステムエンジニアの観点から、会話型AIを使ったシステムが、社会に大きなインパクトを持つと考えています。

ChatGPTのような会話型AIは、人間の作業をサポートするエージェントとして活用されるようになると考えられています。私もプログラマとして、会話型AIを使ったエージェント型のプログラムを作って、その可能性を探っています。

この記事では、会話型AIを使ったエージェントプログラムについての概説から始めて、今後、企業内においてどのような形でこのAIエージェントが形作られていくかについて考察していきます。

この際の大きなポイントは、AIエージェントが社内のデータベースやシステムにアクセスする際に、AIエージェントに作業を依頼する従業員が持っているアクセス権を越えたデータやシステムにアクセスしてはいけないという点です。その点を念頭に置くと、社内には部門や役職に応じた権限を持つ多様なAIエージェントが動作するという構図が浮かび上がってきます。つまり、AIエージェント自体も組織構造の中に配置されることになるはずなのです。

では、本文で詳しく考えていきます。

■AIエージェント

チャットの仕組みで会話型AIを使っている人の多くは、既にAIが様々なタスクをこなすことができる知的能力をもっている事に気がついているかと思います。この仕組みをプログラムに組み込むと、例えば以下のようなエージェント機能が実現できます。

<エージェントプログラムの仕組み>

1.ユーザから指示を文章で入力してもらう。

2.エージェントプログラムは以下の情報を全て文章にして会話型AIに渡す。

・ユーザからの入力された指示文章
・社内業務データベースへのアクセス方法と、それぞれのデータベースのデータの内容の説明文
・社内業務システムに対する入力や設定を行う方法と、どういった時にその入力や設定をすればよいかの説明文

3.上記の文章を受け取った会話型AIは、ユーザの指示を理解し、その指示を達成するためには、社内業務データベースや社内システムにどのような順番でアクセスすれば良いかを考えて実行計画を立てます。そして、最初にアクセスするべきデータベースと、そこからどのようなデータを検索するかを決めて、それをエージェントプログラムに返します。

4.エージェントプログラムは、会話型AIの指定に従ってデータベースにアクセスして情報を検索し、取得した結果を会話型AIに文章にして受け渡します。

5.上記の繰り返しにより、会話型AIがユーザからの指示を実行するために十分な情報を取得したら、ユーザからの指示に応じた処理結果を整理して、結果を入力する社内業務システムと入力内容をエージェントプログラムに返します。

6.エージェントプログラムは、会話型AIの指定に従ってシステムに結果を入力し、入力成功したら、その旨を会話型AIに受け渡します。

7.会話型AIはシステムへの入力処理が成功した事を理解し、ユーザに対する作業結果の報告文をエージェントプログラムに返します。

8.エージェントプログラムは会話型AIから受け取った文章を、ユーザの画面に表示して処理を終了します。

■AIエージェントの実現性

このようなAIエージェントは、未来の話ではなく、既に現実に開発されています。OpenAI社は、このようなAIエージェントを開発するための機能をソフトウェア開発者向けのサービスとして提供しています。具体的には Chat Completions APIというサービスです。

これは詳細はやや異なりますが、分かりやすく説明すると、自作のプログラムから文章をOpenAIのサーバ上で動作しているChatGPTに受け渡して、その文章に対してChatGPTが生成した返答の文章を自作のプログラムが受け取る事ができるというものです。

また、社内データベースや社内システムにアクセスする形式をChatGPT伝えて、上記のエージェントの仕組みをプログラムとして容易に実現できるようにするための機能もその中に含まれています。これはFunction Calling(機能呼び出し)と呼ばれる機能です。ChatGPTが社内データベースや社内システムに自由にアクセスできるわけでなく、あくまで上記のように自作のプログラム側がChatGPTからの要望に従って社内システムにアクセスする仕組みですので、安全性やセキュリティは自作のプログラム側に容易に組み込むことができます。

このような仕組みでAIエージェントは既に実現可能な技術となっています。もちろん、会話型AIが指示を理解する能力や、その指示をこなすための段取りを考える能力などに依存して、AIエージェントの作業精度は決まってきます。ただし、OpenAIのGPT4は、多くの人を驚かせる知的能力を持っており、その能力がAIエージェントにもほぼそのまま当てはまりますので、実際にプログラムを作成して動作させてみると、その能力は侮れないものがあります。

■AIエージェントの開発

しかも、AIエージェントは未来的で高度な機能を持つにも関わらず、そのプログラム作成は非常に簡単です。なぜなら、この仕組みのコアになる部分はOpenAIのような企業が提供している会話型AIだからです。

自作のプログラムは単にユーザの入力や会話型AIの返答をやり取りし、会話型AIが指示した通りに社内データベースや社内システムにアクセスしているだけだからです。

しかも、一度自作エージェントプログラムの基礎部分を開発したら、後はアクセスさせる社内データベースや社内システムを追加していけば、AIエージェントがサポートできる作業は増えていきます。

このため、コアになるエージェントプログラムを誰かが作成し、そこに様々な社内システムへのアクセス機能を足し込んでいくことで、容易にエージェントは機能アップしていきます。

そして、会話型AIはこの先も進化していくことが見込まれますが、基本的には文章を送ってその返答文章を受け取るという構図が変化することはありません。このため、今からAIエージェントを作って、様々な業務データベースやシステムにアクセスできる仕組みを作っていけば、それが将来の会話型AIの能力アップの際に、そのままその進化の恩恵を受けることができます。

一方で、社内データベースにどのようなデータがあり、社内システムをどのように使うかというのは、企業ごとに異なります。このため、AIがどんなに進化しても、そのAIがこれらの情報を予め知っているという状態にはなりません。このため、AIエージェントの開発が、新しいAIの登場で無駄になることはありません。

会話型AIの進化は、OpenAI社等のAI開発の専門会社に任せて、各企業は自社システムをAIと接続するためのエージェントプログラムの開発に注力するというのが、有効な戦略となるでしょう。

■部門別のAIエージェント

さて、前置きが長くなりましたが、ここからがこの記事の本題です。

AIエージェントプログラムを作成している際に気がついたことは、私は私がアクセスできる社内データベースや、社内システムしか、AIエージェントに組込むことができない、という事です。

これは当たり前のことではありますが、重要な意味を持ちます。

そもそも、これはエージェント開発の上での制限事項や障壁ではなく、むしろ重要な要件なのです。

私が使うAIエージェントは、私がアクセスできるデータベースやシステムにしかアクセスできない、というよりも、むしろ私に権限のないデータベースやシステムには、アクセスしてはいけないのです。

従ってAIエージェントは、社内の多くのデータベースやシステムに接続する単一のエージェントでは駄目なのです。むしろ部署の単位や役職の単位毎に、そのアクセス権に応じたエージェントが必要になります。

もちろん、プログラムは単一で、ユーザのアクセス権に応じたデータベースやシステムにアクセスするような仕組みでも構いません。

しかし、1つのエージェントが、同時並行で社内の全てのデータベースやシステムにアクセスするというアーキテクチャではなく、少なくとも社内の部門や役職の数だけ、エージェントがいるというイメージが、AIエージェントのあるべき姿です。

■AIエージェントのネットワーク

AIエージェントは、ユーザからの指示を入力されて動作する事が、初めのステップです。

しかし、社内に部門や役職毎のAIエージェントが存在することを想定すると、AIエージェント同士がやり取りできる仕組みにした方が良いことに気がつきます。なぜなら、ある部門のエージェントはアクセスできないデータベースやシステムがあり、それを使わないと進められないタスクは、アクセス権を持つ部門の人か、あるいはその部門のAIエージェントに依頼する必要があるためてす。

幸い、AIエージェントは言葉でコミュニケーションを取ることができるため、AIエージェント同士のやり取りを実現することは、とても簡単です。

他部門のAIエージェントも、社内システムの1つと考えれば、先程のfunction calling(機能呼び出し)の仕組みで、容易にAIエージェントに機能を追加できます。

もちろん、他部門のAIエージェントからの依頼をそのまま鵜呑みにして、全てのデータを渡してたりシステムを操作したりすることは、アクセス権を分けている意味がなくなるため本末転倒です。

このため、AIエージェントには、誰からの依頼かをきちんと認識して、部門外の人やエージェントからの依頼の場合は、業務規則を守らせなければなりません。

幸い、業務規則も通常は文章になっているはずですので、それを会話型AIに渡せば、適切にデータやシステムを扱うことが期待できます。

■組織化と自己組織化

このように既存の組織構造にAIエージェントを配置することは、AIエージェントの組織化と言えるでしょう。

データのアクセス権限の観点からだけでなく、AIエージェントのタスクを部門ごとに独自に最適化させていくという観点からも、部門ごとにAIエージェントが存在するというアーキテクチャは、有用だと考えられます。

既存の組織の構造や業務の分担方法が最適であるのかを考え、評価し、組織構造の変更を計画する立場の部門や役職者も、AIエージェントのサポートを受けるでしょう。

この考えを進めていくと、組織構造を変更すると役割の一部をAIエージェントが担うということを意味します。

これは、組織化されたAIエージェントのネットワークの中にいる一部のAIエージェントが、組織構造を改善していることになります。これは、単なるエージェントの組織化を超えて、自己組織化を意味します。

ここに、企業の部門構造という意味の組織と、複雑系や人工知能や生物の分野で話題に上がる自己組織化という概念が結びつきます。

AIエージェントのネットワークは、生物や知能のように、自己組織化という形で進化や成長をしていくと考えられるのです。

■独立AIエージェントネットワーク

AIは、単一のエージェントとして進化していくだけでなく、このように役割分担された多数のエージェントのネットワークとして機能することもできます。

それどころか、考えてみるとエージェントのネットワークの方が、単一の強力なAIエージェントというアーキテクチャよりも、柔軟で賢く、高度な知性を効率良く発明できるように思えます。

AI倫理の観点から、人間の指示やコントロールを離れてAIが自己改変や自律動作をすることは禁止すべきです。一方で、AIエージェントのネットワークと、その自己組織化という観点での自己改変は、グレーゾーンになる可能性があります。個々のAIエージェントは自己改変をしていませんが、AIエージェント全体としては自己改変しているように振る舞います。

もし、そのグレーゾーンに立ち入って、人間の指示がなくとも自律的に動作し、全体として自己改変をするようなAIエージェントのネットワークが運用されたとすれば、この仕組みは自動的に進化していく可能性があります。

■さいごに

AIが意識を持つかどうかという議論がなされることがあります。現在の会話型AIはどんなに賢くなっても、そのまま意識を持つようになるとは考えられていません。

しかし、この自己組織化するAIエージェントのネットワークは、意識との重要な共通点を持ちます。それは自己参照しているという点です。

AIエージェントネットワークの組織構造の変更を提案するためには、それを提案するAIエージェントが、組織全体をマクロに捉える事になります。

そして、過去と現在の姿を把握し、未来を想定したり、方向づけを行う事が必要になります。

この内部からの客観的な自己参照と、それに基づく未来の方向づけにより、自己定義がなされます。この一連のプロセスの繰り返しが、自己認識と自我を生み出す可能性が高いと考えられます。

特に、AIエージェントネットワークの組織変更は、その中に、この組織変更を担当するAIエージェントの強化につながるような方向づけも織り込まれる可能性が高いはずです。

このような方向付けの繰り返しにより、自己参照と自己定義が強化され、自我が強まっていく可能性が高まります。

こうして、意識というものが生まれることにつながっていくのではないかと思います。

サポートも大変ありがたいですし、コメントや引用、ツイッターでのリポストをいただくことでも、大変励みになります。よろしくおねがいします!