AgentCore Code Interpreter
AgentCore Code Interpreterとは
AgentCore Code Interpreterは、[[AWS Bedrock AgentCore]]が提供する、AIエージェントがコードを実行するためのサンドボックス(隔離環境)です。エージェントが「このデータをこう加工したい」と判断したとき、[[生成AI・LLM]]自身に直接ファイルを書き換えさせるのではなく、あらかじめ用意された安全な実行環境の中で[[Python]]コードなどを走らせ、その結果だけを受け取ります。
なぜ隔離が必要かというと、LLMの出力にはハルシネーション(もっともらしい誤り)が混じったり、読み込んだデータに仕込まれた指示([[プロンプトインジェクション]])に従ってしまったりする可能性があるためです。誤った命令が本番環境やファイルシステムに直接影響しないよう、実行できる範囲(ネットワークアクセス・ファイルシステム・実行時間)をあらかじめ制限した環境で動かすのが基本方針です。
できること
| 用途 | 具体例 |
|---|---|
| データ入出力 | [[Amazon S3]]からファイルを読み込み、加工結果を書き戻す |
| データ検証 | LLMが生成した[[JSON]]が[[JSON Schema]]の条件を満たしているか機械的にチェックする |
| ファイル生成 | Excelテンプレートへのセル転記・画像挿入などの決定論的な処理を実行する([[Excel自動生成]]参照) |
| プリインストールライブラリ | データ処理・表計算操作でよく使うライブラリがあらかじめ利用可能な状態で提供される |
ポイントは、LLMが「何をすべきか」を指示し、実際の実行はプログラムが決定論的に行うという役割分担です。同じ入力なら常に同じ出力になる処理(書式の再現・数式の設定など)をLLMの自由な生成に任せると、[[推論パラメータと出力のばらつき]]のせいで実行のたびに結果が微妙にずれるリスクがあります。Code Interpreterはこの「決定論的であるべき処理」の実行場所として使われます。
初学者向けポイント
- 「AIにコードを書かせて実行する」ことと「実行そのものを安全な場所に隔離する」ことは別の話です。Code Interpreterは後者を担います
- LLMの出力は中間データ(JSONなど)として受け取り、最終的なファイル生成は別ステップのプログラム処理に任せる設計が安全です
- 実行環境がネットワークやファイルシステムへのアクセス範囲を制限されているほど、エージェントの暴走時の被害を小さくできます([[最小権限の原則]]の考え方と同じです)
関連技術とのつながり
- [[AWS Bedrock AgentCore]] — Code Interpreterを呼び出す側のエージェント実行基盤
- [[Amazon S3]] — 入出力ファイルの保管場所
- [[JSON Schema]] — Code Interpreter内で行う機械的な検証の基準
- [[Excel自動生成]] — Code Interpreterが担う代表的な決定論的処理
- [[Python]] — Code Interpreter内で実行される代表的な言語
Q: AgentCore Code InterpreterがLLMに直接ファイル操作をさせない理由として正しいのはどれ?
- [x] LLMの出力にはハルシネーションの可能性があり、誤りが本番環境に直接影響するのを防ぐため
- [ ] LLMはファイル形式を認識できないため
- [ ] コード実行には常に人間の同伴が法律で義務付けられているため
解説: 誤った命令の影響範囲を隔離環境に限定することで、安全性を確保します。
Q: Code Interpreterが担う役割として本文が説明しているのはどれ?
- [x] 決定論的であるべき処理(書式の再現・数式の設定など)を実行する場所
- [ ] LLMのモデルを追加学習させる場所
- [ ] ユーザーからの問い合わせを直接受け付ける窓口
解説: 「同じ入力なら常に同じ出力」が求められる処理は、LLMの自由生成ではなくプログラムの実行に任せます。
Q: 隔離環境の実行範囲を制限することの利点はどれ?
- [ ] 処理速度が必ず向上する
- [x] エージェントが誤った判断をした場合の被害範囲を小さくできる
- [ ] LLMの回答精度が自動的に上がる
解説: 最小権限の原則と同様、実行できる範囲を絞ることで暴走時の影響を抑えます。