LangChain、自律型エージェントとシミュレーションの最新動向を解説
本文の状態
日本語全文を表示中
詳細モードで約13分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
LangChain Blog
LangChain Blog は過去2週間で急増した自律型エージェントプロジェクトを分析し、長期目標を持つ自律型エージェントと複数エージェントのシミュレーションという2つの主要なカテゴリに分類して解説する。
AI深層分析を開く2026年8月27日 00:00
AI深層分析
キーポイント
自律型エージェントの特徴
BabyAGI や AutoGPT に代表される自律型エージェントは、長期目標を達成するために新しい計画手法とメモリ使用法を必要とする点に独自性がある。
エージェントシミュレーションの特性
CAMEL や Generative Agents に代表されるエージェントシミュレーションプロジェクトは、複数のエージェント間の相互作用や社会構造の模倣に焦点を当てている。
LangChain による実装と統合
LangChain コミュニティはこれらの主要プロジェクトの機能を調査し、その一部を LangChain フレームワーク内に実装して統合している。
LangChainフレームワークによる実装の利点
LLMプロバイダーやベクトルストアプロバイダーの切り替えが容易になり、LangChainのツール群およびエコシステム全体との接続が可能になる。
エージェントの定義と構成要素
エージェントは言語モデルを推論エンジンとして用い、ツールとメモリという2つの主要なコンポーネントに接続する概念である。
重要な引用
The "autonomous agents" projects (BabyAGI, AutoGPT) are largely novel in their long-term objectives, which necessitate new types of planning techniques and a different use of memory.
The "agent simulation" projects (CAMEL, Generative Agents) are largely novel
Tools help connect the LLM to other sources of data or computation.
Memory helps the agent remember previous interactions.
編集コメントを表示
編集コメント
本記事は、乱立する自律型エージェントプロジェクトの整理整頓に寄与しており、開発者が技術選定を行う際の重要な指針となる。特に長期目標達成とシミュレーションという2つの異なる方向性を明確に区別している点が価値が高い。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
ここ2週間で、LLM をエージェントとして活用する動きが急激に拡大しています。具体的には、AutoGPT、BabyAGI、CAMEL、そして Generative Agents といったプロジェクトが相次いで登場しました。現在、LangChain コミュニティでは、これらすべてのプロジェクトの主要な機能を LangChain フレームワーク内で実装し始めています。
これらのプロジェクトを調査・実装する過程で、私たちは各プロジェクトの違いや独自の特徴について理解を深めるよう努めてきました。この記事は、その学習成果を解説したものです。
※本記事はある程度技術的な内容を含みます。LangChain や関連プロジェクトにある程度の知識があることを前提としています。もしこれらのプロジェクトに詳しくない場合は、Sophia Yang 氏による 入門向けの記事 を先に読むと理解が深まるでしょう。
TL;DR:
「自律型エージェント」プロジェクト(BabyAGI、AutoGPT など)は、長期目標の達成において大きく新規性を持ち、これには新しい計画手法と記憶の使い方が必要となります。
一方、「エージェントシミュレーション」プロジェクト(CAMEL、Generative Agents など)は、イベントに応じて反応し適応するシミュレーション環境と長期記憶において独自性を示しています。
ここでは、各プロジェクトのうち LangChain フレームワークで再現した部分とその選定理由について解説します。LangChain で実装することによる主な利点は以下の通りです。
- LLM プロバイダーの切り替えが容易になる
- ベクトルストアプロバイダー(または代替検索手法)の切り替えが容易になる
- LangChain が提供する ツール 群との連携が可能になる
- 一般的な LangChain エコシステム全体との接続性が確保される
背景
まず、背景から説明しましょう。ここで言う「エージェント」とは何か、なぜ重要なのかについてです。本稿では LangChain の用語体系を使いますが、この分野はまだ非常に新しく、確立された標準的な用語が存在しないことも付記しておきます。
一般的に「エージェント」とは、言語モデルを推論エンジンとして活用し、それを「ツール」と「メモリ」の 2 つの主要コンポーネントと連携させる概念を指します。
ツールは、LLM を他のデータソースや計算リソースへ接続する役割を果たします。具体例としては、検索エンジン、API、その他のデータベースなどが挙げられます。LLM は学習時に得た知識しか持っていないため、この知識がすぐに陳腐化してしまうという課題があります。これを克服するため、ツールを用いて最新データを取得し、プロンプトのコンテキストとして挿入することが可能です。また、ツールはコードの実行やファイルの修正といったアクションを実行することもでき、その結果を LLM が観察して次の行動決定に反映させることができます。
メモリは、エージェントが過去のやり取りを記憶することを可能にします。これらのやり取りは、他のエンティティ(人間や他エージェント)との間で行われるものでも、ツールとの間で行われるものであっても構いません。記憶には短期記憶(例えば直近 5 回のツール使用履歴など)と長期記憶(現在の状況に最も類似した過去のツール使用事例など)の 2 つがあります。
LangChain において、「エージェント」とは、取るべきアクションを決定する LLM を指し、「ツール」はそのエージェントが実行可能なアクションです。「メモリ」は過去のイベントを引き出す行為を意味し、「AgentExecutor」は停止条件を満たすまで while ループ内でエージェントを実行するためのロジックを担います。
LangChain で一般的に想定されるエージェントは、2022 年 11 月に Yao らが提案した Reasoning and Acting (ReAct) フレームワーク をベースにしています。このアプローチの特徴的なアルゴリズムは以下の通りです。
- ユーザーがエージェントにタスクを指示する
- 思考: エージェントは何をするべきか「考える」
- アクション/入力: エージェントが実行すべきアクション(つまり使用するツール)とその入力を決定する
- 観測: ツールの出力結果
- エージェントが完了したと判断するまで、2〜4 の手順を繰り返す
他の実装やフレームワークについて議論する際は、このアルゴリズムと比較しながら説明します。
AutoGPT
リンク:
このプロジェクトの独自性とは何でしょうか?
AutoGPT プロジェクトと従来の LangChain エージェントの主な違いは、それぞれの目的が異なることに起因します。AutoGPT では目標がよりオープンエンドで、実行期間も長くなる傾向があります。このため、AutoGPT は従来の AgentExecutor やメモリ管理方式とは異なり、長期タスクに最適化された独自の仕組みを採用しています。
以前、LangChain におけるエージェントの記憶には主に 2 つの種類がありました。
- エージェントの手順に関する記憶:これは、そのタスクに関連する中間ステップをリストとして保持し、LLM(大規模言語モデル)への呼び出し時にその完全なリストを渡すことで実現されていました。
- システムに関する記憶:こちらは最終的な入力と出力のみを記憶し、中間の処理ステップについては忘却していました。
AutoGPT は長期実行を前提としているため、すべての中間ステップを LLM 呼び出しに含めて渡すことは現実的ではありません。そこで AutoGPT では、中間ステップを対象とした検索ベースのメモリ機能を追加しました。内部では、この検索ベースのメモリがベクトルストア(VectorStore)を用いて埋め込み表現に対して意味的な検索を行っています。
なお、LangChain にも同様の検索ベースのメモリ機能は存在しますが、これまで適用されてきたのはユーザーとエージェントの対話に限られており、agent-tool との相互作用には用いられていませんでした。
この機能をどのように LangChain に組み込んだのでしょうか?
この機能は langchain.experimental に追加されました。ここでは、適切な抽象化を確立するまでの間、より実験的かつ新しいコードを蓄積しています。具体的には、プロンプトテンプレート化のロジックとエージェントを実行するための while ループを実装しました。これにより、LangChain の LLM ラッパー、ベクトルストア、ツールとの互換性を確保しています。
また、使用方法を示すノートブックも作成しました。
BabyAGI
リンク:
このプロジェクトの独自性とは?
BabyAGI は、従来の LangChain エージェントと以下の点で異なります。
- AutoGPT と同様に、中間のエージェント・ツールステップに対して検索ベースのメモリを適用します。
- 計画と実行のステップが分離されており、一度に一連の行動を計画します(次のアクションだけを計画するのではなく)。
AutoGPTと同様、BabyAGI はより長時間実行されるタスクを対象として設計されているため、これらの違いが生じています。
2 点目の違いについて詳しく説明しましょう。これは最も重要で本質的な相違点の一つです。
従来の LangChain エージェントフレームワーク(および AutoGPT フレームワーク)では、エージェントは一度に 1 ステップ先しか考えません。現在の世界の状態に基づいて「次の行動は何すべきか」を考え、その行動を実行するだけです。
一方、BabyAGI は明示的に一連の行動を計画します。そして最初の行動を実行し、その結果を使って再度計画を立て、タスクリストを更新します。このアプローチにより、計画ステップを状態追跡システムとして活用することで、より複雑で多段階なタスクでも高い精度で実行できると考えています。経験則ではあるものの、多くの手順が必要なタスクにおいて、従来の LangChain エージェントは数ステップ進むと当初の目的を見失うことがあるため、事前にすべてのステップを計画しておく方が有益であることが観察されています。
LangChain にどのように組み込んだのか?
AutoGPT と同様に、この機能は langchain.experimental として追加されました。具体的には、使用されるプロンプトテンプレート化のロジックと、エージェントを実行するための while ループを実装しています。また、LangChain の LLM ラッパー、ベクトルストア、ツールとの互換性も確保されています。
Camel
リンク:
【オリジナル論文】(https://arxiv.org/abs/2303.17760)
【リポジトリ】(https://github.com/lightaime/camel?ref=blog.langchain.com)
【LangChain 実装例】(https://python.langchain.com/docs/use_cases/agent_simulations/camel_role_playing?ref=blog.langchain.com)
このプロジェクトの独自性とは?
本プロジェクトの最大の革新性は、それぞれに個性を持つ 2 つのエージェントを対話させる点にあります。ここには 2 つの新しい要素が含まれています。
- 協調的な方法で 2 つのエージェントが相互作用するというアイデア
- それを実現する特定のシミュレーション環境
2 つのエージェントが相互作用するという発想自体は全く新しいものではありません。LangChain のモジュール型という性質上、私たちは長年「エージェントが他のエージェントをツールとして利用する」アプローチを支持してきました。
しかし、今回のような相互作用の独自性は、2 つのエージェントが対等な立場にある点にあります。これまでの LangChain 実装では、常に一方のエージェントが他方をツールとして呼び出すという、「スタッキング(stacking)」方式(参考)でした。どちらのエージェントも他方をツールとして使わず、対等な立場で置くという発想は、進化していく振る舞いを見てみたいという興味を強くそそります。
これらのエージェントは、それぞれ利用可能なツールが異なり、特定の分野に特化していることもあります。例えば、コーディングに必要なツールを備えたエージェントと、線形処理などの対話に必要なツールを備えたエージェントを組み合わせることで、「スタッキング」効果(各エージェントが異なる役割を担当する仕組み)を実現可能です。
2 つ目の新要素は、この特定のシミュレーション環境です。これは双方向の会話形式であり、それほど複雑ではありませんが、研究環境におけるこのような実装としては初めてのものであると考えられます。
LangChain への組み込み方法について
LangChain では、このシミュレーション環境を反映したノートブックを追加しました。ここでは 2 つのエージェントが互いに会話する様子を再現しています。将来的には、このシミュレーション環境をより広く利用可能な製品として提供することも検討しています。
Generative Agents(生成型エージェント)
関連リンク:
このプロジェクトの独自性とは何でしょうか?
このプロジェクトには、2 つの新しい(かつかなり複雑な)側面があります。1 つ目はシミュレーション環境で、25 種類の異なるエージェントが構成されています。これは非常に具体的で複雑に見えるため、今回はこれについては深く掘り下げませんでした。
もう一つの画期的な点は、これらのエージェントのために作成された長期記憶です。
私たちは今週初めにこの点について詳しく取り上げました こちら。エージェントの記憶は、以下の要素で構成されています。
- 重要度評価ステップ:各観測データに重要度スコアを付与します。このスコアは後続の検索プロセスで使用され、特に重要な記憶のみを取得し、基本的な情報は除外するために活用されます。
- 省察ステップ:「一時停止」して、エージェントが学習した一般化について考えます。これらの省察結果は、通常の記憶と一緒に検索可能です。このステップにより、情報を凝縮したり、直近の記憶におけるパターンを観察したりできます。
- リトリーバー(検索機能):「新しさ」「状況への関連性」「重要度」を組み合わせる仕組みです。これにより、現在の状況に類似し、かつ直近で発生した重要な記憶を浮き彫りにすることが可能になります。これらの要素は、人間が記憶を呼び出す際に自然に行うプロセスをよく反映していると言えます。
これらすべての記憶コンポーネントは非常に画期的であり、私たちにとって極めて魅力的なものです。
これを LangChain にどのように組み込んだのでしょうか?
検索ロジックは汎用性が高いため、`TimeWeightedVectorStoreRetriever` として実装しました。
また、リフレクションステップと新しい検索機能を活用し、論文で記述された設定の一部を再現する方法を示す ノートブック も追加しています。
シミュレーション環境は複雑かつ汎用性に欠けるため、こちらについては特に手を加えていません。
結論
これらすべてのプロジェクトが注目を集めたのは当然のことです。私たちはこれらを以下の2つのカテゴリに分類しています。
- 自律型エージェント:計画能力の向上に焦点を当てたもの
- エージェントシミュレーション:新規性の高いシミュレーション環境と、複雑で進化する記憶機構を持つもの
LangChainエコシステムにおいてこれらのプロジェクトの一部の実装に取り掛かれたことを嬉しく思います。コミュニティの皆様がこれらを活用し、さらに発展させ、組み合わせる姿を楽しみにしています 🙂
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み