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

# GLM-5.2 - OpenAI-kompatible API

> - Verwenden Sie das OpenAI Chat Completions-Protokoll, um das GLM-5.2 Modell aufzurufen
- Synchroner Verarbeitungsmodus, gibt Konversationsinhalte in Echtzeit zurück
- **Reine Textkonversation**: Einzelrunden- oder Mehrrundenkontext-Dialog
- **System-Prompts**: Passen Sie Rolle und Verhalten der KI über `role=system`-Nachrichten an
- **Tiefes Nachdenken**: Schaltet die Gedankenkette über `thinking.type` ein/aus, `reasoning_effort` reguliert die Intensität des Schlussfolgerns; der Denkprozess wird über `reasoning_content` zurückgegeben
- **Streaming-Ausgabe**: Unterstützt SSE-Streaming-Antworten (`stream=true`)
- **Werkzeugaufrufe**: Unterstützt Function Calling, Wissensdatenbank-Abruf (retrieval), Websuche (web_search) und MCP (bis zu 128 Werkzeuge)
- **Strukturierte Ausgabe**: Aktivieren Sie den JSON-Modus über `response_format`

**Hinweise zur Streaming-Antwort**: Wenn `stream=true`, erfolgt die Rückgabe über Server-Sent Events, wobei jede Nachricht das Format `data: {JSON}` hat und am Ende `data: [DONE]` zurückgegeben wird. Jeder Datenblock (`ChatCompletionChunk`) enthält `id`, `created`, `model`, `choices`, optional `usage` und `content_filter`; dabei gibt `choices[].delta` inkrementell `role` / `content` / `reasoning_content` / `tool_calls` zurück, und `choices[].finish_reason` nennt im letzten Block den Abschlussgrund.

<Note>
  **BaseURL**: Die Standard-BaseURL ist `https://direct.evolink.ai`, die Textmodelle und langlebige Verbindungen besser unterstützt. `https://api.evolink.ai` ist der primäre Endpunkt für multimodale Dienste und dient als Ausweichadresse für Textmodelle.
</Note>


## OpenAPI

````yaml de/api-manual/language-series/glm-5.2/glm-5.2-api.json POST /v1/chat/completions
openapi: 3.1.0
info:
  title: GLM-5.2 Vollständige API-Referenz (OpenAI-kompatibel)
  description: >-
    Vollständige API-Referenz für die GLM-5.2 Chat-Schnittstelle.


    **Modellfähigkeiten**:

    - Neuestes Flaggschiff-Modell mit komplexem Schlussfolgern, extrem langem
    Kontext und höchster Inferenzgeschwindigkeit

    - Maximale Ausgabe: **131.072 Tokens** (128K), empfohlen mindestens **1.024
    Tokens**

    - Tiefes Nachdenken: Schaltet die Gedankenkette über das Feld `thinking`
    ein/aus, `reasoning_effort` reguliert die Intensität des Schlussfolgerns
    (exklusiv für GLM-5.2)

    - Werkzeugaufrufe: Unterstützt Function Calling, Wissensdatenbank-Abruf,
    Websuche und MCP (bis zu 128 Werkzeuge)

    - Streaming-Ausgabe: Unterstützt SSE-Streaming-Antworten

    - Strukturierte Ausgabe: Unterstützt die beiden Antwortformate `text` /
    `json_object`
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Produktion (empfohlen)
  - url: https://api.evolink.ai
    description: Alternative URL
security:
  - bearerAuth: []
tags:
  - name: Chat-Vervollständigung
    description: Endpunkte für KI-Chat-Vervollständigung
paths:
  /v1/chat/completions:
    post:
      tags:
        - Chat-Vervollständigung
      summary: GLM-5.2 Chat-Schnittstelle (OpenAI-kompatibel)
      description: >-
        - Verwenden Sie das OpenAI Chat Completions-Protokoll, um das GLM-5.2
        Modell aufzurufen

        - Synchroner Verarbeitungsmodus, gibt Konversationsinhalte in Echtzeit
        zurück

        - **Reine Textkonversation**: Einzelrunden- oder
        Mehrrundenkontext-Dialog

        - **System-Prompts**: Passen Sie Rolle und Verhalten der KI über
        `role=system`-Nachrichten an

        - **Tiefes Nachdenken**: Schaltet die Gedankenkette über `thinking.type`
        ein/aus, `reasoning_effort` reguliert die Intensität des
        Schlussfolgerns; der Denkprozess wird über `reasoning_content`
        zurückgegeben

        - **Streaming-Ausgabe**: Unterstützt SSE-Streaming-Antworten
        (`stream=true`)

        - **Werkzeugaufrufe**: Unterstützt Function Calling,
        Wissensdatenbank-Abruf (retrieval), Websuche (web_search) und MCP (bis
        zu 128 Werkzeuge)

        - **Strukturierte Ausgabe**: Aktivieren Sie den JSON-Modus über
        `response_format`


        **Hinweise zur Streaming-Antwort**: Wenn `stream=true`, erfolgt die
        Rückgabe über Server-Sent Events, wobei jede Nachricht das Format `data:
        {JSON}` hat und am Ende `data: [DONE]` zurückgegeben wird. Jeder
        Datenblock (`ChatCompletionChunk`) enthält `id`, `created`, `model`,
        `choices`, optional `usage` und `content_filter`; dabei gibt
        `choices[].delta` inkrementell `role` / `content` / `reasoning_content`
        / `tool_calls` zurück, und `choices[].finish_reason` nennt im letzten
        Block den Abschlussgrund.
      operationId: createChatCompletionGLM52
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            examples:
              simple_text:
                summary: Einzelrunden-Textkonversation
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: Bitte stelle dich vor
              multi_turn:
                summary: Mehrrundengespräch (Kontextverständnis)
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: Was ist Python?
                    - role: assistant
                      content: Python ist eine höhere Programmiersprache...
                    - role: user
                      content: Welche Vorteile hat es?
              system_prompt:
                summary: System-Prompts verwenden
                value:
                  model: glm-5.2
                  messages:
                    - role: system
                      content: >-
                        Du bist ein professioneller Python-Programmierassistent
                        und beantwortest Fragen in knapper Sprache.
                    - role: user
                      content: Wie liest man eine Datei ein?
              deep_thinking:
                summary: >-
                  Tiefes Nachdenken aktivieren und Intensität des
                  Schlussfolgerns regulieren
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: >-
                        Ein Bauer muss einen Wolf, eine Ziege und einen Kohlkopf
                        über einen Fluss bringen und kann jeweils nur eines
                        mitnehmen. Wie kommt er sicher hinüber?
                  thinking:
                    type: enabled
                  reasoning_effort: max
              disable_thinking:
                summary: Tiefes Nachdenken deaktivieren (direkte Antwort)
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: Fasse die Relativitätstheorie in einem Satz zusammen.
                  thinking:
                    type: disabled
              function_calling:
                summary: Werkzeugaufruf (Function Calling)
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: Wie ist das Wetter heute in Peking?
                  tools:
                    - type: function
                      function:
                        name: get_weather
                        description: Das aktuelle Wetter einer angegebenen Stadt abfragen
                        parameters:
                          type: object
                          properties:
                            city:
                              type: string
                              description: 'Stadtname, z. B.: Peking'
                          required:
                            - city
                  tool_choice: auto
              web_search:
                summary: Websuche-Werkzeug aktivieren
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: >-
                        Suche mir die Nachrichten zur künstlichen Intelligenz
                        der letzten Woche heraus
                  tools:
                    - type: web_search
                      web_search:
                        enable: true
                        search_engine: search_pro
                        count: 10
                        search_recency_filter: oneWeek
              json_mode:
                summary: Strukturierte JSON-Ausgabe
                value:
                  model: glm-5.2
                  messages:
                    - role: system
                      content: >-
                        Bitte gib die Ausgabe im JSON-Format aus und enthalte
                        die beiden Felder name und age.
                    - role: user
                      content: Max Mustermann, 28 Jahre alt
                  response_format:
                    type: json_object
              streaming:
                summary: Streaming-Ausgabe (SSE)
                value:
                  model: glm-5.2
                  messages:
                    - role: user
                      content: Schreibe ein kurzes Gedicht über den Frühling
                  stream: true
      responses:
        '200':
          description: Chat-Vervollständigung erfolgreich
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 400
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Nicht authentifiziert, Token ungültig oder abgelaufen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 401
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Kontingent unzureichend, Aufladung erforderlich
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Insufficient quota
                  type: insufficient_quota_error
                  fallback_suggestion: https://evolink.ai/dashboard/billing
        '403':
          description: Kein Zugriffsrecht
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 403
                  message: Access denied for this model
                  type: permission_error
                  param: model
        '404':
          description: Ressource nicht gefunden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 404
                  message: Specified model not found
                  type: not_found_error
                  param: model
                  fallback_suggestion: glm-5.2
        '429':
          description: Anfragelimit überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: Rate limit exceeded
                  type: rate_limit_error
                  fallback_suggestion: retry after 60 seconds
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Internal server error
                  type: internal_server_error
                  fallback_suggestion: try again later
        '502':
          description: Upstream-Dienstfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 502
                  message: Upstream AI service unavailable
                  type: upstream_error
                  fallback_suggestion: try different model
        '503':
          description: Dienst vorübergehend nicht verfügbar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 503
                  message: Service temporarily unavailable
                  type: service_unavailable_error
                  fallback_suggestion: retry after 30 seconds
components:
  schemas:
    ChatCompletionRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: >-
            Code des aufgerufenen Modells


            - `glm-5.2`: Neuestes Flaggschiff-Modell, bietet komplexes
            Schlussfolgern, extrem langen Kontext und höchste
            Inferenzgeschwindigkeit
          enum:
            - glm-5.2
          default: glm-5.2
          example: glm-5.2
        messages:
          type: array
          description: >-
            Liste der Konversationsnachrichten, enthält die vollständigen
            Kontextinformationen des aktuellen Gesprächs


            Unterstützt vier Rollen: `system`, `user`, `assistant`, `tool`.
            Nachrichten mit unterschiedlichen Rollen haben unterschiedliche
            Feldstrukturen; wählen Sie die entsprechende Rolle zur Ansicht aus.
            Mindestens 1 Nachricht erforderlich, und es dürfen nicht
            ausschließlich System- oder Assistentennachrichten enthalten sein.
          items:
            oneOf:
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/UserMessage'
              - $ref: '#/components/schemas/AssistantRequestMessage'
              - $ref: '#/components/schemas/ToolMessage'
            discriminator:
              propertyName: role
              mapping:
                system:
                  $ref: '#/components/schemas/SystemMessage'
                user:
                  $ref: '#/components/schemas/UserMessage'
                assistant:
                  $ref: '#/components/schemas/AssistantRequestMessage'
                tool:
                  $ref: '#/components/schemas/ToolMessage'
          minItems: 1
        stream:
          type: boolean
          description: >-
            Ob der Streaming-Ausgabemodus aktiviert wird


            - `false`: Das Modell gibt die vollständige Antwort nach der
            Generierung auf einmal zurück (Standard), geeignet für kurze Texte
            und Stapelverarbeitung

            - `true`: Gibt über Server-Sent Events (SSE) in Echtzeit blockweise
            zurück, geeignet für Chat und lange Texte; am Ende des Streams wird
            `data: [DONE]` zurückgegeben
          default: false
          example: false
        thinking:
          type: object
          description: Steuert, ob die Gedankenkette (Chain of Thought) aktiviert wird
          properties:
            type:
              type: string
              description: >-
                Schalter für die Gedankenkette


                - `enabled`: Tiefes Nachdenken aktivieren (Standard)

                - `disabled`: Tiefes Nachdenken deaktivieren, das Modell
                antwortet direkt
              enum:
                - enabled
                - disabled
              default: enabled
            clear_thinking:
              type: boolean
              description: >-
                Ob das `reasoning_content` aus historischen Gesprächsrunden
                entfernt wird


                - `true` (Standard): Ignoriert/entfernt das `reasoning_content`
                historischer Runden und verwendet nur nicht-schlussfolgernde
                Inhalte (für Benutzer/Assistent sichtbarer Text, Werkzeugaufrufe
                und Ergebnisse usw.) als Kontext, was Kontextlänge und Kosten
                senken kann

                - `false`: Behält das `reasoning_content` historischer Runden
                bei und stellt es zusammen mit dem Kontext dem Modell bereit
                (Preserved Thinking); in diesem Fall muss das historische
                `reasoning_content` in `messages` **vollständig, unverändert und
                in ursprünglicher Reihenfolge** durchgereicht werden, da Fehlen,
                Kürzen, Umschreiben oder Umordnen zu Wirkungsverlust führt oder
                die Funktion außer Kraft setzt

                - Hinweis: Dieser Parameter beeinflusst nur das
                rundenübergreifende historische Nachdenken und ändert nicht, ob
                in der aktuellen Runde Nachdenken erzeugt wird
              default: true
              example: true
        reasoning_effort:
          type: string
          description: >-
            Steuert den Grad des Schlussfolgerns des Modells (exklusive
            Fähigkeit von GLM-5.2)


            **Hinweise**:

            - Nur wirksam, wenn `thinking` aktiviert ist, Standard `max`

            - Werte von stark nach schwach: `max` > `xhigh` > `high` > `medium`
            > `low` > `minimal` > `none`


            **GLM-5.2 Zuordnungsregeln** (zur Kompatibilität mit anderen
            Protokollen):

            - `xhigh` → entspricht `max`

            - `low` / `medium` → entspricht `high`

            - `none` / `minimal` → verzichtet auf Nachdenken (kein tiefes
            Schlussfolgern)
          enum:
            - max
            - xhigh
            - high
            - medium
            - low
            - minimal
            - none
          default: max
          example: max
        do_sample:
          type: boolean
          description: >-
            Ob eine Sampling-Strategie aktiviert wird


            - `true` (Standard): Verwendet `temperature` / `top_p` für
            zufälliges Sampling, vielfältigere Ausgabe

            - `false`: Wählt stets das Wort mit der höchsten Wahrscheinlichkeit
            (Greedy Decoding), deterministischere Ausgabe; in diesem Fall werden
            `temperature` und `top_p` ignoriert


            Für Aufgaben, die Konsistenz und Reproduzierbarkeit erfordern (z. B.
            Codegenerierung, Übersetzung), wird `false` empfohlen
          default: true
          example: true
        temperature:
          type: number
          format: float
          description: >-
            Sampling-Temperatur, steuert Zufälligkeit und Kreativität der
            Ausgabe


            **Hinweise**:

            - Wertebereich: `[0.0, 1.0]`, auf zwei Dezimalstellen begrenzt

            - Höhere Werte (z. B. 0,8): Zufälliger und kreativer, geeignet für
            kreatives Schreiben

            - Niedrigere Werte (z. B. 0,2): Stabiler und deterministischer,
            geeignet für faktenbasierte Fragen und Codegenerierung

            - GLM-5.2 Standardwert: `1.0`


            **Empfehlung**: Passen Sie `temperature` und `top_p` nicht
            gleichzeitig an
          minimum: 0
          maximum: 1
          default: 1
          example: 1
        top_p:
          type: number
          format: float
          description: >-
            Nucleus-Sampling-Parameter, eine Alternative zum
            `temperature`-Sampling


            **Hinweise**:

            - Wertebereich: `[0.01, 1.0]`, auf zwei Dezimalstellen begrenzt

            - Das Modell berücksichtigt nur Kandidatenwörter, deren kumulative
            Wahrscheinlichkeit `top_p` erreicht; z. B. bedeutet 0,1, dass nur
            die wahrscheinlichsten 10 % der Wörter berücksichtigt werden

            - Kleinere Werte erzeugen fokussiertere, konsistentere Ausgabe;
            größere Werte erhöhen die Vielfalt

            - GLM-5.2 Standardwert: `0.95`


            **Empfehlung**: Passen Sie `temperature` und `top_p` nicht
            gleichzeitig an
          minimum: 0.01
          maximum: 1
          default: 0.95
          example: 0.95
        max_tokens:
          type: integer
          description: >-
            Obergrenze für die Anzahl der vom Modell ausgegebenen Tokens


            **Hinweise**:

            - GLM-5.2 unterstützt maximal **131.072 Tokens** (128K)
            Ausgabelänge, empfohlen wird ein Wert von mindestens `1024`

            - Bei aktiviertem `thinking` zählen auch die Tokens der
            Gedankenkette zu dieser Obergrenze

            - Wenn die Generierung aus dem Grund `length` abgeschnitten wird,
            versuchen Sie, diesen Wert zu erhöhen
          minimum: 1
          maximum: 131072
          example: 1024
        tools:
          type: array
          description: >-
            Liste der Werkzeuge, die das Modell aufrufen kann


            **Hinweise**:

            - Unterstützt Function Calling (`function`), Wissensdatenbank-Abruf
            (`retrieval`), Websuche (`web_search`) und MCP (`mcp`)

            - Unterstützt bis zu 128 Funktionen
          items:
            oneOf:
              - $ref: '#/components/schemas/FunctionTool'
              - $ref: '#/components/schemas/RetrievalTool'
              - $ref: '#/components/schemas/WebSearchTool'
              - $ref: '#/components/schemas/McpTool'
            discriminator:
              propertyName: type
              mapping:
                function:
                  $ref: '#/components/schemas/FunctionTool'
                retrieval:
                  $ref: '#/components/schemas/RetrievalTool'
                web_search:
                  $ref: '#/components/schemas/WebSearchTool'
                mcp:
                  $ref: '#/components/schemas/McpTool'
          maxItems: 128
        tool_choice:
          type: string
          description: >-
            Steuert, wie das Modell auswählt, welche Funktion aufgerufen wird


            **Hinweise**: Nur wirksam, wenn der Werkzeugtyp `function` ist;
            standardmäßig und ausschließlich wird `auto` unterstützt (das Modell
            entscheidet automatisch, ob ein Werkzeug aufgerufen wird)
          enum:
            - auto
          default: auto
          example: auto
        stop:
          type: array
          description: >-
            Liste der Stoppwörter


            **Hinweise**:

            - Wenn der generierte Text auf eine angegebene Zeichenkette trifft,
            wird die Generierung sofort gestoppt (das Stoppwort selbst ist im
            zurückgegebenen Text nicht enthalten)

            - Derzeit wird nur ein einzelnes Stoppwort unterstützt, im Format
            `["stop_word1"]`, z. B. `["Human:"]`
          items:
            type: string
          maxItems: 4
          example:
            - 'Human:'
        response_format:
          type: object
          description: >-
            Gibt das Ausgabeformat der Modellantwort an, Standard ist `text`


            **Hinweise**:

            - `{ "type": "json_object" }` aktiviert den JSON-Modus, das Modell
            gibt gültige Daten im JSON-Format zurück, geeignet für Szenarien wie
            strukturierte Datenextraktion

            - Bei Verwendung des JSON-Modus wird empfohlen, in der `system`-
            oder `user`-Nachricht ausdrücklich JSON-Ausgabe zu verlangen
          required:
            - type
          properties:
            type:
              type: string
              description: |-
                Typ des Ausgabeformats

                - `text`: Normale Textausgabe (Standard)
                - `json_object`: Ausgabe im JSON-Format
              enum:
                - text
                - json_object
              default: text
        request_id:
          type: string
          description: >-
            Eindeutige Kennung der Anfrage


            **Hinweise**:

            - Wird von der Clientseite übergeben, Länge 6-64 Zeichen, zur
            Sicherstellung der Eindeutigkeit wird das UUID-Format empfohlen

            - Wird sie nicht angegeben, generiert die Plattform sie automatisch
          minLength: 6
          maxLength: 64
          example: req-7f3a2c1e8b9d4f0a
        user_id:
          type: string
          description: >-
            Eindeutige Kennung des Endbenutzers


            **Hinweise**: Länge 6-128 Zeichen, empfohlen wird eine eindeutige
            Kennung ohne sensible Informationen; sie hilft der Plattform,
            Missbrauch zu überwachen und zu erkennen
          minLength: 6
          maxLength: 128
          example: user-abc123456
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
          description: Aufgaben-`ID`
          example: chatcmpl-a6613b56-c61c-94ba-9a9f-43d4cdc7d77a
        object:
          type: string
          description: Antworttyp
          enum:
            - chat.completion
          example: chat.completion
        request_id:
          type: string
          description: >-
            Anfrage-`ID` (wird zurückgegeben, wenn in der Anfrage `request_id`
            angegeben wurde)
          example: req-7f3a2c1e8b9d4f0a
        created:
          type: integer
          description: Erstellungszeit der Anfrage, `Unix`-Zeitstempel (Sekunden)
          example: 1777021417
        model:
          type: string
          description: Modellname
          example: glm-5.2
        choices:
          type: array
          description: Liste der Modellantworten
          items:
            $ref: '#/components/schemas/Choice'
        usage:
          $ref: '#/components/schemas/Usage'
        web_search:
          type: array
          description: >-
            Informationen zur Websuche, werden zurückgegeben, wenn das
            `web_search`-Werkzeug verwendet wird und eine Suche getroffen wird
          items:
            $ref: '#/components/schemas/WebSearchResult'
        content_filter:
          type: array
          description: Informationen zur Inhaltssicherheit
          items:
            $ref: '#/components/schemas/ContentFilter'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP-Statusfehlercode
            message:
              type: string
              description: Fehlerbeschreibung
            type:
              type: string
              description: Fehlertyp
            param:
              type: string
              description: Name des zugehörigen Parameters
            fallback_suggestion:
              type: string
              description: Empfehlung im Fehlerfall
    SystemMessage:
      title: System Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - system
          description: Rollenkennung, fest auf `system` gesetzt
        content:
          type: string
          description: >-
            Inhalt des System-Prompts, dient zum Festlegen der Rolle und des
            Verhaltens der KI
    UserMessage:
      title: User Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
          description: Rollenkennung, fest auf `user` gesetzt
        content:
          type: string
          description: Inhalt der Benutzernachricht (reine Textzeichenkette)
    AssistantRequestMessage:
      title: Assistant Message
      type: object
      description: Assistentennachricht, kann Werkzeugaufrufe enthalten
      required:
        - role
      properties:
        role:
          type: string
          enum:
            - assistant
          description: Rollenkennung, fest auf `assistant` gesetzt
        content:
          type:
            - string
            - 'null'
          description: >-
            Inhalt der Assistentennachricht


            **Hinweise**: Dient zum Übergeben historischer Assistentenantworten
            in Mehrrundengesprächen; bei Vorhandensein von `tool_calls`
            üblicherweise `null`
        reasoning_content:
          type:
            - string
            - 'null'
          description: >-
            Inhalt der historischen Gedankenkette


            **Hinweise**: Nur erforderlich, wenn `thinking.clear_thinking=false`
            (Preserved Thinking); dabei wird das `reasoning_content` der
            vorherigen Antwort unverändert zurückgereicht; standardmäßig
            (`clear_thinking=true`) ist keine Rückgabe nötig
        tool_calls:
          type: array
          description: >-
            Liste der Werkzeugaufrufe


            Dient zum Übergeben historischer Werkzeugaufruf-Informationen in
            Mehrrundengesprächen; wird dieses Feld angegeben, ist `content`
            üblicherweise leer
          items:
            type: object
            required:
              - id
              - type
            properties:
              id:
                type: string
                description: Werkzeugaufruf-ID
              type:
                type: string
                enum:
                  - function
                  - web_search
                  - retrieval
                description: Werkzeugtyp
              function:
                type: object
                description: >-
                  Informationen zum Funktionsaufruf, nicht leer, wenn `type`
                  `function` ist
                required:
                  - name
                  - arguments
                properties:
                  name:
                    type: string
                    description: Funktionsname
                  arguments:
                    type: string
                    description: Funktionsargumente (Zeichenkette im JSON-Format)
    ToolMessage:
      title: Tool Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - tool
          description: Rollenkennung, fest auf `tool` gesetzt
        content:
          type: string
          description: Inhalt des Rückgabeergebnisses des Werkzeugaufrufs
        tool_call_id:
          type: string
          description: >-
            Gibt die `ID` des Werkzeugaufrufs an, dem diese Nachricht entspricht
            (entspricht dem in `tool_calls` der Assistentennachricht
            zurückgegebenen `id`)
    FunctionTool:
      title: Function-Werkzeug
      type: object
      required:
        - type
        - function
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - function
          default: function
          description: Werkzeugtyp, fest auf `function` gesetzt
        function:
          type: object
          required:
            - name
            - description
            - parameters
          properties:
            name:
              type: string
              description: >-
                Name der aufzurufenden Funktion


                **Hinweise**: Muss aus den Zeichen `a-z`, `A-Z`, `0-9` bestehen
                oder Unterstriche und Bindestriche enthalten; maximale Länge 64
                Zeichen
              minLength: 1
              maxLength: 64
              pattern: ^[a-zA-Z0-9_-]+$
            description:
              type: string
              description: >-
                Beschreibung der Funktionalität der Funktion, damit das Modell
                auswählen kann, wann und wie die Funktion aufgerufen wird
            parameters:
              type: object
              description: >-
                Eingabeparameter der Funktion, beschrieben als
                JSON-Schema-Objekt
    RetrievalTool:
      title: Retrieval-Werkzeug (Wissensdatenbank-Abruf)
      type: object
      required:
        - type
        - retrieval
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - retrieval
          default: retrieval
          description: Werkzeugtyp, fest auf `retrieval` gesetzt
        retrieval:
          type: object
          required:
            - knowledge_id
          properties:
            knowledge_id:
              type: string
              description: >-
                `ID` der Wissensdatenbank, auf der Plattform erstellt oder
                abgerufen
            prompt_template:
              type: string
              description: >-
                Prompt-Vorlage für die Anfrage an das Modell, eine
                benutzerdefinierte Vorlage mit den Platzhaltern `{{ knowledge
                }}` und `{{ question }}`; ohne Angabe wird die Standardvorlage
                verwendet
    WebSearchTool:
      title: Web-Search-Werkzeug (Websuche)
      type: object
      required:
        - type
        - web_search
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - web_search
          default: web_search
          description: Werkzeugtyp, fest auf `web_search` gesetzt
        web_search:
          type: object
          required:
            - search_engine
          properties:
            enable:
              type: boolean
              description: >-
                Ob die Suchfunktion aktiviert wird; zum Aktivieren auf `true`
                setzen
              default: false
            search_engine:
              type: string
              description: Typ der Suchmaschine, Standard `search_std`
              enum:
                - search_std
                - search_pro
                - search_pro_sogou
                - search_pro_quark
            search_query:
              type: string
              description: >-
                Benutzerdefiniertes Schlüsselwort, das die Suche zwingend
                auslöst
            search_intent:
              type: string
              description: >-
                Ob eine Erkennung der Suchabsicht durchgeführt wird,
                standardmäßig aktiv


                - `true`: Führt die Erkennung der Suchabsicht durch und sucht
                erst, wenn eine Suchabsicht vorliegt

                - `false`: Überspringt die Absichtserkennung und sucht direkt
            count:
              type: integer
              description: >-
                Anzahl der zurückgegebenen Ergebnisse, Bereich `1-50`, Standard
                `10` (unterstützt `search_std` / `search_pro` /
                `search_pro_sogou`)
              minimum: 1
              maximum: 50
              default: 10
            search_domain_filter:
              type: string
              description: >-
                Beschränkt die Suchergebnisse auf eine Domain-Whitelist (z. B.
                `www.example.com`)
            search_recency_filter:
              type: string
              description: Beschränkt den Zeitraum der Suchergebnisse, Standard `noLimit`
              enum:
                - oneDay
                - oneWeek
                - oneMonth
                - oneYear
                - noLimit
              default: noLimit
            content_size:
              type: string
              description: >-
                Steuert die Wortanzahl der Webseiten-Zusammenfassung, Standard
                `medium`


                - `medium`: Gibt zusammenfassende Informationen zurück, deckt
                grundlegenden Schlussfolgerungsbedarf ab

                - `high`: Maximiert den Kontext, detailliertere Informationen
              enum:
                - medium
                - high
              default: medium
            result_sequence:
              type: string
              description: >-
                Position, an der die Suchergebnisse zurückgegeben werden (vor
                oder nach der Modellantwort), Standard `after`
              enum:
                - before
                - after
              default: after
            search_result:
              type: boolean
              description: >-
                Ob detaillierte Informationen zu den Suchquellen zurückgegeben
                werden, Standard `false`
              default: false
            require_search:
              type: boolean
              description: >-
                Ob eine Antwort nur auf Basis der Suchergebnisse zurückgegeben
                werden muss, Standard `false`
              default: false
            search_prompt:
              type: string
              description: >-
                `Prompt` zur Anpassung der Verarbeitung der Suchergebnisse; ohne
                Angabe wird die Standardvorlage verwendet
    McpTool:
      title: MCP-Werkzeug
      type: object
      required:
        - type
        - mcp
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - mcp
          default: mcp
          description: Werkzeugtyp, fest auf `mcp` gesetzt
        mcp:
          type: object
          required:
            - server_label
          properties:
            server_label:
              type: string
              description: >-
                Kennung des MCP-Servers; beim Verbinden mit einem
                plattforminternen MCP-Server geben Sie den entsprechenden
                MCP-Code ein, und `server_url` muss nicht angegeben werden
            server_url:
              type: string
              description: Adresse des MCP-Servers
            transport_type:
              type: string
              description: Transporttyp
              enum:
                - sse
                - streamable-http
              default: streamable-http
            allowed_tools:
              type: array
              description: Menge der Werkzeuge, die aufgerufen werden dürfen
              items:
                type: string
            headers:
              type: object
              description: Vom MCP-Server benötigte Authentifizierungsinformationen
    Choice:
      type: object
      properties:
        index:
          type: integer
          description: Ergebnisindex
          example: 0
        message:
          $ref: '#/components/schemas/AssistantMessage'
        finish_reason:
          type: string
          description: >-
            Grund für den Abschluss des Schlussfolgerns


            - `stop`: Natürlicher Abschluss oder Stoppwort ausgelöst

            - `tool_calls`: Das Modell hat eine Funktion getroffen
            (Werkzeugaufruf)

            - `length`: Token-Längengrenze erreicht

            - `sensitive`: Inhalt durch die Sicherheitsprüfung blockiert (bitte
            prüfen und entscheiden, ob öffentlicher Inhalt zurückgezogen werden
            soll)

            - `network_error`: Anomalie bei der Modellinferenz

            - `model_context_window_exceeded`: Kontextfenster des Modells
            überschritten
          enum:
            - stop
            - tool_calls
            - length
            - sensitive
            - network_error
            - model_context_window_exceeded
          example: stop
    Usage:
      type: object
      description: >-
        Token-Nutzungsstatistik, die bei Abschluss des Aufrufs zurückgegeben
        wird
      properties:
        prompt_tokens:
          type: integer
          description: Anzahl der vom Benutzer eingegebenen Tokens
          example: 24
        completion_tokens:
          type: integer
          description: >-
            Anzahl der ausgegebenen Tokens (einschließlich des Anteils der
            Gedankenkette `reasoning_tokens`)
          example: 346
        total_tokens:
          type: integer
          description: Gesamtanzahl der Tokens = prompt_tokens + completion_tokens
          example: 370
        prompt_tokens_details:
          type: object
          description: Detaillierte Aufschlüsselung der Eingabe-Tokens
          properties:
            cached_tokens:
              type: integer
              description: Anzahl der Tokens, die den Cache getroffen haben
              example: 0
        completion_tokens_details:
          type: object
          description: Detaillierte Aufschlüsselung der Ausgabe-Tokens
          properties:
            reasoning_tokens:
              type: integer
              description: >-
                Anzahl der von der Gedankenkette (tiefes Nachdenken) erzeugten
                Tokens, zählt zu `completion_tokens`
              example: 321
    WebSearchResult:
      type: object
      description: Einzelnes Websuche-Ergebnis
      properties:
        icon:
          type: string
          description: Symbol der Quellwebsite
        title:
          type: string
          description: Titel des Suchergebnisses
        link:
          type: string
          description: Webseiten-Link des Suchergebnisses
        media:
          type: string
          description: Name der Medienquelle der Suchergebnis-Webseite
        publish_date:
          type: string
          description: Veröffentlichungszeit der Website
        content:
          type: string
          description: Vom Suchergebnis zitierter Textinhalt der Webseite
        refer:
          type: string
          description: Fußnotennummer
    ContentFilter:
      type: object
      description: Informationen zur Inhaltssicherheit
      properties:
        role:
          type: string
          description: |-
            Phase, in der die Sicherheit wirksam wird

            - `assistant`: Modellinferenz
            - `user`: Benutzereingabe
            - `history`: Historischer Kontext
          enum:
            - assistant
            - user
            - history
        level:
          type: integer
          description: >-
            Schweregrad `0-3`, `0` bedeutet am schwerwiegendsten, `3` bedeutet
            geringfügig
          minimum: 0
          maximum: 3
    AssistantMessage:
      type: object
      properties:
        role:
          type: string
          description: Aktuelle Konversationsrolle, Standard `assistant`
          enum:
            - assistant
          example: assistant
        content:
          type:
            - string
            - 'null'
          description: >-
            Textinhalt der Konversation


            **Hinweise**: Beim Werkzeugaufruf (`tool_calls`) möglicherweise
            `null`, andernfalls wird der Antwortinhalt des Modells zurückgegeben
          example: >-
            Hallo! Ich bin GLM-5.2 und kann dir bei Konversation,
            Schlussfolgern, Schreiben, Programmieren und vielen weiteren
            Aufgaben helfen.
        reasoning_content:
          type: string
          description: >-
            Inhalt der Gedankenkette


            **Hinweise**: Wird bei aktiviertem `thinking` zurückgegeben und
            protokolliert den Schlussfolgerungsprozess des Modells
          example: Lass mich dieses Problem zunächst analysieren...
        tool_calls:
          type: array
          description: >-
            Generierte Werkzeugaufruf-Informationen (werden zurückgegeben, wenn
            das Modell beschließt, ein Werkzeug aufzurufen)
          items:
            type: object
            properties:
              id:
                type: string
                description: Eindeutige Kennung des Werkzeugaufrufs
              type:
                type: string
                description: Typ des Werkzeugaufrufs
                enum:
                  - function
                  - mcp
              function:
                type: object
                description: >-
                  Informationen zum Funktionsaufruf (enthält den generierten
                  Funktionsnamen und Argumente im JSON-Format)
                properties:
                  name:
                    type: string
                    description: Generierter Funktionsname
                  arguments:
                    type: string
                    description: >-
                      Zeichenkette der Funktionsaufruf-Argumente im JSON-Format;
                      bitte validieren Sie die Argumente vor dem Funktionsaufruf
              mcp:
                type: object
                description: >-
                  Argumente des MCP-Werkzeugaufrufs (werden zurückgegeben, wenn
                  `type=mcp`)
                properties:
                  id:
                    type: string
                    description: Eindeutige Kennung des MCP-Werkzeugaufrufs
                  type:
                    type: string
                    description: Typ des MCP-Aufrufs
                    enum:
                      - mcp_list_tools
                      - mcp_call
                  server_label:
                    type: string
                    description: Label des MCP-Servers
                  error:
                    type: string
                    description: Fehlerinformationen
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle APIs erfordern eine Bearer-Token-Authentifizierung##


        **API-Key erhalten**:


        Besuchen Sie die
        [API-Key-Verwaltungsseite](https://evolink.ai/dashboard/keys), um Ihren
        API-Key zu erhalten


        **Zum Anfrage-Header hinzufügen**:

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````