

# 도구 직접 호출 시스템
<a name="prompting-tools-function"></a>

도구 직접 호출은 요청에 도구 구성 스키마를 전달하여 Amazon Nova 모델에 사용할 수 있습니다. 모델에 대한 프롬프트는 이 도구 구성으로 보강되므로 도구 직접 호출 시스템 최적화를 시작하는 데 매우 큰 영향을 미칠 수 있습니다.

다음 주요 원칙을 고려하세요.
+ 도구 정의는 명확하고 간결해야 합니다. 이해하기 쉽고 의도가 매우 명확해야 합니다.
+ 주요 차별화 요소와 경계 조건을 사용하여 어떤 도구를 다른 도구보다 먼저 사용해야 하는지 정의합니다.
+ 입력 인수 유형을 신중하게 선택합니다. 이것이 말이 되는지, 그리고 일반적으로 이런 방식으로 사용될 것으로 기대되는지 물어보세요.

**‘도구 선택’을 사용하여 도구 직접 호출 시기 제어**

도구 선택 파라미터를 사용하면 모델에서 도구 직접 호출의 동작을 사용자 지정할 수 있습니다. 어떤 도구가 언제 직접적으로 호출되는지 세밀하게 제어하려면 이 기능을 활용하는 것이 좋습니다.

예를 들어 구조화된 출력과 같은 사용 사례의 경우 Amazon Nova가 간접적으로 호출될 때마다 특정 도구를 직접적으로 호출할 수 있습니다. 출력의 스키마를 도구로 정의한 다음 도구 선택을 해당 도구의 이름으로 설정할 수 있습니다.

```
{
   "toolChoice": {
        "tool": {
            "name": "name_of_tool"
        }
    }
}
```

많은 에이전트 사용 사례의 경우 모델이 항상 사용 가능한 도구 중 하나를 선택하도록 해야 할 수 있습니다. 이렇게 하려면 도구 선택을 `any`로 설정하면 모델이 간접적으로 호출될 때마다 정확히 하나의 도구가 직접적으로 호출됩니다.

```
{
   "toolChoice": {
        "any": {}
    }
}
```

마지막으로, 도구 직접 호출 여부가 대화의 맥락에 따라 크게 좌우되는 사용 사례의 경우 도구 선택을 `auto`로 설정할 수 있습니다. 이는 기본 동작이며 도구 선택을 전적으로 모델에 맡깁니다.

```
{
   "toolChoice": {
        "auto": {}
    }
}
```