> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool 블록

> Agent 에게 API 호출·코드 실행·데이터베이스 쿼리 능력 부여.

**Tool 블록** 은 실행 중 Agent 가 선택할 수 있는 기능입니다. 도구는 두 런타임 종류가 있습니다:

* **HTTP** — 외부 API 호출.
* **Inline** — JavaScript, Python, SQL 스니펫을 우리 런타임의 샌드박스에서 실행.

## 모든 Tool 이 필요로 하는 네 가지

1. **이름 (name)** — Agent 가 참조하는 방법. 짧고 동사형 (`refund_charge`, `lookup_order`).
2. **설명 (description)** — 호출 여부를 결정할 때 Agent 가 읽는 한 줄. **가장 중요한 필드입니다.** 이해하지 못하는 도구를 Agent 는 호출하지 않습니다.
3. **파라미터 (parameters)** — 타입 있는 입력들, 각각 이름·타입·필수/옵션·자체 설명.
4. **구현 (implementation)** — 실제 호출: HTTP 는 URL + method, Inline 은 코드 본문.

## HTTP 도구

설정:

* **Method** — `GET`, `POST`, `PATCH`, `PUT`, `DELETE`.
* **URL** — path 세그먼트에 `{param}` 템플릿 지원.
* **Headers** — 시크릿 포함 (아래 참고).
* **Body 템플릿** — `POST`/`PATCH`/`PUT` 용. `{param}` 로 보간.

응답은 JSON 으로 Agent 에 전달. API 가 비-JSON 을 반환하면 Tool 안에 작은 후처리기를 추가할 수 있습니다.

## Inline 도구

JavaScript, Python, SQL 로 함수 본문을 씁니다. 파라미터는 이름 있는 변수로 자동 주입됩니다. 반환값이 Agent 가 보는 것입니다.

예 (JavaScript):

```javascript theme={null}
// Parameters: order_id (string)
const order = await db.query('SELECT * FROM orders WHERE id = $1', [order_id]);
return { total: order.total_cents / 100, status: order.status };
```

Inline 은 적당한 CPU·메모리 예산의 샌드박스에서 실행되며 기본적으로 파일시스템·네트워크 접근 없음. 필요하면 Tool 설정에서 아웃바운드 호스트를 허용 목록에 넣으세요.

## 파라미터

각 파라미터는 가집니다:

* **Type** — `string`, `number`, `boolean`, `enum`, `object`, `array`.
* **Description** — 한 줄, 값을 고를 때 Agent 가 읽음.
* **Required / optional** — 필수는 항상 채워짐; 옵션은 Agent 가 유용하다고 판단할 때만.
* **Default** — Agent 가 옵션 파라미터를 생략하면 사용.
* **Enum values** — `enum` 타입에 대해 허용 리터럴 목록.

드래그 핸들로 파라미터 재정렬. 순서는 표현에 영향, 의미에는 영향 없음.

## 시크릿과 헤더

어떤 헤더나 바디 값이든 **secret** 으로 표시할 수 있습니다. 시크릿은:

* 저장 후 UI 에서 절대 표시되지 않음 (`••••` 로 렌더링).
* 내보낸 Flow JSON 에 절대 포함되지 않음.
* 호출 시 암호화된 워크스페이스 저장소에서 주입.

Tool 인스펙터에서 시크릿을 로테이션 — 이전 실행은 계속 동작, 새 실행은 새 값 사용.

## 승인

고위험 도구 (자금 이동, 파괴적 DB 작업, 알림) 는 **Require approval before call** 을 토글합니다. 보류된 호출은 Agent 가 고른 정확한 인자와 함께 Approvals 큐에 나타납니다.

## Tool 테스트

모든 Tool 은 **Test** 패널을 가집니다. 파라미터를 채우고 Run 을 누르면 원본 응답을 볼 수 있습니다. Draft 자격증명을 쓰므로 안전하게 반복 실험 가능.
