この記事で Harrison Chase は、LangChain が保守するオープンソースパッケージについて自身が使い始めていた用語を説明している。LangChain は エージェントフレームワーク、LangGraph は エージェントランタイム、そして Deep Agents は エージェントハーネス である。Chase は、他の人々も明確な共通の定義がないまま同じ用語を使っていることに気づき、この記事をその定義を示す試みとして提示している。ただし、曖昧さや重なりは残っていると冒頭で断り、フィードバックを募っている。

記事は短く、意図的に暫定的なものである。その意義は個々の定義よりも、記事が提案する階層構造にある。すなわち、ランタイムはフレームワークの下で本番環境向けのインフラを提供し、ハーネスはフレームワークの上に、意見の入った、必要なものがひととおり揃った(batteries-included)デフォルトを加える、という構造である。

要点

  • Chase の説明によれば、LLM を使って構築するためのパッケージの大半はエージェントフレームワークであり、その主な価値は抽象化にある。抽象化は、使い始めやすくするメンタルモデルとなり、開発者にプロジェクトを構築したりプロジェクト間を移動したりするための標準的な方法を与える。Chase は、抽象化に対する根強い不満、つまり抽象化の出来が悪いと内部の仕組みが見えにくくなり、高度なユースケースに対する柔軟性に欠けるという不満も記している。
  • Chase は、その他のエージェントフレームワークとして Vercel の AI SDK、CrewAI、OpenAI Agents SDK、Google ADK、LlamaIndex を挙げ、LangChain 1.0 の作業は構造化されたコンテンツブロック、エージェントループ、ミドルウェアのための抽象化に注がれたと述べている。
  • 記事の用語でいうエージェントランタイムは、エージェントを本番環境で動かすためのインフラレベルの考慮事項を提供する。中心となるのは耐久実行だが、ストリーミング、ヒューマン・イン・ザ・ループのサポート、スレッドレベルおよびスレッド横断の永続化も含まれる。Chase は、この点で LangGraph に最も近いプロジェクトとして、Temporal、Inngest、その他の耐久実行エンジンを挙げている。
  • ランタイムは一般にフレームワークよりも低レベルであり、フレームワークを動かす基盤になりうると説明される。記事の例では、LangChain 1.0 は LangGraph の上に構築されている。
  • エージェントハーネスはフレームワークよりも上位に位置する。Deep Agents は LangChain の上に構築され、デフォルトのプロンプト、ツール呼び出しの意見の入った扱い方、計画ツール、ファイルシステムへのアクセスを加える。いわば「バッテリー同梱」である。
  • 記事はまた、Deep Agents を「Claude Code の汎用版」と表現し、Claude Code 自体も Claude Agent SDK を通じてエージェントハーネスへと向かいつつあると指摘したうえで、あらゆるコーディング CLI がある種のエージェントハーネスだと論じることもできるだろうと示唆している。
  • Chase は、「エージェントハーネス」という言葉を自分が作ったわけではないと述べ、この言葉がより多く使われるのを見かけ始めたばかりだとしている。
  • 境界は曖昧だとされる。LangGraph は「おそらくランタイムでもありフレームワークでもあると表現するのが最も適切」だという。

背景

著者はこれを、確立した分類体系ではなく、黎明期の分野におけるメンタルモデルの最初の試みとして提示しており、各カテゴリーは著者自身の会社のパッケージで例示されている。この分類は著者の提案であって、合意された定義ではない。記事には、それぞれの種類のパッケージをいつ使うべきかをまとめた比較が画像として含まれているが、その内容は本文には再掲されていない。