このドキュメントは、 Google CloudDiscovery Engine の会話レイヤの AlphaEvolve Cloud API の信頼できる本番環境グレードの API リファレンスとシステム仕様として機能します。完全自動化されたクライアントサイド コントローラと評価ループを設計するために必要な、正確なネストされたリソース階層、REST エンドポイントと gRPC エンドポイント、フィールドレベルの制約、ライフサイクル状態マシン、エラー診断マトリックス、セキュリティ サンドボックス ルール、統合ワークフローを定義します。
統合ライフサイクル状態マシン
AlphaEvolve エージェントは、2 つの独立したステート マシンを調整して、テスト キャンペーンの進行状況をモニタリングし、個々のプログラム変異の配信と実行を管理します。
テストのライフサイクル状態
テストは、最適化キャンペーン全体を表します。永続的なサーバーサイド リソースとして処理され、次の状態に移行します。
CREATED: 初期化状態。リソースは宣言され、構成されていますが、まだ初期世代が入力されておらず、API 呼び出しもディスパッチされていません。RUNNING: アクティブな評価の状態。エンジンは、親候補のサンプリング、LLM ミクスチャーによるコード変異の生成、評価ツールへのタスクのストリーミングを同時に行います。PAUSED: 手動または自動保護idle_timeoutによってトリガーされる一時的な保持状態。コード生成が停止し、既存のワーカーは指標の配信を一時停止します。COMPLETED: 検索がmax_programsの目標割り当てを正常に達成したか、構造生成の上限に達したことを示す最終状態。FAILED: 処理の実行が停止したことを示す終端エラー状態。キャッチされない API 認証情報の例外、データストアの破損、ランナーの連続したパニックなどのシステム環境の問題が原因です。
プログラムの状態
ランタイム検証シーケンスは、個々の候補バリアントに適用されます。
生成されたコードのすべてのミューテーションは、人口データベース内の一連の粒度の細かい運用状態を移行する分離されたプログラム エンティティとして動作します。
INITIALIZED: プログラム エントリがデータベースに作成され、その祖先系統と親プログラムのリンクが追跡されます。GENERATING: 特定の関数コードブロックの作成または変更を行うために、タスクが言語モデル ミックス バックエンドに積極的にディスパッチされます。EVALUATING: コード ペイロードは評価ワーカー プロセスによってロックされ、分離されたテストハーネス環境内で実行されます。COMPLETED: 実行スコアと記述的な構造的分析情報は、進化型データベースに安全にコミットされ、プログラムが選択プールに追加されます。
同時実行とロックのメカニズム
プログラムは、ワーカー ループによって原子ロック トークン メカニズムを使用して取得され、分散トポロジ全体での競合状態や重複するスコアリング オーバーヘッドを防ぎます。評価者は、最終的なスコアリング スキーマと完全一致のロック トークンを送信して、結果をデータベースに正常にコミットする必要があります。
構成と設定のスキーマ
AlphaEvolve エンジン ランタイムで使用されるコア スキーマ構成、パラメータ、デフォルトの概要。
AlphaEvolveExperimentConfig
進化型テストの実行のコア構造パラメータとプログラム制約を定義します。
| フィールド名 | タイプ | デフォルト | 制約 / 値の境界 | 技術的な説明 |
|---|---|---|---|---|
title |
文字列 | 必須 | 最大 256 文字 | テストの一意の表示名。 |
problemDescription |
文字列 | 必須 | 最大 5,000 文字 | 問題の正式な仕様。プロンプト コンテキストに直接挿入され、ルールが確立されます。 |
programmingLanguage |
文字列 | 必須 | 自由形式の値 | 進化後のコードベースのターゲット言語("python"、"cpp"、"verilog"、"cuda"、"julia"、"java" など)。 |
runSettings |
オブジェクト | 必須 | RunSettings スキーマにマッピングされます |
ペースとタイムアウトのパラメータ。 |
generationSettings |
オブジェクト | 必須 | GenerationSettings スキーマにマッピングされます |
モデル選択とコンテキストのパラメータ。 |
evolutionSettings |
オブジェクト | 必須 | EvolutionSettings スキーマにマッピングされます |
親選択と多様性のパラメータ。 |
notes |
文字列 | 必須 | 最大 1,000 文字 | 実行ドキュメントのオプションのアノテーション。 |
RunSettings
スループット ペーシング、並列処理の制限、自動システム タイムアウトを制御します。
| フィールド名 | タイプ | デフォルト | 制約 / 値の境界 | 技術的な説明 |
|---|---|---|---|---|
maxPrograms |
int32 | 100 | 最小: 1、最大: 100, 000 | 合計実行予算(生成と評価を行うプログラム)。 |
concurrency |
int32 | 1 | 最小: 1、最大: 30 | キュー内でアクティブな並列プログラム変異の数。30 より大きい値は使用できません。 |
maxDuration |
文字列 | null | ISO 8601 dayTimeDuration 文字列 最小値: >=0、最大値: 7 日 |
テストが停止するまでに許容される合計実時間。 |
idleTimeout |
文字列 | null | ISO 8601 dayTimeDuration 文字列 最小値: >=0、最大値: 24 時間 |
`PAUSED` に自動的に移行するまでの非アクティブ期間。 |
生成設定
GenerationSettings スキーマは、ミューテーションのプロンプト アセンブリ、コンテキスト ウィンドウ、モデル構成を制御します。
context(文字列): ユーザーが提供するリファレンス ドキュメント、補足 API、ルール(省略可)。トークン数は 200,000 個以下にすることを強くおすすめします。コンテキスト サイズが 200,000 トークンを超えると、モデルの注意が分散し、ミューテーションの品質が低下します。includeFullProgramInPrompt(bool): デフォルトはfalseです。true: ミューテーション プロンプトには、変更可能な# EVOLVE-BLOCKと、その周辺の変更不可能なボイラープレートが含まれます(複雑な構造的推論に強く推奨されます)。false: 変更可能なブロックのみが表示され、トークン コンテキストが保存されます。
進化の設定
EvolutionSettings スキーマは、アイランド モデルの再シードと親サンプリングの確率を制御します。
parentSamplingConfig→paretoSamplingConfig→paretoSamplingProbability(浮動小数点数): 標準の適合度ベースの選択を使用するのではなく、アクティブなパレート フロンティアから親プログラムを直接サンプリングする確率(0.0 ~ 1.0)。最適化された指標が単一のスカラー指標のみを返す場合、このパラメータは0.0(無効)に設定する必要があります。
候補プログラムのデータモデル
このセクションでは、母集団データベース内の候補コード構造を定義して整理するために使用されるデータ スキーマと表現の概要について説明します。
AlphaEvolveProgramContent
候補プログラムのファイルと構造を定義します。
files(AlphaEvolveSourceFileの配列): 候補コードベースを構成するすべてのファイルのリスト。このコレクションは、候補プログラムごとに最大 50 ファイルに厳密に制限されています。description(文字列): 生成モデルによって提案されたプログラムによる変更の概要を自動生成したものです(最大 1,000 文字)。
AlphaEvolveSourceFile
コードベース内の個々のソースコード ファイルを表します。
path(文字列): ワークスペース相対パスの宛先(最大 256 文字)。Python ワークスペースを構成する場合は、プライマリ実行可能ファイルのエントリ ポイントの名前を"initial_program.py"にする必要があります。content(文字列): 機能実装ブロックで構成される未加工のソースコード文字列。すべてのファイルにわたるコードベースのフットプリントの合計は、4,000 ~ 5,000 行のコード(LOC)未満にする必要があります。programLanguage(文字列): 言語パーサーのマッピングタグ。この文字列は、親テスト構成内で指定された言語と明示的に一致する必要があります。description(文字列): ファイルの個々のアーキテクチャまたは目的を概説する省略可能な概要。ミューテーション パス中に LLM に公開されます(最大 500 文字)。
AlphaEvolveProgramEvaluation
クライアント ランナー インスタンスがランタイム実行後に進化型データベースに送信する構造化ペイロード。
scores(AlphaEvolveScores): 標準化された客観的な数値指標の値。ベスト プラクティスでは、これを 3 ~ 5 個の個別の浮動小数点指標に制限することが推奨されています。ターゲット ディメンションが多すぎると、複数目標のパレート比較ツールのパフォーマンスが低下します。insights(AlphaEvolveEvaluationInsightの配列): LLM の後続のミューテーション生成試行を支援するために渡される診断セマンティック ラベルと自然言語実行トレース(最大 10 個を推奨)。
スコアの計算式と取り込み形式
最大化ルール
AlphaEvolve は基本的に単調なヒルクライミング アルゴリズムとして動作し、すべての数値指標を厳密に最大化します。評価パイプラインで最小化目標(アプリケーション レイテンシをミリ秒単位で最小化する、メモリ使用量を削減するなど)をトラッキングする場合は、値を否定してからデータベースに送信する必要があります(submitted_score = -latency_ms)。
スコアは連続していることが理想的です。ブール値または離散値の指標では、効果的なヒルクライミング探索を行うための十分な勾配シグナルが得られません。
単一目標の取り込みスキーマ
評価ハーネスが単一のスカラー目的関数に対して最適化する場合は、次の JSON を使用します。
```json
{
"scores": {
"scores": [
{
"metric": "accuracy",
"score": 0.95
}
]
},
"insights": {
"insights": [
{
"label": "validation",
"text": "Passed syntax and basic compilation."
}
]
}
}
```
多目的取り込みスキーマ
独立した複数目標のトラッキング パラメータを渡して、サーバーサイドのパレート フロント最適化ルーチンを有効にする場合は、次の JSON を使用します。
{
"scores": {
"scores": [
{
"metric": "accuracy",
"score": 0.95
},
{
"metric": "latency",
"score": -42.5
}
]
},
"insights": {
"insights": [
{
"label": "verification",
"text": "Passed 5 out of 5 unit tests."
},
{
"label": "latency_warning",
"text": "Latency regression of 3% observed on large dataset."
}
]
}
}
プログラムデータの取得とクエリ
AlphaEvolve システムは、生成されたすべてのミューテーションのテレメトリー、実行指標、完全なソースコードをログに記録します。これにより、デベロッパーは API または CLI を使用してこの履歴データストアをクエリし、最適化の進行状況を追跡して、パフォーマンスが最も高いコード候補を抽出できます。
REST API を使用したプログラムの取得
評価されたプログラム リソースは、フィルタリングと並べ替えのクエリ パラメータを使用して、標準の ListAlphaEvolvePrograms エンドポイントからデータベースにクエリできます。
状態フィルタリング: 特定のライフサイクル状態に一致するプログラムをクエリします。
GET /v1alpha/{parent}/alphaEvolvePrograms?state_filter=COMPLETED指標ベースの並べ替え: 最適化された指標に基づいて並べ替えられた候補を取得します。
GET /v1alpha/{parent}/alphaEvolvePrograms?order_by=accuracy desc,latency&page_size=5
CLI を使用したプログラムの取得
ターミナルから上位の完了した候補を直接取得するには、次のコマンドを実行します。
ae results best <experiment-nickname> --top 5
CLI の完全な使用例
AlphaEvolve CLI を使用すると、デベロッパーはシェルから直接キャンペーンを迅速に管理、モニタリングできます。
会話セッション内のすべてのテストを一覧表示します。
ae experiment list特定のテストのすべての変異候補プログラムを一覧表示します。
ae program list EXPERIMENT_NICKNAME \ --state=COMPLETED \ --order_by="accuracy desc"EXPERIMENT_NICKNAME は、テストの名前に置き換えます。
パフォーマンスの高い完了コード候補を取得します。
ae results best EXPERIMENT_NICKNAME --top 5EXPERIMENT_NICKNAME は、テストの名前に置き換えます。
一時停止中のキャンペーンを再開する:
ae experiment resume EXPERIMENT_NICKNAMEEXPERIMENT_NICKNAME は、テストの名前に置き換えます。
Core REST API エンドポイント ディレクトリ
すべてのエンドポイントは、 Google Cloud Discovery Engine API の v1alpha の下にバージョン管理されています。
親リソースパス パターン
ネストされた親リソースの実際の URI は、projects/{project}/locations/{location}/collections/{collection}/
engines/{engine}/sessions/{session} のように構成されます。
テストを作成する(POST)
パス:
POST v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/sessions/*}/alphaEvolveExperimentsリクエスト本文:
AlphaEvolveExperimentConfig(セクション 2.1 を参照)レスポンス: 初期化されたキャンペーンを含む
AlphaEvolveExperimentリソース。HTTP ステータス: 200 OK
API ペイロードの例
リクエスト本文の例(POST /alphaEvolveExperiments)
{ "config": { "title": "Sorting Optimization Campaign", "problemDescription": "Optimize the custom_heuristic function.", "programLanguage": "python", "notes": "Exploring convergence with Gemini 3.5 Flash.", "runSettings": { "maxPrograms": 250, "concurrency": 8, "maxDuration": "86400s", "idleTimeout": "1800s" }, "generationSettings": { "context": "Ensure custom_heuristic is in-place.", "includeFullProgramInPrompt": true, "models": [ { "name": "gemini-3.5-flash", "weight": 1.0 } ] }, "evolutionSettings": { "parentSamplingConfig": { "paretoSamplingConfig": { "paretoSamplingProbability": 0.0 } } } } }レスポンスの本文の例(200 OK)
{ "name": "projects/.../sort-opt-01", "state": "CREATED", "createTime": "2026-06-23T13:30:00Z", "config": { "title": "Sorting Optimization Campaign", "problemDescription": "Optimize the custom_heuristic function.", "programLanguage": "python", "notes": "Exploring convergence with Gemini 3.5 Flash.", "runSettings": { "maxPrograms": 250, "concurrency": 8, "maxDuration": "86400s", "idleTimeout": "1800s" }, "generationSettings": { "context": "Ensure custom_heuristic is in-place.", "includeFullProgramInPrompt": true, "models": [ { "name": "gemini-3.5-flash", "weight": 1.0 } ] }, "evolutionSettings": { "parentSamplingConfig": { "paretoSamplingConfig": { "paretoSamplingProbability": 0.0 } } } } }
テストを開始する(POST)
パス:
POST v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/alphaEvolveExperiments/*}:startリクエストの本文:
StartExperimentRequest非推奨の警告: 本文フィールド
initialProgramは非推奨となり、無視されます。レスポンス:
GoogleLongrunningOperation(LRO)。HTTP ステータス: 200 OK(状態が
CREATEDからRUNNINGに遷移します)
API ペイロードの例
リクエスト本文の例
{ "desiredProgramsCount": 1 }レスポンスの本文の例(200 OK - 長時間実行オペレーション)
{ "name": "projects/.../operations/start-op-7788", "metadata": { "@type": "type.googleapis.com/.../AlphaEvolveStartExperimentMetadata", "createTime": "2026-06-23T13:31:00Z" }, "done": false }
プログラムを取得する(POST)
パス:
POST v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/sessions/*/alphaEvolveExperiments/*}:acquireProgramsリクエストの本文:
AcquireProgramsRequestdesiredProgramsCount(int32): 取得する変更されたプログラムのバッチ数(省略可)。設定しない場合はデフォルトで 1 になります。
レスポンス ステータス:
200 OK: ロックされたAlphaEvolveProgramリソースを含むレスポンスを返します。204 No Content: キューが空であるか、キャンペーンが一時停止されています。ランナーはスリープ(15 秒など)して再試行する必要があります。
API ペイロードの例
リクエスト本文の例
{ "desiredProgramsCount": 1 }レスポンスの本文の例(200 OK)
{ "programs": [ { "name": "projects/.../alphaEvolvePrograms/prog-102", "lockToken": "token_uuid_8877_x99", "state": "EVALUATING", "createTime": "2026-06-23T13:32:00Z", "content": { "description": "Mutated candidate program.", "files": [ { "path": "initial_program.py", "programLanguage": "python", "description": "Primary sorting executable.", "content": "def custom_heuristic(arr, _):\n ..." } ] } } ] }レスポンスの本文の例(204 No Content)
空のペイロード コンテキストとともに HTTP ステータス 204 が返されました。
プログラムの評価を送信する(POST)
パス:
POST v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/sessions/*/alphaEvolveExperiments/*}:submitProgramsEvaluationsリクエストの本文:
SubmitProgramsEvaluationsRequestevaluationSubmissions(配列): 一致するlockToken、完全修飾プログラム リソースパス、評価ペイロード(スコアと分析情報)が含まれます。
レスポンス:
SubmitProgramsEvaluationsResponse(空)。HTTP ステータス: 200 OK(スコアを保存し、アクティブなロックを解除して、分析情報を登録します)
API ペイロードの例
リクエスト本文の例
{ "evaluationSubmissions": [ { "lockToken": "token_uuid_8877_x99", "program": "projects/.../alphaEvolvePrograms/prog-102", "evaluation": { "scores": { "scores": [ { "metric": "latency_performance", "score": evaluation_payload["score"] } ] }, "insights": { "insights": [ { "label": "benchmark", "text": "Completed test case in 12.45ms." } ] } } } ] }レスポンスの本文の例(200 OK)
{}
テストを再開する(POST)
パス:
POST v1alpha/{name=projects/*/locations/*/collections/*/engines/*/sessions/*/alphaEvolveExperiments/*}:resumeリクエストの本文:
ResumeExperimentRequestレスポンス:
GoogleLongrunningOperation(LRO)。HTTP ステータス: 200 OK(状態が
PAUSEDからRUNNINGに戻ります)
API ペイロードの例
リクエスト本文の例
{}レスポンスの本文の例(200 OK - 長時間実行オペレーション)
{
"name": "projects/.../operations/resume-op-9900",
"metadata": {
"@type": "type.googleapis.com/.../AlphaEvolveResumeExperimentMetadata",
"createTime": "2026-06-23T13:45:00Z"
},
"done": false
}
プログラムの一覧を取得する(GET)
パス:
GET v1alpha/{parent=projects/*/locations/*/collections/*/engines/*/sessions/*/alphaEvolveExperiments/*}/alphaEvolveProgramsクエリ パラメータ:
stateFilter(文字列): 省略可。標準リストフィルタ(stateFilter = 'COMPLETED'など)。orderBy(文字列): 省略可。指標ベースの並べ替え(例:accuracy desc)。
レスポンス:
ListAlphaEvolveProgramsResponse。HTTP ステータス: 200 OK
API ペイロードの例
リクエスト クエリ URL の例
GET v1alpha/projects/.../alphaEvolveExperiments/sort-opt-01/ alphaEvolvePrograms?stateFilter=COMPLETED&orderBy=latency_performance%20desc &pageSize=1レスポンスの本文の例(200 OK)
{ "alphaEvolvePrograms": [ { "name": "projects/.../alphaEvolvePrograms/prog-102", "state": "COMPLETED", "createTime": "2026-06-23T13:32:00Z", "evaluation": { "scores": { "scores": [ { "metric": "latency_performance", "score": -12.45 } ] }, "insights": { "insights": [ { "label": "benchmark", "text": "Completed test case in 12.45ms." } ] } } } ], "nextPageToken": "token_page_1_next" }
診断コードとトラブルシューティングのリファレンス
API 診断コードのマトリックス
| HTTP ステータス | エラーの種類 | システム原因 | 回避策または軽減策 |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
# EVOLVE-BLOCK-START / # EVOLVE-BLOCK-END コメントタグがない、JSON スキーマ構文が無効、ファイルまたは LOC の上限を超えている。 |
有効なターゲット言語の構文を使用して、ブロック コメントが関数本体内に配置されていることを確認します。ファイル数と LOC の上限が守られていることを確認します。 |
| 403 | PERMISSION_DENIED |
ユーザー アカウントまたはサービス アカウントに、Discovery Engine ユーザーのロールまたは割り当てられた Gemini Enterprise ライセンスがない。 | 有効な Gemini Enterprise ライセンスを確認します。次のコマンドを実行して、ユーザーとプロジェクトの両方に対してアプリケーションのデフォルト認証情報が正しく構成されていることを確認します。gcloud auth
application-default login
--project=<<PROJECT_ID>>注: Model Armor は AlphaEvolve 構成ではサポートされていません。 |
| 408 | LOCK_TIMEOUT |
クライアント ランナーの実行時間が超過しました。キューのプログラム ロックの有効期限が切れました。 | クライアントサイドのタイムアウトを 30 分に厳格に適用します。超過した場合は、すぐに失敗ペナルティ スコアを送信してキューロックをクリアします。 |
| 429 | RESOURCE_EXHAUSTED |
アクティブな同時実行の上限またはモデルの割り当てを超えました。 | クライアントサイドの指数バックオフを実装し、RunSettings 内で保守的な同時実行設定を構成します。 |
| 503 | SERVICE_UNAVAILABLE |
バックエンド サービスが過負荷状態であるか、メンテナンス中である。 | クライアント側でランダム化された指数バックオフを使用して再試行ループを実装します。 |
「サイレント ドロップ」を修復する
安全フィルタのインターセプト(サイレント ドロップ)は、サーバーサイドの言語モデルが、センシティブな表現や安全ルールのトリガーが原因で、変更された候補プロンプトにフラグを設定してドロップした場合に発生します。サーバーは出力をミュートするため、キューから空のレスポンスが返され、クライアント ランナーが無限に待機する可能性があります。
回避策の修正:
コンテキストをサニタイズする: 感情的な表現やセキュリティ上の機密性の高い表現を
problemDescriptionから削除します。分析情報をフィルタする:
insightsペイロードで未加工の例外トレースまたはターミナル stderr ログを解析して切り捨て、下流のフィルタをトリガーする安全でないシステム コンテンツがエコーされないようにします。データセットをローカライズする: トレーニング レコードや大規模なテキスト コーパスをプロンプト内に配置しないでください。評価ループの実行中にクライアント環境にローカルで読み込みます。
クライアントサイドの評価のベスト プラクティス
「スパゲッティ コード」のボトルネック
最適でないソース形式は最適化の品質を低下させます。「スパゲッティ コード == ノイズの多い検索空間」。EVOLVE-BLOCK マーカーを配置する前に:
変数と関数シグネチャに明確な名前が付けられるように、コードブロックをリファクタリングします。
各関数または変数の機能とその理由を説明する、説明的で簡潔な docstring を追加します。
外部の不変の依存関係(ヘルパー モジュールのインポートや静的データの読み込みなど)が
# EVOLVE-BLOCKの外部に存在することを確認します。
コンテキスト ウィンドウの割り当て
ミューテーションの創造性を最大限に高めるには、API に送信されるコード ペイロードを制限します。プログラム コンテキストの合計は 150,000 ~ 200,000 トークン以下にする必要があります。静的で不変のボイラープレートの大きなブロックは、モデルの注意を消費し、パフォーマンスを低下させます。ユーティリティ スクリプト、データ取り込みパイプライン、重い検証ライブラリをクライアントサイド エバリュエータに完全に移動します。
まず初期プログラムをプライミングする
AlphaEvolve を実行する前に、標準のコーディング エージェントを使用して、シード コードベースと評価ツールの両方をデバッグします。
シードを準備する: 明らかな構文バグ、コンパイルの問題、エッジケースを修正します。
開始スコアを確認する: ベースライン スコアが妥当であり、評価ツールが完全に決定論的であることを確認します(同じコード + 同じ入力 = 同じスコア)。
無効な入力でテストする: 意図的に壊れた関数でエバリュエータを実行し、コンパイラの問題をキャッチし、無限ループを適切に処理し、高い負のペナルティ スコアを返すことを確認します。
最適化しすぎたベースラインは避ける
すでに高度に最適化されているベースライン プログラムをシードとして渡さないでください。初期プログラムがすでに準最適に近い場合、改善の余地がほとんどないため、AlphaEvolve はヒルクライミングが困難になります。妥当なベースラインから始め、最大限に最適化しないようにします。これにより、AlphaEvolve は探索とヒルクライミングを行うことができます。
クライアントサイド ランナーの保護
クライアントサイドの評価ツールは、悪意のある候補、リソースを大量に消費する候補、応答しない候補が並列ワーカーを停止させないように、厳格な保護対策を適用する必要があります。
厳格なタイムアウト: 実行の厳格なカットオフを 30 分(または検索スペースの構造に応じてそれ以下)に設定します。
タイムアウト ペナルティの送信: 候補プログラム バリアントがタイムアウトの上限を超えた場合、その実行スレッドを直ちに終了します。候補プロセスが失敗しないようにします。代わりに、重大な障害のペナルティ スコア(
-100000.0など)と説明的なデバッグ分析情報をサーバーに即座にコンパイルして送信し、プログラムのキューロックを解除します。AST セキュリティ フィルタ: コンパイル前に、受信したソースコード ペイロードに対して抽象構文ツリー(AST)検査チェックを常に実行します。制限付きのリフレクションまたは実行プリミティブ(
eval、exec、getattr、setattrなど)が検出された場合は、直ちに実行を中止し、重大な失敗のペナルティを適用します。
その他のリソース
詳しくは、次のリソースをご覧ください。