

# 기본 제공 도구 사용
<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"
    }
}
```

## Model Context Protocol(MCP)
<a name="w2aac51c28b7"></a>

Model Context Protocol(MCP)은 개발자가 데이터 소스와 AI 기반 도구 간에 안전한 양방향 연결을 구축할 수 있는 개방형 표준입니다. 각 API 또는 서비스에 대한 사용자 지정 어댑터를 작성하는 대신 MCP 서버를 실행하고 Nova가 클라이언트 브리지를 통해 도구를 자동으로 검색하도록 할 수 있습니다. 연결되면 Nova는 이러한 도구를 다른 외부 통합처럼 취급합니다. 즉, 호출 시기를 결정하고, 필요한 파라미터를 전송하고, 결과를 응답에 통합합니다.