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

# 5. An AI agent

> Lassen Sie einen Agenten Dokumente mit Hilfe Ihres Tools aus einem Chat generieren.

Weil `generate-document` als **Tool** exponiert wird, kann ein KI-Agent es aufrufen.
Fügen wir einen Agenten und eine Fertigkeit hinzu, damit Benutzer einfach *"einen Vorschlag für
Jeffery Griffin"* erstellen können.

## Die Fähigkeit

Eine [skill](/l/de/developers/extend/apps/logic/skills-and-agents) ist wiederverwendbare
Anleitung — Wissen, das Sie Agenten anhängen. Unser lehrt das Modell, wie man das Werkzeug
benutzt.

```ts filename="src/skills/document-drafting.skill.ts" theme={null}
import { defineSkill } from 'twenty-sdk/define';

export default defineSkill({
  universalIdentifier: DOCUMENT_SKILL_UNIVERSAL_IDENTIFIER,
  name: 'document-drafting',
  label: 'Document drafting',
  icon: 'IconFileText',
  content: [
    'To generate a document, call the `generate-document` tool with:',
    '- `templateId`: the id of the document template to use.',
    '- `recordId`: the id of the Person or Company the document is for.',
    '',
    'If the user names a template or person instead of an id, find the record first,',
    'then pass its id. Make sure the template target matches the record type.',
  ].join('\n'),
});
```

## Der Agent

Ein [agent](/l/de/developers/extend/apps/logic/skills-and-agents) paßt einen Prompt mit einem
Modell. Setze `responseFormat` explizit, um eine Build-Warnung zu vermeiden.

```ts filename="src/agents/document-assistant.agent.ts" theme={null}
import { defineAgent } from 'twenty-sdk/define';

export default defineAgent({
  universalIdentifier: DOCUMENT_AGENT_UNIVERSAL_IDENTIFIER,
  name: 'document-assistant',
  label: 'Document Assistant',
  description: 'Generates documents from your templates and CRM records.',
  icon: 'IconFileText',
  responseFormat: { type: 'text' },
  prompt: [
    'You are the Document Assistant for a CRM.',
    'You help users generate personalized documents from reusable templates',
    'and the data already in their CRM. Use the generate-document tool, and',
    'always confirm what you created.',
  ].join(' '),
});
```

<Note>
  Der Agent kann das Werkzeug nur aufrufen, wenn es seine Rolle erlaubt. Wir haben bereits
  `canAccessAllTools: true` und `canBeAssignedToAgents: true` über die Rolle der App in
  [Chapter 2](/l/de/developers/extend/apps/tutorials/document-generator/generating-documents#grant-it-access).
</Note>

## Testen

Öffne einen Chat mit dem **Dokumenten-Assistent** und ersuche ihn, ein Dokument für eine
-Person in deinem CRM zu erstellen. Es findet den Datensatz, ruft `generate-document` auf und meldet das erstellte Dokument
zurück — das nun in der Ansicht **Dokumente** erscheint
gleicht dem Kommandomenü und dem Workflow-Pfad.

Das ist die Auszahlung der Logik als Werkzeug: **eine Funktion, viele Eingangstüren** —
Befehlsmenü, HTTP, Workflow-Schritt und jetzt natürliche Sprache.

**Nach diesem Schritt:** ist die App komplett und wirklich nützlich. Zeit bis
es verschickt wird.

<Card title="Weiter: Publizieren →" icon="rocket" href="/l/de/developers/extend/apps/tutorials/document-generator/publishing">
  Marktplatz-Metadaten hinzufügen und veröffentlichen.
</Card>
