# Pythonパッケージの追加

> Pythonパッケージの追加 - pyproject.tomlの依存関係管理を使用して、エージェントワークフローに必要なPythonパッケージを追加します。

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-15T05:55:44.565695+00:00` (UTC).

## Primary page

- [Pythonパッケージの追加](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-python-packages.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [エージェントにパッケージを追加する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-python-packages.html.md#add-packages-to-your-agent): In-page section heading.
- [エージェント特有の注意事項](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-python-packages.html.md#agent-specific-considerations): In-page section heading.
- [実行時依存関係の追加（高速イテレーション）](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-python-packages.html.md#add-runtime-dependencies-fast-iteration): In-page section heading.
- [機能に関する注意事項](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-python-packages.html.md#feature-considerations): In-page section heading.

## Documentation content

エージェント環境に追加のPythonパッケージを追加するには、最新のPythonパッケージと環境マネージャであるuvを使って、 `pyproject.toml` ファイルに追加します。

> [!WARNING] 既存パッケージの維持
> プレイグラウンド環境とデプロイ環境で動作の一貫性を確保するため、既存のパッケージを `pyproject.toml` で維持することをお勧めします。

> [!TIP] 実行時依存関係を用いた高速イテレーション
> 開発を迅速に行うために、Dockerイメージを再構築せずに、 [実行時依存関係](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-python-packages.html.md#add-runtime-dependencies-fast-iteration) を使って依存関係を追加できます。 これは、開発時の簡単なテストに最適です。

パッケージを追加するための一般的なワークフローは次のとおりです。

1. パッケージを追加する： uv add <PACKAGE_NAME>
2. ローカルでテスト： dr run dev または task dev （開発サーバーを実行します）
3. Dockerイメージを構築： dr task agent:build-docker-context （カスタムDockerイメージを使用する場合）
4. デプロイする：デプロイパイプラインを使用

> [!NOTE] 自動同期
> `dr run deploy` 、 `dr run deploy-dev` 、または `dr run dev` の実行中に、 `pyproject.toml` ファイルはエージェントワークフローのコードと自動的に同期されます。 パッケージのインストールは、デフォルトで `uv` と自動的に同期されます。 これらのディレクトリ内の `pyproject.toml` ファイルを手動で更新する必要はありません。

## エージェントにパッケージを追加する

1. エージェントのディレクトリに移動し、uvを使用して新しいパッケージを追加します。

```
cd agent
uv add <PACKAGE_NAME> 
```

たとえば、 `requests` パッケージを追加するには、次のようにします。

```
uv add requests 
```

バージョンの制約も指定できます。

```
uv add "requests>=2.32.0" 
```

1. カスタム実行環境を作成し、プレイグラウンドでエージェントをテストします。
2. .envファイルを開きます。
3. DATAROBOT_DEFAULT_EXECUTION_ENVIRONMENT=を空に設定するか、その行を完全に削除します。
4. オプション：カスタムDockerイメージでテストする必要がある場合は、まずDockerコンテキストを作成します。

```
# Create docker_context directory if needed
dr task agent:create-docker-context

# Then build and test the Docker image
cd agent/docker_context
docker build -f Dockerfile . -t docker_context_test 
```

これらの手順を完了した後、初めて `dr run dev` 、 `dr run deploy-dev` 、または `dr run deploy` を実行すると、新しい環境が自動的に構築されます。 以降のビルドでは、要件に変更がなければ、キャッシュされた環境が使用されます。 新しい環境は自動的にリンクされ、すべてのエージェントコンポーネント、モデル、およびデプロイに使用されます。

以下のコマンドを実行してエージェントイメージの構築を手動でテストし、新しい依存関係が正常に定義されていることを確認できます。

```
dr task agent:build-docker-context 
```

> [!NOTE] docker_contextはオプション
> `docker_context` ディレクトリは、デフォルトでは含まれなくなりました。 カスタムDockerイメージを構築する必要がある場合は、まず `dr task agent:create-docker-context` を使用してDockerコンテキストを作成します。 このコマンドは必要なDockerファイルをダウンロードし、エージェントフォルダーに `docker_context` ディレクトリを作成します。 `dr task agent:build-docker-context` コマンドは、更新された `pyproject.toml` を `docker_context/` ディレクトリにコピーし、新しい依存関係を含むDockerイメージを構築して、そのイメージを保存します。

> [!WARNING] 設定ファイルを削除しないようにしてください
> `pyproject.toml` ファイルからのパッケージの削除は、それが不要であることを確認してから行ってください。 パッケージを削除すると、ローカルの実行環境が正常に動作していても、プレイグラウンドやデプロイの操作で予期しない動作が発生する可能性があります。

## エージェント特有の注意事項

エージェントのタイプによって依存関係の管理方法が異なる場合があります。

| エージェントのタイプ | 依存関係の管理方法 |
| --- | --- |
| agent_generic_base | pyproject.tomlを使用します。 |
| agent_llamaindex | requirements.inおよびrequirements.txtファイルが自動生成されたpyproject.tomlを使用します。 |
| agent_crewai | pyproject.tomlを使用します。 |
| agent_langgraph | pyproject.tomlを使用します。 |
| agent_nat | pyproject.tomlを使用します。 |

すべてのエージェントタイプで推奨される方法は、 `uv add <PACKAGE_NAME>` を使用して `pyproject.toml` ファイルを修正することです。これにより、依存関係の解決とバージョンの制約が自動的に処理されます。

`pyproject.toml` ファイルは、すべての依存関係の唯一の情報源として機能し、ビルドプロセスはDocker環境のセットアップを自動的に処理します。

## 実行時依存関係の追加（高速イテレーション）

開発とテストを迅速に行うには、Dockerイメージを再構築せずに、実行時の依存関係を追加します。 `pyproject.toml` ファイルの `extras` グループに追加された依存関係は、プレイグラウンドでプロンプトが最初に実行されたとき、またはデプロイが開始されたときにインストールされます。 実行時依存関係は、次の場合に最適です。

- 開発中の簡単なイテレーション
- イメージを再構築せずに新しいパッケージをテストする
- コンパイルを必要としない軽量な依存関係を追加する

`uv` を使用して実行時依存関係を直接追加します。

```
cd agent
uv add --active --no-upgrade --group extras "chromadb>=1.1.1" 
```

> [!TIP] --no-upgradeフラグの使用
> `--no-upgrade` フラグは、追加の依存関係のインストールに必要な時間を最小限に抑えるために重要です。 このフラグにより、既存の依存関係をアップグレードせずに新しい依存関係のみが追加されるため、ランタイムのインストールを高速に保ち、実行環境との違いを最小限に抑えることができます。

### 機能に関する注意事項

実行時依存関係には、注意すべき重要な制限がいくつかあります。

- インターネットアクセスが必要：追加の依存関係が実行時にインストールされるため、インターネットアクセスが必要です。 制限のあるネットワーク環境では、内部PyPIプロキシを設定するか、カスタム実行環境を構築してカスタム依存関係を含める必要があります。
- インストールの複雑さ：依存関係に高度なインストールプロセス（Cバインディングのコンパイル、キャッシュの設定、カスタムビルド手順など）がある場合、実行環境の制限によりランタイムインストールが失敗することがあります。 このような場合、カスタム実行環境を構築する以外に方法はありません。
- セキュリティに関する注意事項：実行時依存関係を使用すると、エージェントで直接ライブラリバージョンをアップグレードすることで、実行時のCVEの問題を迅速に修正できます。 ただし、実行環境にそのような脆弱性がない場合でも、ライブラリを脆弱性のあるバージョンにダウングレードすることで脆弱性が発生する可能性があります。 脆弱性が適切に修正されるように、実行環境とエージェントのpyproject.toml/uv.lockファイルの両方を更新する必要があります。

実行時依存関係を使用する際には、以下のベストプラクティスを検討してください。

- 開発とテストに実行時依存関係を使用します。
- 本番環境にデプロイする場合は、必要な依存関係をすべてインストールしたカスタム実行環境の構築を検討してください。
- pyproject.toml ファイルとすべての依存関係を同期させて、環境間の一貫性を確保します。
- --no-upgrade フラグを使用してアップグレードを最小限に抑え、インストール時間を短縮します。
