Skip to main content

1. Agentify へのログインと事前設定

1.1 Agentify にログインする

1.2 新しい Agent を作成する

左側メニューから「新Agent作成」に入り、表示された Agent 作成画面で「Agentワークフロー」と「最初から開始」を選択し、「確認」をクリックします。 今回は従来版、つまりワークフロー形式で構築します。新しい Agent を作成する際に Agent 名を設定して保存します。本チュートリアルでは「AI総務 Agent」を構築します。 ワークフローの「プランニング」では、デフォルトの構成として「ユーザー入力」と「LLM」の2つのモジュールが表示されます。「プランニング」の機能概要は、プランニングのドキュメントを参照してください。 基本モジュールの説明は、基本モジュールのドキュメントを参照してください。 次に、AI総務 Agent の構築に進みます。まず、この Agent に求める input と output を整理します。 Agentify では、Agent の input としてテキスト、画像、ドキュメントを利用できます。 手動トリガーでは、input による起動に加えて、ボタンを追加して Agent を起動できます。 また、Agent を公開したあとにトリガーを設定することで、定期実行も可能です。 公開後の Agent は、HTTP App、API、または MCP Server として呼び出せます。Agent の公開については、Agent 公開のドキュメントを参照してください。

2. Agent 構築

2.1 はじめに

AI を構築する前に、業務の基本フレームを整理します。特定の input やトリガーに対して、Agent 全体の業務フローがどのように進み、どのような output を返すべきかを明確にしておきます。 本チュートリアルで構築する AI総務 Agent は、ナレッジベースとデータベースを組み合わせて利用する場面を想定しています。 ナレッジベースは通常、社内規則や業務手順などの「変更頻度が低い情報」を参照する用途に適しています。Agentify のナレッジベース機能については、ナレッジベース機能のドキュメントを参照してください。 一方、データベースは申請内容、対応状況、備品在庫などの「随時変化する情報」の確認や更新に利用します。Agentify のデータベース機能については、データベース機能のドキュメントを参照してください。 そのため、AI総務 Agent は単なる FAQ ではなく、社内問い合わせへの対応から申請受付、ステータス確認までを支援する業務支援 Agent として設計します。

2.2 Step 1: ナレッジベースを準備する

まず、AI総務 Agent が社内ルールを参照できるように、総務業務に関する資料をナレッジベースに登録します。 登録する資料の例は以下です。
  • 有給休暇の申請ルール
  • 経費精算ルール
  • 備品申請ルール
  • 入社手続き
  • 退社手続き
  • 設備トラブル対応方法
  • よくある質問
参考資料のダウンロード先: AI総務 Agentナレッジベース用.pdf 解析ステータスが成功と表示されたら、ナレッジベースの準備は完了です。ファイルをクリックするとチャンクの詳細も確認できます。

2.3 Step 2: データベースを準備する

次に、申請内容や対応状況を保存するためのデータベースを準備します。 本チュートリアルでは、以下の2つのテーブルを使用します。
  • 総務申請テーブル
  • 備品在庫テーブル
ナレッジベースが「ルール」を管理するのに対して、データベースは「現在の申請状況」や「在庫数」など、随時変化する情報を管理します。 構築を簡単にするため、本チュートリアルでは Neon の無料データベースを事前に用意して利用します。テスト用のテーブル定義 SQL は以下です。
データベースでは「追加」「更新」「削除」の3つの権限を有効にします。
本番環境では、データベース更新権限を慎重に設定してください。

2.4 Step 3: テストデータを登録する

備品在庫を確認する動作をテストするため、備品在庫テーブルにサンプルデータを登録します。

2.5 Step 4: 情報分類モジュールを設定する

次に、ユーザーの入力内容を判定するために、情報分類モジュールを設定します。 AI総務 Agent では、ユーザーの問い合わせ内容によって利用する処理が異なります。 たとえば、社内ルールに関する質問であればナレッジベースを参照し、備品在庫の確認であればデータベースを参照します。また、備品申請や設備トラブルの受付では、必要情報を整理したうえでデータベースに登録します。 情報分類モジュールを利用することで、ユーザーの入力内容に応じて、ナレッジベース参照、データベース検索、申請登録などの処理を自動的に切り替えることができます。 そのため、最初に情報分類モジュールでユーザーの意図を判定し、後続の処理を切り替えます。 本チュートリアルで使用する情報分類モジュールのプロンプトは以下です。

2.6 Step 5: 条件分岐を設定する

情報分類モジュールの「ラベル」欄で「追加」をクリックし、以下のラベルを1つずつ追加します。
  • 社内ルール質問
  • 備品在庫確認
  • 申請登録
  • 申請状況確認
  • 社内通知文作成
  • その他
追加したラベルは、後続の条件分岐で使用します。 情報分類モジュールで設定した各ラベルは、後続のワークフローにおける分岐条件として使用します。 たとえば、ユーザーが「有給は何日前までに申請すればいいですか?」と入力した場合、「社内ルール質問」ラベルが選択され、ナレッジベースを参照する処理へ進みます。 一方、「ノートPCの在庫はありますか?」と入力した場合は、「備品在庫確認」ラベルが選択され、データベースから在庫情報を取得する処理へ進みます。

2.7 Step 6: 社内ルール質問のワークフロー

まず、「社内ルール質問」ラベルが活性化になった場合の処理を作成します。 この分岐では、ユーザーの質問に対してナレッジベースを検索し、検索結果をもとに LLM モジュールで回答を生成します。 ナレッジベース検索モジュールでは、ユーザー入力を検索クエリとして使用します。これにより、有給休暇、経費精算、備品申請ルール、入社手続きなど、登録済みの総務ルールから関連情報を取得できます。 この分岐では、情報分類モジュールで「社内ルール質問」と判定された入力に対して、ナレッジベースを参照し、LLM モジュールで回答を生成します。 この時点で LLM モジュールへ接続する入力は、ナレッジベース検索結果に加えて、ユーザー入力のテキスト情報も必要です。LLM モジュールにはナレッジベース回答用のデフォルトプロンプトがあるため、ここでは接続以外の追加設定は不要です。
接続が多いと感じる場合は、Agentify の組み込み変数を参照できます。変数を直接書き込む方法や、メモリ変数モジュールで独自変数を定義して、プロンプトや定型回答から呼び出す方法もあります。本チュートリアルでは、初心者が構築しやすいように変数受け渡しのテクニックは使っていません。興味がある場合は、組み込み変数のドキュメントを参照してください。
接続が完了すると、現在のロジックではナレッジベースに関連情報が存在する場合のみ LLM モジュールが起動することを確認できます。 そのため、関連情報が存在しない場合にもユーザーへ通知できるよう、戻り値を設定します。 保存後にテストします。テスト結果を分かりやすく確認するため、Agent 設定の左側メニューからナレッジベースの引用元表示を有効にします。 今回のテスト input: 有給は何日前までに申請すればいいですか? 角のマークをクリックすると、参照されたファイルと引用元を確認できます。

2.8 Step 7.1: 備品在庫確認分岐を作成する

次に、「備品在庫確認」ラベルが活性化になった場合の処理を作成します。 この分岐では、ユーザー入力から備品名を抽出し、データベースの備品在庫テーブルを検索します。検索結果は LLM モジュールで自然な回答文に変換し、ユーザーに返答します。 処理の流れは以下です。
ここでは Agentify の「データフィールド抽出」モジュールを利用します。「備品在庫確認」と判定された場合に起動します。 このモジュールでは、prompt と抽出フィールドを定義して抽出ルールを設定します。以下は prompt 例です。

2.9 Step 7.2: データベースに接続する

次に、データフィールド抽出で取得した項目を使ってデータベース検索を行います。データベース検索には SQL が必要なため、ここでは NL2SQL とデータベース検索の2つのコンポーネントを利用します。 それぞれのコンポーネントで、検索対象のデータベースを設定します。 接続が完了したら、出力結果をテストします。 自然言語で回答したい場合は、データベース検索モジュールの後ろに LLM モジュールを追加して応答を整形します。この場合、データベース検索モジュール自体の出力は閉じても構いません。 LLM の参考プロンプトは以下です。

2.10 Step 8: 「申請登録」分岐

申請登録分岐では一般に、ユーザー入力を直接 SQL に渡すのではなく、まずデータフィールド抽出モジュールで申請情報を構造化します。 その後、抽出された各フィールドをデータベース更新モジュールの INSERT SQL に差し込み、総務申請テーブルへ登録します。 本チュートリアルでは構成を簡単にするため、LLM モジュールの prompt を使って INSERT SQL を直接生成します。
データベース更新時の誤操作を防ぐため、「定型回答」と「ユーザー入力」の2つのモジュールを追加して操作を制御することをおすすめします。
ユーザー入力モジュールのボタン追加方法と実際の操作イメージは以下です。 後続の LLM モジュールの接続方法と prompt は以下です。
同時に、データベース更新モジュールにも接続します。 最後に、操作結果を LLM モジュールで自然言語に加工し、ユーザーへ返します。
テスト入力: 営業部の田中です。新入社員用にノートPCを1台申請したいです。6月1日から使いたいです。

2.11 Step 9: 動作確認

最後に、作成した AI総務 Agent の動作確認を行います。 本チュートリアルでは、以下の3つのパターンを確認します。
  • 社内ルール質問
  • 備品在庫確認
  • 申請登録
今回作成した構成は、AI総務 Agent の基本形です。 必要に応じて、以下のような機能を追加することで、さらに実務に近い Agent へ拡張できます。
  • 受付番号による申請状況確認
  • 申請ステータスの更新
  • 社内通知文の自動作成
  • Slack やメールへの通知
  • 承認フローとの連携
  • 入社・退社手続きチェックリストの自動生成
まずは、社内ルール質問、備品在庫確認、申請登録の3つを基本機能として構築することで、ナレッジベースとデータベースを活用した AI Agent の動作を確認できます。 本チュートリアルの Agent 全体ワークフローのリソースコード: Agentify AI総務 Agent DSL.txt ダウンロード後、ファイル内のコードをインポートして利用できます。学習用のサンプルのため、ナレッジベースとデータベースのテストファイルは別途手動で設定してください。