

# 使用内置工具
<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）是一种开放标准，开发人员可据此标准在数据源和人工智能驱动的工具之间建立安全的双向连接。可运行 MCP 服务器，让 Nova 自动通过客户端网桥发现其工具，而不必为每个 API 或服务编写自定义适配器。连接后，Nova 会像其他任何外部集成工具一样对待这些工具：决定何时调用、发送所需的参数以及将结果纳入其响应中。