# 既存のエージェントを最新バージョンに移行する

> 既存のエージェントを最新バージョンに移行する - フレームワークごとに、Agentic
> Starterプロジェクトを11.8.1より前のクラスベースのエージェントからファクトリーベースのレイアウトに移行します。

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-19T06:00:52.985596+00:00` (UTC).

## Primary page

- [既存のエージェントを最新バージョンに移行する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [開始する前に](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#before-you-start): In-page section heading.
- [ほとんどのフレームワークに適用される変更](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#changes-that-apply-to-most-frameworks): In-page section heading.
- [custompy_adaptorとLLM](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#custompy-adaptor-and-the-llm): In-page section heading.
- [設定](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#configuration): In-page section heading.
- [テスト](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#tests): In-page section heading.
- [フレームワーク固有の移行](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#framework-specific-migration): In-page section heading.
- [LangGraph](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#langgraph): In-page section heading.
- [CrewAI](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#crewai): In-page section heading.
- [LlamaIndex](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#llamaindex): In-page section heading.
- [Base（汎用）](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#base-generic): In-page section heading.
- [NAT](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#nat): In-page section heading.
- [移行後](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-starter-migration.html.md#after-you-migrate): In-page section heading.

## Documentation content

[バージョン 11.8.1](https://github.com/datarobot-community/datarobot-agent-application/releases/tag/v11.8.1) より前に [Agentic Starterのテンプレート](https://github.com/datarobot-community/datarobot-agent-application) を使用してエージェントを構築したユーザーは、新しいリリースとの互換性を維持するために、一度だけ更新を行う必要があります。 これは、テンプレートによるエージェントの構築方法およびツールがワークフローにアクセスする方法に変更があったためです。

- LangGraph、CrewAI、およびLlamaIndexは、手動で作成した MyAgent サブクラスに依存しなくなりました。 まず、ネイティブのフレームワークオブジェクト（graph、crew、またはworkflow）を作成し、次に MyAgent を生成する datarobot_agent_class_from_* ファクトリーでそれをラップします。
- Base（汎用）は引き続き BaseAgent をサブクラス化し、構築とLLMの接続が簡素化されています。 custompy_adaptor は、他のテンプレートと同様に llm=get_llm(...) を渡します。
- NAT (NVIDIA NeMo Agent Toolkit)は引き続き NatAgent をサブクラス化します。 __init__ は簡素化され、 custompy_adaptor では model= が省略されて、LLMは workflow.yaml 内で宣言型のまま維持されます。

これらのパターン全体で、LLMはアドホックなクラス状態から切り離されます。 フレームワーク固有の `get_llm()` ヘルパーは、 `custompy_adaptor` 内（および、DRAgentの場合は `register.py` 内）でモデルを解決します。 MCPおよびワークフローツールは、 `LangGraphAgent` スタイルのサブクラスの `self.mcp_tools` から読み込まれるのではなく、実行時に注入されます。

このページでは、フレームワークごとの移行手順をまとめています。 段階ごとの差分、変更前後の例、およびテストの更新内容については、テンプレートリポジトリ（ `docs/agent/` ）内の [framework migration guides](https://github.com/datarobot-community/datarobot-agent-application/tree/main/docs/agent) を参照してください。

## 開始する前に

- テンプレートの更新をマージする前に、リポジトリと .env ファイルのバックアップを取ります。
- テンプレートを更新し（最新のAgentic Starterの変更をプルするか、エージェントコンポーネントに対して dr component update を実行します）、 pyproject.toml 、 uv.lock 、および生成されたスタブがターゲットのバージョンと一致するようにします。
- 使用非推奨の名前を引き続き使用する場合は、環境変数の名前を変更します。 デプロイ済みLLMの設定では、（ TEXTGEN_DEPLOYMENT_ID ではなく） LLM_DEPLOYMENT_ID が必要です。 メタデータを使用したLLMプロバイダーの設定 を参照してください。
- MyAgent のエクスポートは維持します。インフラストラクチャとテストでは、そのシンボルが必要となります。 名前は変更しないでください。

## ほとんどのフレームワークに適用される変更

### custompy_adaptorとLLM

`custompy_adaptor` 内で、 `MyAgent(...)` に `model=` 文字列を渡す代わりに、適切なモジュール内の `get_llm(...)` から `llm=` を渡すように変更します。

- LangGraph / Base： datarobot_genai.langgraph.llm.get_llm
- CrewAI： datarobot_genai.crewai.llm.get_llm （CrewAIには追加の パラメーター が必要になる場合があります。例： {"stream_options": None} ）
- LlamaIndex： datarobot_genai.llama_index.llm.get_llm

`_PLACEHOLDER_MODELS = frozenset({"unknown"})` のような小さなセットでプレースホルダーのモデル名をフィルターすることで、DataRobotからのプレースホルダー `model_name` によって無効なモデルが強制されるのを防ぎます。

### 設定

新しいパターンでは設定が `get_llm()` とランタイム環境に委任されるため、 `myagent.py` から `from agent.config import Config` を削除します。 テンプレートが引き続き `custom.py` からMCP関連の設定を読み込む場合は、 `Config` をその場所に残しておきます。

### テスト

どのフレームワークにおいても、 `MyAgent(model=..., api_key=...)` を構築したテストでは、代わりに `MyAgent(llm=Mock(), ...)` を使用する必要があります。 削除された `llm()` メソッドまたは古い `__init__` シグネチャをターゲットとするテストを削除します。 必要に応じて、 `graph_factory` またはその他のモジュールレベルの接続において、テストを追加します。

## フレームワーク固有の移行

### LangGraph

- class MyAgent(LangGraphAgent) を次のように置き換えます。
- モジュールレベルの prompt_template
- LangGraph移行ガイド で説明されているように、 myagent.py から llm() 、 __init__ ボイラープレート、および Config インポートを削除します。

### CrewAI

- エージェント、タスク、クルー、および kickoff_inputs をモジュールレベルに移動します。必要に応じて、モジュールスコープで get_llm() を1回呼び出します。
- クラスを MyAgent = datarobot_agent_class_from_crew(crew, agents, tasks, kickoff_inputs) に置き換えます。
- ツールは実行時に注入されます。古いクラスの self.tools に依存しないでください。
- Crew stream ：モジュールスコープでは多くの場合 False です。DRAgentは実行時にストリーミングを調整できます（テンプレートリポジトリ内の移行ガイドを参照してください）。

### LlamaIndex

- custompy_adaptor が実際のLLMを注入するまでは、エージェントに対してモジュールレベルの LiteLLM(model="placeholder") （または同等のもの）を使用します。
- エージェント、ワークフロー、ステートツール、および extract_response_text をモジュールレベルに移動します。 make_input_message を削除します（ファクトリーが処理します）。
- MyAgent = datarobot_agent_class_from_llamaindex(workflow, agents, extract_response_text) 。

### Base（汎用）

- MyAgent は引き続き BaseAgent をサブクラス化します。 __init__ は、 BaseAgent が初期化を担っているため簡素化されています。
- クラスから、 _llm 、 self.config 、および Config の手動での使用を削除します。 Base migration guide に記載されているように、 custompy_adaptor から llm=get_llm(...) を渡します。

### NAT

- NATは他のフレームワークに比べて構造的な変更が少なくて済みます。 MyAgent(NatAgent) は引き続き NatAgent をサブクラス化しますが、 __init__ は *args / **kwargs を super() に転送し、デフォルトの workflow_path を指定します。
- custompy_adaptor では、 MyAgent を構築する際に model= を省略します。LLMは workflow.yaml で定義されています。

## 移行後

1. dr task run agent:install （またはテンプレートのインストールタスク）、 dr task run agent:test の順に実行します。
2. dr run dev または task dev でローカルスタックを起動して、アプリを操作し、 エージェントのカスタマイズ の説明に従って task agent:cli を実行します。
3. まず、本番以外の環境にデプロイします。 DataRobot UIでトレースとMCPの動作を確認します。

移行後の継続的な開発タスクについては、 [エージェントのカスタマイズ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-development.html.md) および [エージェントのコンポーネント](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-overview.html.md) を参照してください。
