> 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/de/developers/develop-your-own-tools/json-format-for-llm-tools.md).

# JSON-Format für LLM-Werkzeuge

## Einleitung

Das Teilen eines Tools auf eine Weise, die schnell zu einem Programm oder Tool-Editor hinzugefügt werden könnte, wäre mit einer standardisierten Methode zur Repräsentation eines Tools und seiner Nutzung erheblich verbessert. Wir möchten Funktionen wie die folgenden ermöglichen:

* Ein Icon zur visuellen Darstellung des Tools
* Metadaten für die Aufforderung:
  * Ein Name für das Tool
  * Eine Beschreibung des Tools
  * Anwendungshinweise für das Tool
* Platzhalterparameter, die in die Tool-Zeichenkette aufgenommen werden
* Erwartete Ausgabe
* Versionierung und Zeitstempel.

## Spezifikation des JSON-Formats

```json
{
  "version": "String oder Integer",
  "model_prompt": "String mit {{Variablenname}} Platzhalter",
  "metadata": {
    "prompt_name": "String",
    "description": "String",
    "usage_notes": "String",
    "model_version": ["String", "String", …],
    "creator": {
      "name": "String",
      "email": "String",
      "organization": "String"
    },
    "parameters": {
      "temperature": "Float",
      "max_tokens": "Integer",
      "top_p": "Float",
      "frequency_penalty": "Float",
      "presence_penalty": "Float"
    },
    "variables": [
      {
        "name": "Variablenname 1",
        "type": "Text",
        "description": "String",
        "default": "String",
      },
      {
        "name": "Variablenname 2",
        "type": "Einzel-Auswahl",
        "description": "String",
        "default": "Wert1",
        "allowed_values": ["Wert1", "Wert2", "Wert3"]
      },
      {
        "name": "Variablenname 3",
        "type": "Mehrfach-Auswahl",
        "description": "String",
        "default": ["Wert1", "Wert2"]
        "allowed_values": ["Wert1", "Wert2", "Wert3"]
      },
      ...
    ],
    "expected_output": {
      "type": "String (z.B., Text, Code, begrenzt)",
      "format": "String (optional, z.B., JSON, XML, CSV)",
      "language": "String (optional, z.B., Python, JavaScript)",
      "allowed_values": ["String1", "String2", ...] (optional)
    },
    "avatar_type": "String (z.B., url, base64)",
    "avatar": "String (URL oder base64-kodiertes Bild), empfohlen sind 256x256 Pixel",
    "timestamp": "String (ISO 8601 Format)"
  }
}
```

Unser Beispiel JSON kann [hier](https://skydeck-public-assets.s3.amazonaws.com/sample_tool.json) heruntergeladen werden.

## Feldbeschreibung

* **model\_prompt**: Ein String, der den GPT-Modellprompt enthält.
* **metadata**: Ein Objekt, das zusätzliche Informationen über den GPT-Modell-Prompt enthält, einschließlich der folgenden Unterfelder:
  * **model\_version**: Ein String, der die Version des verwendeten GPT-Modells angibt.
  * **creator**: Ein Objekt, das Informationen über den Ersteller des GPT-Modell-Prompts enthält, mit den folgenden Unterfeldern:
    * **name**: Ein String, der den Namen des Erstellers darstellt.
    * **email**: Ein String, der die E-Mail des Erstellers darstellt.
    * **organization**: Ein String, der die Organisation darstellt, mit der der Ersteller verbunden ist.
  * **parameters**: Ein Objekt, das Informationen über die Parameter des GPT-Modells enthält, mit den folgenden Unterfeldern:
    * **temperature**: Eine Gleitkommazahl, die die für die Steuerung der Zufälligkeit der Ausgabe verwendete Temperatur angibt.
    * **max\_tokens**: Eine ganze Zahl, die die maximale Anzahl von Tokens in der generierten Antwort angibt.
    * **top\_p**: Eine Gleitkommazahl, die die Nukleussampling-Wahrscheinlichkeitsschwelle darstellt.
    * **frequency\_penalty**: Eine Gleitkommazahl, die die auf Token angewendete Strafe anhand ihrer Häufigkeit im Datensatz darstellt.
    * **presence\_penalty**: Eine Gleitkommazahl, die die auf neue Token angewendete Strafe anhand ihrer Präsenz im Eingabeaufforderung darstellt.
  * **timestamp**: Ein String im ISO 8601-Format, der das Datum und die Uhrzeit darstellt, wann der GPT-Modell-Prompt erstellt oder zuletzt geändert wurde.
  * **expected\_output (Optional)**: Ein Objekt, das Felder enthält, die mit der erwarteten Ausgabe aus dem model\_prompt zusammenhängen, einschließlich der folgenden Unterfelder:
    * **type**: Ein String, der den Typ der erwarteten Ausgabe aus dem model\_prompt anzeigt.
    * **format (Optional)**: Ein String, der das Format der erwarteten Ausgabe darstellt, falls zutreffend.
    * **language (Optional)**: Ein String, der die Programmiersprache der erwarteten Ausgabe darstellt, wenn der Typ `code` ist.
    * **allowed\_values (Optional)**: Ein Array von Strings, das eine Liste der zulässigen Ausgabewerte enthält, wenn der Typ `limited` ist.
  * **variables (Optional)**: Eine Liste, die Variablen enthält, die möglicherweise im `model_prompt` String in einem f-string-Stil eingefügt werden. Jede Variable enthält die folgenden Unterfelder:
    * **name**: Ein String, der den Variablennamen darstellt.
    * **type**: Ein String, der den Variablentyp anzeigt. Derzeit sind die möglichen Werte von `type` `text` für Standardvariable und `single-select` oder `multi-select` für Auswahlvariablen.
    * **description**: Ein String, der die Beschreibung der Variable darstellt, einschließlich Verwendungen und Beispielen.
    * **default**: Ein Wert, der den Standardwert der Variable anzeigt. Dieser Wert ist ein String, wenn `type` `text` oder `single-select` ist, und ein Array von Strings für `multi-select`.
    * **allowed\_values**: Ein Array von Strings, das eine Liste der zulässigen Werte enthält, wenn der Variablentyp `single-select` oder `multi-select` ist.
  * **avatar (Optional)**: Ein Objekt, das Felder in Bezug auf das grafische Bild enthält, das als Avatar oder Icon für die Eingabeaufforderung fungiert, einschließlich der folgenden Unterfelder:
    * **avatar\_type**: Ein String, der den Typ der enthaltenen Avatar-Daten angibt.
    * **avatar**: Ein String, der die URL enthält, die auf das Bild zeigt, wenn der avatar\_type `url` ist, oder ein base64-codierter String, der das Bild darstellt, wenn der avatar\_type `base64` ist.
  * **prompt\_name (Optional)**: Ein String, der den Namen der Eingabeaufforderung darstellt.
  * **description (Optional)**: Ein String, der eine kurze Beschreibung des Tools und seines Zwecks gibt.
  * **usage\_notes (Optional)**: Ein String, der freie Anmerkungen des Erstellers über die Nutzung oder spezielle Überlegungen in Bezug auf das Tool enthält.

Um das Format der erwarteten Ausgabe aus dem model\_prompt anzugeben, können Sie ein `expected_output` Objekt innerhalb des `metadata` Objekts hinzufügen. Abhängig von der Art der erwarteten Ausgabe können Sie die relevanten Unterfelder in das `expected_output` Objekt einschließen.

Um Felder für Variablen einzuschließen, die möglicherweise im `model_prompt` String in einem f-string-Stil eingefügt werden, können Sie eine separate `variables` Liste innerhalb des `metadata` Objektes hinzufügen.

Um ein grafisches Bild einschließlich, das als Avatar oder Icon für die Eingabeaufforderung fungiert, können Sie ein `avatar` Feld innerhalb des `metadata` Objekts hinzufügen.

Das Einschließen der `expected_output`, `variables`, `avatar`, `prompt_name`, `description` und `usage_notes` Felder innerhalb des `metadata` Objektes hilft, alle kontextuellen Informationen über die Eingabeaufforderung an einem Ort zu behalten, was die Verwaltung und das Verständnis erleichtert.

Sie können das `version` Feld auf der obersten Ebene des JSON-Objekts verwenden, um explizit die Version der gesamten JSON-Datei zu verfolgen.


---

# 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
