Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Build a Self-Refreshing Company Handbook Assistant with TypeScript

2026年10月14日に「Dev.to」が公開したITニュース「Build a Self-Refreshing Company Handbook Assistant with TypeScript」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

TypeScriptで、会社のハンドブックから質問に答えるAIアシスタントを構築する。ハンドブックの更新を自動検知し、常に最新情報で回答。非同期処理、エラー回復、質問履歴記録、AIの誤回答防止など、運用に必要な全てを一つのシステムで管理する。

ITニュース解説

ITシステム開発の世界では、企業内の情報を効率的に活用するための新しい方法が次々と生まれている。今回解説する「自己更新型の会社ハンドブックアシスタント」は、最新のAI技術とシステム設計の工夫を組み合わせることで、会社ハンドブックに関する従業員の疑問に迅速かつ正確に答える仕組みを提供する。これは単に質問に答えるだけでなく、情報が常に最新の状態に保たれるよう、システムが自律的に管理を行う点が大きな特徴だ。

まず、このアシスタントの基本的な考え方を説明する。従業員が会社ハンドブックについて質問をした際、アシスタントはハンドブックの中から質問に関連する部分を探し出し、その情報をもとにAI(大規模言語モデル、LLM)が回答を生成する。この「情報検索とAIによる回答生成」の組み合わせは、RAG(Retrieval-Augmented Generation)と呼ばれ、AIが事実に基づいた正確な回答をするための重要な技術である。

しかし、このようなAIアシスタントを実際に運用しようとすると、いくつかの難しい問題に直面する。例えば、ハンドブックの内容をAIが理解できる形(「埋め込み」と呼ばれるデータの形式)に変換する作業は時間がかかる非同期処理だ。この処理がきちんと完了したかどうかを誰が確認するのか、もし処理中にシステムが停止したらどうなるのか、そして最も重要なのが、ハンドブックの内容が変更されたときに、AIが参照する情報も自動的に最新になるようにどうすればいいのか、といった課題だ。さらに、従業員がどんな質問をし、AIがどう答えたのかという記録を残すことや、ハンドブックに関連する情報が見つからなかった場合にAIが適当な回答を生成してしまうのを防ぐ方法も考える必要がある。

これらの複雑な課題を解決するために、このシステムでは「Stateful Actor(ステートフルアクター)」という特別な仕組みが中心的な役割を果たす。Stateful Actorとは、特定の状態(データ)を持ち、その状態に基づいて自律的に行動できる、プログラムの「分身」のようなものだと考えると分かりやすい。このアシスタントでは、会社ごとに一つStateful Actorが割り当てられる。このActorは、その会社のハンドブックに関する全ての管理を一人で引き受ける。具体的には、ハンドブックのURLを記憶し、AIが検索するためのデータを生成する作業の進捗を監視し、もし途中で問題が起きれば再試行し、24時間ごとにハンドブックを自動で読み直して情報を更新する。そして、従業員からの質問に答えるだけでなく、全てのやり取りの履歴を記録するという、まさに会社のハンドブック知識の「ライフサイクルオーナー」となるわけだ。

この仕組みの優れた点は、通常ならばバラバラに管理される「情報を格納するデータベース」「非同期処理を管理する仕組み」「定期的な処理を行うタイマー機能」「状態を保存するデータベース」といった要素を、このStateful Actorが全て内包していることにある。これにより、システム全体をシンプルに保ちながら、高い信頼性と自律性を実現している。

具体的な処理の流れを見てみよう。まず、管理者が会社のハンドブックのURLを登録する。Stateful ActorはこのURLを受け取ると、クラウドサービス(Telnyxのようなサービス)に指示を出し、ハンドブックの内容をAIが理解できる「埋め込みデータ」に変換する作業を開始する。この作業は時間がかかるため、Actorは「後で確認するよ」と伝え、すぐに登録完了の応答を返す。そして、Actor自身は60秒ごとにこの埋め込み作業の進捗をクラウドサービスに問い合わせ、完了を待つ。もし作業が失敗しても、Actorはあらかじめ定められた回数だけ自動で再試行する。作業が無事に完了すれば、Actorはハンドブックが質問に答えられる状態になったことを記録する。

ハンドブックが準備できた状態で、従業員が「有給休暇の繰越上限は?」といった質問をすると、Stateful Actorはその質問を受け取る。まず、Actorはクラウドサービスを通じて、ハンドブックの埋め込みデータの中から質問に最も関連性の高い情報(文章の断片)を探し出す。ここで重要なのは、見つかった情報の関連性が低いと判断された場合(類似度がある閾値を超えない場合)には、AIに無理に回答をさせず、「ハンドブックには該当するポリシーが見つかりませんでした。人事部に問い合わせてください」といった定型文を返すことだ。これにより、AIが不正確な情報を生成してしまう「ハルシネーション」という問題を効果的に防ぐ。もし関連性の高い情報が見つかれば、Actorはその情報と従業員の質問だけをAI(LLM)に渡し、「あなたは会社の司書です。与えられたハンドブックの抜粋のみを使って簡潔に回答し、引用元を明記してください」と指示して回答を生成させる。

従業員が質問をしてAIが回答する一連のやり取りは、全てStateful Actorが管理する組み込みのSQL台帳に記録される。これにより、「AIアシスタントは交通費について何と答えたか?」といった監査や後からの確認が容易に行えるようになる。

さらに、このアシスタントの賢い点は「自己更新」機能にある。ハンドブックは頻繁に更新される可能性があるため、登録時にStateful Actorは「24時間ごとにハンドブックを再読み込みし、埋め込みデータを更新する」というタスクを自動でスケジュールする。これにより、システムは常に最新の情報を参照して回答することが可能になる。もし緊急で再インデックス作成が必要な場合は、手動で指示することもできる。再インデックス作成中は一時的に質問への回答が保留されるが、これにより常に正確な情報源に基づく運用が保証される。

このように、このシステムは単に質問応答機能を提供するだけでなく、ハンドブックの登録から、非同期処理の管理、エラー時のリカバリ、定期的な情報更新、質問と回答の履歴記録まで、AIアシスタントが安定して運用されるための全ライフサイクルを、Stateful Actorという一つの強力な仕組みが統括して管理している。これにより、開発者は個々の細かい運用課題に頭を悩ませることなく、より本質的な価値の提供に集中できるのだ。

もちろん、実際の企業環境で利用する際には、セキュリティ(誰がアシスタントにアクセスできるか、質問や回答に機密情報が含まれる可能性はないか)や、ハンドブックURLの検証、AIの回答品質をさらに向上させるためのチューニングなど、いくつかの追加的な考慮点がある。しかし、この「自己更新型の会社ハンドブックアシスタント」は、現代の企業が直面する情報アクセスの課題に対し、AIと賢いシステム設計がいかに強力な解決策を提供できるかを示す、優れた事例だと言える。

関連コンテンツ

関連IT用語

関連ITニュース