# 制限事項・注意事項 {#limitation}

:::warning
本ページは、Takumi Agent for Endpoint の制限事項・注意事項のすべてを網羅するものではありません。対策手法そのものの限界を詳細に開示することは対策の回避に利用されうるため、記載内容は意図的に限定しています。
:::

Takumi Agent はインストールを Takumi Guard に通すため、ブロックの限界やレートリミットなど [Takumi Guard の制限事項](/docs/ja/t/guard/limitation.md)もあわせて適用されます。本ページでは、エージェント自体の制限事項を説明します。

## 対応プラットフォーム {#supported-platforms}

Takumi Agent が動作するのは、**Apple シリコン搭載の Mac デバイス（macOS 13（Ventura）以降）** のみです。Intel 搭載の Mac、Linux、Windows、CI には対応していません。これらの環境では[レジストリ設定](/docs/ja/t/endpoint/references/choosing.md)を利用してください。

## 対象レジストリ以外への通信 {#uncaptured-traffic}

Takumi Agent が捕捉するのは、[対象範囲](/docs/ja/t/endpoint/index.md#coverage)に挙げたレジストリへの通信のみです。プライベートレジストリやそれ以外のミラー、Mac デバイスの外にあるプロキシサーバーなど、別のホストに向けられたツールの通信は Takumi Guard を介さずにそのまま通過します。Git や tarball の URL、バージョン管理システムから直接取得される Go モジュール（`GOPROXY=direct`、`GOPRIVATE`）も同様です。

Takumi Agent による捕捉対象以外のエンドポイントに対する通信経路の制限は、ネットワークエグレスポリシー等の他の制限設定を併せて検討してください。

## 公開レジストリ上のプライベートパッケージ {#private-packages}

`registry.npmjs.org` 上のプライベートパッケージのように、公開パッケージレジストリでホストされているプライベートパッケージは、Takumi Agent をインストールした Mac デバイスではインストールできません。こうしたインストール時のネットワークリクエストは、利用者のトークンではなく Takumi Guard 用の組織トークンを認証情報として設定した状態でデバイスから公開レジストリへ送信されるため、プライベートパッケージにアクセスするための認証情報が設定されず、拒否されます。そうしたパッケージは CI からインストールするか、プライベートレジストリでホストしてください。詳細については[レジストリの認証情報と公開](/docs/ja/t/endpoint/development.md#credentials)を参照してください。

## Takumi Guard に到達できない場合 {#guard-unreachable}

Takumi Guard のプロキシへ到達できない間、対象レジストリからのパッケージのインストールは失敗し、Takumi Agent をインストールした Mac デバイス上で回避する方法はありません。検査されないまま対象レジストリからパッケージがインストールされることはありません。

## デバイス証明書 {#device-certificate}

対象レジストリからパッケージをダウンロードするすべてのツール・ランタイムは、Takumi Agent インストール時に Mac デバイス上に設置されるデバイス証明書を信頼する必要があります。Mac デバイス上の主要なツールは Takumi Agent が自動で設定しますが、macOS のキーチェーンを使わないツールには個別の設定が必要です。また、コンテナや仮想マシンはそれぞれ独自のトラストストアを持つため、手動での設定が必要です。設定するまで、コンテナ・仮想マシン内でのパッケージのダウンロードリクエストはブロックされます。それぞれの対処については [Takumi Agent を使った開発](/docs/ja/t/endpoint/development.md)を参照してください。

## レートリミット {#rate-limit}

Takumi Agent をインストールしたデバイスには Takumi Guard の組織ユーザートークンと同様に、**1 デバイスあたり 10,000 回/10 秒**のレートリミットが適用されます。デバイスのトークンと組織ユーザートークンは同じ方式のトークン単位のバケットで数えられ、上限はすべてのエコシステムの合計で 10 秒あたり 10,000 回です。

:::info
レートリミットは Guard 保護機能が対象となるレジストリへの通信のみに適用されます。
:::

レートリミットを超過した場合、デバイスからの対象レジストリへの通信リクエストは `429 Too Many Requests` で拒否されます。

レートリミットの詳細に関しては[レートリミット](/docs/ja/t/guard/limitation.md#rate-limit)を参照ください。
