【ITニュース解説】Most Recruiter Bots Are Goldfish. I Gave Mine Hindsight.
2026年09月28日に「Dev.to」が公開したITニュース「Most Recruiter Bots Are Goldfish. I Gave Mine Hindsight.」について初心者にもわかりやすく解説しています。
ITニュース概要
AIリクルーターは会話をすぐ忘れがち。筆者は、外部記憶層Hindsightで会話の要点を保存・検索し、AIに過去情報を提供するシステムRecallを開発した。これにより、AIは候補者の履歴に合わせた適切な応答を生成できる。AIの対話能力を高めるためのシステム設計が鍵となる。
ITニュース解説
多くのAIを利用したチャットボット、特に採用活動を支援するリクルーターボットは、一度会話した内容を長期間覚えておくことが苦手である。これはAIの知能が低いという問題ではなく、過去の会話履歴を適切に保存し、必要に応じて取り出す仕組み(外部記憶層)が不足しているという、システム的な問題に起因している。候補者が時間をかけて自分の希望を説明しても、数週間後にはまるで初めて話すかのように対応してしまうのは、各々のやり取りが独立しており、以前の会話の文脈が自動的に引き継がれないためである。
この記憶の課題を解決するために開発されたのが「Recall」というシステムだ。Recallは、候補者との会話から重要な情報を抽出し、それを永続的に保存し、新しい求人が出た際には関連する文脈を取り出してAIモデルに提供することで、よりパーソナライズされた応答を可能にする。このシステムの中心的な役割を担うのが、オープンソースのエージェント記憶層「Hindsight」である。Hindsightは、AIモデルが過去の情報を記憶できないという制約を補い、外部からの情報として提供する。
Recallシステムは主に四つの要素で構成されている。一つ目は「Expressサーバー」で、これはシステムのインターフェースを提供し、全体のワークフローを実行する部分だ。二つ目は「Groq」(またはOpenAIのGPTモデルのような大規模言語モデル)で、これは会話から事実を抽出し、リクルーター向けのテキストを作成するAIモデルの役割を果たす。三つ目が、長期記憶を担う「Hindsight」で、情報を保存するretain()機能と、必要な情報を取り出すrecall()機能を提供する。そして四つ目は「ブラウザUI」で、抽出された事実、Hindsightから呼び出された記憶、そしてAIが生成した応答をリクルーターに表示するインターフェースである。
このアーキテクチャでは、AIモデル自体は候補者の履歴を保存せず、Hindsightもリクルーターが何をすべきかを直接決定することはない。アプリケーションがこれらをつなぎ、モデルが会話から永続的な情報を抽出し、Hindsightがそれを保存・検索し、モデルはその検索された文脈を利用して次の応答を生成するという流れになっている。このような役割の分離により、システムに問題が発生した際にも、「正しい記憶が取得されたか」「モデルがその記憶をどのように利用したか」といった具体的な質問を通じて、デバッグが容易になる利点がある。
システムが記憶すべき情報の選定も重要なポイントだ。Recallでは、生の会話履歴をそのまま保存するのではなく、AIモデルが会話の中から「後で重要になる可能性のある事柄」を要点として抽出する。これには、キャリア目標、技術的な関心、希望する勤務地、働き方、給与、制約などが含まれる。例えば、ある候補者との初回の会話から「バックエンドエンジニアリングでの責任ある役割を希望」「Node.jsに興味がある」「給与目標は年収130万〜150万ルピー」「頻繁な深夜勤務や高圧的なスタートアップを避けたい」といった具体的な事実が抽出される。これらの抽出された事実は、Hindsightに保存される。厳密なデータベーススキーマにすべての情報を無理に当てはめるのではなく、短く抽出された事実として保存することで、候補者の多様な要望やニュアンスを失わずに記憶層に十分な構造を提供し、後で有用な文脈を取り出せるようにしている。重要なのは、AIモデルに会話そのものを記憶させようとするのではなく、後で役立つであろう、より小さく永続的な表現を作成することである。
記憶が応答の質を向上させる効果を検証するために、RecallはAIモデル、候補者、機会、質問を固定し、Hindsightからの記憶情報がプロンプトに追加されるか否かという一点のみを変数として比較した。記憶なしで求人を紹介した場合、AIは一般的な内容で丁寧な応答を生成するが、これはどの候補者にも当てはまるような内容であった。しかし、Hindsightから候補者の過去の希望(明確なコミュニケーション、適度な労働時間、ワークライフバランスを重視し、ハイデラバードでの勤務を希望)が取得され、プロンプトに追加されると、AIモデルは「明確なコミュニケーション、合理的な労働時間、強力なワークライフバランスを依然として優先していますか?」といった、より候補者個人の状況に合わせた具体的なフォローアップを生成することができた。この違いは、プロンプトが賢くなったわけでも、モデルが変わったわけでもなく、Hindsightから提供された追加の候補者履歴がもたらしたものである。
このような記憶メカニズムは、リクルーターが候補者に「給与範囲は?」と何度も尋ねるような実用的な問題を解決する。システムが候補者の現在の収入や希望給与範囲を記憶していれば、提示された求人の給与がその範囲内にあるかを即座に判断できるようになる。しかし、情報を一致させることと、意思決定を下すことの間には重要な区別がある。Recallは、候補者の希望をリクルーターが「確認すべき文脈」として提示する。例えば、「この役割が高圧的なスタートアップ環境や頻繁な残業を伴わないことを確認してください」「明確なコミュニケーションとバックエンドのオーナーシップを提供することを確認してください」といった形で、リクルーターが最終的な判断を下すための材料を提供するのである。
情報を保存することだけでなく、適切な情報を必要な時に取り出すことも重要だ。Hindsightに対して「ラシに関するすべての情報」を求めるのではなく、各ワークフローのタスクに適した質問を投げかける。「この求人について」であれば、報酬やその求人に関連する選好についてのみ尋ねる。これにより、大量の候補者情報の中から、現在のタスクに本当に必要な情報だけを効率的に引き出すことができる。Hindsightがこの検索層を担うことで、開発者は各ワークフローごとに個別の検索パイプラインを構築する必要がなくなり、有用な質問を投げかけ、返された文脈をモデルに利用可能にすることに集中できる。
開発を通じて得られた学びはいくつかある。第一に、AIモデルは状態を記憶しないため、必要な文脈を取り出すループを設計することが不可欠だ。第二に、会話全体ではなく、後で利用価値のある抽出された事実を保存することが効果的である。第三に、タスクに合わせて記憶検索のクエリを工夫することで、本当に必要な情報だけを取得できる。第四に、記憶の効果を検証する際には、一つの変数のみを変更して比較することが重要だ。最後に、記憶の内容を可視化し、人間がそれを確認できるようにすることで、システムのデバッグが容易になり、リクルーターが最終的な判断を下す上での責任を維持できる。
今後の改善点としては、候補者の個人情報(報酬、仕事の希望など)の取り扱いについて、認証、同意、訂正・削除メカニズムなどを強化する必要がある。また、データの重複を避け、古くなった情報がシステムに残り続けないよう、データのライフサイクル管理戦略を明確にすることも求められる。エージェントを構築する際、プロンプトの調整に時間を費やすよりも、まず記憶のループを設計することから始めるべきであるという教訓を得た。次に会話が行われるときに、過去の会話の適切な断片がそこにあるようにすることが、真に価値あるシステムを構築するための鍵となる。