Skip to main content

Workflow を通じて複雑な業務 Agent アシスタントを構築する

SERVICEME NEXT では、基本的な方法で作成した Agent は、よりシンプルな Q&A シナリオに適しており、機能は比較的限定的です。より複雑な業務ロジックを処理したり、複数ステップの操作を実現したりする必要がある場合は、Workflow(ワークフロー) を通じて高度な Agent を構築し、より豊富な業務要件を満たすことができます。

本章では、具体的な例を通じて、Workflow を使用して複雑なフローを構築する方法を紹介します。

シナリオ例:契約内容のセンシティブワード抽出

実際の業務では、契約文書は通常長文であり、内容も複雑です。含まれているセンシティブワードを人手で一つひとつ照合して識別する場合、時間も労力もかかるうえ、見落としが発生しやすく、特にセンシティブワードの数が多い場合は、正確性の担保がさらに難しくなります。

Workflow の機能を活用することで、ファイルアップロード、内容解析、センシティブワードの識別とマーキングをサポートするインテリジェントな Agent を構築できます。

このフローにより、ユーザーは手動で確認することなく、契約内のセンシティブな情報を迅速に把握でき、審査効率と正確性を大幅に向上させることができます。

✅ ヒント:この種の Agent は、特に法務審査、コンテンツ審査、コンプライアンス管理などのシナリオに適しています。

センシティブワードのデータソースを準備する

ワークフローを正式に構築する前に、まずセンシティブワードのデータを準備する必要があります。本ケースでは、センシティブワードはデータベースに保存されているため、Data モジュール を通じてデータベースをデータソースとして追加し、データ同期を完了する必要があります。

データ準備の前提条件

  • センシティブワードのデータがすでにデータベースに書き込まれていること(テーブル名は SensitiveWords)。
  • データベースの種類が SQLServer であり、ネットワーク経由でアクセス可能であること。

データソース追加手順

  1. Data モジュールに入る
    • SERVICEME プラットフォームを開き、左側ナビゲーションバーの 「Data」 をクリックします。
    • 「データソース」 を選択し、データソース管理ページに入ります。

  1. データソースを追加する
    • 右上の 「データソースを追加」 ボタンをクリックします。
    • ポップアップした設定ウィンドウで以下の情報を入力します:
      • データソース名:例 Sensitive Word
      • データベースタイプSQLServer を選択
      • 接続情報hostportユーザー名パスワードデータベース名 を含む
    • 「接続テスト」 をクリックし、接続成功を確認した後、「確認」 をクリックして追加を完了します。

  1. データテーブルを選択する
    • データソース一覧に戻り、先ほど作成したデータソース項目をクリックします。
    • システムにデータベース内で利用可能なデータテーブルが表示されるので、センシティブワードを含むテーブル(例 SensitiveWords)にチェックを入れ、「確認」 をクリックして追加します。

  1. データディレクトリの同期
    • 左側メニューで 「データディレクトリ」 を選択し、Sensitive Word データソースを見つけてクリックします。
    • 「同期」 操作を実行し、プラットフォームが最新データを取得できるようにします。

以上の手順が完了すると、センシティブワードのデータソース設定は完了です。続くワークフローでは、ノード方式でこのデータテーブルにアクセスし、契約内容のセンシティブワード抽出と照合を実現できます。

ワークフロー方式で「Sensitive Word Extraction」Agent を作成する

  1. SERVICEME NEXT のホームページに入り、左側ナビゲーションバーの AI Studio をクリックして Agent 画面に入ります。
  2. 右上の 「アシスタントを作成」 をクリックし、「高度なオーケストレーション作成」 方式を選択します。
  3. 以下の基本情報を入力します:
    • アシスタント名Sensitive Word Extraction を入力
    • エージェントのアバター:システム内蔵アバターから 1 つ選択(現在はカスタムアップロード非対応)
    • 分類:業務分類を選択。例:Legal and Compliance
    • 説明:例 Sensitive Word Extraction
  4. 入力完了後、「作成」 をクリックすると、ワークフロー Agent が正常に生成されます。

「Sensitive Word Extraction」Agent を設定する

📌 オーケストレーション前の考え方整理

本ワークフローの中核目標は、Agent がユーザーがアップロードした契約ファイルから存在するセンシティブワードを自動識別できるようにすることです。そのため、ユーザーに契約ファイルをアップロードしてもらい、その内容を処理可能なテキストとして解析する必要があります。同時に、設定済みのデータベースからセンシティブワードデータを読み込み、モデルによって契約内容とセンシティブワードをインテリジェントに照合し、一致項目とその位置を識別します。最終的に、モデルが識別結果を出力し、その結果をユーザーに返します。フロー全体は、ファイル処理、データソース呼び出し、モデル識別、結果出力 などの重要なステップを含み、自動化されたテキスト審査系の業務シナリオに適しています。

📌 ノード設定と接続の説明

本例の Workflow では、各ノードの入出力はすべて前のノードの結果を参照する形で設定されます。センシティブワード抽出の目標を実現するために、本フローでは主に以下のノードを使用します:開始ノード、ファイル処理ノード、データソースノード、モデルノード、終了ノード。以下で各ノードの設定と接続方法を順に説明します。

設定手順

  1. 開始ノードの入力説明

開始ノードでは 2 つの入力を選択できます:

  • USER_FILE:ユーザーが今回のラウンドで入力したファイル。
  • USER_IMAGES:ユーザーが今回のラウンドで入力した画像

これら 2 つの入力は、後続ノードの参照元として使用され、ファイル処理とモデル識別に利用されます。

  1. ファイル処理ノードの設定

このノードは、ユーザーがアップロードした契約ファイルを処理し、テキスト抽出、チャンク分割、ベクトル化処理を行います。

設定手順は以下のとおりです:

  • キャンバスに ファイル処理ノード を追加します。
  • 接続線を使用して 開始ノードファイル処理ノード を接続します。
  • ファイル処理ノードをクリックして設定画面に入り、以下の内容を設定します:
    • 入力参照USER_INPUT を参照として設定し、形式は以下のとおりです:
      Start/USER_INPUT
    • ファイル参照:「ファイルを追加」をクリックし、
      USER_FILE(つまりユーザーがアップロードした契約ファイル)を選択します
    • TopK 設定:適切な TopK(例 3~5)を選択します。
      • TopK は、モデルがテキストベクトルのマッチングを処理する際に返す文段数の上限を表します。
      • 推奨:TopK が低すぎると重要な内容を見落とす可能性があり、高すぎるとモデルのフォーカス能力に影響する可能性があります。

  1. データソースノードの設定

このノードは、先ほど作成したセンシティブワードのデータテーブルを取り込み、後続の照合に使用するためのものです。

設定手順は以下のとおりです:

  • キャンバスに データソースノード を追加し、開始ノード と接続します。
  • ノードをクリックし、データソース情報を設定します:
    • データソースとして Sensitive Word を選択
    • 入力参照を Start/USER_INPUT(ユーザーの入力指示)として設定

このノードの出力が、モデルで使用するセンシティブワード一覧となります。

  1. モデルノードの設定

このノードは本フローの中核処理モジュールであり、契約テキストとセンシティブワードをインテリジェントに照合し、結果を返します。

設定手順は以下のとおりです:

  1. モデルノード を 1 つ追加し、ファイル処理ノードとデータソースノードの両方に接続します。
  2. モデル選択:gpt-4.1
  3. ツール選択:このシナリオでは外部ツールの呼び出しは不要なため、スキップできます。
  4. MCP の追加:このシナリオでは MCP の呼び出しは不要なため、スキップできます。
  5. 入力参照:
    • inputファイル処理ノードの出力を参照。形式は以下のとおりです:
      FileHandler/output
    • param2データソースノードの出力を参照。形式は以下のとおりです:
      DataSource/output
  6. プロンプト設定:
    • システムメッセージ(System Prompt):
      Analyze the file in {{input}} and compare it with the sensitive words in {{param2}}. If there are sensitive words in the file, output the sensitive words along with their positions.
    • ユーザーメッセージ(User Prompt):
      Analyze the file in {{input}} and compare it with the sensitive words in {{param2}}. If there are sensitive words in the file, output the sensitive words along with their positions.

✅ ヒント:システムメッセージはモデルに動作指示を与えるために使用され、ユーザーメッセージは実際のユーザー入力をシミュレートします。ここでは両者の内容を同一にすることで、より安定した効果が得られます。

  1. 出力ノードの設定

このノードは、モデルの処理結果を最終ユーザーに返すために使用されます。

設定手順は以下のとおりです:

  1. モデルノード終了ノード を接続します。
  2. 終了ノードをクリックし、入力参照を設定します:
    • 入力内容:モデルノードの出力を参照。形式は以下のとおりです: Model/output
  3. 出力内容設定に以下を入力します: {{output}}

✅ ヒント:最後に {{output}} のみを出力として記入することで、モデルの出力をよりよく保持できます。必要に応じて、特定内容の出力を指定することも可能です。

完全な設定は以下のとおりです

「Sensitive Word Extraction」Agent アシスタントの使い方

  • ユーザーはチャット画面で契約ファイルをアップロードします。
  • Agent が自動的にテキスト解析を完了し、その中のセンシティブワードを正確に検出します
  • システムはセンシティブワードとその位置を含む結果を返します
  • このフローにより、ユーザーは手動で確認することなく、契約内のセンシティブな情報を迅速に把握でき、審査効率と正確性を大幅に向上させることができます。