Workflowによる複雑な業務Agentアシスタントの構築
SERVICEME NEXTでは、基本的な方法で作成されたAgentは、シンプルなQ&Aシーンにより適しており、機能は比較的限定されています。より複雑な業務ロジックや多段階の操作を処理する必要がある場合は、**Workflow(ワークフロー)**を利用して高度なAgentを構築し、より豊富な業務ニーズに対応できます。
本章では、具体的な事例を通じて、Workflowを使って複雑なプロセスを構築する方法を紹介します。
シナリオ例:契約書内容のセンシティブワード抽出
実際の業務では、契約書のテキストは通常長く、内容も複雑です。もし人手で一つ一つ照合し、センシティブワードが含まれているかどうかを識別する場合、時間と労力がかかるだけでなく、見落としも発生しやすくなります。特にセンシティブワードの数が多い場合、正確性の確保はさらに困難です。
Workflowの機能を活用することで、ファイルアップロード、内容解析、センシティブワードの識別とマーキングをサポートするインテリジェントAgentを構築できます。
このプロセスにより、ユーザーは手動で確認する必要がなく、契約書内のセンシティブ情報を迅速に把握でき、審査効率と正確性が大幅に向上します。
✅ ヒント:この種のAgentは、法務審査、コンテンツ審査、コンプライアンス管理などのシーンに特に適しています。
センシティブワードデータソースの準備
ワークフロー構築の前に、センシティブワードのデータを準備する必要があります。本ケースでは、センシティブワードはデータベースに保存されているため、Dataモジュールを通じてデータベースをデータソースとして追加し、データ同期を完了させます。
データ準備の前提条件
- センシティブワードデータがデータベース(テーブル名:
SensitiveWords)に書き込まれていること。 - データベースの種類は
SQLServerであり、ネットワーク経由でアクセス可能であること。

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

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

- データテーブルの選択
- データソース一覧に戻り、作成したデータソース項目をクリックします。
- システムはデータベース内の利用可能なデータテーブルを表示し、センシティブワードを含むテーブル(例:
SensitiveWords)をチェックして**「確認」**をクリックして追加します。

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

以上の手順を完了すると、センシティブワードのデータソースの設定が完了します。次のワークフローでは、ノード方式でこのデータテーブルにアクセスし、契約書内容のセンシティブワード抽出と照合を実現できます。
ワークフロー方式で「Sensitive Word Extraction」Agentを作成する
- SERVICEME NEXTのホームページに入り、左側ナビゲーションバーのAI Studioをクリックし、Agent画面に入ります。
- 右上の**「アシスタント作成」をクリックし、「高度なオーケストレーション作成」**方式を選択します。
- 以下の基本情報を入力します:
- アシスタント名:
Sensitive Word Extractionを入力 - Agentアイコン:システム内蔵アイコンから選択(現時点ではカスタムアップロード非対応)
- 分類:業務所属分類を選択、例:
Legal and Compliance - 説明:例
Sensitive Word Extraction
- アシスタント名:
- 入力が完了したら、**「作成」**をクリックし、ワークフローAgentが正常に生成されます。

「Sensitive Word Extraction」Agentの設定
📌 オーケストレーション前の思考整理
本ワークフローのコア目標は:Agentがユーザーがアップロードした契約書ファイルから自動的に存在するセンシティブワードを識別できるようにすることです。そのために、ユーザーに契約書ファイルをアップロードしてもらい、その内容を処理可能なテキストに解析します。同時に、設定済みのデータベースからセンシティブワードデータをロードし、モデルを通じて契約書内容とセンシティブワードをインテリジェントに照合し、一致項目とその位置を識別します。最終的に、モデルが識別結果を出力し、結果をユーザーに返します。全体のプロセスは、ファイル処理、データソース呼び出し、モデル識別、結果出力などの重要なステップを含み、自動化されたテキスト審査業務シーンに適しています。
📌 ノード設定と接続説明
本例のWorkflowでは、各ノードの入出力は前のノードの結果を参照して設定します。センシティブワード抽出の目標を達成するために、本プロセスは主に以下のノードを含みます:開始ノード、ファイル処理ノード、データソースノード、モデルノード、終了ノード。以下に各ノードの設定と接続方法を順に説明します。
設定プロセス
- 開始ノードの入力説明
開始ノードは2つの入力を選択できます:
USER_FILE:ユーザーが今回入力したファイルUSER_IMAGES:ユーザーが今回入力した画像
これらの入力は、後続ノードの参照元となり、ファイル処理やモデル識別に利用されます。

- ファイル処理ノードの設定
このノードは、ユーザーがアップロードした契約書ファイルの処理(テキスト抽出、スライス、ベクトル化処理)を担当します。
設定手順は以下の通りです:
- ファイル処理ノードをキャンバスに追加します。
- 開始ノードとファイル処理ノードを接続します。
- ファイル処理ノードをクリックし、設定画面に入り、以下の内容を設定します:
- 入力参照:
USER_INPUTを参照として設定、フォーマット:
Start/USER_INPUT - ファイル参照:「ファイル追加」をクリックし、
USER_FILE(ユーザーがアップロードした契約書ファイル)を選択 - TopK設定:適切なTopK(例:3~5)を選択
- TopKは、モデルがテキストベクトルマッチング時に最大で返す文書数を示します。
- 推奨:TopKが低すぎると重要な内容を見落とす可能性があり、高すぎるとモデルのフォーカス能力に影響する場合があります。
- 入力参照:

- データソースノードの設定
このノードは、先ほど作成したセンシティブワードデータテーブルを導入し、後続の照合に利用します。
設定手順は以下の通りです:
- データソースノードをキャンバスに追加し、開始ノードと接続します。
- ノードをクリックし、データソース情報を設定します:
- データソースを:
Sensitive Wordに選択 - 入力参照設定:
Start/USER_INPUT(ユーザーの入力指示)
- データソースを:
このノードの出力が、モデルで使用するセンシティブワードリストとなります。

- モデルノードの設定
このノードは本プロセスのコア処理モジュールであり、契約書テキストとセンシティブワードをインテリジェントに照合し、結果を返します。
設定手順は以下の通りです:
- モデルノードを追加し、ファイル処理ノードとデータソースノードをそれぞれ接続します。
- モデル選択:
gpt-4.1 - ツール選択:本シーンでは外部ツールの呼び出しは不要なのでスキップ
- MCP追加:本シーンではMCPの呼び出しは不要なのでスキップ
- 入力参照:
input:ファイル処理ノードの出力を参照、フォーマット:
FileHandler/outputparam2:データソースノードの出力を参照、フォーマット:
DataSource/output
- プロンプト設定:
- システムメッセージ(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.
- システムメッセージ(System Prompt):
✅ ヒント:システムメッセージはモデルに行動指示を与え、ユーザーメッセージはユーザーの実際の入力を模擬します。ここでは両者の内容を同じにすることで、より安定した効果が得られます。

- 出力ノードの設定
このノードは、モデルの処理結果を最終ユーザーに返す役割を担います。
設定手順は以下の通りです:
- モデルノードと終了ノードを接続します。
- 終了ノードをクリックし、入力参照を設定します:
- 入力内容:モデルノードの出力を参照、フォーマット:
Model/output
- 入力内容:モデルノードの出力を参照、フォーマット:
- 出力内容設定に以下を記入:
{{output}}
✅ ヒント:最後に
{{output}}のみを出力として記入することで、モデルの出力をより良く保持できます。必要に応じて、特定の内容の出力を指定することも可能です。

完全な設定は以下の通りです:

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