GraphAI

GraphAIは、LLM/RAG/WebAPI/データ分析/Code generator/Tools/DBなどの複数のAgentを組み合わせて作る、Multi agentsシステムを効率よく構築するためにフレームワークです。
Multi agentsも数個の単純な組み合わせであればプログラムで記述することは容易です。しかし、複雑な組み合わせて、並列実行やデータの依存関係がある場合、並列で動くMulti agentsを作ることは容易ではありません。
最適化を考えないで作れば作ることはできますが、それぞれの処理に数秒かかるAgentを多く組み合わせるとユーザへのアウトプットが極端に遅くなります。また、スケーラビリティや、サーバ、クライアントでの役割、Stream処理など、現在のAIシステムは様々な要求があります。
Agentを分散処理したり、途中でユーザとのinteractionがあると、サーバ、クライアントでシームレスな構成をするのも苦労します。
GraphAIはDifyやLangGraphで出来るようなことは一通り出来ますが、それに加えて
- Graph 構造で定義されたワークフロー(GraphData)と Agent の実装(TypeScript)が分離されているため、各 Agent はAgent単位で任意の環境(ローカル / ブラウザ / サーバー)で実行可能となる。
- Agentのlocal/serverでの呼び出しは、少し設定を変更するだけで簡単に変更できる。
- サーバー上の Agent は API 呼び出しによって動作するため、任意の言語で実装可能
- TypeScript(JavaScript)で実装しているGraphAIと、GraphAIのAgentは、サーバ、ブラウザで実行可能(ブラウザ、サーバの差異を埋める実装サンプルあり)
- ブラウザ上のみでGraphAI/Agentを実行可能なので、local llmと組み合わせて、外部と通信不要な閉じた環境でのAI処理が可能。
- オフラインでの実行や、外部に情報を出さないでAIを使うことが可能
- ワークフローの途中の任意の部分でユーザとのインタクション(Chat/ボタンによる選択など)を入れることが出来る
- Stream を透過的かつ容易に扱う仕組みが備わっている。
- Graph 構造で定義されたワークフローから、別のグラフ(サブグラフ)を呼び出せる
- サブグラフはAgentの動作結果として動的に作成して呼び出すことが可能
- Tools(Function calling)を使ったMCPのような仕組みを用意しており、Chatでブラウザ内のAPIを呼び出して、既存のWebサイトをAI化可能
- 複雑な非同期/並列処理とデータの依存関係を解決できる
- GraphAIを使うために様々なツールやサンプルが揃っている
といった特徴があります。
GraphAIで使うAgentは
- Agentは、それ単体で実装/テストができるので、開発しやすい
- Open Sourceで提供されているAgentを利用できる
です。