エージェントフレームワークとは、エージェントフレームワーク、ランタイム、ハーネス――なんてこった! が提案する分類において、LLM を使って構築するためのパッケージのうち、主な付加価値が抽象化にあるものを指す。この投稿を書いた Harrison Chase は、そうした抽象化が世界についてのメンタルモデルを表すものだと説明する。理想的には、抽象化によって着手が容易になり、また開発者にアプリケーションの標準的な構築方法が与えられるため、オンボーディングやプロジェクト間の移動が容易になる。彼は LLM を使って構築するためのパッケージの大半をこのように分類しており、LangChain 自身の例として LangChain を挙げ、並べて Vercel の AI SDK、CrewAI、OpenAI Agents SDK、Google の Agent Development Kit(ADK)、LlamaIndex を挙げている。

用法

この用語は、同じ投稿に登場する 2 つの隣接概念との対比によって定義されている。エージェントランタイム はフレームワークの下に位置し、耐久実行(durable execution)のような本番向けインフラを提供するもので、フレームワークを動かす基盤になりうる。LangChain 1.0 は LangGraph の上に構築されている。エージェントハーネス はその上に位置し、フレームワークの上にデフォルトのプロンプト、ツール呼び出しについての明確な方針を持った処理、計画用ツール、ファイルシステムへのアクセスを追加する。Chase は、これらの境界が曖昧であり、明確な定義はまだ存在しないことを強調している。たとえば LangGraph は、ランタイムともフレームワークとも呼ばれている。

このカテゴリーに向けられてきた定番の批判も、抽象化をめぐるものである。Chase は、出来の悪い抽象化は物事の仕組みを見えにくくし、高度なユースケースが必要とする柔軟性を与えない、という不満を記録している。LangChain の別の投稿 エージェントミドルウェア は、同じ問題をより具体的に述べている。モデル、プロンプト、ツールのリストからなるコアループを中心に構築されたフレームワークは、開発者にコンテキストエンジニアリングに対する十分な制御を与えないため、自明でないユースケースではいずれも、開発者は結局「抽象化から卒業する(graduating off of the abstraction)」ことになる、というのである。この投稿の答えは、ループを維持したまま、それを エージェントミドルウェア によって変更可能にすることである。

関連用語