> For the complete documentation index, see [llms.txt](https://docs.skydeck.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skydeck.ai/ko/developers/develop-your-own-tools/json-format-for-llm-tools.md).

# LLM 도구를 위한 JSON 형식

## 소개

프로그램이나 툴 편집기에 빠르게 추가할 수 있는 방식으로 도구를 공유하는 것은 도구를 표현하고 사용하는 방법에 대한 표준 방식이 있다면 크게 향상될 것입니다. 우리는 다음과 같은 기능을 가능하게 하고 싶습니다:

* 도구를 시각적으로 나타내는 아이콘
* 프롬프트를 위한 메타 데이터:
  * 도구의 이름
  * 도구에 대한 설명
  * 도구 사용법에 대한 참고 사항
* 도구 문자열에 포함된 플레이스홀더 매개변수
* 예상 출력
* 버전 및 타임스탬프.

## JSON 형식 규격

```json
{
  "version": "문자열 또는 정수",
  "model_prompt": "{{변수_이름}} 플레이스홀더가 있는 문자열",
  "metadata": {
    "prompt_name": "문자열",
    "description": "문자열",
    "usage_notes": "문자열",
    "model_version": ["문자열", "문자열", …],
    "creator": {
      "name": "문자열",
      "email": "문자열",
      "organization": "문자열"
    },
    "parameters": {
      "temperature": "실수",
      "max_tokens": "정수",
      "top_p": "실수",
      "frequency_penalty": "실수",
      "presence_penalty": "실수"
    },
    "variables": [
      {
        "name": "변수 이름 1",
        "type": "텍스트",
        "description": "문자열",
        "default": "문자열",
      },
      {
        "name": "변수 이름 2",
        "type": "단일 선택",
        "description": "문자열",
        "default": "값1",
        "allowed_values": ["값1", "값2", "값3"]
      },
      {
        "name": "변수 이름 3",
        "type": "다중 선택",
        "description": "문자열",
        "default": ["값1", "값2"]
        "allowed_values": ["값1", "값2", "값3"]
      },
      ...
    ],
    "expected_output": {
      "type": "문자열 (예: 텍스트, 코드, 제한)",
      "format": "문자열 (선택, 예: JSON, XML, CSV)",
      "language": "문자열 (선택, 예: Python, JavaScript)",
      "allowed_values": ["문자열1", "문자열2", ...] (선택)
    },
    "avatar_type": "문자열 (예: url, base64)",
    "avatar": "문자열 (URL 또는 base64 인코딩된 이미지), 권장 해상도 256x256 픽셀",
    "timestamp": "문자열 (ISO 8601 형식)"
  }
}
```

우리의 샘플 JSON은 [여기](https://skydeck-public-assets.s3.amazonaws.com/sample_tool.json)에서 다운로드 받으실 수 있습니다.

## 필드 설명

* **model\_prompt**: GPT 모델 프롬프트가 포함된 문자열입니다.
* **metadata**: GPT 모델 프롬프트에 대한 추가 정보를 포함하는 객체입니다. 다음과 같은 하위 필드가 있습니다:
  * **model\_version**: 사용된 GPT 모델의 버전을 나타내는 문자열입니다.
  * **creator**: GPT 모델 프롬프트의 창시자에 대한 정보를 포함하는 객체로, 다음과 같은 하위 필드들을 가지고 있습니다:
    * **name**: 창시자의 이름을 나타내는 문자열입니다.
    * **email**: 창시자의 이메일을 나타내는 문자열입니다.
    * **organization**: 창시자가 속한 조직을 나타내는 문자열입니다.
  * **parameters**: GPT 모델 파라미터에 대한 정보를 포함하는 객체로, 다음과 같은 하위 필드들을 가지고 있습니다:
    * **temperature**: 출력물의 무작위성을 제어하기 위해 사용된 온도를 나타내는 실수입니다.
    * **max\_tokens**: 생성된 응답에서 토큰의 최대 수를 나타내는 정수입니다.
    * **top\_p**: 핵심 샘플링 확률 임계값을 나타내는 실수입니다.
    * **frequency\_penalty**: 데이터셋에서의 토큰 빈도에 기반한 토큰에 적용되는 패널티를 나타내는 실수입니다.
    * **presence\_penalty**: 프롬프트에서의 새 토큰의 존재에 기반한 토큰에 적용되는 패널티를 나타내는 실수입니다.
  * **timestamp**: GPT 모델 프롬프트가 생성되거나 마지막으로 수정된 날짜와 시간을 나타내는 ISO 8601 형식의 문자열입니다.
  * **expected\_output (선택 사항)**: `model_prompt`에서 기대되는 출력과 관련된 필드를 포함하는 객체로, 다음과 같은 하위 필드를 포함합니다:
    * **type**: `model_prompt`에서 기대되는 출력의 타입을 나타내는 문자열입니다.
    * **format (선택 사항)**: 해당되는 경우 기대되는 출력의 형식을 나타내는 문자열입니다.
    * **language (선택 사항)**: 타입이 `code`인 경우 기대되는 출력의 프로그래밍 언어를 나타내는 문자열입니다.
    * **allowed\_values (선택 사항)**: 타입이 `limited`인 경우 허용되는 출력값의 목록을 포함하는 문자열 배열입니다.
  * **variables (선택 사항)**: f-string 스타일로 `model_prompt` 문자열에 삽입될 수 있는 변수가 포함된 목록입니다. 각 변수는 다음과 같은 하위 필드를 포함합니다:
    * **name**: 변수 이름을 나타내는 문자열입니다.
    * **type**: 변수의 타입을 나타내는 문자열입니다. 현재 `type`의 가능한 값은 기본 변수용 `text`와 선택 변수용 `single-select` 또는 `multi-select`입니다.
    * **description**: 변수의 설명을 나타내는 문자열로, 사용법과 예시를 포함합니다.
    * **default**: 변수의 기본 값을 나타내는 값입니다. 이 값은 `type`이 `text` 또는 `single-select`인 경우 문자열이고, `multi-select`인 경우 문자열 배열입니다.
    * **allowed\_values**: 변수 타입이 `single-select` 또는 `multi-select`인 경우 허용된 값의 목록을 포함하는 문자열 배열입니다.
  * **avatar (선택 사항)**: 프롬프트의 아바타나 아이콘 역할을 하는 그래픽 이미지와 관련된 필드를 포함하는 객체입니다. 다음과 같은 하위 필드들이 있습니다:
    * **avatar\_type**: 아바타 데이터의 타입을 지정하는 문자열입니다.
    * **avatar**: \`avatar\_type\`이 URL인 경우 이미지를 가리키는 URL을 포함하는 문자열이거나, \`avatar\_type\`이 base64인 경우 이미지를 나타내는 base64로 인코딩된 문자열입니다.
  * **prompt\_name (선택 사항)**: 프롬프트의 이름을 나타내는 문자열입니다.
  * **description (선택 사항)**: 도구와 그 목적에 대한 간략한 설명을 제공하는 문자열입니다.
  * **usage\_notes (선택 사항)**: 도구 사용에 있어서 창작자가 제공하는 자유 형식의 노트나 특정 고려사항들을 포함하는 문자열입니다.

`model_prompt`에서 기대되는 출력의 형식을 지정하려면 `metadata` 객체 내에 `expected_output` 객체를 추가할 수 있습니다. 기대되는 출력의 타입에 따라 `expected_output` 객체에 관련 하위 필드를 포함할 수 있습니다.

f-string 스타일로 `model_prompt` 문자열에 삽입될 수 있는 변수 필드를 포함시키려면 `metadata` 객체 내에 별도의 `variables` 목록을 추가할 수 있습니다.

프롬프트 이력에 대한 아바타나 아이콘이 될 그래픽 이미지를 포함시키려면 `metadata` 객체 내에 `avatar` 필드를 추가할 수 있습니다.

`expected_output` , `variables`, `avatar`, `prompt_name`, `description`, 그리고 `usage_notes` 필드들을 `metadata` 객체 내에 포함시키면 프롬프트에 대한 모든 맥락 정보를 한 곳에 모아 관리하고 이해하는 데 도움이 됩니다.

JSON 객체의 최상위 레벨에 `version` 필드를 사용하여 전체 JSON 파일의 버전을 명시적으로 추적할 수 있습니다


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skydeck.ai/ko/developers/develop-your-own-tools/json-format-for-llm-tools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
