AIエージェント向けインフラサービスいろいろ
以下の記事が面白かった。
ざっくりまとめ
- GenAIアプリの普及は加速しているが、多くは既存のプラットフォームインフラスタックに乗っている
- AIエージェントへの注目が高まると同時に、求められるインフラのあり方も変わる
という話。
ここでいう「インフラ」というのは、AWSとかAzureとかオンプレみたいな言葉通りの意味ではなく、AIエージェントの「開発」「運用」に必要な「機能」という意味合いのように思える。
これまでのAIエージェントインフラ
referred from https://www.madrona.com/the-rise-of-ai-agent-infrastructure/
増えつつあるAIエージェントインフラ
referred from https://www.madrona.com/the-rise-of-ai-agent-infrastructure/
知らないものがたくさんある。。。
どういうものがあるのかを見ていきたい。試せるものは試してみたい。
上の図の「下」から見ていくほうがなんとなくわかりやすそうな気がしたので順番に見ていく。
クラウドサービスで提供されているものなんかはすぐに試せないものもあるので、YouTubeに公開されている動画などもあわせて紹介。
PLATFORM
Agent hosting
作成したエージェントを公開するためのホスティングサービス。エージェントそのものもあれば、エージェントの一部というものもある。
LangServe
LangServeは2つの意味がある。
- LangChainで作ったアプリをAPI化するためのライブラリ
- 上記を使ったホスティングサービス(今後提供予定らしい)
どちらもLangChainによる提供。自分はLangServeを使ったことがないのであまりよくわかってないのだけども、どちらにせよ作成したエージェントの公開が目的になる。
とりあえずLangServe~~触ったことないので一度触ってみる予定。~~試してみた。
E2B
E2Bはサンドボックス環境、具体的にはCode Interpreterで使用するコード実行環境を用意してくれるサービス。
エージェントにコードを実行させる場合、ローカルでやってしまうと環境が維持できなくなる。そこで、Dockerのようなコンテナを用意して、ライブラリ等の環境を構築して、コードを実行して、要らなくなったら消す、ということがシンプルにできるホスティング+インタフェースが必要になる。
以前どっかで聞いたことあるなと思っていたのだけど、ChatGPTのCode Interpreterは正攻法だとライブラリのインストールとか外部への通信ができないので、そういうができる環境を使えるプラグインが提供されていた。E2Bはこれの開発元。
SDKが用意されていて簡単にサンドボックスの作成・削除ができる。
またこれらを使ったCode Intepreterを実現するためのSDKも用意されている。サンプルも色々用意されている。
これらはE2Bのクラウドサービス利用が前提となっているが、一応全てセルフで動かすためのインフラ構築用レポジトリも公開されている。GCPでやっている様子。
griptape
griptapeは、オープンソースのLLMエージェント・ワークフロー向けフレームワーク。なので、このあとのフレームワークやオーケストレーションの項にもリストアップされているのだけども、作成したアプリケーションをデプロイできるクラウドサービスも用意している、ということで、ここにも挙がっている様子。
クラウドサービスとしては、完全従量制っぽい。
アカウント作ってみたのだけども、支払い設定が必須みたいで、それをしないと先に進めなかった。
フレームワークとしては結構できることの幅は広そうで、ちょっと気になっているので以下で試してみる予定。
Ollama
Ollamaは、いわゆるローカルモデルを簡単に動かすためのツール。ローカルモデルには多数の種類があり、これらを手軽に利用できる。
エージェントという観点だと、基本的に高いモデル性能が求められると思うので、ローカルモデルではどうか?という気はするのだけども、コード生成といった特定の領域に特化したものや、独自にチューニングしたものなどを利用するなど、エージェントに与える1つのツール的な利用では使えそうな気もする。
試してみた。
Framework
LangChainやLlamaIndexに代表される、LLMアプリ・エージェント作成用フレームワーク。当然ながらエージェント向け、というところがキーになる。
LangChain
言うまでもないので省略。
LlamaIndex
言うまでもないので省略。
Semantic Kernel
マイクロソフトが公開しているオープンソースのフレームワーク。最初に公開された時に少しだけ見てみたけど、今はだいぶ変わっている様子。以下の記事。
Semantic Kernel とは Microsoft の提唱する Copilot Stack の AI orchestration 部分を作成するために作られたライブラリです。
個人的な主観になりますが Semantic Kernel の使い方には、以下のような 3 通りの使い方があります。
- 簡易的に OpenAI の API を呼び出すために使う
- テンプレート エンジンを兼ね備えた OpenAI を呼び出すための便利ライブラリとして使う
- プラグインを使って AI にある程度自発的に問題解決をしてもらうエージェントっぽく使う
下に行くほど、Semantic Kernel の機能を使いこなしていると思います。ただ、1 の使い方だけでも地味に便利ではあるので、まずは 1 から始めてみましょう。
というところでエージェント向けの機能が強化されているのだろうと思われる。
griptape
"Agent hosting"でも出てきたので省略。
Agent Evaluation
エージェント専用の評価ツール。LLMの評価ツールは色々増えてきた感はあるが、エージェントの場合は、LLMとのインタラクションが増えて、何を持ってセッションとするのか、みたいなところも含めて複雑になるのではないかと思う。
AgentOps
エージェント向け評価ツールを提供するクラウドサービス。簡単にインテグレーションできて、エージェントの複雑なセッションの内容をドリルダウンできたり、それをステップバイステップでリプレイできたりするらしい。
以前にcrewAIを試してみたときに、AgentOpsを(試験的?に)サポートしているようなので、少し試してみたけど、うまくいかなかった。どっちの問題なのかはちょっとわからないが、リプレイってのはちょっと良さそうに思える。
context
ロギングとかトレースとかというよりは、ユーザの入力内容やAIのレスポンスのテキストを解釈して、ユーザの意図をカテゴライズしてどういう内容が多いのか、AIが適切な回答をしているのか、ユーザがそれに対して不満を感じていないか、などを評価するサービスのように思える。どっちかというとフィードバック的な意味合いが強い感がある。
なるほど、"context"というのはそういうことね。テキストの解釈にもLLMが使用されている様子。これちょっとおもしろい。
動画がわかりやすい。
試した。
LangSmith
LangChainが提供しているLLMアプリ向けモニタリング・トレーシングのクラウドサービス。LangChainで作成したアプリケーションだと、環境変数を指定するだけで簡単にインテグレーションできる、そして開発元が提供しているってのが最大の強み。
その点で考えるならば、実際には試してないけど、エージェントにも対応しているのだろうと推測。
Braintrust
これ図中のアイコンを見る限りはこのサービスだと思うのだけども、
どうやらAIを使った人材リクルートのマッチングサービスのように思えて「評価ツール」的な情報とリンクしない。
で調べてみたら、同名で評価ツールを提供しているところがあった。
ロゴが違うのでおそらく図が間違っているのではないかな?と思うのだけども、この2社の関連性までは調べていないので知らない。
ドキュメントを雑に見てみた感じだと、エージェントという観点で特化したような情報は見つけられなかった(探し方が足りない可能性はある)。トレーシングの単位は細かく設定できるようなのでまあできるのだろうとは思う。使い方としてはSDKでラップするか、LiteLLM的なAPIプロキシを提供しているのでそれを通すという感じ。
Langfuse
オープンソースのLLMアプリのモニタリング・トレーシングツール。クラウドサービスも提供している。エージェントでは試していないが、以前に試してみた限りではとても機能豊富で使いやすいと感じた。
WHYLABS
見てみた感じ、LLMエージェント専用というよりも、MLOps全般のモニタリングサービスというように思える。なので監視みたいなこともできるようだし、ダッシュボードも非常に高機能な様子。その意味ではエージェントみたいなユースケースにも対応できるのだろうと推測する。
Developer Tools
エージェントを開発するためのツールという面と、開発ツールにエージェントが使用されているという面の両方がありそう。
morph(a.k.a Rift?)
オープンソースのGithub Copilotという感じ。チャットもできるし、コードの自動生成・修正なんかもできる。ただ更新が止まっている感がある。。。。
Flowplay AI
エージェント開発のためのクラウドIDEサービスという感じ。クローズドβなので試せないけども、ワークフローを作成・設定・チャットで確認、みたいな感じに見える。簡単にデプロイできるクラウドサービスも提供されているっぽい。
WORDWARE
プロンプトを簡単に作れるIDEを提供するクラウドサービス。プロンプトのシンプルなテンプレーティングはもちろん、If〜Elseのような分岐処理や、イテレーションなどのロジカルな処理を、Notionっぽいシンプルなエディターで書いて、APIから呼び出せる様子。
MEMORY
ここでいうメモリーは、会話履歴だけでなく、RAGで使うようなコンテキストも含まれる。
エージェントに複数のタスクを行わせる場合、コンテキストや会話履歴を共有メモリとして持たせることが重要になる。さらにそれらを進めて、ユーザごとによりパーソナライズな形で提供するというようなものも増えている。
Personalization
WhyHowAI
細かいカスタマイズが可能なナレッジグラフで、RAGのコンテキストデータを提供するというサービス。
複数の小さなナレッジグラフを組み合わせたり、ルールベースでretrievalにルールを設けたり、ナレッジグラフとベクトル検索のハイブリッド検索などがAPI経由で利用できるように見える。
クローズドβのみ。
cognee
こちらもナレッジグラフを使った、オープンソースのretrievalライブラリ。ナレッジグラフって個人的にはシンプルなクエリだとうまくいかず、マルチホップとかの複雑なクエリの場合に向いているという印象がある。そういう意味では複雑な処理を行うエージェントには向いているのかもしれない。
Graphlit
RAGのコンテキスト向けETLサービスって感じかな?retrieval+generationをGraphQLのAPIで提供しているのでGraphlitってことっぽい。ドキュメントにもあるけど"RAG-as-a-Service"と言えるのかもしれない。
LangMem
LangChainが提供しているサービス(ただしベータ的な感じっぽい)。
LangChainの標準的な会話履歴用メモリを短期記憶として使用するのにくわえて、LangMemを使うと長期記憶的な使い方ができるというもの。
で調べてみたら、どっかのハッカソン向けに自分で再実装した人がいた。MongoDB Atlras使ってる。
MemGPT
オープンソースのメモリライブラリ。会話のインタラクションから、ユーザの情報を複数あるメモリを使いわけて、短期・長期記憶を実現するというもの。意図的にこの情報をのこす、みたいなことを意識しなくても自動でやってくれるってのがまたエージェント的だった印象。
以前試した記事
Storage
メモリを保存するための、いわゆるベクトルストア。ここは過去に色々記事を書いたりしているので詳細は割愛。
Pinecone
Serverlessが出来たのでコスト的にも試しやすくなった。
Weaviate
Weaviateはいろんな機能を一通り試した記事を書いているのでそちらもどうぞ(全12回)
Chroma
MongoDB
Context
Unstructured
PDFやOffice系ドキュメント、画像など、あらゆる非構造化データを読み込んで使えるようにするというオープンソースのライブラリ。
非常に多くのフォーマットに対応していると同時に、LangChainやLlamaIndexなどの主要なフレームワークでもインテグレーションされている。
PLANNING AND ORCHESTRATION
エージェントのキモだと思う、タスクプランニングやオーケストレーション。主にフレームワーク周りのサービスやツールが多い。
Persistence
いわゆるタスクキュー関連のサービスやツール。エージェントのタスクやワークフローにおいて、ツールの実行状況やステート管理を容易にするもの。ここは試してみないと細かい差がわからなそうなので割愛。
Ingeest
hatchet
Trigger.dev
Temporal
Orchestration
オーケストレーションというかフレームワークかな
DSPy
DSPyについては、自分はプロンプトを自動で改善するフレームワークという認識なのだけども、自動で試行錯誤をするという点においてはエージェント的なのかもしれない。
試した記事
AutoGen
マイクロソフトが公開しているマルチエージェント用フレームワーク。ステートマシンで実装されることが多いと思うのだけども、これをエージェント間会話でやりとりするという、直感的な仕組みになっているのが特徴。
試した記事
griptape
"PLATFORM - Agent hosting"でも出てきたので省略。
Sema4.ai
AIエージェントを作成できるクラウドサービスというところ?どうもLangChainとOllamaを使って作られているらしい。
実際に動いている動画
LangGraph
LangChainが提供しているエージェント用フレームワーク。ステートマシンやグラフを使って状態・処理の流れを定義する。DAGと違ってループやイテレーションができるというのがLCELとの違い。
試した記事。
crewAI
オープンソースのマルチエージェントフレームワーク。複数の異なる個性を持つエージェントを組織構造的に配置して、タスクの分散実行、結果の集約などを行う。
試した記事
fixpoint
マルチエージェントが作成できるサービス?Waitlistのみで、ちょっと情報がない。。。
Action
エージェントの実際のアクションに関連するもの。ツールの実行に直接関わるものから、エージェントのフロントエンドなども。
Presentation
いわゆる見せ方の部分。
Agentlabs
自分で作成したエージェントに、チャットUIのフロントエンドを認証付きで提供するというオープンソースのライブラリ。クラウドサービス提供とセルフホストの両方が可能。
Tool Usage
Tool/Function Callingに対応したモデルやフレームワーク。ここは詳細割愛。
OpenAI
試した記事
ANTHROP\C
試した記事
cohere
試した記事
LangChain
Auth
認証に関連するサービスやツール。
ANON
ユーザの認証が必要なツールの場合、エージェント実行時にユーザの認証情報の入力プロセスをシームレスに組み込む、ようなサービスのように思える。見た感じ、認証部分はChrome拡張で行っていて、インテグレーションは公式にサポートしたものに限られる様子。
Mindware
対応している外部サービスのAPI認証情報を登録しておけば、API経由でツール呼び出しができるというものに思える。プライベートなAPIなどもできる様子。ただ、対応しているサービスは一部のみしか書かれておらず全サービスのリストは見つからなかった。
今のところはChatGPTプラグイン+AutoGPTのみに対応していて、AutoGenにも対応予定の様子。
Statics AI
これは全く情報が見当たらない。。。
Clerk
LLMアプリケーションに限らず、ユーザ認証とユーザ管理機能を提供するサービス。ボットや悪用などのセキュリティ的な対策に力を入れているような印象を持った。
Agent as a Service - UI Automation
UIを自動的に操作するようなサービス、になるのかな?具体的にはブラウザの自動操作的なイメージ。
TINY FISH
waitlistのみとなっており、詳細がよくわからないのだけども、AgentQLという、Webサイトをシンプルなクエリで参照・ヘッドレスブラウザとして操作するようなライブラリをオープンソースで公開している。
Reworked
こちらもwaitlistのみ。こちらもWebのデータを収集するというのがウリ。GitHubを見るといくつかのライブラリと実装サンプルがある様子。
basepilot
エージェント的なワークフローを定義してそれをブラウザ内で実行する、というようなものに思える。以下のサンプルでは
サンプルとしてLinkedInでリクルートしたい人を探して、HubSpotに登録する、というようなフローが紹介されている
Superagent
ドキュメント等を見る限り、オープンソースのエージェント用フレームワークのように思える。デモには何らかのUIがついているみたいなんだけど、UI周りの情報は探せなかった。クラウドサービスも提供していて、フレームワークとしては一通りの機能はほぼカバーされているように思える。・
ちょっと面白いなと思ったのはエージェントの各種設定をYAMLっぽいマークアップで定義できるところ。
Browse AI
Webのデータを収集するためのスクレイピングをサービスとして提供している様子。インテグレーションされているデータ収集先が非常に多いように思える。
Induced
同じく、Webのデータを収集するためのスクレイピングサービス。ノーコードで、実際のブラウザ操作を記録して、あとで呼び出して使えたりするみたい。
Firecrawl
Webサイトをクロールして、JSONやMarkdownなどLLMで使いやすいデータに変換するサービス。
オフィシャルではないけども以下で紹介されている。
Jina.aiのReader APIと似たような感じかな?
Aget as a Service - Tool Selection
Tool/Funtion Callingをより使いやすくするようなサービス。
NPi AI
Tool useをAPIで提供するオープンソースのライブラリ。例えば、GitHubやGmail、Slackなど、サポートしているツールに対して、Tool/Function Callingなどを設定しなくても、シンプルに自然言語で使えるというものみたい。
以下にサンプルがあって、GitHubのレポジトリのissueにコメント書いたり、スターつけたり、forkしたり、などの例がある。
Imprompt
いろいろなAPIをImpromptのサーバを介してアクセスすることで、自然言語とAPIの変換を行ってくれるというものみたい。
Browser Infrastruture
UI Automationはブラウザの操作、でこちらはそのブラウザ実行インフラ環境を提供してAPIでアクセスできる、というようなサービス。ここも詳細は割愛。
Browserbase
browserless
そういえばこれだけは昔試したことがあった。
APIFY
Cloudflare
brightdata
platform.sh
APPS
エージェントなアプリ。ざっくり以下の2つのパターンがあるように思える。
- エージェントを作成・利用できるプラットフォーム
- 何かしらのドメインや業務等に特化したエージェント的なアプリケーション
リストアップされているものは1に相当する汎用的なプラットフォームが多い印象、なのでこちらは割愛して、2の方については少しコメントを記載する。
Agentic Applications
airops
Cognition
DUST
Gradial
マーケティング業務に特化したエージェントを提供するサービス。コンテンツ作成や解析、マーケティングキャンペーンの管理などを行えるらしい。
Cognosys
FIXIE
人間と同じような自然なコミュニケーションというのを目指したエージェントを提供しているのかな?そのテーマに沿って、エージェント以外にも以下のようなサービスやライブラリを提供しているっぽい。
マルチモーダルモデル
仮想世界で複数のエージェントが生活するアプリ
continua
ちょっと情報がなくてわからないけども、パーソナルなエージェント作成プラットフォーム?なのかな?
MultiOn
tektonic ai
セールス・レベニュー業務に特化したエージェントを提供している。
Perplexity
Perplexityあまり使っていないのだけども、より検索・収集に特化したChatGPTという印象がある。
Ema
Matrices
スプレッドシートに自然言語でクエリを行うと、行・列・タイトルなどから推測して、様々な情報を収集してデータを埋めてくれるというもの。トップページのイメージを見るのがわかりやすい。実際にはこの裏でエージェントが複数動作して、Web検索などを行って、データを入力するらしい。
まとめ
色々なサービスやツールが紹介されていてとても興味深い内容だった。個人的には、エージェントを構築できるプラットフォームが既に多数あるということに驚いた。頑張ってキャッチアップしていかないと。
いくつかOSSで利用できるものもあったので少し試してみる予定。