# Takumi Agent とレジストリ設定の比較 {#choosing}

Takumi Guard の導入方法は下記の 2 通りあります。

- **レジストリ設定**（[クイックスタート](/docs/ja/t/guard/quickstart/index.md)・[管理者による一括導入](/docs/ja/t/guard/features/admin-deployment/index.md)を参照）: `.npmrc` などパッケージマネージャーごとの設定で Takumi Guard のレジストリエンドポイントを指定する
- **Takumi Agent**: ツールごとの設定を必要とせず、通信を捕捉して Takumi Guard に通すため、ツールごとの設定は不要

どちらの方法でも、同様の Takumi Guard の判定が適用されます。違いは、誰が保護を外せるか、何が対象になるか、ユーザーに求められる対応事項の 3 点です。次の表で両者を比較します。

|                                                    | レジストリ設定                                                                                                                                                                                                                                                                                                                                                                                                             | Takumi Agent                                                                                                                                                                                                                                                                                        |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **動作環境**                                       | macOS、Linux、Windows、CI                                                                                                                                                                                                                                                                                                                                                                                                  | Apple シリコン搭載の Mac デバイス（macOS 13 以降）                                                                                                                                                                                                                                                  |
| **導入**                                           | パッケージマネージャーごとの設定ファイルや環境変数の設定                                                                                                                                                                                                                                                                                                                                                                   | インストーラー 1 つと macOS の数回の承認（管理者権限が必要）                                                                                                                                                                                                                                        |
| **保護が外れる操作**                               | 設定ファイルの編集、環境変数の設定、`--registry` の指定                                                                                                                                                                                                                                                                                                                                                                    | システム設定の変更かアンインストール（ツールの設定では外れない）。管理コンソールに表示される                                                                                                                                                                                                        |
| **対象ツール**                                     | 設定したパッケージマネージャー                                                                                                                                                                                                                                                                                                                                                                                             | 対象レジストリと通信する Mac デバイス上のすべてのツール                                                                                                                                                                                                                                             |
| **コンテナ内でのインストール**                     | コンテナごとに設定しない限り、公開レジストリに直接届く                                                                                                                                                                                                                                                                                                                                                                     | コンテナがデバイス証明書を信頼するまでブロックされる                                                                                                                                                                                                                                                |
| **証明書**                                         | 不要                                                                                                                                                                                                                                                                                                                                                                                                                       | すべてのランタイムがデバイス証明書を信頼する必要がある。Mac デバイス上の主要なツールは自動で設定される                                                                                                                                                                                              |
| **パッケージの公開・ログインなどのアカウント操作** | 自分のトークンでレジストリに直接送られる                                                                                                                                                                                                                                                                                                                                                                                   | 自分のトークンでレジストリに直接送られる（Guard が判定するのはインストールのみ）                                                                                                                                                                                                                    |
| **公開レジストリ上のプライベートパッケージ**       | スコープ、インデックス、ソースをレジストリに直接向け、自分のトークンでインストールする（Guard を経由しない。[npm](/docs/ja/t/guard/quickstart/npm.md#private-packages)、[PyPI](/docs/ja/t/guard/quickstart/pypi.md#private-packages)、[RubyGems](/docs/ja/t/guard/quickstart/rubygems.md#private-gems)、[Go](/docs/ja/t/guard/quickstart/golang.md#private-modules)、[Composer](/docs/ja/t/guard/quickstart/packagist.md#private-packages) を参照） | 利用できない（Guard が組織のトークンを使うため）。Takumi Agent が捕捉するのは対象レジストリのホスト名のみで、それ以外のホスト（プライベートレジストリ、GitHub Packages、Artifactory、プライベートレジストリを向いたスコープ）を向いたツールは、自分の認証情報で直接通信し、ブロックされることはない |
| **Guard に到達できない場合**                       | インストールは失敗する。開発者はツールを公開レジストリに戻せる                                                                                                                                                                                                                                                                                                                                                             | インストールは失敗し、Mac デバイス上で回避する方法はない                                                                                                                                                                                                                                            |
| **可視性**                                         | [インストールログ](/docs/ja/t/guard/features/installation-logs.md)                                                                                                                                                                                                                                                                                                                                                              | インストールログに加え、管理コンソールでデバイスごとの保護状態を確認できる                                                                                                                                                                                                                          |

## AI コーディングエージェント {#ai-agents}

AI コーディングエージェントは、新しいプロジェクトや設定したことのないツール、新しいコンテナやシェルの中で、絶えずパッケージをインストールします。レジストリ設定では、そのすべてのツールが Guard を向いていることが保護の前提になり、設定されていないツールが 1 つあるだけで、あるいは `--registry` の指定が 1 つ紛れ込むだけで、誰にも気づかれずにダウンロードが公開レジストリへ向かいます。Takumi Agent では設定を維持する必要がありません。対象レジストリからのダウンロードはすべて Takumi Guard を通り、検査できないダウンロードは素通りせず、目に見える形で失敗します。

この制御が及ぶのは、対象の公開レジストリ（そのレジストリが使うすべてのホスト名）と、[対象範囲](/docs/ja/t/endpoint/index.md#coverage)に挙げたミラーです。それ以外のミラー、プライベートレジストリ、Mac デバイスの外にあるプロキシサーバーなど、別のホストに向けられたツールは対象レジストリに到達しないため、Takumi Agent からは見えません。そうした経路の制限は、ネットワークのエグレスポリシーの役割です。

この制御と引き換えに必要になるのが、デバイス証明書の信頼設定です。macOS のキーチェーンを使わないツールにはこの証明書を信頼させる必要があり、コンテナや VM はそれぞれ独自のトラストストアを持ちます。Mac デバイス上の主要なツールは Takumi Agent が自動で設定しますが、コンテナは開発者ごとに一度の設定が必要で、一部のツールには個別の手順が必要です。それぞれの対処については [Takumi Agent を使った開発](/docs/ja/t/endpoint/development.md)を参照してください。

## 推奨 {#recommendation}

開発者の Mac デバイス、とくに AI コーディングエージェントがコマンドを実行する Mac デバイスには、Takumi Agent の利用をお勧めします。CI、Linux、Windows のマシン、クラウドの開発環境や Mac デバイスの外で動く AI エージェント、Takumi Agent を導入できない環境ではレジストリ設定を使い続けてください。両者は共存できます。既に Guard のレジストリを指定しているパッケージマネージャーは、Takumi Agent をインストールした Mac デバイスでもそのまま動作します。
