見出し画像

AIワークフローとAIエージェント。生物学の「創発特性」を感じる。

2024年の年末、AI界隈で少しだけ話題に挙がっていたのが、ワークフローとエージェントの話。この話を深掘るにあたりアンソロピックの記事が大いに参考になる。

この記事で話たい内容は、「創発特性」という生物学の概念をAIエージェントに感じた感動の共有とともに、今後、さらに発展していくエージェントを作るにあたっての考察である。

創発特性とは、小さな構成要素(分子や細胞など)が集まり、より大きな構造(組織や器官、個体)を形成したとき、それぞれの段階で新たに生じる機能や性質のことを指します。これは、各構成要素を単独に見ても得られない特徴が、全体として現れるという現象です。

GPT o1

端的に説明すれば、LLMという単体の「文字あてモデル」がチャット形式になることで「人間との対話」を可能にしたこと。そこに「外部環境との接点を増やす」ことが出来るワークフローに組み込むことでより多くの用途に使えるようになったこと。さらにエージェントがワークフローをツールとして利用できることで、「自律的な行動」を起こせること。という、一つ一つでは持っていなかった機能を持ち始めるということです。この流れは、きっと何回か置き、さらに高度な機能をAIが持つことになる可能性を感じさせるものです。


初めに、「静」と「動」

それぞれの定義を書くならば、
ワークフロー = コードで定義付けられた決められた動作を行う
エージェント = ゴールシークに目的を遂行する

Workflows are systems where LLMs and tools are orchestrated through predefined code paths.
Agents, on the other hand, are systems where LLMs dynamically direct their own processes and tool usage, maintaining control over how they accomplish tasks.

anthoropic
https://www.anthropic.com/research/building-effective-agents

明らかな二項対立にはないものの、「静」と「動」という二つを表しており、対称的なもののである印象を与えている。

しかし、この二つは乖離しているものではなく、むしろエージェントはワークフローを利用してこそ成り立つものであると捉えることが出来る

どういうことか、これはエージェントの仕組みについて考える必要がある。

エージェントの仕組み

エージェントは無から有を創造しているわけではない。

LLMが一定のループの中で試行を行うことで、自走しているように見え、それらしい動きになっているこれがエージェントだ。

ステップは以下

  1. 人が指示を出す

  2. AIが条件を満たしているか確認する

  3. 条件を満たすために、「アクション」を起こす

  4. AIが条件を満たしているか確認し、条件を満たせば終了(これは停止も含む)。満たさなければ3を行う

2と3は、条件を満たさなければループを起こし続ける。pythonの初歩に出てくるwhileの挙動そのものである。(While構文は「XXの条件を満たす間、記述されたコードをループする」というもの)

この「アクション」の中に、「人間との対話」という新しい要素が入っていることが大きな特徴である。これは、曖昧性を許容できるというLLMの特長があるからこそ成り立つ。この人間との対話のなかで、実行に必要な条件を満たすために必要な情報を人間に確認することが出来る。

エージェントを作るにあたりこの、2の「条件の設定の仕方」もさることながら、やはり機能を拡充させるという意味だと3の「条件を満たすためのアクション」というのも大事である

このアクションには、「人間に確認」というアクションと、「外部環境での実行」という2種類のアクションがある。

「外部環境での実行」は、Pythonの実行も含まれるが、それ以外にも外部サービスを実行を行うことも含まれる。例えば、メールを送るの様に、特定のアプリの特定の動作等が上げられる。

一方で、この実行によって実際に設定された条件をクリアできるかは、LLM側は確定できない。実行の結果をみて、条件を達成することが出来ていればループは解除される。つまりLLMからすれば、最も確立が高いと思われる手段を提示しているだけである。この点は、LLMが確立の世界のモデルだという性質そのものである。

ここで実際にタスクが成功するためには、LLMのステップを予測する精度の問題と、実行できるためのパスを持っていることの方が重要である。

これは、実際の問題について検討してみると分かる。例えば、弁護士用のエージェントを作成しようと考える。
LLMに買収案件の検討を実行をエージェントについて頼んだ場合、一般的なステップは類推することは出来るが、その弁護士事務所のやり方(ファイルをどこに保存しているかや、情報の整理の仕方)、その案件に依存したやり方というものは類推することが出来ない。これを調整するために、条件を作成する際にそれらの要素を十分に考慮に入れさせる必要がある。

また、より強力な方法でエージェントとして成立させるには、複数のワークフローを先に作り、エージェントがそのワークフローを成立ための条件を理解し利用することが出来る状態である。良質なワークフローを複数作っておくことは、安定した道をいくつか先に用意しておくことである。

良質なワークフローとは、実用性がある、汎用性がある、エラーが起きた際に原因が明確にわかる等が上げられる。

AIワークフロー

ここまで、ワークフローという言葉を使っているが、このワークフローはAIを使うものと使わないものの両方が存在している。

AIワークフローは、単純にAIをワークフロー内で利用しているだけでなく、AIそのものがフレームの中にあることで単純なLLM以上の機能を有している。

ワークフロー内にAIを使う場合以下のようなパターンがある。

①直列にLLM繋ぎ合わせる
②並列に行わせLLMの結果を集約する
③LLMを分岐に利用する
④LLMがタスクを分類しタスク毎にLLMを割り当てる
⑤LLMによる評価とLLMのタスクを行うイテレーションを回す

上記の5つのAIワークフローは特定のタスクに対して、単純なプロンプトよりも、圧倒的に複雑なタスクを行うことが出きる。これは、LLMの質の向上とともに量の問題も解決する。

AIワークフローを利用して様々なプロダクトが作られている。例えは、コーディングをサポートを行うエディター、複数のファイルを作成するノーコードシステム構築ツール、より深い検索を行うことが出来るAI検索ツール等だ。

AIを業務の一部に取り入れている人はこうしたワークフローにUIがついたものを利用している場合が多いのではないか。

最後に

LLMが細胞であるならば、AIワークフローは組織のようなもの、AIエージェントはさらにそれらを集合させた器官のような存在であるようにとらえられるのではないだろうか

jinbaflowはエージェントを作成するにあたり、必要となるワークフローを正確に作ることが出来る基盤であること。さらにその集合であるエージェントを個人が自由に作る基盤であることを目指していく


いいなと思ったら応援しよう!