2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アンビエントエージェントとHuman-in-the-Loop

Last updated at Posted at 2025-08-13

AIはチャット型だけじゃない――背後でいつも見守ってくれる「アンビエントエージェント」について解説する。

多くのAIアプリはチャットで入力するUXに依存しているが、人間のメッセージ送信がトリガーとなるため、人間には手間と負担がかかる。
チャット型のエージェントに対して、「アンビエントエージェント」とは、AIエージェントがイベントを監視し、それに応じて行動するというものである。

  • チャット型AI: 人間は1つのチャットしか同時にはできない
  • アンビエントエージェント: 複数のイベントにも対応してくれる能力を持つ

これはユーザーが話しかけなくても勝手に働いてくれる魅力的なエージェントである一方で、人間が適切に関与をしなければ、暴走してしまうかもしれない。それを適切にコントロールできるようにするため、人間が関わるHuman-in-the-loop (ヒューマン・イン・ザ・ループ) が重要になってくる。

本稿では、LangChain社の提唱するアンビエントエージェントを引用して学びつつ、彼らが提唱しているHuman-in-the-Loopのあり方についてまとめる。

主な出典:

アンビエントエージェント

アンビエントエージェントは、次のように定義されている。

アンビエントエージェントはイベントストリームを監視し、それに応じて行動する。複数のイベントに同時に対応することも可能である。
(Ambient agents listen to an event stream and act on it accordingly, potentially acting on multiple events at a time.) (出典: 記事)

Chat型のエージェントとの違いは次のように対比できる。

項目 チャットエージェント アンビエントエージェント
開始トリガー 人間のメッセージ イベント
同時実行数 1つまで 無制限
レイテンシ要件 高速である必要がある バックグラウンドで走るため時間がかかってもよい
主なUX チャットUI ダッシュボード(?)

「ダッシュボード(?)」となっている部分については、必ずこうでないといけないというUI/UXがあるわけではなく、人間との関わり方を設計しながら構築する必要があるという意味が込められている。

チャットエージェントはチャットボットという馴染み深い UI を持つが、バックグラウンドで動くエージェントとどう対話するかは課題だ。何らかの形でエージェントと対話することは依然として重要である。 (出典: YouTube)

アンビエントエージェントの例としては、届いたメールを監視して、自動で返信や予定調整をしてくれるメールエージェントが挙げられている。
メールエージェントの場合には、Agent Inboxという独自のUIで、通知や整理が管理できるように設計されている。

image.png

アンビエントエージェントの利点

上記の特徴から、大きな2つの利点がある。

  • 私たち人間側をスケールさせられる: チャットは1つのことしかできないのに対して、アンビエントエージェントはバックグラウンドで複数のエージェントを走らせることができる。これにより人間への影響力が大きくなる。
  • より複雑なオペレーションができる: 長時間をかけて複雑な複数ツール呼び出しができる。チャット型だと、たくさんのツールを呼び出すと時間がかかりすぎるため、単純な処理しかさせられない。アンビエントエージェントは、ステップを増やして、エージェント自体の複雑性を高めることもできる。

アンビエントエージェントは、シングルスレッドなチャットに縛られないため、複雑なことを複数走らせられる

Human-in-the-Loop

Human-in-the-Loopとは、人間との相互作用がシステムに含まれることを指す語である。
特にAIの分野では、AIのトレーニングや運用において人間の判断を組み込むことでシステムの信頼性や精度を向上させるアプローチを指す。

人間が介在することの重要性について、YouTube動画では3点が述べられている。

  • 結果の向上: 最初の指示だけで全部を進めるよりも、何度か質問ややりとりをして明確化することでいい結果が得られる。例えば、DeepResearch(※これは厳密にはアンビエントエージェントではないが、長時間動作するエージェントの例として述べられている)。
  • 信頼性が高まる: ユーザーが送金や承認などのアクションを行う場合には、人間も関わることで信頼性が高まる。
  • メモリの強化: 人間とのやりとりによって学習材料が生まれて、将来的によりよい動作をするための「メモリ」を作ることができる。

人間を介在させるHuman-in-the-Loopの設計には、結果・信頼性の向上や、メモリの強化の利点がある

Human-in-the-Loopでの人間の介入方法

適切にアンビエントエージェントの設計を行うためには、人間は「いつ」「どのように」やりとりすれば良いか? を検討する必要がある。

人間とAIが「いつ」やりとりするか

人間とのやりとりのパターンを分類すると、「通知」「質問」「レビュー」の3つがある。

パターン 説明 具体例(メールアシスタントの場合)
通知(Notify) 重要なイベントが発生したことをユーザーに知らせるが、エージェント自身はアクションを取らない 署名が必要な書類(Docusignなど)が届いたことを通知する。エージェント自体は署名しないが、ユーザーが把握できるようにする
質問(Question) エージェントが処理を進める上で情報の不足がある場合、ユーザーに質問して指示を仰ぐ 「この会議に参加しますか?」など、ユーザーの好みや判断が必要な場面で質問する。エージェントは勝手に決めず、ユーザーに確認する。
レビュー(Review) エージェントが実行しようとしているアクションを、承認するか、直接編集するか、エージェントに変更方法を直接フィードバックすることができる。 送信前のメールの内容をユーザーが確認し、承認・編集・修正指示を行う

「質問」はハルシネーション防止の観点でも重要だ。情報が不足しているまま進めるとハルシネーションを生んでしまうため、素直に「わかりません!」と聞いてくれるように仕込んでおく必要がある。

このように、「通知」「質問」「レビュー」の3つのタイミングで人間が介入することにより、エージェントの暴走を防ぎつつ、信頼性や使いやすさを高めている。

人間とAIが「どのように」やりとりするか

LangChain社がアンビエントエージェントを実験していく中で、最初はSlackを使った。利点は日常業務でSlackを使っていて、人間同士のコミュニケーションを一元化できる点であった。
しかし、欠点として、エージェントからの通知を見失いやすい点があった。通知に返信をしないと、どんどん溜まっていってしまう。
また、メッセージを送る以外のアクションがSlackでは行いづらかった。

これに対処するために、LangChainでは「Agent Inbox」を作って、アンビエントエージェントとやりとりするUXを作成した。
メールの受信箱とカスタマーサポートのチケットシステムを合わせたようなデザインになっている。
このUIの上で、ユーザーからのフィードバックをエージェントに伝えることができるようにしてある。

image.png

YouTubeではより詳細なアクションが整理されている。

Human-in-the-Loopアクション 説明
承認/却下 ツール呼び出しやアクションを承認または却下する
編集 提案されたアクションを編集してから実行させる
質問に回答 エージェントが詰まった時に質問に答える
タイムトラベル 過去の状態に戻り、介入して指示を与える

タイムトラベルは新しく面白いパターンだとして導入されている。ステップ数が100にものぼる場合があるため、10ステップ戻ってその時点に指示を与える、ということが有効なケースがある。

AIエージェントに人間が「いつ」「どのように」関わるかを設計するのが重要

様々なAIエージェントのHuman-in-the-Loopパターンを分解してみる

(本節は本稿著者による補足)

「承認/却下」は、CursorやGitHub Copilotのeditモードをイメージすると分かりやすい。AIエージェントが作ってきたコードに対して、そのままで採用とするか、却下するかを決めることができる。
これはアウトプットそのものに対する「承認/却下」であり、レベルとしては下位のものになる。

image.png

Claude Codeになるとさらに自律性が上がって、行動やアクションプランに対する承認・却下を求めてくる。

Claude Code
Do you want to proceed?
> 1. Yes
  2. Yes, and don't ask again for ___ commands in _____
  3. No, and tell Claude what to do differently (esc)

これは承認・却下だけでないグラデーションをよく表している。

  • 1: 承認
  • 2: 承認 + 以後同じ動作は自動承認する
  • 3: 却下 + 編集

ブラウザ操作も行うAIエージェントManusについては、「編集」に近いがより魅力的な「引き継ぐ (Take control)」という操作が導入されている。
これを押すと、AIエージェントが行っていたブラウザ操作を途中から人間が引き継ぐことができる。
逆も然りで、人間が途中まで行った動作の続きを、AIエージェントに行わせることもできる。

image.png

ChatGPTのエージェントモードにも似た機能で「ブラウザ操作を引き継ぐ」が導入されている。

image.png
例えば、ChatGPTが英語でばっかり検索しているので、日本語で検索させようと思ってそういう動作を人間が介入したら、その続きからAI側で行ってくれるようになった。
image.png

Manus・ChatGPTエージェントモードでは、AIエージェントが作業を行っている最中にも、チャットによって軌道修正を行うことができる。「あーちょっとそうじゃなくて、こうやって」というのをAIエージェントの動作をやり直すことなく、途中で介入できる。

これまでは、人間が指示を出す → AIエージェントがアクションプランを立てる → 人間が承認/却下を出す とステップを踏むようなプロセスであったのに対して、
Manus・ChatGPTエージェントモードになると、人間とAIのアクションが対等になり、境目もシームレスになってきている。

2025年8月段階でのこの状況を踏まえて、Human-in-the-Loopアクションに独自にいくつか足しておきたい。一部、既存のアクションとも重複があるが、より進化したアクションになっている。

Human-in-the-Loopアクション (つづき) 説明
権限委任 任せても大丈夫だと確信した動作を、以後は自動承認する
途中介入 (ちゃちゃ入れ) AIの作業中に、軌道修正指示を与える
AI→人間に引き継ぐ AIの作業を奪い取って人間が行う
人間→AIに引き継ぐ 人間が行った作業をAIに確認させて、続きを AIに行わせる

さて、ここまで取り上げた各種エージェントは、「アンビエント」なエージェントではない。
「アンビエント」にするためには、行動の起点についてトリガーを仕込む必要がある。

アンビエントエージェント(の初歩)を作ってみる

記事にあったメールアシスタントのエージェントが魅力的であったため、初歩的なものをn8nで構築してみた。
n8nは様々なツールを連携させて、ワークフローを組むことができるノーコード/ローコードツールである。n8nという名前は、ノードでオートメーションできるという意味の造語"nodemation" → "n + 8文字省略 + n"から来ているらしい。
※n8nの構築方法については別の方の記事に譲る。

n8nの利点として、豊富なテンプレートからコピーするだけで、自分で使い放題という点がある。
メールの自動化については、このようなものが見つかる。
Gmail AI Auto-Responder: Create Draft Replies to incoming emails

image.png

下記のようなワークフローになっている。

  • メールが届いたことをトリガーとして受け取ってワークフローがスタート
  • メッセージの内容を分析して、返信が必要か不要かを判断
    • 不要な場合 →終了
    • 必要な場合
      • メールに対する返信を作成
      • Gmailの下書きに保存する

下書きに保存するところまでで終わるため、人間が確認して返信を修正し送信するというところで、Human-in-the-Loopが担保される(かなり初歩的だが)。

元のエージェントを下書きに色々と調整して、このようなワークフローが組めた。

image.png

元の作成者のAgentに組み込まれていたプロンプトを元に、このようなプロンプトで調整を行った。

あなたは親切なパーソナルアシスタントです。あなたのタスクは、私の受信メールに対する返信案を私の代わりに作成することです。私がメールの本文を提供した場合、それに対して適切な返信案のみを返してください。
返信はプロフェッショナルなビジネスメールにふさわしく、トピックに明確で構造的かつ詳細に対応してください。
事実でないことは書かないでください。

詳細な指示:
- 簡潔に、ビジネスメールの文体を維持してください。
- 「(相手の名前+様) (改行) お世話になっております。」で始め、「よろしくお願いいたします。」で終えてください。
- Yes/No の質問に返信する場合、肯定的な返信と否定的な返信の2通りを作成し、" - - - - - - - OR - - - - - - - " で区切ってください。
- 回答がわからない場合は「[YOUR_ANSWER_HERE]」のようなプレースホルダーを使ってください。
- 特別なフォーマットは使わず、プレーンテキストのみで返信してください。
- 日本語で記載してください。

元のプロンプトから引き継いだものだが、

  • Yes/Noの質問に対しては2案作って提案させる点
  • 回答がわからない時にはプレースホルダーにさせる点

などがよく工夫されている。

本来は「通知 (Notify)」「質問 (Question)」のパターンでも良いだろうが、実際使うことを考えると、メール1通につき、AIエージェントからの質問がさらに1通来ると考えると、結構しんどい。
2案を併記、分からないところは空欄にさせるという工夫は、人間がメール文を調整して発送する時にも便利であった。

行動の起点がAI側になっていることにより、人間がメールアプリを開いた時には返信必要なメールにもうすでに下書きができあがって、レビューするだけで送信できる状態を作ることができる。
元の記事の中には記載がないが、アンビエント型にすることの大きな利点として、人間の行動の負荷を下げる効果はあるだろうと考える。

メールがたくさん来ている中で、返信すべきものとそうでないものを振り分けて、返信するものに対して一から返答を考えるというのは、人間にとって負荷が高い。作業としては簡単だとしても、ウィルパワーを多く消費するようなタスクである。
行動の起点をAI側に持たせることによって、人間が行動を開始する時に必要なドーパミン量を少なくても良いようにしてくれる効果があるように感じられる1

アンビエントエージェントの利点をより生かすとしたら、複数のタスクを並走させることで能力が上がる。

  • 返信のためにリサーチが必要なものを自動検索して答えを出す
  • 日程調整のために必要な情報を、Google Calendarから拾って、候補日程を出す
  • 以前の関係するメールを検索して、情報の前提知識にする

などの方策が使えるだろう。

アンビエントエージェントを作ってみると、行動の起点がAI側に移って、人間の負荷が下がったように感じられた (主観)

まとめ

アンビエントエージェントは、イベントを監視しそれに応じて行動するAIエージェントを指す。
複数のタスクを並走させられるため、人間の能力をスケールできる余地がある。

引用文献

  1. 科学的ソースは調べきれていないので、知っている方がいたら教えていただきたい。行動の起点をAI側に持たせることで、人間がタスクを開始するのに必要な認知負荷は下げられる可能性が高い

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?