> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/tech/ja/advanced-genai-tech/system-prompt.md).

# システムプロンプト

Agent の各回答前に、作成したシステムプロンプトへプラットフォームが自動的に追加するコンテキスト（時間、ユーザー名、位置、言語、連絡先とメンバーの属性、ナレッジベースとスキルのガイダンスなど）、それぞれを制御する設定、システムプロンプトでの参照方法を説明します。書き方とテンプレートはユーザーマニュアルをご覧ください。

最終更新：2026-10-04

システムプロンプト（System Prompt）は、Agent が毎回の回答で従うルールを記述したものです。書き方、テンプレート、例については、ユーザーマニュアルの[システムプロンプト設計ガイド](https://docs.maiagent.ai/build/agent/system-prompt)をご覧ください。

本ページでは、もう一方の要素を説明します。プラットフォームは各回答前に、Agent と会話プラットフォームの設定に応じて「現在のコンテキスト」をシステムプロンプトの後に自動的に追加し、まとめてモデルに送信します。これらの内容はシステムが毎回生成するため、システムプロンプトに固定で書き込む必要はなく、書き込むべきでもありません。

## モデルに送信するシステムプロンプトの構成 <a href="#prompt-assembly" id="prompt-assembly"></a>

回答のたびに、プラットフォームは以下の順序で組み合わせます。

1. **作成したシステムプロンプト**。グループ会話では、プラットフォームのグループ会話用指示を先に配置し、その後に作成したシステムプロンプトを続けます。
2. **引用マーカーの指示**：Agent の <mark style="color:blue;">インライン引用を有効にする</mark> が有効な場合、回答に `[1][2]` の引用マーカーを挿入するルールを追加します。
3. **プラットフォームが追加するコンテキスト**：時間、ユーザー名、位置、言語、カスタム属性などです。[次の節](#platform-context)を参照してください。
4. **状況に応じて追加するガイダンス**：ユーザーがスキルを指定した場合や、ナレッジベースが一時的に利用できない場合などです。[状況に応じて追加するガイダンス](#conditional-notices)を参照してください。

追加した内容はその回答でのみ使用し、Agent のシステムプロンプト設定には書き戻しません。

## プラットフォームが追加するコンテキスト <a href="#platform-context" id="platform-context"></a>

| 追加する内容                                                                         | 追加する条件                                                                                                                                       | 値の取得元                                                                                                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **現在の時間**：タイムゾーン、日時、曜日、週番号、UTC オフセット                                           | 会話プラットフォームの <mark style="color:blue;">システム時間を使って回答する</mark> が有効で、タイムゾーンを取得できる場合                                                              | メッセージ metadata の `timezone` を使用します。指定がない場合は、会話プラットフォームの <mark style="color:blue;">タイムゾーン</mark> 設定を使用します。どちらもない場合は追加しません。各プラットフォームのタイムゾーンの取得元については、ユーザーマニュアルの[タイムゾーンの決定方法](https://docs.maiagent.ai/build/conversation-settings/platform-settings/function-settings#timezone-resolution)をご覧ください |
| **ユーザー名**                                                                      | 会話プラットフォームの <mark style="color:blue;">送信者名を使って回答する</mark> が有効で、名前がある場合                                                                       | 連絡先の名前を使用します。組織メンバーが管理画面で会話する場合は、メンバー名を使用します                                                                                                                                                                                                                                                    |
| **現在の位置**：座標、および精度（提供されている場合）                                                  | 会話プラットフォームの <mark style="color:blue;">位置情報を使って回答する</mark> が有効で、メッセージに `latitude` と `longitude` が含まれる場合                                       | Web Chat はブラウザーの位置情報取得の許可を得た後、メッセージに位置情報を含めます。API では呼び出し元がメッセージ metadata に設定します                                                                                                                                                                                                                 |
| **ユーザーの言語**：ユーザーの希望言語を判断できない場合、この言語で回答するようモデルに指示します                            | メッセージに言語情報が含まれる場合                                                                                                                            | Web Chat と API で作成したメッセージでは、metadata の `language`、リクエストの `Accept-Language` の順に取得し、どちらもない場合はプラットフォームのデフォルト言語を使用します                                                                                                                                                                               |
| **連絡先のカスタム属性**                                                                 | 連絡先にカスタム属性がある場合、またはメッセージ metadata にカスタムキーが含まれる場合                                                                                             | 連絡先のカスタム属性と、そのメッセージの metadata を組み合わせます（同じキーがある場合はメッセージ側を優先します）。`timezone`、`latitude`、`longitude`、`accuracy`、`locale`、`language`、`contact_name` などの予約済みキーは含めません。Web Chat にページの context を注入する方法については、[Web Chat へのページ Context の注入](/tech/ja/serve/web-chat-sdk/web-chat-context-data.md)をご覧ください    |
| **組織メンバーの属性**                                                                  | 送信者が組織メンバーで、カスタム属性が設定されている場合                                                                                                                 | 組織内のメンバーのカスタム属性を使用します。ユーザーマニュアルの[個人プロフィール：カスタム属性](https://docs.maiagent.ai/org/overview/custom-attributes)をご覧ください                                                                                                                                                                               |
| **ナレッジベースのガイダンス**：ナレッジベースで回答できる可能性がある質問では、ユーザーに追加質問する前にナレッジベースを検索するようモデルに指示します | Agent モードで、その会話に利用可能なナレッジベースがある場合                                                                                                            | Agent に接続されたナレッジベースの数に基づきます                                                                                                                                                                                                                                                                     |
| **開始メッセージと開始オプション**                                                            | 通常モードで会話に開始メッセージがある場合、そのメッセージを追加します。Web Chat の <mark style="color:blue;">開始オプションを Agent のコンテキストに含める</mark> が有効な場合、開始メッセージと番号付きの会話開始用質問を追加します | 会話で実際に送信した開始メッセージと会話開始用質問を使用します。ユーザーマニュアルの[開始オプションを Agent のコンテキストに含める](https://docs.maiagent.ai/build/conversation-settings/platform-settings/interaction-settings#include-greeting-in-context)をご覧ください                                                                                          |
| **添付ファイルの処理ガイダンス**：ユーザーがアップロードした添付ファイルを、どのツールで読み取るかを示します                       | Agent モードの場合                                                                                                                                 | Agent で有効な添付ファイル用ツールに基づきます                                                                                                                                                                                                                                                                      |
| **Code Interpreter の使用ガイダンス**                                                  | Agent モードで、Agent の Code Interpreter が有効な場合                                                                                                   | プラットフォームに組み込まれた使用ルールです。ユーザーマニュアルの [Code Interpreter](https://docs.maiagent.ai/build/agent/code-interpreter) を参照してください                                                                                                                                                                           |
| **利用可能なスキル一覧**：各スキルの名称と使用するタイミング                                               | Agent にスキルが紐付けられている場合                                                                                                                        | スキルの使用条件（未入力の場合は説明）を、スキル展開ツールの説明とともにモデルに提供します。完全な指示はモデルがスキルを展開してから読み込みます。[Skill スキルモジュール](/tech/ja/advanced-genai-tech/skill.md)を参照してください                                                                                                                                                       |

追加するブロックは、`Current time information`、`Current user information`、`Current location`、`Contact custom attributes`、`Organization member attributes` など、固定の英語見出しで始まります。システムプロンプトでこれらの情報を使用するようモデルに指示する際は、見出しをそのまま参照できます。例えば、「Contact custom attributes に productId がある場合、ユーザーはその商品を閲覧しています。まずこの ID を使って商品を検索してください」と記述できます。

{% hint style="info" %}
プロンプトキャッシュ（prompt caching）に対応したモデルを使用する場合、毎回変わる時間と位置情報は `<realtime_context>` ブロックにまとめ直し、最後のメッセージの後に配置します。これにより、回答のたびに前方のキャッシュが無効になることを防ぎます。内容は上の表と同じで、配置位置だけが異なります。
{% endhint %}

## 状況に応じて追加するガイダンス <a href="#conditional-notices" id="conditional-notices"></a>

以下のガイダンスは特定の状況でのみ表示され、機能が制限されている場合にモデルが情報を作り上げることを防ぎます。

* **ユーザーがスキルやツールを指定した場合**：そのメッセージでユーザーがスキルやツールを指定している場合、指定されたものを先に使用してから回答するようモデルに指示します。
* **ユーザーが参照ドキュメントを選択した場合**：MaiGPT で参照ドキュメントを選択している場合、選択されたナレッジベースを先に検索するようモデルに指示します。回答が見つからない場合に限り、他のツールや一般知識を使用し、選択されたドキュメントに回答がないことを説明します。
* **ナレッジベースが一時的に利用できない場合**：すべてのナレッジベースへの接続が失敗した場合、ユーザーに後で再試行するよう伝えることをモデルに指示します。ナレッジベースから取得すべき内容を記憶に基づいて回答してはいけません。
* **利用枠不足で Reranker をスキップした場合**：Agent の Reranker が有効でも、組織の Credits が不足してスキップした場合、今回の検索結果の順位が通常より不正確な可能性があることをモデルに伝えます。
* **メンバーのロールで一部の組み込み機能が無効な場合**：MaiGPT で、メンバーのロールに一部の組み込み機能の利用権限がない場合、利用できない機能をモデルに伝えます。

## システムプロンプト作成時の注意点 <a href="#writing-implications" id="writing-implications"></a>

* **システムプロンプトに日付や時間を固定で書き込まないでください。** 時間が必要な場合は <mark style="color:blue;">システム時間を使って回答する</mark> を有効にしてください。固定で書き込んだ日付は、システムが追加する時間と矛盾します。
* **変動するユーザーデータをシステムプロンプトに書き込まないでください。** 名前、現在の位置、会員ランクなどは、上の表の追加コンテキストから取得します。システムプロンプトには「そのデータを取得した場合にどう使うか」だけを記述してください。
* **ユーザーが実際に使用している会話プラットフォームで設定を有効にしてください。** 時間、名前、位置の 3 つの切り替えは会話プラットフォームごとに個別に設定します。例えば、問題が LINE で発生している場合は、LINE プラットフォームの切り替えを有効にしてください。
* **システムプロンプトで、誰がどのドキュメントを閲覧できるかを制御しないでください**。次の節を参照してください。

## ドキュメントの閲覧範囲はシステムプロンプトではなく Query Metadata で制御します <a href="#access-control-with-query-metadata" id="access-control-with-query-metadata"></a>

システムプロンプトが影響を与えられるのは、AI が「すでに検索された」内容をどう使うかだけであり、検索自体を防ぐことはできません。システムプロンプトに「一般の顧客は内部ドキュメントを参照してはいけません」と書いても、そのドキュメントは検索され、LLM のコンテキストに送信されます。AI がそのまま引用したり、プロンプトインジェクションによって内容を開示するよう誘導されたりする可能性があります。

「どのユーザーがどのドキュメントを検索できるか」を制限するには、[Query Metadata（クエリメタデータ）](/tech/ja/identity-and-access/zhi-shi-guan-li-quan-xian-query-metadata-cha-xun-yuan-zi-liao-zong-lan.md) を使用してください。連絡先、会話、メッセージに、検索可能なナレッジベース、ドキュメント、タグの条件を設定します。システムが検索時に条件で絞り込むため、範囲外のドキュメントは取得されず、LLM にも送信されません。アクセスレベルなどの条件には、ナレッジベースのタグでドキュメントを分類し、Query Metadata のタグ条件で制御してください。

{% hint style="warning" %}
システムプロンプトは、口調、回答手順、優先順位の指定に適しています。「特定の人に特定のデータを見せない」という要件は、すべて Query Metadata で処理してください。システムが強制的に適用するその他の保護機構については、[AI 安全保護機構](/tech/ja/advanced-genai-tech/guardrails.md)をご覧ください。
{% endhint %}

## 関連リソース <a href="#related-resources" id="related-resources"></a>

* [システムプロンプト設計ガイド](https://docs.maiagent.ai/build/agent/system-prompt)：書き方、テンプレート、例
* [機能設定：AI 認識設定](https://docs.maiagent.ai/build/conversation-settings/platform-settings/function-settings#ai-awareness)：時間、名前、位置の 3 つの切り替えの管理画面での操作
* [Web Chat へのページ Context の注入](/tech/ja/serve/web-chat-sdk/web-chat-context-data.md)：Web ページから連絡先のカスタム属性を渡す方法
* [クエリメタデータ](https://docs.maiagent.ai/org/querymetadata)：ユーザーが検索できるドキュメントの制限


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.maiagent.ai/tech/ja/advanced-genai-tech/system-prompt.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
