

# 組み込みツールの使用
<a name="tool-built-in"></a>

組み込みツールは、カスタム実装を必要とせずに、すぐに使用できるフルマネージドツールです。これらは、シンプルな切り替えで Converse API で有効にできます。

## コードインタープリタ
<a name="code-interpreter"></a>

コードインタープリタを使用すると、Nova は分離されたサンドボックス環境で Python コードを安全に実行できます。これにより、コードの記述と実行、データの分析、視覚化の作成、数学的な問題の解決を行えるようになります。たとえば、コードインタープリタを使用して以下を行えます。
+ アップロードされたデータに基づいて財務レポートを生成する
+ 統計分析またはアルゴリズムシミュレーションを完了する
+ 分離された環境でデータベース移行スクリプトを実行する
+ 新しく生成されたコードのユニットテストを実行する

Converse API でコードインタープリタを有効にする方法の例を次に示します。

```
{
  "messages": [
    {
      "role": "user",
      "content": [{"text":  "What is the average of 10, 24, 2, 3, 43, 52, 13, 68, 6, 7, 902, 82")}]
    }
  ],

"toolConfig": {
    "tools": [
        {
            "systemTool": {
                "name": "nova_code_interpreter"
            }
        }
    ]
},
```

ここでは、モデルはリクエストに計算が必要であると判断し、必要な Python コードを生成してコードインタープリタツールを呼び出します。

```
{
    "toolUse": {
        "input": {
            "code": "'''Calculate the average of the given numbers.'''\nnumbers = [10, 24, 2, 3, 43, 52, 13, 68, 6, 7, 902, 82]\nsum_numbers = sum(numbers)\ncount = len(numbers)\naverage = sum_numbers / count\n(sum_numbers, count, average)"
        },
        "name": "nova_code_interpreter",
        "toolUseId": "tooluse_WytfF0g1S5qUeEPm0ptOdQ",
        "type": "server_tool_use"
    }
},
```

インタープリタはこのコードをサンドボックスで実行し、結果と出力を標準スキーマにキャプチャします。

```
{
  "stdOut": String,
  "stdErr": String,
  "exitCode": int,
  "isError": boolean
}
```

この場合、以下が返されます。

```
{
    "toolResult": {
        "content": [
            {
                "text": "{\"stdOut\":\"(1212, 12, 101.0)\",\"stdErr\":\"\",\"exitCode\":0,\"isError\":false}"
            }
        ],
        "status": "success",
        "toolUseId": "tooluse_WytfF0g1S5qUeEPm0ptOdQ",
        "type": "nova_code_interpreter_result"
    }
}
```

## モデルコンテキストプロトコル
<a name="w2aac51c28b7"></a>

モデルコンテキストプロトコル (MCP) は、開発者がデータソースと AI 搭載ツール間の安全な双方向接続を構築できるようにするオープンスタンダードです。API またはサービスごとにカスタムアダプターを記述する代わりに、MCP サーバーを実行し、Nova にクライアントブリッジを介してツールを自動的に検出させることができます。接続されると、Nova はこれらのツールを他の外部統合と同様に扱います。これらのツールを呼び出すタイミングを決定し、必要なパラメータを送信し、その結果をレスポンスに組み込みます。