> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Arbetsflöden

## Översikt

Agentarbetsflöden ger dig ett kraftfullt visuellt gränssnitt för att utforma komplexa konversationsflöden i ElevenAgents. I stället för att förlita dig på linjära konversationsvägar kan du med arbetsflöden skapa avancerade, förgrenade konversationsgrafer som anpassas dynamiskt efter användarnas behov.

![Översikt över arbetsflöden](/docs/_fern-files/_img/0b5b2cf9754c67ef469c08af5d13786f70ca8e0018d10e92595861abb4ed32cb.webp)

## Bygga arbetsflöden

Instrumentpanelen är det rekommenderade sättet att utforma arbetsflöden tack vare den visuella grafredigeraren. Arbetsflöden lagras i agentens översta `workflow`-fält, så du kan även hämta, redigera och skicka JSON via CLI:t eller uppdatera det via SDK:t – vilket är användbart för versionshantering och CI/CD.

#### Bygg via instrumentpanelen

Öppna agenten på instrumentpanelen, gå till fliken **Arbetsflöde** och använd den visuella redigeraren för att lägga till noder, konfigurera underagenters beteende och ansluta kanter. Spara ändringarna.

#### Uppdatera via CLI:t

#### Hämta agentkonfigurationen

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Redigera \`agent_configs/\<agent-name>.json\`

Arbetsflödesgrafen finns under den översta nyckeln `workflow`. `nodes` och `edges` är objekt med ID:n som nycklar. Nedan finns ett minimalt arbetsflöde med tre noder som leder startnoden till en supportunderagent och sedan till en slutnod:

```json
{
  "workflow": {
    "nodes": {
      "start_node": {
        "type": "start",
        "edge_order": ["start_to_support"]
      },
      "support_agent": {
        "type": "override_agent",
        "label": "Support agent",
        "additional_prompt": "Help the user with their support request, then transition to the end node when resolved.",
        "edge_order": ["support_to_end"]
      },
      "end_node": {
        "type": "end"
      }
    },
    "edges": {
      "start_to_support": {
        "source": "start_node",
        "target": "support_agent",
        "forward_condition": { "type": "unconditional" }
      },
      "support_to_end": {
        "source": "support_agent",
        "target": "end_node",
        "forward_condition": {
          "type": "llm",
          "condition": "The support request has been resolved."
        }
      }
    }
  }
}
```

De flesta team utformar först arbetsflöden på instrumentpanelen och sparar sedan den resulterande JSON-filen i versionshanteringen.

#### Skicka dina ändringar

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### Uppdatera via API:t

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    workflow={
        "nodes": {
            "start_node": {
                "type": "start",
                "edge_order": ["start_to_support"],
            },
            "support_agent": {
                "type": "override_agent",
                "label": "Support agent",
                "additional_prompt": "Help the user with their support request, then transition to the end node when resolved.",
                "edge_order": ["support_to_end"],
            },
            "end_node": {"type": "end"},
        },
        "edges": {
            "start_to_support": {
                "source": "start_node",
                "target": "support_agent",
                "forward_condition": {"type": "unconditional"},
            },
            "support_to_end": {
                "source": "support_agent",
                "target": "end_node",
                "forward_condition": {
                    "type": "llm",
                    "condition": "The support request has been resolved.",
                },
            },
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  workflow: {
    nodes: {
      start_node: {
        type: "start",
        edgeOrder: ["start_to_support"],
      },
      support_agent: {
        type: "override_agent",
        label: "Support agent",
        additionalPrompt:
          "Help the user with their support request, then transition to the end node when resolved.",
        edgeOrder: ["support_to_end"],
      },
      end_node: { type: "end" },
    },
    edges: {
      start_to_support: {
        source: "start_node",
        target: "support_agent",
        forwardCondition: { type: "unconditional" },
      },
      support_to_end: {
        source: "support_agent",
        target: "end_node",
        forwardCondition: {
          type: "llm",
          condition: "The support request has been resolved.",
        },
      },
    },
  },
});
```

## Nodtyper

Arbetsflöden består av olika nodtyper, där varje typ fyller ett specifikt syfte i konversationsflödet.

![Nodtyper](/docs/_fern-files/_img/b169065e0f229623a4cd57861802fa30ecd463a142599f5fd60f6fc1b8a6223e.webp)

### Underagentnoder

Med underagentnoder kan du ändra agentens beteende vid specifika punkter i arbetsflödet. Ändringarna tillämpas ovanpå baskonfigurationen för agenten eller kan helt åsidosätta den aktuella agentens konfiguration, vilket ger dig detaljerad kontroll över varje fas i konversationen.
Du kan uppdatera eller skriva över valfri del av en agents konfiguration, tillgängliga verktyg och anslutna kunskapsbasobjekt.

#### Allmänt

![Underagentens extra agentkonfiguration](/docs/_fern-files/_img/8ca72df8768a03adc0064281c906ab0f5710153249d17f7e7d51f465da7e9e94.webp)

Ändra grundläggande agentinställningar för denna specifika nod:

* **Systemprompt**: Lägg till eller åsidosätt systeminstruktioner för att styra agentens beteende
* **LLM-val**: Välj en annan språkmodell (t.ex. byt från Gemini 2.0 Flash till en kraftfullare modell för komplexa resonemangsuppgifter)
* **Röstkonfiguration**: Ändra röstinställningar, inklusive hastighet och ton, eller byt till en annan röst

**Användningsområden:**

* Använd en kraftfullare LLM för noder som kräver komplexa beslut
* Tillämpa striktare konversationsriktlinjer vid insamling av känslig information
* Ändra röstegenskaper för olika faser i konversationen
* Ändra agentens personlighet för specifika interaktionstyper

#### Kunskapsbas

![Underagentens extra kunskapsbas](/docs/_fern-files/_img/168a56fc316596983275999c53bbbe391c4c30a05abedc17cb6a4566eff7773f.webp)

Lägg till nodspecifik kunskap utan att påverka den globala kunskapsbasen:

* **Inkludera global kunskapsbas**: Växla om agentens huvudsakliga kunskapsbas ska inkluderas
* **Ytterligare dokument**: Lägg till dokument som är specifika för denna konversationsfas
* **Dynamisk kunskap**: Lägg till kontextuell information baserat på arbetsflödets tillstånd

**Användningsområden:**

* Lägg till produktspecifik dokumentation under säljsamtal
* Inkludera efterlevnadsriktlinjer under autentisering
* Ge felsökningsguider för supportflöden
* Lägg till prisinformation först efter kvalificering

#### Verktyg

![Underagentens extra verktyg](/docs/_fern-files/_img/9af53c3227661fd88bec57cb21197eb289760d33a874b56152d507373e51bac1.webp)

Hantera vilka verktyg som är tillgängliga för agenten i denna nod:

* **Inkludera globala verktyg**: Växla om verktyg från huvudagentens konfiguration ska inkluderas
* **Ytterligare verktyg**: Lägg till verktyg som är specifika för denna arbetsflödesnod (t.ex. webhookverktyg som `book_meeting`)
* **Verktygstyp**: Ange om verktygen är webhooks, API-anrop eller andra integrationer

**Användningsområden:**

* Lägg till autentiseringsverktyg först efter initial kvalificering
* Aktivera betalningshanteringsverktyg vid kassanoder
* Ge CRM-åtkomst efter användarverifiering
* Lägg till schemaläggningsverktyg för faser där tider bokas
* Inkludera webhookverktyg för specifika åtgärder som att boka möten

### Say-nod

En say-nod får agenten att säga ett meddelande vid en specifik punkt i arbetsflödet och fortsätter sedan längs sina utgående kanter. Använd den när formuleringen av ett meddelande är viktig och inte bör lämnas åt en underagent, till exempel för en hälsning, juridisk information eller en bekräftelse som läses upp för användaren.

Varje say-nod skickar sitt meddelande i ett av två lägen:

* **Bokstavligt**: agenten säger exakt den text du anger, med valfri översättning för varje konfigurerat språk.
* **Prompt**: LLM:en genererar meddelandet utifrån en beskrivning du skriver.

### Verktygsnod för anrop

Verktygsnoder kör ett specifikt verktygsanrop under konversationsflödet. Till skillnad från verktyg i underagenter är verktygsnoder dedikerade körpunkter som garanterar att verktyget anropas.

![Resultatkanter för verktygsnod](/docs/_fern-files/_img/6b60603e56dfb25e89cdfe4223826f635af874e034af8936d74d3b428611e17b.webp)

**Särskild kantkonfiguration:**
Verktygsnoder har en unik kanttyp som gör att du kan dirigera till en ny nod baserat på resultatet av verktygskörningen. Du kan definiera:

* **Framgångsväg**: Vart flödet ska dirigeras när verktyget körs utan problem
* **Felväg**: Vart flödet ska dirigeras när verktyget misslyckas eller returnerar ett fel

I framtiden kommer ytterligare förgreningsvillkor att tillhandahållas.

### Nod för att uppdatera tillstånd

En nod för att uppdatera tillstånd tilldelar en eller flera [dynamiska variabler](/docs/sv/eleven-agents/customization/personalization/dynamic-variables) varje gång arbetsflödet passerar genom den, med samma uttryck som verktyget Uppdatera tillstånd. Till skillnad från verktyget, som körs när LLM:en beslutar att anropa det, tillämpar noden alltid sina uppdateringar vid den punkten i grafen och fortsätter sedan längs sina utgående kanter.

Läs mer [här](/docs/sv/eleven-agents/customization/tools/system-tools/update-state).

### Nod för agentöverföring

Noden för agentöverföring underlättar överlämningar av konversationen mellan olika konversationsagenter. Läs mer [här](/docs/sv/eleven-agents/customization/tools/system-tools/agent-transfer).

### Nod för överföring till nummer

Noder för överföring till nummer övergår från en konversation med en AI-agent till en mänsklig agent via telefonsystem. Läs mer [här](/docs/sv/eleven-agents/customization/tools/system-tools/transfer-to-number)

### Slutnod

Noder för att avsluta samtal avslutar konversationsflödet på ett smidigt sätt. Läs mer [här](/docs/sv/eleven-agents/customization/tools/system-tools/transfer-to-number#:~:text=System%20tools-,End%20call,-Language%20detection)

## Kanter och flödesstyrning

Kanter definierar hur konversationer flödar mellan noder i arbetsflödet. De stöder avancerad dirigeringslogik som möjliggör dynamiska, kontextmedvetna konversationsvägar.

![Arbetsflödeskanter](/docs/_fern-files/_img/02d664c9211bb8cf5452b80ab865f26b8d0b723a6acff75141ea1e9c43f7dbab.webp)

#### Framåtriktade kanter

Framåtriktade kanter flyttar konversationen till efterföljande noder i arbetsflödet. De representerar konversationens primära flöde.

![Konfiguration av framåtriktad kant](/docs/_fern-files/_img/2400c66bf6f60b0d4262ecd828dea93847197f7cc00d9c8964e6486419bc90be.webp)

#### Bakåtriktade kanter

Bakåtriktade kanter gör att konversationer kan gå tillbaka till tidigare noder, vilket möjliggör upprepade interaktioner och logik för nya försök.

![Konfiguration av bakåtriktad kant](/docs/_fern-files/_img/e211da75e56c826fd763ae4d8149604a866d3ec63271c572e177d52bb9a80e14.webp)

**Användningsområden:**

* Gör om misslyckade autentiseringsförsök
* Gå tillbaka för att samla in ytterligare information
* Kvalificera på nytt efter ändringar i användarkrav
* Iterativa felsökningsprocesser

#### LLM-villkor

Använd LLM-villkor för att skapa dynamiska konversationsflöden baserade på utvärdering av naturligt språk. LLM:en utvärderar villkor i realtid för att avgöra lämplig väg.

![LLM-villkor för agentöverföring](/docs/_fern-files/_img/507885879d781f291ab35b7dda84e760767a5544ffb6bf7b455e7a1cc19b78b7.webp)

**Konfigurationsalternativ:**

* **Etikett**: Människoläsbar beskrivning av kantvillkoret (bearbetas inte av LLM:en)
* **LLM-villkor**: Villkor på naturligt språk som utvärderas av LLM:en

#### Uttryck

Använd uttryck för att skapa villkorsstyrd logik baserad på variabler och strukturerade data.

![Uttryck för agentöverföring](/docs/_fern-files/_img/712fc40d707906a7c6ccb4b0a76f0fd3857278176606d441bfb5245f5f6e0ffe.webp)

**Konfigurationsalternativ:**

* **Etikett**: Människoläsbar beskrivning av kantvillkoret (bearbetas inte av LLM:en)
* **Uttryck**: Deterministiska utvärderingskriterier baserade på datastruktur

#### Inga

Ovillkorliga övergångar flyttar automatiskt konversationen till nästa nod utan några villkor.

![Ovillkorlig agentöverföring](/docs/_fern-files/_img/73b70ce7c783277e64ba533f6d69c84e2ed3120f1fd03dbdebcd4d4f5358eb5b.webp)

**Användningsområden:**

* Sekventiella steg som alltid följer på varandra
* Automatisk fortsättning efter att en åtgärd har slutförts
* Standardsökvägar vid återgång

## Analys

![Fliken för arbetsflödesanalys som visar poster per nod, varaktigheter, avslut och kantflöde överlagrat
på arbetsflödesgrafen](/docs/_fern-files/_img/a758029a005f0327c1e6319708577efd617399c72cec63d5c342d3af2f0db2a3.webp)

När ett arbetsflöde är live visar fliken **Arbetsflöde** på [analysinstrumentpanelen](/docs/sv/eleven-agents/dashboard#workflow-analytics) användningsdata på grafen: poster per nod, genomsnittlig tid och avslut samt fördelningen av inkommande och utgående kanter för varje nod. Från nodinspektören kan du också gå direkt till motsvarande konversationer i historiken via filtret **Nod angiven**.