mirror of
https://github.com/simstudioai/sim.git
synced 2026-02-10 22:55:16 -05:00
189 lines
5.7 KiB
Plaintext
189 lines
5.7 KiB
Plaintext
---
|
|
title: Human in the Loop
|
|
---
|
|
|
|
import { Callout } from 'fumadocs-ui/components/callout'
|
|
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
|
import { Image } from '@/components/ui/image'
|
|
import { Video } from '@/components/ui/video'
|
|
|
|
Der Human in the Loop Block pausiert die Workflow-Ausführung und wartet auf menschliches Eingreifen, bevor er fortfährt. Verwenden Sie ihn, um Genehmigungspunkte hinzuzufügen, Feedback zu sammeln oder zusätzliche Eingaben an kritischen Entscheidungspunkten einzuholen.
|
|
|
|
<div className="flex justify-center">
|
|
<Image
|
|
src="/static/blocks/hitl-1.png"
|
|
alt="Human in the Loop Block Konfiguration"
|
|
width={500}
|
|
height={400}
|
|
className="my-6"
|
|
/>
|
|
</div>
|
|
|
|
Wenn die Ausführung diesen Block erreicht, pausiert der Workflow auf unbestimmte Zeit, bis ein Mensch über das Genehmigungsportal, die API oder den Webhook eine Eingabe macht.
|
|
|
|
<div className="flex justify-center">
|
|
<Image
|
|
src="/static/blocks/hitl-2.png"
|
|
alt="Human in the Loop Genehmigungsportal"
|
|
width={700}
|
|
height={500}
|
|
className="my-6"
|
|
/>
|
|
</div>
|
|
|
|
## Konfigurationsoptionen
|
|
|
|
### Pausierte Ausgabe
|
|
|
|
Definiert, welche Daten dem Genehmigenden angezeigt werden. Dies ist der Kontext, der im Genehmigungsportal angezeigt wird, um eine fundierte Entscheidung zu ermöglichen.
|
|
|
|
Verwenden Sie den visuellen Builder oder den JSON-Editor, um die Daten zu strukturieren. Referenzieren Sie Workflow-Variablen mit der `<blockName.output>` Syntax.
|
|
|
|
```json
|
|
{
|
|
"customerName": "<agent1.content.name>",
|
|
"proposedAction": "<router1.selectedPath>",
|
|
"confidenceScore": "<evaluator1.score>",
|
|
"generatedEmail": "<agent2.content>"
|
|
}
|
|
```
|
|
|
|
### Benachrichtigung
|
|
|
|
Konfiguriert, wie Genehmigende benachrichtigt werden, wenn eine Genehmigung erforderlich ist. Unterstützte Kanäle sind:
|
|
|
|
- **Slack** - Nachrichten an Kanäle oder DMs
|
|
- **Gmail** - E-Mail mit Genehmigungslink
|
|
- **Microsoft Teams** - Team-Kanal-Benachrichtigungen
|
|
- **SMS** - Textwarnungen über Twilio
|
|
- **Webhooks** - Benutzerdefinierte Benachrichtigungssysteme
|
|
|
|
Fügen Sie die Genehmigungs-URL (`<blockId.url>`) in Ihre Benachrichtigungsnachrichten ein, damit Genehmigende auf das Portal zugreifen können.
|
|
|
|
### Fortsetzungseingabe
|
|
|
|
Definiert die Felder, die Genehmigende bei der Antwort ausfüllen. Diese Daten werden nach der Fortsetzung des Workflows für nachfolgende Blöcke verfügbar.
|
|
|
|
```json
|
|
{
|
|
"approved": {
|
|
"type": "boolean",
|
|
"description": "Approve or reject this request"
|
|
},
|
|
"comments": {
|
|
"type": "string",
|
|
"description": "Optional feedback or explanation"
|
|
}
|
|
}
|
|
```
|
|
|
|
Greifen Sie in nachgelagerten Blöcken auf Wiederaufnahmedaten mit `<blockId.resumeInput.fieldName>` zu.
|
|
|
|
## Genehmigungsmethoden
|
|
|
|
<Tabs items={['Genehmigungsportal', 'API', 'Webhook']}>
|
|
<Tab>
|
|
### Genehmigungsportal
|
|
|
|
Jeder Block generiert eine eindeutige Portal-URL (`<blockId.url>`) mit einer visuellen Oberfläche, die alle pausierten Ausgabedaten und Formularfelder für die Fortsetzungseingabe anzeigt. Mobilgerätekompatibel und sicher.
|
|
|
|
Teilen Sie diese URL in Benachrichtigungen, damit Genehmiger die Anfragen prüfen und beantworten können.
|
|
</Tab>
|
|
<Tab>
|
|
### REST API
|
|
|
|
Workflows programmatisch fortsetzen:
|
|
|
|
|
|
```bash
|
|
POST /api/workflows/{workflowId}/executions/{executionId}/resume/{blockId}
|
|
|
|
{
|
|
"approved": true,
|
|
"comments": "Looks good to proceed"
|
|
}
|
|
```
|
|
|
|
|
|
Erstellen Sie benutzerdefinierte Genehmigungs-UIs oder integrieren Sie bestehende Systeme.
|
|
</Tab>
|
|
<Tab>
|
|
### Webhook
|
|
|
|
Fügen Sie ein Webhook-Tool im Benachrichtigungsbereich hinzu, um Genehmigungsanfragen an externe Systeme zu senden. Integration mit Ticketing-Systemen wie Jira oder ServiceNow.
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## Häufige Anwendungsfälle
|
|
|
|
**Inhaltsgenehmigung** - Überprüfung von KI-generierten Inhalten vor der Veröffentlichung
|
|
|
|
```
|
|
Agent → Human in the Loop → API (Publish)
|
|
```
|
|
|
|
**Mehrstufige Genehmigungen** - Verkettung mehrerer Genehmigungsschritte für wichtige Entscheidungen
|
|
|
|
```
|
|
Agent → Human in the Loop (Manager) → Human in the Loop (Director) → Execute
|
|
```
|
|
|
|
**Datenvalidierung** - Überprüfung extrahierter Daten vor der Verarbeitung
|
|
|
|
```
|
|
Agent (Extract) → Human in the Loop (Validate) → Function (Process)
|
|
```
|
|
|
|
**Qualitätskontrolle** - Überprüfung von KI-Ausgaben vor dem Versand an Kunden
|
|
|
|
```
|
|
Agent (Generate) → Human in the Loop (QA) → Gmail (Send)
|
|
```
|
|
|
|
## Block-Ausgaben
|
|
|
|
**`url`** - Eindeutige URL für das Genehmigungsportal
|
|
**`resumeInput.*`** - Alle in der Fortsetzungseingabe definierten Felder werden verfügbar, nachdem der Workflow fortgesetzt wird
|
|
|
|
Zugriff über `<blockId.resumeInput.fieldName>`.
|
|
|
|
## Beispiel
|
|
|
|
**Pausierte Ausgabe:**
|
|
|
|
```json
|
|
{
|
|
"title": "<agent1.content.title>",
|
|
"body": "<agent1.content.body>",
|
|
"qualityScore": "<evaluator1.score>"
|
|
}
|
|
```
|
|
|
|
**Fortsetzungseingabe:**
|
|
|
|
```json
|
|
{
|
|
"approved": { "type": "boolean" },
|
|
"feedback": { "type": "string" }
|
|
}
|
|
```
|
|
|
|
**Nachgelagerte Verwendung:**
|
|
|
|
```javascript
|
|
// Condition block
|
|
<approval1.resumeInput.approved> === true
|
|
```
|
|
|
|
Das Beispiel unten zeigt ein Genehmigungsportal, wie es von einem Genehmiger gesehen wird, nachdem der Workflow angehalten wurde. Genehmiger können die Daten überprüfen und Eingaben als Teil der Workflow-Wiederaufnahme bereitstellen. Auf das Genehmigungsportal kann direkt über die eindeutige URL, `<blockId.url>`, zugegriffen werden.
|
|
|
|
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
|
<Video src="hitl-resume.mp4" width={700} height={450} />
|
|
</div>
|
|
|
|
## Verwandte Blöcke
|
|
|
|
- **[Bedingung](/blocks/condition)** - Verzweigung basierend auf Genehmigungsentscheidungen
|
|
- **[Variablen](/blocks/variables)** - Speichern von Genehmigungsverlauf und Metadaten
|
|
- **[Antwort](/blocks/response)** - Rückgabe von Workflow-Ergebnissen an API-Aufrufer
|