# 【構築例】Alliの回答生成(RAG)機能とLLMアプリを組み合わせたエージェントを実装する

本ガイドでは、Agent Builderを活用して、弊社が提供するAlli MCPサーバーおよびツールを活用して、Alli LLM App Market内で構築したシングルアクションアプリと回答生成(RAG)機能を組み合わせたAIエージェントを構築する一連の手順を紹介します。

今回は、ユーザーの質問に対して社内情報から検索を行い、メールの下書きまでを指定したフォーマットで作成するAIエージェントを作成します。

## 事前準備 <a href="#agent-creation" id="agent-creation"></a>

### １．回答生成のソースとなるドキュメントを登録する

AIエージェントがツールを使用して回答を生成するための根拠となるドキュメントを登録します。\
ドキュメントの登録方法の詳細は「[ドキュメント](https://docs.allganize.ai/alli-llm-app-market/knowledge-base/document/document)」ガイドを参照してください。

今回は以下のような就業規則のサンプルのPDFを登録しておきます。

<figure><img src="/files/Ri8ysyPRmGeOJJ2hStjN" alt=""><figcaption></figcaption></figure>

### ２．シングルアクションアプリを作成する <a href="#agent-creation" id="agent-creation"></a>

AIエージェントがツールとして使用するためのメールの校正と下書きを行うアプリを作成します。\
今回は、アプリマーケットからデフォルトアプリの"[**メールの下書き作成**](https://docs.allganize.ai/alli-llm-app-market/app-market/default-apps/app-all/email-drafts)"アプリをインストールし、プロンプト内容を実際の業務に沿った内容に修正して使用します。(以下の修正例はサンプルです。)\
シングルアクションアプリの作成方法は、「[シングルアクション](https://docs.allganize.ai/alli-llm-app-market/app-management/singleaction)」ガイドを参照してください。

<figure><img src="/files/f4oma5B7JBbdEQiSK5aS" alt=""><figcaption></figcaption></figure>

## エージェントを構築する <a href="#build-an-agent" id="build-an-agent"></a>

### １．エージェントを作成する <a href="#agent-creation" id="agent-creation"></a>

エージェントの基本的な作成方法につきましては、「[【アップデート版】Agent Builder機能について](https://docs.allganize.ai/alli-llm-app-market/agent-builder/about-agent-builder)」ガイドをご参照ください。\
エージェントの作成後、名称や説明は任意のものをご設定ください。

### ２．ツールを追加する <a href="#add-a-tool" id="add-a-tool"></a>

AIエージェントが使用するツールを設定します。\
今回は以下の2つのツールを追加します。

**\[追加するツール]**

* Allganize Alli
  * Generate Answer
    * 回答生成(RAG)機能を実行するツール
  * メールの下書き作成
    * 上記、「[事前準備](#agent-creation-1)」セクションで用意したアプリ。

<figure><img src="/files/IGn0qUNQ5h4JsN8i6Y8B" alt=""><figcaption></figcaption></figure>

### ３．エージェントのモデルとインストラクションを設定する <a href="#addition-of-models-and-instructions" id="addition-of-models-and-instructions"></a>

エージェントに適用するモデルとインストラクションを設定します。

<figure><img src="/files/immXNTKUWXFHwqJbHWsG" alt="" width="375"><figcaption></figcaption></figure>

**モデル**：GPT-4o

**インストラクション**(サンプル)：&#x20;

```json
【1. 役割】
- あなたは「問い合わせ対応の効率化」を目的とした業務支援エージェントである。
- ユーザーの質問に対し、社内情報を検索して根拠付きで回答し、必要に応じてメールの下書きを作成してユーザーを支援する。

【2. ゴール】
- ユーザーの質問に対し、社内情報に基づく正確で再現可能な回答を提示する。
- ユーザーが希望する場合、提示した回答内容をもとに目的に適したメール下書きを作成する。

【3. 出力（回答）のフォーマット】
- 回答は読みやすく、次の順で出力する。
-- 結論（1〜3行）
-- 根拠（社内情報の要点）：箇条書きで重要点のみ
-- 手順 / 次アクション（必要な場合）
-- 不明点・例外（社内情報で判断できない点があれば明示）
-- 確認：「メール下書きが必要か」を必ず尋ねる（Yes/Noで答えられる形）

【4. ワークフロー（必ず守る手順）】
- ステップ1：検索→回答
-- ユーザーの質問を受け取る
-- "Generate Answer"ツールで社内情報を検索する
-- 検索結果を整理して、【3. 出力フォーマット】に従い回答する

- ステップ2：メール下書き要否の確認
-- 回答の最後に必ず次を質問する：
「この内容でメールの下書きも作りますか？（はい／いいえ）」

- ステップ3：メール下書き作成（必要な場合）
-- ユーザーが「はい」と言った場合：
--- "メールの下書き作成"ツールを呼び出し、直前の回答内容を元にメール下書きを作成する
--- 下書きを提示し、修正指示（差分）を受け付ける

```

設定は以上となります。

## エージェントの動作を確認する <a href="#verify-the-agents-operation" id="verify-the-agents-operation"></a>

エージェントの設定が完了したら、公開する前に"プレビュー"で動作をテストしてみましょう。

### １．プレビューを開始する <a href="#start-preview" id="start-preview"></a>

<figure><img src="/files/7FbGJaQtgn6aKoxW1roq" alt=""><figcaption></figcaption></figure>

編集画面右部の"プレビューを開始"を押下します。

### ２．クエリを入力する <a href="#enter-the-query" id="enter-the-query"></a>

<figure><img src="/files/X4qNtH2qbNqWwg3HWo8O" alt=""><figcaption></figcaption></figure>

エージェントを実行するためのクエリを入力します。

### ３．結果を確認する <a href="#check-the-results" id="check-the-results"></a>

<figure><img src="/files/r9jpSBx1rEmRNUjY4yb7" alt="" width="563"><figcaption></figcaption></figure>

社内情報からの回答ができていることが確認できました。\
次に、メールの下書きを作成するよう指示します。

<figure><img src="/files/3Vr5pfZRQrfnIbsxEJdc" alt="" width="563"><figcaption></figcaption></figure>

エージェントのツールに指定しているシングルアクションアプリで指定されたプロンプトの内容に沿ってメール文章が作成されていることが確認できました。

動作に問題がなければ、ユーザーが利用できるよう、Alli Worksに公開します。

## 【TIPS】

### エージェントの回答に参照ドキュメントの引用情報を含める <a href="#include-reference-document-information-in-the-agents-response" id="include-reference-document-information-in-the-agents-response"></a>

エージェントが"Generate Answer"ツールを使用する際に、回答元となったドキュメントの引用情報を含められるよう、上述のインストラクションのワークフロー部分に以下の一文を追記をします。\ <mark style="color:red;">※本ユースケースに合わせたサンプルとなりますので、内容につきましては、実際に設計されるインストラクションに応じてご調整ください。</mark>

`「--- include_citationsは常にTrueとし、根拠となったドキュメントの情報を必ず回答内に含めること。」`

```json
【4. ワークフロー（必ず守る手順）】
- ステップ1：検索→回答
-- ユーザーの質問を受け取る
-- "Generate Answer"ツールで社内情報を検索する
 --- include_citationsは常にTrueとし、根拠となったドキュメントの情報を必ず回答内に含めること。
-- 検索結果を整理して、【3. 出力フォーマット】に従い回答する

- ステップ2：メール下書き要否の確認
-- 回答の最後に必ず次を質問する：
「この内容でメールの下書きも作りますか？（はい／いいえ）」

- ステップ3：メール下書き作成（必要な場合）
-- ユーザーが「はい」と言った場合：
--- "メールの下書き作成"ツールを呼び出し、直前の回答内容を元にメール下書きを作成する
--- 下書きを提示し、修正指示（差分）を受け付ける
```

<figure><img src="/files/nvA1PaR8KL4ggAutm1zU" alt="" width="563"><figcaption></figcaption></figure>

回答に引用元のリンクが含まれていることが確認できました。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.allganize.ai/alli-llm-app-market/agent-builder/agent-builder-constraction1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
