LangChain でヒューマンインザループを実装する

ヒューマンインザループとは?

ヒューマンインザループ(Human-in-the-Loop)とは、AI エージェントのツール実行前に人間が確認できる仕組みです。
例えば、エージェントがファイルへの書き込みや SQL を実行する前に、人間に確認を求めることができます。問題なければ「承認」、内容を変えたければ「修正」、不要であれば「却下」という判断を人間が行います。

本記事では、ヒューマンインザループの概要を説明し、Python のサンプルプログラムを実装します。

LangChain によるヒューマンインザループ

さっそく LangChain でヒューマンインザループ機能を持ったエージェントを構築していきましょう。

OpenAIAnthropic などのAPIキーをあらかじめご準備ください。

実行には Python 3 の環境が必要です。Google Colab 等でお試しください。Google Colab でコマンドを実行する際は先頭に ! を付けて実行してください。

Python のバージョン

パッケージのインストール

利用したいモデルに応じてパッケージのインストールが必要です。ここでは OpenAI と Anthropic の場合を記載します。

OpenAI のモデルを利用する場合

Anthropic のモデルを利用する場合

パッケージのバージョンは次の通りです。

サンプルプログラム

チャットでエージェントを起動する CLI プログラムを実装します。エージェントはユーザー入力に基づいて、ツールの実行を提案します。

ツール実行の提案に対してユーザーが取れる行動は、承認(approve)、修正(edit)、却下(reject)のいずれかです。

    • 承認(approve) … ツールの実行を承認します。
    • 修正(edit) … ツール名や引数を修正して実行します。エージェントが提案したツールと引数が、期待していたものと異なる場合に選択できます。※ サンプルプログラムでは簡略化のため、ツールの引数のみ修正できるようにしています。
    • 却下(reject) … ツールの実行を却下します。却下理由をメッセージで伝えることもできます。

ソースコードは次の通りです。10 ~ 14 行目の YOUR_XXXX_API_KEY の箇所を、利用したいモデルの API キーに書き換えてください。

ポイントはソースコード上にコメントしてあります。

LangChain のドキュメントを参考にしております。

動作確認してみます。設定した通り、エージェントがツールを実行する前に確認が求められています。これでヒューマンインザループを実現することができました。

おわりに

LangChain のヒューマンインザループ機能を試してみました。AI エージェントを作成したいが、人間の判断を間に挟みたいというケースで手軽に実装できて便利です。

今回のサンプルプログラムでは、CLI からのチャット起点でエージェントを起動する方式でした。より実践的にする場合は、メールやファイル監視などのイベントをトリガーにエージェントを起動し、 Web UI から確認するといった構成も考えられます。これから AI エージェントを開発される方の参考になれば幸いです。

お問い合わせ先

執筆者プロフィール

Yamaguchi Tatsuya
Yamaguchi Tatsuyatdi デジタルイノベーション技術部
AWS上で使えるツールの開発やフロントエンドの調査、生成系AIの調査等を行っています。最近は AWS の CDK やサーバーレスに興味があります。

関連記事