# エージェントでプロンプトを呼び出す

> エージェントでプロンプトを呼び出す - エージェントコードで保存されたプロンプトを使用して、エージェントプレイグラウンドで結果をテストします。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-23T18:01:59.367676+00:00` (UTC).

## Primary page

- [エージェントでプロンプトを呼び出す](https://docs.datarobot.com/ja/docs/agentic-ai/prompt-mgmt/prompt-in-agent.html.md): Full documentation for this topic (Markdown sidecar).

## Documentation content

プロンプトテンプレートはDataRobotで作成された再利用可能なプロンプトで、多くの場合、エージェントコードで定義されるプレースホルダー変数（ `{{ topic }}` など）が含まれています。 プロンプトテンプレート自体はDataRobotに保存され、複数のバージョンを持つことができるため、エージェントコードを変更することなく、プロンプトの反復と微調整を行うことができます。

> [!NOTE] トークン数の制限
> プロンプトテンプレートは、LLMの最大出力トークン数の制限にカウントされます。

エージェントコードでは、フレームワークはDataRobot APIを介してテンプレートを取得し、変数値を提供します。 その後、これらの変数はテンプレートテキストに代入され、LLMに送信される最終プロンプトが作成されます。 初期入力フォーマットの処理はフレームワークテンプレートごとに異なるため、DataRobotのプロンプトテンプレートの使用方法はさまざまです。 `myagent.py` ファイルを変更する前に、DataRobotでプロンプトテンプレートを作成し、テンプレートIDをメモします。 必要に応じて、使用する特定のプロンプトテンプレートのバージョンIDもメモします。 次に、 `myagent.py` ファイルで、フレームワークに基づいて `MyAgent` クラスの適切なメソッドまたはプロパティを変更します。

以下の例は、このリポジトリ内の既存のフレームワークテンプレートへの変更を示しています。 各例では、 `{{ topic }}` 変数を含むプロンプトテンプレートがDataRobotに存在することを前提としています。 たとえば、プロンプトテンプレートは `Write an article about {{ topic }} in 1997.` となります。エージェントに送信されるユーザープロンプトは、ユーザー入力を `{{ topic }}` 変数に置き換えることによって、このテンプレートと結合されます。

**LangGraph:**
LangGraphは、 `ChatPromptTemplate` を返す `prompt_template` プロパティを使用します。 ファイルの先頭に `import datarobot as dr` を追加し、DataRobotのプロンプトテンプレートを使用するようにこのプロパティを修正します。

```
# Added to imports
import datarobot as dr

# Modified in MyAgent class
@property
def prompt_template(self) -> ChatPromptTemplate:
    prompt_template = dr.genai.PromptTemplate.get("PROMPT_TEMPLATE_ID")
    prompt_template_version = prompt_template.get_latest_version()
    # To use a specific version instead: 
    # prompt_template_version = prompt_template.get_version("PROMPT_VERSION_ID")
    # Convert {{ variable }} format to {variable} format for LangGraph's ChatPromptTemplate
    # The {topic} variable is filled by the framework at runtime
    prompt_text = prompt_template_version.to_fstring()
    return ChatPromptTemplate.from_messages(
        [
            (
                "user",
                prompt_text,
            ),
        ]
    ) 
```

プロンプトテンプレートID（ `"PROMPT_TEMPLATE_ID"` ）をDataRobotの適切なテンプレートIDに置き換えます。 この例では、 `get_latest_version()` を用いて、再デプロイせずに自動的に最新バージョンを使用します。

この例では、 `to_fstring()` を使用して、テンプレートの `{{ topic }}` 変数を `{topic}` 形式に変換します。LangGraphの `ChatPromptTemplate` は、これを実行時に置換します。 プロンプトテンプレートの変数がバージョンによって変わる場合（たとえば、新しいバージョンでは `{{ topic }}` ではなく `{{ subject }}` が使用される場合）、すべての変数を適切に処理するようにこのコードを更新してください。そうしないと、新しいバージョンを取得する際にコードが動作しなくなる可能性があります。

> [!NOTE] マルチエージェントワークフロー
> `prompt_template` プロパティは、最初のユーザー入力に使用されます。 [Agentic Starter](https://github.com/datarobot-community/datarobot-agent-application) および関連するテンプレートでは、各グラフノードはLangChainの [create_agent](https://python.langchain.com/docs/modules/agents/) と、 `system_prompt` 引数（多くの場合、 `datarobot_genai` の `make_system_prompt` でラップされています）を使用して構築されます。 すべてのエージェントがプロンプトテンプレートの指示に従うようにするには、フォーマットされたテンプレートテキストを各ノードの `system_prompt` に組み込みます（ `langgraph.prebuilt.create_react_agent` など、他のLangGraphの例で使用されている `prompt=` パラメーターではありません）。 DataRobotのテンプレートで使用されているAPIについては、 [エージェントのカスタマイズ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-development.html.md#modify-agent-prompts) （ エージェントプロンプトの修正 、LangGraphタブ）を参照してください。

**LlamaIndex:**
LlamaIndexは、文字列を返す `make_input_message` メソッドを使用します。 ファイルの先頭に `import datarobot as dr` を追加し、DataRobotのプロンプトテンプレートを使用するようにこのメソッドを修正します。

```
# Added to imports
import datarobot as dr

# Modified in MyAgent class
def make_input_message(self, completion_create_params: Any) -> str:
    user_prompt_content = extract_user_prompt_content(completion_create_params)
    prompt_template = dr.genai.PromptTemplate.get("PROMPT_TEMPLATE_ID")
    prompt_template_version = prompt_template.get_latest_version()
    # To use a specific version instead: 
    # prompt_template_version = prompt_template.get_version("PROMPT_VERSION_ID")
    # Render the prompt template with variables (assumes {{ topic }} in the template)
    prompt_text = prompt_template_version.render(topic=user_prompt_content)
    return prompt_text 
```

プロンプトテンプレートID（ `"PROMPT_TEMPLATE_ID"` ）をDataRobotの適切なテンプレートIDに置き換えます。 この例では、 `get_latest_version()` を用いて、再デプロイせずに自動的に最新バージョンを使用します。

この例では、プロンプトテンプレートに `{{ topic }}` 変数が含まれていることを前提としています。 プロンプトテンプレートの変数がバージョンによって変わる場合（たとえば、新しいバージョンでは `{{ topic }}` ではなく `{{ subject }}` が使用される場合）、すべての変数を適切に処理するようにこのコードを更新してください。そうしないと、新しいバージョンを取得する際にコードが動作しなくなる可能性があります。

> [!NOTE] マルチエージェントワークフロー
> `make_input_message` メソッドは、最初の入力メッセージにのみ影響します。 各エージェントには、独自の `system_prompt` プロパティがあります。 すべてのエージェントがプロンプトテンプレートの指示に従うようにするには、フォーマットされたプロンプトテンプレートを各エージェントの `system_prompt` プロパティに組み込みます。

**CrewAI:**
CrewAIは、プロンプトテンプレートを含めることができるエージェントプロパティ（ `goal` 、 `backstory` ）を使用します。 ファイルの先頭に `import datarobot as dr` を追加し、DataRobotのプロンプトテンプレートを使用するようにエージェントのプロパティを修正します。

```
# Added to imports
import datarobot as dr

# Modified in MyAgent class
@property
def agent_planner(self) -> Agent:
    prompt_template = dr.genai.PromptTemplate.get("PROMPT_TEMPLATE_ID")
    prompt_template_version = prompt_template.get_latest_version()
    # To use a specific version instead: 
    # prompt_template_version = prompt_template.get_version("PROMPT_VERSION_ID")
    # For properties that use {topic} (f-string format), use to_fstring()
    prompt_text = prompt_template_version.to_fstring()

    return Agent(
        role="Planner",
        goal=f"Plan engaging and factually accurate content on {{ topic }}. {prompt_text}",
        backstory=f"You're working on planning a blog article about the topic: {{ topic }}. {prompt_text} "
        "You collect information that helps the audience learn something and make informed decisions. "
        "Your work is the basis for the Content Writer to write an article on this topic.",
        # ... other properties
    ) 
```

プロンプトテンプレートID（ `"PROMPT_TEMPLATE_ID"` ）をDataRobotの適切なテンプレートIDに置き換えます。 この例では、 `get_latest_version()` を用いて、再デプロイせずに自動的に最新バージョンを使用します。

この例では、 `agent_planner` を修正し、その `goal` および `backstory` プロパティにおいてプロンプトテンプレートを使用するようにします。 これらのプロパティは `{topic}` （CrewAIが実行時に入力するf-string形式）を使用しているため、この例では `to_fstring()` を使用して `{{ topic }}` を `{topic}` 形式に変換し、CrewAIがユーザーの入力に置き換えることができるようにします。

この例では、プロンプトテンプレートに `{{ topic }}` 変数が含まれていることを前提としています。 プロンプトテンプレートの変数がバージョンによって変わる場合（たとえば、新しいバージョンでは `{{ topic }}` ではなく `{{ subject }}` が使用される場合）、すべての変数を適切に処理するようにこのコードを更新してください。そうしないと、新しいバージョンを取得する際にコードが動作しなくなる可能性があります。

> [!NOTE] マルチエージェントワークフロー
> 指示に従う必要がある各エージェントの `goal` または `backstory` プロパティにプロンプトテンプレートを適用します。 `{topic}` を使用するプロパティには、 `to_fstring()` を使用します。 プレーンテキストプロパティには、 `render()` を使用します。
