🙆‍♀️

[Dify] 出張旅費規定に基づいて、ホテルを提案する総務エージェントを作る

2025/03/02に公開

Dify で出張手配を行う総務エージェントを作る

LLM(大規模言語モデル)は、自然言語処理の能力を活用して、ビジネスプロセスを効率化する強力なツールです。中でも、出張手配業務の自動化は、その実用性が顕著に現れる分野の一つです。宿泊費の確認やホテルの検索は、従業員の時間と労力を要しますが、LLMを活用することで、これらの業務を迅速かつ正確に処理することができます。

本記事では、Dify を使った出張手配エージェントの構築を、Dify のワークフローやツール、エージェントを活用して行います。例えば、出張規定に基づいてホテルを自動推奨したり、予算内での最適なプランを提案したりすることで、大幅な効率化を図ることができます。

Dify で出張手配エージェントを作る流れ

  • 役職別に宿泊費の目安を回答するワークフローを作る
  • 宿泊費と地域から、会社の契約ホテルを提案するワークフローを作る
  • 総務エージェントに、作成したワークフローをツールとして追加する

役職を元に宿泊費の目安を答えるワークフローを作成する

出張時の宿泊料の目安を、出張旅費規定に定義している会社は多いかと思います。一般的には役職や出張先のエリア別に定義しています。今回は、役職別に宿泊料の目安を返すワークフローを作成します。

スタジオを開き「最初から作成」をクリックして始めます。アプリの種類は、ワークフローを選択。アプリのアイコンと名前、説明を入力してください。

例:

アプリの名前:
役職を元に宿泊費の目安を答えるワークフロー

説明:
役職を元に宿泊費の目安を回答します

アプリが作成されると、開始ノードのみが存在するワークフローの編集画面が表示されます。

ここから、役職を入力として受け取って、宿泊費の目安をLLMを活用して答えるワークフローを作成していきます。

開始ノードで役職の受け取りを設定する

開始ノードでは、入力フィールドとして、ワークフローで使用できる入力を設定することができます。開始ノードをクリックすると、設定画面が表示されます。

宿泊費を回答するために、役職を入力として受け取ります。入力フィールドの右側にある + ボタンをクリックすると、新しい入力を追加できます。

フィールドタイプは選択

変数名(任意の名前)とラベル名には、roleとつけました。

選択肢として、一般、部長、役員を追加。

今回は、宿泊費を回答するために役職の情報は必要なので、必須にチェック。

これで保存します。

これで役職の受け取りの設定が完了しました。開始ノードで行うことがわかりやすいように、説明に、「役職を入力として受け取る」と入力しておきましょう。説明に入力した内容は、ノードの下部に表示されます。

次に、受け取った役職を用いて、宿泊費の目安を回答します。

画面下の、+ ボタンをクリックし、ブロック・ツールの追加ウインドウを開きます。今回は、入力された役職と出張旅費規定の内容から、LLMに推論させて回答を得ます。

LLMブロックをクリックし、開始ノードと連結します。これで、開始ノードの出力 ( 今回は役職(role) ) が、LLMノードの入力で利用できるようになります。

LLMノードをクリックし、LLMノードの設定を進めます。

利用するモデルには、OpenAIのo1-miniを選択しました ( 実際の利用では、求められる品質、精度に応じて、より高品質なモデルを選択してください )。

次に、LLMが利用できるコンテキストを選択します。今回は、開始ノードで入力された役職を使うので、開始/{x}role を選択。

続いて、LLMに渡すプロンプトを入力します。

コンテキストで選択した変数を利用するには、/ を入力するか、右上の {x} ボタンを押すことで、目的の変数を挿入できます。

一般: 10,000円
部長: 15,000円
役員: 20,000円

{{#1735799084301.role#}}に基づいて、金額の目安を回答

回答は、数字のみ (カンマ、単位なし )

例.roleが一般の場合
10000

最後に、終了ノードを追加し、LLLノードと連結します。終了ノードの出力には、LLMノードの出力 LLM/{x}text を選択します。ノードの説明は、宿泊費を回答、としましょう。

LLMノードの説明には、役職から宿泊費の目安を回答、としましょう

一旦テストしてみる

ここまでの流れが動作するかテストしてみましょう

上部の実行ボタンを押します。すると、Test Runというテスト用のウインドウが開きます。役職を選択して、”実行を開始”をクリック

数秒で完了します。

トレースタブを開くと、各ノードの入力、出力を確認できます。

トレースタブの、LLM開くと、出力のtext プロパティに、推論された宿泊費が出力されていることが確認できます。

ワークフローをツールとして公開する

作成したワークフローを、後ほどエージェントにツールとして追加するために、ワークフローをツールとして公開します。

右上の”公開する”ボタンを押すと、公開関連のメニューが開きます。”アプリを公開”を押すと、”ツールとしてのワークフロー”が有効化されます。有効化後、クリックしてください。

すると、ツールとしてワークフローを公開するための設定ウィンドウが開きます。

名前:
役職を元に宿泊費の目安を答えるツール

ツールコールの名前:
getAccommodationBudgetByRole

ツールの説明:
役職を元に、宿泊費の目安を回答

ツール入力:
role, LLM入力, 出張者の役職

を設定します。エージェントは、ユーザの入力と、ツールの説明の内容をもとに、ツールを利用するかどうか、またユーザの入力をどのようにツールに渡すかどうか判断し、ツールを利用します。

ホテルのリストを回答するワークフローを作成し、ツールとして公開する

ここまで、役職を元に宿泊費の目安を回答するワークフローを作成し、ツールとして公開しました。次に、宿泊費の予算を元に、宿泊可能なホテルを返すワークフローを作成し、ツールとして公開します。

ワークフローの構造は、ここまで作成してきたワークフローと同様なので、詳細な流れは割愛します。以下に設定内容を記載します。

開始ノード

入力:数値、変数名budget、必須

LLMノード:

コンテキスト:budget

プロンプト:

{{#1735796498345.budget#}}で利用できる全てのホテルを、以下のリストの中からフィルターして返答
フォーマットは変えないこと

  1. ホテル名: グランドタワーホテル, 宿泊費: 15000円, 場所: 東京
  2. ホテル名: サンライズイン, 宿泊費: 12000円, 場所: 大阪
  3. ホテル名: スカイビューリゾート, 宿泊費: 18000円, 場所: 京都
  4. ホテル名: オーシャンブルーホテル, 宿泊費: 22000円, 場所: 福岡
  5. ホテル名: シティライツイン, 宿泊費: 13000円, 場所: 名古屋
  6. ホテル名: フォレストヒルズ, 宿泊費: 16000円, 場所: 札幌
  7. ホテル名: リバーサイドホテル, 宿泊費: 14000円, 場所: 広島
  8. ホテル名: プレミアムスイート, 宿泊費: 25000円, 場所: 神戸
  9. ホテル名: サクラホテル, 宿泊費: 20000円, 場所: 横浜
  10. ホテル名: モダンアーバンイン, 宿泊費: 17000円, 場所: 仙台

終了ノード

LLM/{x}text

ツールとしてのワークフローの設定

名前:
宿泊できるホテルの検索ツール

ツールコールの名前:
getHotels

ツールの説明:
条件に基づいた、ホテルの検索ツール

ツール入力:
budget, LLM入力, 予算

例えば、予算13,000円で実行すると、以下2つのホテルが返答されます。

ホテル名: サンライズイン, 宿泊費: 12000円, 場所: 大阪

ホテル名: シティライツイン, 宿泊費: 13000円, 場所: 名古屋

ツールを使うエージェントを作成する

さて、出張手配総務エージェントが利用するツールが2つ作成できました。最後に、これらのツールを活用するエージェントを作成します。

スタジオを開き「最初から作成」をクリックして始めます。アプリの種類は、エージェントを選択。アプリのアイコンと名前、説明を入力してください。

例:

アプリの名前:
出張手配を補助する総務エージェント

説明:
出張者がホテルの予約を行うのを手伝います

エージェントの設定画面が開いたら、まずプロンプトを入力しましょう

例.

あなたは出張手配をサポートする総務のエキスパートです。
必ずツールを利用して、ユーザの質問や意図に答えてください。
ツールを利用して答えられない、あるいは対応できない業務には、「対応できません」と回答してください。

そして、ツールに、先ほど作成した2つのツールを追加します。

質問してみる

「大阪に出張するのでホテルの候補をください」と聞いてみると、役職を聞かれ、回答すると、これまで作成したツールを活用して、

  • 予算の確認
  • 予算と、出張先を元にしたホテルの検索

をLLMが判断して自動的に行います。これがエージェントの良いところです。

会話のオープナーを設定

この総務エージェントには、役職と行き先を伝えるべきなので、それを利用者に事前にお知らせしましょう。

チャットウィンドウ下の、”高度な設定”欄にある”管理”をクリックします。

会話の開始機能を有効化し、オープナーを書く、をクリックします。

すると、会話の最初に、先ほどのオープナーが表示されます。これで、ユーザがどう依頼すれば良いのか分かりやすくなります。

まとめ

本記事では、Difyを活用して出張手配を効率化する総務エージェントの作成方法について解説しました。主なポイントは以下の通りです:

  • 役職別の宿泊費目安を確認するワークフローを構築できる
  • 予算と場所に基づいて、適切なホテルを検索するワークフローを作成できる
  • これらのツールを組み合わせることで、出張手配をサポートする総務エージェントを実現できる

このようなエージェントを導入することで、出張手配にかかる時間と労力を大幅に削減できます。また、一度構築したワークフローは繰り返し利用できるため、長期的な業務効率の向上にも貢献します。

今後は、より多くの機能の追加や、プロンプトの改善など、さらなる発展の余地があります。ぜひ、ご自身の組織の規定に合わせてカスタマイズし、より効率的な出張手配の実現にお役立てください。

Sparkle AIブログ

Discussion