AgentCore の boto3 クライアントはコントロールプレーンとデータプレーンで分かれている
AgentCore の Code Interpreter を boto3 で操作しようとして、create_code_interpreter を bedrock-agentcore クライアントで呼んだら AttributeError が返ってきた。
client = boto3.client("bedrock-agentcore", region_name="us-east-1")
client.create_code_interpreter(...) # ← これが失敗するAttributeError: 'BedrockAgentCore' object has no attribute 'create_code_interpreter'.
Did you mean: 'invoke_code_interpreter'?原因は、AgentCore がコントロールプレーンとデータプレーンで別のクライアントを使う設計になっていること。
# コントロールプレーン: リソースの CRUD
control = boto3.client("bedrock-agentcore-control", region_name="us-east-1")
control.create_code_interpreter(...) # ✓
control.delete_code_interpreter(...) # ✓
control.create_agent_runtime(...) # ✓
# データプレーン: 実行時の操作
data = boto3.client("bedrock-agentcore", region_name="us-east-1")
data.invoke_code_interpreter(...) # ✓
data.start_code_interpreter_session(...) # ✓
data.invoke_agent_runtime(...) # ✓この分離は Code Interpreter だけでなく Agent Runtime にも共通する。エラーメッセージの Did you mean が親切にデータプレーン側のメソッドを示してくれるので、「そっちじゃない」と気づくヒントにはなる。
