

# Uso de ferramentas integradas
<a name="tool-built-in"></a>

As ferramentas integradas são ferramentas totalmente gerenciadas disponíveis imediatamente, sem a necessidade de implementação personalizada. Elas podem ser ativadas na API Converse com uma simples alternância. 

## Interpretador de código
<a name="code-interpreter"></a>

O Code Interpreter permite que o Nova execute com segurança o código Python em ambientes de sandbox isolados. Ele permite gravar e executar código, analisar dados, criar visualizações e resolver problemas matemáticos. Por exemplo, o Code Interpreter pode ser usado para:
+ Gerar relatórios financeiros com base nos dados enviados
+ Fazer análise estatística completa ou simulações de algoritmos
+ Executar scripts de migração de banco de dados em ambientes isolados
+ Executar testes de unidade para o novo código gerado

Confira abaixo um exemplo de como ativar o Code Interpreter com a API Converse:

```
{
  "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"
            }
        }
    ]
},
```

Nesse caso, o modelo determinará que a solicitação requer computação para gerar o código Python necessário e chamar a ferramenta interpretadora de código. 

```
{
    "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"
    }
},
```

O interpretador executa esse código em uma sandbox e captura o resultado, a saída em um esquema padrão:

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

Nesse caso, você receberia de volta:

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

## Protocolo de contexto para modelos
<a name="w2aac51c28b7"></a>

O protocolo de contexto para modelos (MCP) é um padrão aberto que permite que desenvolvedores criem conexões bidirecionais seguras entre suas fontes de dados e ferramentas baseadas em IA. Em vez de escrever adaptadores personalizados para cada API ou serviço, você pode executar um servidor MCP e permitir que o Nova descubra suas ferramentas automaticamente por meio de uma ponte de cliente. Uma vez conectado, o Nova trata essas ferramentas como qualquer outra integração externa: ele decide quando chamá-las, envia os parâmetros necessários e incorpora os resultados em sua resposta. 