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

# Agent Create API

> Einen neuen Agenten programmatisch erstellen

<Info>
  **⚠️ Du nutzt unsere API in einem Dedicated Deployment?** Ersetze einfach `api.langdock.com` durch die Base URL deines Deployments: **`<deployment-url>/api/public`**
</Info>

<Info>
  Dies ist die neue Agents API mit nativer Vercel AI SDK Kompatibilität. Wenn du die veraltete Assistants API verwendest, siehe den [Migrations-Guide](/de/developer/assistants-api/assistant-to-agent-migration).
</Info>

Erstellt einen neuen Agenten in deinem Workspace programmatisch. Der erstellte Agent kann über den Chat-Completions-Endpunkt verwendet oder über die Langdock-Benutzeroberfläche aufgerufen werden.

<Info>
  Erfordert einen API-Schlüssel mit dem `AGENT_API` Scope. Erstellte Agenten werden automatisch mit dem API-Schlüssel geteilt, um sie in Chat-Completions zu verwenden.
</Info>

## Anfrageparameter

| Parameter              | Typ       | Erforderlich | Beschreibung                                                                                                                               |
| ---------------------- | --------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`                 | string    | Ja           | Name des Agenten (1-80 Zeichen)                                                                                                            |
| `description`          | string    | Nein         | Beschreibung der Agentenfunktion (max. 500 Zeichen)                                                                                        |
| `emoji`                | string    | Nein         | Emoji-Icon für den Agenten (max. 16 Zeichen, z.B. "🤖")                                                                                    |
| `instruction`          | string    | Nein         | Systemanweisung/Instruktionen für den Agenten (max. 40000 Zeichen)                                                                         |
| `inputType`            | string    | Nein         | Eingabetyp: "PROMPT" oder "STRUCTURED" (Standard: "PROMPT")                                                                                |
| `model`                | string    | Nein         | Modell-ID (Deployment-Name von der [Models API](/de/developer/agents-api/agent-models)). Verwendet Workspace-Standard wenn nicht angegeben |
| `creativity`           | number    | Nein         | Temperatur zwischen 0-1 (Standard: 0.3)                                                                                                    |
| `conversationStarters` | string\[] | Nein         | Array von vorgeschlagenen Prompts zum Einstieg (max. 20, je 1-255 Zeichen)                                                                 |
| `actions`              | array     | Nein         | Array von Action-Objekten für benutzerdefinierte Integrationen                                                                             |
| `inputFields`          | array     | Nein         | Array von Formularfeld-Definitionen (für STRUCTURED Eingabetyp)                                                                            |
| `attachments`          | string\[] | Nein         | Array von Anhang-UUIDs für den Agenten                                                                                                     |
| `webSearch`            | boolean   | Nein         | Websuche-Fähigkeit aktivieren (Standard: false)                                                                                            |
| `imageGeneration`      | boolean   | Nein         | Bildgenerierungs-Fähigkeit aktivieren (Standard: false)                                                                                    |
| `dataAnalyst`          | boolean   | Nein         | Zur Kompatibilität akzeptiert. Siehe Warnhinweis unten                                                                                     |
| `canvas`               | boolean   | Nein         | Canvas-Fähigkeit aktivieren (Standard: false)                                                                                              |
| `extendedThinking`     | boolean   | Nein         | Extended-Thinking-Modus aktivieren (Standard: false)                                                                                       |

<Warning>
  Der Parameter `dataAnalyst` ist veraltet und hat keine Wirkung. Anfragen mit diesem Parameter sind aus Gründen der Abwärtskompatibilität weiterhin erfolgreich, aber Langdock ignoriert den Wert und aktiviert weder Dateiarbeit noch Codeausführung. Lass diesen Parameter in neuen Integrationen weg.
</Warning>

### Actions-Konfiguration

Jede Action im `actions` Array sollte enthalten:

* `actionId` (erforderlich) - UUID der Action aus einer aktivierten Integration
* `requiresConfirmation` (optional) - Ob vor der Ausführung eine Benutzerbestätigung erforderlich ist (Standard: true)

<Info>
  Nur Actions von in deinem Workspace aktivierten Integrationen können verwendet werden.
</Info>

### Eingabefelder-Konfiguration

Bei Verwendung von `inputType: "STRUCTURED"` kannst du Formularfelder im `inputFields` Array definieren:

| Feld          | Typ       | Erforderlich | Beschreibung                                      |
| ------------- | --------- | ------------ | ------------------------------------------------- |
| `slug`        | string    | Ja           | Eindeutiger Bezeichner für das Feld               |
| `type`        | string    | Ja           | Feldtyp (siehe unterstützte Typen unten)          |
| `label`       | string    | Ja           | Anzeigebezeichnung für das Feld                   |
| `description` | string    | Nein         | Hilfetext für das Feld                            |
| `required`    | boolean   | Nein         | Ob das Feld erforderlich ist (Standard: false)    |
| `order`       | number    | Ja           | Anzeigereihenfolge (0-indiziert)                  |
| `options`     | string\[] | Nein         | Optionen für SELECT-Feldtypen                     |
| `fileTypes`   | string    | Nein         | Erlaubte Dateitypen für FILE-Feldtypen (nullable) |
| `emailDomain` | string    | Nein         | Erlaubte E-Mail-Domain für EMAIL-Feldtypen        |

**Unterstützte Feldtypen:**

* `TEXT` - Einzeilige Texteingabe
* `MULTI_LINE_TEXT` - Mehrzeiliger Textbereich
* `NUMBER` - Numerische Eingabe
* `CHECKBOX` - Boolean-Checkbox
* `FILE` - Datei-Upload
* `SELECT` - Dropdown-Auswahl
* `DATE` - Datumsauswahl
* `EMAIL` - E-Mail-Adresse

## Anhangs-IDs abrufen

Um Anhänge in deinen Agenten einzubinden, lade zuerst Dateien mit der [Upload Attachment API](/de/developer/agents-api/upload-attachments) hoch. Dies gibt Anhang-UUIDs zurück, die du im `attachments` Array verwenden kannst.

## Beispiele

### Einen einfachen Agenten erstellen

```javascript theme={null}
const axios = require("axios");

async function createBasicAgent() {
  const response = await axios.post(
    "https://api.langdock.com/agent/v1/create",
    {
      name: "Dokumentenanalyse",
      description: "Analysiert und fasst Dokumente zusammen",
      emoji: "📄",
      instruction: "Du bist ein hilfreicher Agent, der Dokumente analysiert und klare Zusammenfassungen der wichtigsten Informationen liefert.",
      creativity: 0.5,
      conversationStarters: [
        "Fasse dieses Dokument zusammen",
        "Was sind die wichtigsten Punkte?",
        "Extrahiere Aktionspunkte"
      ],
      webSearch: false
    },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      }
    }
  );

  console.log("Agent erstellt:", response.data.agent.id);
}
```

## Validierungsregeln

Die API wendet mehrere Validierungsregeln an:

* **Modell** - Muss in der Liste der aktiven Modelle deines Workspaces sein
* **Actions** - Müssen zu in deinem Workspace aktivierten Integrationen gehören
* **Anhänge** - Müssen in deinem Workspace existieren und nicht gelöscht sein
* **Berechtigungen** - Dein API-Schlüssel muss die `createAgents` Berechtigung haben
* **Name** - Muss zwischen 1-80 Zeichen sein
* **Beschreibung** - Maximal 500 Zeichen
* **Instruktion** - Maximal 40000 Zeichen
* **Creativity** - Muss zwischen 0 und 1 liegen

## Wichtige Hinweise

<Warning>
  Vorausgewählte OAuth-Verbindungen werden über die API nicht unterstützt. Benutzer müssen OAuth-Verbindungen über die Langdock-Benutzeroberfläche konfigurieren.
</Warning>

* Erstellte Agenten werden automatisch mit deinem API-Schlüssel für die Verwendung in Chat-Completions geteilt
* Der Ersteller des API-Schlüssels wird zum Eigentümer und kann den Agenten in der Benutzeroberfläche verwalten
* Anhänge sind bidirektional mit dem Agenten verknüpft
* Der Agent-Typ wird auf `AGENT` gesetzt (nicht `WORKFLOW` oder `PROJECT`)
* `createdBy` und `workspaceId` werden automatisch aus deinem API-Schlüssel übernommen

## Antwortformat

### Erfolgreiche Antwort (201 Created)

```typescript theme={null}
{
  status: "success";
  message: "Agent created successfully";
  agent: {
    id: string;
    name: string;
    description: string;
    instruction: string;
    emojiIcon: string;
    model: string;
    temperature: number;
    conversationStarters: string[];
    inputType: "PROMPT" | "STRUCTURED";
    webSearchEnabled: boolean;
    imageGenerationEnabled: boolean;
    canvasEnabled: boolean;
    extendedThinking: boolean;
    actions: Array<{
      actionId: string;
      requiresConfirmation: boolean;
    }>;
    inputFields: Array<{
      slug: string;
      type: string;
      label: string;
      description: string;
      required: boolean;
      order: number;
      options: string[];
      fileTypes: string[] | null;
      emailDomain: string | null;
    }>;
    attachments: string[];
    createdAt: string;
    updatedAt: string;
  };
}
```

## Fehlerbehandlung

```typescript theme={null}
try {
  const response = await axios.post('https://api.langdock.com/agent/v1/create', ...);
} catch (error) {
  if (error.response) {
    switch (error.response.status) {
      case 400:
        console.error('Ungültige Parameter:', error.response.data.message);
        break;
      case 401:
        console.error('Ungültiger oder fehlender API-Schlüssel');
        break;
      case 403:
        console.error('Unzureichende Berechtigungen - erfordert AGENT_API Scope');
        break;
      case 429:
        console.error('Rate Limit überschritten');
        break;
      case 500:
        console.error('Server-Fehler');
        break;
    }
  }
}
```

<Info>
  Langdock blockiert bewusst Browser-basierte Anfragen, um deinen API-Schlüssel zu schützen und die Sicherheit deiner Anwendungen zu gewährleisten. Weitere Informationen findest du in unserem Guide zu [Best Practices für API-Schlüssel](/de/admin/ai-adoption-and-rollout/best-practices/api-key-best-practices).
</Info>


## OpenAPI

````yaml POST /agent/v1/create
openapi: 3.0.0
info:
  title: Langdock API
  version: 3.0.0
servers:
  - url: https://api.langdock.com
    description: Production
security:
  - bearerAuth: []
paths:
  /agent/v1/create:
    post:
      tags:
        - Agent Build
      summary: Creates a new agent
      description: Creates a new agent in your workspace programmatically.
      operationId: createAgentV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Assistant'
      responses:
        '201':
          description: Agent created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
                  agent:
                    $ref: '#/components/schemas/Assistant'
components:
  schemas:
    Assistant:
      type: object
      required:
        - name
        - instructions
      properties:
        name:
          type: string
          maxLength: 64
        description:
          type: string
          maxLength: 256
        instructions:
          type: string
          maxLength: 16384
        temperature:
          type: number
          minimum: 0
          maximum: 1
        model:
          type: string
          maxLength: 64
        capabilities:
          type: object
          properties:
            webSearch:
              type: boolean
            dataAnalyst:
              type: boolean
              deprecated: true
              description: Deprecated. Accepted for compatibility and ignored.
            imageGeneration:
              type: boolean
        actions:
          type: array
          items: 7d19e95b-21e8-417f-995e-24a8f5651c16
        vectorDb:
          type: array
          items: 48adcef5-fb6f-434d-894d-ad23cdeb3651
        knowledgeFolderIds:
          type: array
          items:
            type: string
        attachmentIds:
          type: array
          items:
            type: string
            format: uuid
          description: Array of UUID strings identifying attachments for this message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"

````