Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 21 additions & 149 deletions apps/docs/content/docs/de/blocks/workflow.mdx
Original file line number Diff line number Diff line change
@@ -1,168 +1,40 @@
---
title: Workflow
title: Workflow-Block
description: Führe einen anderen Workflow innerhalb des aktuellen Ablaufs aus
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'

Der Workflow-Block ermöglicht es, andere Workflows als wiederverwendbare Komponenten innerhalb deines aktuellen Workflows auszuführen. Dies ermöglicht modulares Design, Codewiederverwendung und die Erstellung komplexer verschachtelter Workflows, die aus kleineren, fokussierten Workflows zusammengesetzt werden können.
## Was er macht

<div className="flex justify-center my-6">
<div className='flex justify-center my-6'>
<Image
src="/static/blocks/workflow.png"
alt="Workflow-Block"
src='/static/blocks/workflow.png'
alt='Workflow-Block-Konfiguration'
width={400}
height={280}
className="rounded-xl border border-border shadow-sm"
className='rounded-xl border border-border shadow-sm'
/>
</div>

<Callout type="info">
Workflow-Blöcke ermöglichen modulares Design, indem sie es erlauben, komplexe Workflows aus kleineren, wiederverwendbaren Komponenten zusammenzusetzen.
</Callout>

## Überblick

Der Workflow-Block dient als Brücke zwischen Workflows und ermöglicht es dir:

<Steps>
<Step>
<strong>Bestehende Workflows wiederzuverwenden</strong>: Führe zuvor erstellte Workflows als Komponenten innerhalb neuer Workflows aus
</Step>
<Step>
<strong>Modulare Designs zu erstellen</strong>: Zerlege komplexe Prozesse in kleinere, überschaubare Workflows
</Step>
<Step>
<strong>Trennung der Zuständigkeiten beizubehalten</strong>: Halte verschiedene Geschäftslogik in separaten Workflows isoliert
</Step>
<Step>
<strong>Teamzusammenarbeit zu ermöglichen</strong>: Teile und verwende Workflows über verschiedene Projekte und Teammitglieder hinweg wieder
</Step>
</Steps>

## Funktionsweise

Der Workflow-Block:
Füge einen Workflow-Block hinzu, wenn du einen untergeordneten Workflow als Teil eines größeren Ablaufs aufrufen möchtest. Der Block führt die neueste bereitgestellte Version dieses Workflows aus, wartet auf dessen Abschluss und setzt dann mit dem übergeordneten Workflow fort.

1. Nimmt eine Referenz zu einem anderen Workflow in deinem Workspace
2. Übergibt Eingabedaten vom aktuellen Workflow an den untergeordneten Workflow (verfügbar über start.input)
3. Führt den untergeordneten Workflow in einem isolierten Kontext aus
4. Gibt das Ergebnis zur weiteren Verarbeitung an den übergeordneten Workflow zurück
## Konfiguration

## Konfigurationsoptionen
1. **Wähle einen Workflow** aus dem Dropdown-Menü (Selbstreferenzen sind blockiert, um Schleifen zu verhindern).
2. **Eingaben zuordnen**: Wenn der untergeordnete Workflow einen Eingabeformular-Trigger hat, siehst du jedes Feld und kannst übergeordnete Variablen verbinden. Die zugeordneten Werte sind das, was der untergeordnete Workflow erhält.
3. **Ausgaben**: Nach Abschluss des untergeordneten Workflows stellt der Block folgendes bereit:
- `result` – die endgültige Antwort des untergeordneten Workflows
- `success` – ob er ohne Fehler ausgeführt wurde
- `error` – Nachricht, wenn die Ausführung fehlschlägt

### Workflow-Auswahl
## Ausführungshinweise

Wähle aus einer Dropdown-Liste der verfügbaren Workflows in deinem Workspace aus, welcher Workflow ausgeführt werden soll. Die Liste umfasst:
- Untergeordnete Workflows laufen im gleichen Workspace-Kontext, sodass Umgebungsvariablen und Tools übernommen werden.
- Der Block verwendet Deployment-Versionierung: Jede API-, Zeitplan-, Webhook-, manuelle oder Chat-Ausführung ruft den bereitgestellten Snapshot auf. Stelle den untergeordneten Workflow neu bereit, wenn du ihn änderst.
- Wenn der untergeordnete Workflow fehlschlägt, löst der Block einen Fehler aus, es sei denn, du behandelst ihn nachgelagert.

- Alle Workflows, auf die du im aktuellen Workspace Zugriff hast
- Workflows, die von anderen Teammitgliedern mit dir geteilt wurden
- Sowohl aktivierte als auch deaktivierte Workflows (obwohl nur aktivierte Workflows ausgeführt werden können)

### Ausführungskontext

Der untergeordnete Workflow wird ausgeführt mit:

- Seinem eigenen isolierten Ausführungskontext
- Zugriff auf dieselben Workspace-Ressourcen (API-Schlüssel, Umgebungsvariablen)
- Korrekten Workspace-Mitgliedschafts- und Berechtigungsprüfungen
- Verschachteltem Tracespan im Ausführungsprotokoll

<Callout type="warning">
**Zykluserkennung**: Das System erkennt und verhindert automatisch zirkuläre Abhängigkeiten zwischen Workflows, um Endlosschleifen zu vermeiden.
<Callout>
Halte untergeordnete Workflows fokussiert. Kleine, wiederverwendbare Abläufe machen es einfacher, sie zu kombinieren, ohne tiefe Verschachtelungen zu erzeugen.
</Callout>

## Eingaben und Ausgaben

<Tabs items={['Configuration', 'Variables', 'Results']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Workflow-Auswahl</strong>: Wählen Sie aus, welcher Workflow ausgeführt werden soll
</li>
<li>
<strong>Eingabedaten</strong>: Variable oder Blockreferenz, die an den untergeordneten Workflow übergeben wird
</li>
<li>
<strong>Ausführungskontext</strong>: Isolierte Umgebung mit Workspace-Ressourcen
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>workflow.success</strong>: Boolescher Wert, der den Abschlussstatus angibt
</li>
<li>
<strong>workflow.childWorkflowName</strong>: Name des ausgeführten untergeordneten Workflows
</li>
<li>
<strong>workflow.result</strong>: Vom untergeordneten Workflow zurückgegebenes Ergebnis
</li>
<li>
<strong>workflow.error</strong>: Fehlerdetails, falls der Workflow fehlgeschlagen ist
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Workflow-Antwort</strong>: Primäre Ausgabe des untergeordneten Workflows
</li>
<li>
<strong>Ausführungsstatus</strong>: Erfolgsstatus und Fehlerinformationen
</li>
<li>
<strong>Zugriff</strong>: Verfügbar in Blöcken nach dem Workflow
</li>
</ul>
</Tab>
</Tabs>

## Beispielanwendungsfälle

### Modulares Kunden-Onboarding

<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Komplexes Onboarding in wiederverwendbare Komponenten aufteilen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Hauptworkflow empfängt Kundendaten</li>
<li>Workflow-Block führt Validierungs-Workflow aus</li>
<li>Workflow-Block führt Kontoeinrichtungs-Workflow aus</li>
<li>Workflow-Block führt Willkommens-E-Mail-Workflow aus</li>
</ol>
</div>

### Microservice-Architektur

<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Unabhängige Service-Workflows erstellen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Zahlungsabwicklungs-Workflow verarbeitet Transaktionen</li>
<li>Bestandsverwaltungs-Workflow aktualisiert den Lagerbestand</li>
<li>Benachrichtigungs-Workflow sendet Bestätigungen</li>
<li>Hauptworkflow orchestriert alle Dienste</li>
</ol>
</div>

### Bedingte Verarbeitung

<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Führe verschiedene Workflows basierend auf Bedingungen aus</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Bedingungsblock bewertet den Benutzertyp</li>
<li>Enterprise-Benutzer → Komplexer Genehmigungsworkflow</li>
<li>Standard-Benutzer → Einfacher Genehmigungsworkflow</li>
<li>Kostenlose Benutzer → Grundlegender Verarbeitungsworkflow</li>
</ol>
</div>

## Bewährte Praktiken

- **Workflows fokussiert halten**: Gestalte untergeordnete Workflows für spezifische, klar definierte Aufgaben mit eindeutigen Ein- und Ausgaben
- **Verschachtelungstiefe minimieren**: Vermeide tief verschachtelte Workflow-Hierarchien für bessere Wartbarkeit und Leistung
- **Fehler elegant behandeln**: Implementiere eine ordnungsgemäße Fehlerbehandlung für Fehler in untergeordneten Workflows und stelle Fallback-Mechanismen bereit
- **Unabhängig testen**: Stelle sicher, dass untergeordnete Workflows unabhängig von übergeordneten Workflows getestet und validiert werden können
- **Semantische Benennung verwenden**: Gib Workflows beschreibende Namen, die ihren Zweck und ihre Funktionalität klar angeben
41 changes: 29 additions & 12 deletions apps/docs/content/docs/de/execution/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ title: Ausführung

import { Callout } from 'fumadocs-ui/components/callout'
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Image } from '@/components/ui/image'

Die Ausführungs-Engine von Sim bringt Ihre Workflows zum Leben, indem sie Blöcke in der richtigen Reihenfolge verarbeitet, den Datenfluss verwaltet und Fehler elegant behandelt, sodass Sie genau verstehen können, wie Workflows in Sim ausgeführt werden.

Expand Down Expand Up @@ -89,9 +90,25 @@ Die Chat-Bereitstellung erstellt eine Konversationsschnittstelle für Ihren Work

Jede Bereitstellungsmethode übergibt Daten an den Starter-Block Ihres Workflows und beginnt so den Ausführungsfluss.

## Deployment-Snapshots

Alle öffentlichen Einstiegspunkte—API, Chat, Zeitplan, Webhook und manuelle Ausführungen—führen den aktiven Deployment-Snapshot des Workflows aus. Veröffentliche ein neues Deployment, wann immer du die Arbeitsfläche änderst, damit jeder Trigger die aktualisierte Version verwendet.

<div className='flex justify-center my-6'>
<Image
src='/static/execution/deployment-versions-light.png'
alt='Tabelle mit Deployment-Versionen'
width={500}
height={280}
className='rounded-xl border border-border shadow-sm'
/>
</div>

Das Deploy-Modal behält eine vollständige Versionshistorie bei—inspiziere jeden Snapshot, vergleiche ihn mit deinem Entwurf und führe Upgrades oder Rollbacks mit einem Klick durch, wenn du eine frühere Version wiederherstellen musst.

## Programmatische Ausführung

Führen Sie Workflows aus Ihren Anwendungen mit unseren offiziellen SDKs aus:
Führe Workflows aus deinen Anwendungen mit unseren offiziellen SDKs aus:

```bash
# TypeScript/JavaScript
Expand All @@ -116,21 +133,21 @@ const result = await client.executeWorkflow('workflow-id', {

## Best Practices

### Für Zuverlässigkeit entwickeln
- Fehler elegant mit geeigneten Fallback-Pfaden behandeln
- Umgebungsvariablen für sensible Daten verwenden
- Logging zu Funktionsblöcken für Debugging hinzufügen
### Design für Zuverlässigkeit
- Behandle Fehler elegant mit geeigneten Fallback-Pfaden
- Verwende Umgebungsvariablen für sensible Daten
- Füge Logging zu Funktionsblöcken für Debugging hinzu

### Leistung optimieren
- Externe API-Aufrufe wenn möglich minimieren
- Parallele Ausführung für unabhängige Operationen nutzen
- Ergebnisse mit Memory-Blöcken bei Bedarf zwischenspeichern
- Minimiere externe API-Aufrufe wo möglich
- Nutze parallele Ausführung für unabhängige Operationen
- Cache Ergebnisse mit Memory-Blöcken, wenn angemessen

### Ausführungen überwachen
- Logs regelmäßig überprüfen, um Leistungsmuster zu verstehen
- Kosten für KI-Modellnutzung verfolgen
- Workflow-Snapshots zur Fehlerbehebung verwenden
- Überprüfe Logs regelmäßig, um Leistungsmuster zu verstehen
- Verfolge Kosten für KI-Modellnutzung
- Verwende Workflow-Snapshots zur Fehlerbehebung

## Was kommt als nächstes?

Beginnen Sie mit [Ausführungsgrundlagen](/execution/basics), um zu verstehen, wie Workflows ausgeführt werden, und erkunden Sie dann [Protokollierung](/execution/logging), um Ihre Ausführungen zu überwachen, sowie [Kostenberechnung](/execution/costs), um Ihre Ausgaben zu optimieren.
Beginne mit [Ausführungsgrundlagen](/execution/basics), um zu verstehen, wie Workflows laufen, und erkunde dann [Logging](/execution/logging), um deine Ausführungen zu überwachen, sowie [Kostenberechnung](/execution/costs), um deine Ausgaben zu optimieren.
60 changes: 60 additions & 0 deletions apps/docs/content/docs/de/triggers/api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: API-Trigger
description: Starten Sie einen Workflow über eine authentifizierte HTTP-Anfrage
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'

## Übersicht

Der API-Trigger stellt Ihren Workflow als sicheren HTTP-Endpunkt bereit. Senden Sie JSON-Daten an den Endpunkt und Ihr Workflow verarbeitet diese sofort. API-Aufrufe werden immer gegen Ihre neueste Bereitstellung ausgeführt.

## Eingabeformat konfigurieren

<div className='flex justify-center my-6'>
<Image
src='/static/triggers/api-trigger-light.png'
alt='API-Trigger Eingabeformat'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>

Fügen Sie für jeden Parameter ein Feld **Eingabeformat** hinzu. Die Ausgabeschlüssel zur Laufzeit spiegeln das Schema wider und sind auch unter `<api.input>` verfügbar.

```yaml
- type: string
name: userId
value: demo-user # optional manual test value
- type: number
name: maxTokens
```

Manuelle Ausführungen im Editor verwenden die Spalte `value`, damit Sie testen können, ohne eine Anfrage zu senden. Während der Ausführung füllt der Resolver sowohl `<api.userId>` als auch `<api.input.userId>`.

## Anfrage-Beispiel

```bash
curl -X POST \
https://sim.ai/api/workflows/WORKFLOW_ID/execute \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_KEY' \
-d '{"userId":"demo-user","maxTokens":1024}'
```

Erfolgreiche Antworten geben das serialisierte Ausführungsergebnis vom Executor zurück. Fehler zeigen Validierungs-, Authentifizierungs- oder Workflow-Fehler an.

## Ausgabe-Referenz

| Referenz | Beschreibung |
|-----------|-------------|
| `<api.field>` | Im Eingabeformat definiertes Feld |
| `<api.input>` | Gesamter strukturierter Anfragekörper |

Wenn kein Eingabeformat definiert ist, stellt der Executor das rohe JSON nur unter `<api.input>` bereit.

<Callout type="warning">
Ein Workflow kann nur einen API-Trigger enthalten. Veröffentlichen Sie eine neue Bereitstellung nach Änderungen, damit der Endpunkt aktuell bleibt.
</Callout>
43 changes: 43 additions & 0 deletions apps/docs/content/docs/de/triggers/chat.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: Chat-Auslöser
description: Starten Sie einen Workflow aus einer Chat-Bereitstellung
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'

## Übersicht

Der Chat-Auslöser erstellt eine Konversationsschnittstelle für Ihren Workflow. Stellen Sie Ihren Workflow als Chat bereit, und Benutzer können über eine teilbare URL damit interagieren. Jede Nachricht startet eine neue Workflow-Ausführung mit Ihrer neuesten Bereitstellung.

## Laufzeit-Ausgaben

<div className='flex justify-center my-6'>
<Image
src='/static/triggers/chat-trigger-light.png'
alt='Chat-Bereitstellungskonversation'
width={400}
height={250}
className='rounded-xl border border-border shadow-sm'
/>
</div>

Der Auslöser schreibt drei Felder, auf die nachfolgende Blöcke verweisen können:

| Referenz | Beschreibung |
|-----------|-------------|
| `<chat.input>` | Neueste Benutzernachricht |
| `<chat.conversationId>` | Konversations-Thread-ID |
| `<chat.files>` | Optionale hochgeladene Dateien |

Dateien enthalten `name`, `mimeType` und einen signierten Download `url`.

## Nutzungshinweise

1. Fügen Sie einen Chat-Auslöser-Block pro Workflow hinzu.
2. Stellen Sie den Workflow im Chat-Modus bereit.
3. Teilen Sie den Bereitstellungslink – jede Antwort verwendet die Konversations-ID wieder, sodass der Workflow den Kontext beibehalten kann.

<Callout type="info">
Der Builder blockiert mehrere Chat-Auslöser-Blöcke im selben Workflow.
</Callout>
Loading
Loading