

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用內建工具
<a name="tool-built-in"></a>

內建工具是全受管工具，現成可用，無需自訂實作。您可以透過簡單的切換在 Converse API 中啟用這些功能。

## 程式碼解譯器
<a name="code-interpreter"></a>

Code Interpreter 可讓 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 支援的工具之間建立安全的雙向連線。您可以執行 MCP 伺服器，並讓 Nova 透過用戶端橋接自動探索其工具，而不是為每個 API 或服務撰寫自訂轉接器。連線後，Nova 會將這些工具視為任何其他外部整合：它會決定何時呼叫它們、傳送必要的參數，並將結果納入其回應中。