はじめに
laravel/agent-detector は、PHPコードがAIエージェントや自動化開発環境の中で実行されているかを検出するための軽量ユーティリティです。2026年4月にLaravel公式パッケージとして公開されました。 AIエージェントが開発の現場に深く入り込んだ今、コード自体がどの環境で動作しているかを把握することが重要になっています。AIエージェントからのリクエストか人間からのリクエストかによってログの詳細度やレート制限を変えたり、エージェント専用のレスポンスを返したりといったケースが現実の開発で生まれています。インストール
基本的な使い方
AgentDetector::detect() を呼び出すと AgentResult オブジェクトが返ります。
AgentResult のプロパティ
| プロパティ / メソッド | 型 | 説明 |
|---|---|---|
$result->isAgent | bool | AIエージェントの中で実行されている場合 true |
$result->name | ?string | エージェント名(例: "claude")。エージェントでない場合 null |
$result->knownAgent() | ?KnownAgent | KnownAgent enumを返す。未知のエージェントは null |
対応エージェント一覧
| エージェント | 検出方法(環境変数 / ファイル) |
|---|---|
| Custom | AI_AGENT 環境変数(任意の値) |
| GitHub Copilot | AI_AGENT=github-copilot、AI_AGENT=github-copilot-cli、COPILOT_MODEL、COPILOT_ALLOW_ALL、COPILOT_GITHUB_TOKEN、COPILOT_CLI |
| Cursor | CURSOR_AGENT |
| Claude | CLAUDECODE または CLAUDE_CODE |
| Cowork | CLAUDE_CODE_IS_COWORK(CLAUDECODE または CLAUDE_CODE と同時に設定) |
| Gemini | GEMINI_CLI |
| Codex | CODEX_SANDBOX、CODEX_CI、CODEX_THREAD_ID |
| Augment CLI | AUGMENT_AGENT |
| AMP | AMP_CURRENT_THREAD_ID |
| Opencode | OPENCODE_CLIENT または OPENCODE |
| Replit | REPL_ID |
| Devin | /opt/.devin ファイルが存在する |
| Antigravity | ANTIGRAVITY_AGENT |
| Pi | PI_CODING_AGENT |
| Kiro CLI | KIRO_AGENT_PATH |
| v0 | AI_AGENT=v0 |
AI_AGENT 環境変数 → 既知の環境変数 → ファイルシステムの順です。
カスタムエージェントの設定
AI_AGENT 環境変数に任意の値を設定すると、カスタムエージェントとして検出できます。
実用的なユースケース
ミドルウェアでAIエージェントを検出する
Laravelのミドルウェアで実行環境を判定し、エージェント向けの処理を分岐させます。AIエージェント環境では詳細なログを出力する
AIエージェントからのリクエストにレート制限を適用する
ThrottleRequests ミドルウェアのキーをエージェント検出に基づいて変えることで、エージェントと人間で異なるレート制限を設けられます。
コンソールコマンドで動作を切り替える
Artisanコマンドをエージェントが実行する際に詳細な進捗を出力する例です。まとめ
laravel/agent-detector は、シンプルな環境変数チェックとファイルシステム検査をまとめたパッケージです。複雑な設定なしで AgentDetector::detect() を呼び出すだけで使えます。
AIエージェントが開発フローの一部として定着しつつある今、「コードが誰(何)によって動かされているか」を把握することはますます重要になっていきます。ログ、レート制限、レスポンスのカスタマイズなど、様々な場面でこのパッケージが活用できるでしょう。
laravel/agent-detector リポジトリ
ソースコードと最新の対応エージェント一覧はこちら。