> 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.

# Webhook-verktyg

**Verktyg** gör att din assistent kan ansluta till externa data och system. Du kan definiera en uppsättning verktyg som assistenten har åtkomst till, och assistenten använder dem där det är lämpligt utifrån konversationen.

## Översikt

Många program kräver att assistenter anropar externa API:er för att hämta information i realtid. Verktyg ger din assistent möjlighet att göra externa funktionsanrop till tredjepartsappar så att du kan få information i realtid.

Här är några exempel på när verktyg kan vara användbara:

* **Hämta data**: låt en assistent hämta data i realtid från valfri REST-aktiverad databas eller tredjepartsintegration innan den svarar användaren.
* **Utföra åtgärder**: låt en assistent utlösa autentiserade åtgärder utifrån konversationen, som att boka möten eller påbörja orderreturer.

> **Info**
>
> Använd i stället [klientverktyg](/docs/sv/eleven-agents/customization/tools/client-tools) för att interagera med programgränssnitt eller utlösa händelser på klientsidan.

## Verktygskonfiguration

ElevenLabs-agenter kan utrustas med verktyg för att interagera med externa API:er. Till skillnad från traditionella förfrågningar genererar assistenten fråge-, body- och sökvägsparametrar dynamiskt utifrån konversationen och de parameterbeskrivningar du anger.

Alla verktygskonfigurationer och parameterbeskrivningar hjälper assistenten att avgöra **när** och **hur** dessa verktyg ska användas. För att samordna verktygsanvändningen effektivt uppdaterar du assistentens systemprompt så att den anger ordningen och logiken för dessa anrop. Detta omfattar:

* **Vilket verktyg** som ska användas och under vilka villkor.
* **Vilka parametrar** verktyget behöver för att fungera korrekt.
* **Hur svaren** ska hanteras.

\


#### Konfiguration

Definiera ett övergripande `Name` och en `Description` som beskriver verktygets syfte. Det hjälper LLM:en att förstå verktyget och veta när det ska anropas.

> **Info**
>
> Om API:et kräver sökvägsparametrar inkluderar du variabler i URL-sökvägen genom att omge dem med klammerparenteser `{}`, till exempel: `/api/resource/{id}` där `id` är en sökvägsparameter.

![Konfiguration](/docs/_fern-img/fb6e6619e4e7a5f19c2a86f9c2a489f5cb33cfb0883c14a06f0eec3cb35d71d5.webp)

#### Autentisering

Konfigurera autentisering genom att lägga till anpassade headers eller använda färdiga autentiseringsmetoder via autentiseringsanslutningar.

![Verktygsautentisering](/docs/_fern-img/5ffae070945a86b74975cd9b56679c2bb76f0ce70d05fe7b10e8e5dff6ddd630.webp)

#### Headers

Ange de headers som ska inkluderas i förfrågan.

![Headers](/docs/_fern-img/9c8c3f2d42f84a6e40922a4c777199e79646b174fa51b9e4d5b21695d7da3f66.webp)

#### Sökvägsparametrar

Inkludera variabler i URL-sökvägen genom att omge dem med klammerparenteser `{}`:

* **Exempel**: `/api/resource/{id}` där `id` är en sökvägsparameter.

![Sökvägsparametrar](/docs/_fern-img/12dde95654a12f8fd5894eefe2bdbebb8b819072d3589ed32ddd578997f53c1d.webp)

#### Body-parametrar

Ange de body-parametrar som ska inkluderas i förfrågan.

![Body-parametrar](/docs/_fern-img/17627460d24323cc40f461196625d34a5825dbe85d684618be0bc46b11ff9205.webp)

### Innehållstyp

Konfigurera formatet för kodning av förfrågans body:

* **JSON** (standard): Skickar body-parametrar som `application/json`
* **URL-kodad**: Skickar body-parametrar som `application/x-www-form-urlencoded`

URL-kodat format är användbart när du integrerar med API:er som kräver formulärdatainlämning, till exempel:

* Äldre system som endast accepterar formulärkodade förfrågningar
* OAuth-tokenändpunkter
* API:er för betalningshantering
* Tredjepartsintegrationer med särskilda krav på innehållstyp

> **Info**
>
> Inställningen för innehållstyp gäller endast POST-, PUT- och PATCH-förfrågningar med body-parametrar.

#### Frågeparametrar

Ange de frågeparametrar som ska inkluderas i förfrågan.

![Frågeparametrar](/docs/_fern-img/4127f87fe066cdaa71df0e6f75caa24ec8174e7d156c74b3c62ea9df98b9712e.webp)

#### Dynamisk variabeltilldelning

Ange dynamiska variabler som ska uppdateras från verktygssvaret för senare användning i konversationen.

![Frågeparametrar](/docs/_fern-img/95ff0cae8613eafa8bc4312e7cafa39ac0eab34d2fd2b21f0894a30775366110.webp)

## Guide

I den här guiden skapar vi en väderassistent som kan ge väderinformation i realtid för valfri plats. Assistenten använder sina geografiska kunskaper för att omvandla platsnamn till koordinater och hämta exakta väderdata.

#### Konfigurera väderverktyget

Väderverktyget skickar GET-förfrågningar till `https://api.open-meteo.com/v1/forecast` med `latitude` och `longitude` som sökvägsparametrar som tillhandahålls av LLM:en.

#### Lägg till via instrumentpanelen

I avsnittet **Agent** på sidan med agentinställningar väljer du **Add Tool**. Välj **Webhook** som verktygstyp och konfigurera sedan väder-API-integrationen med dessa värden:

| Fält        | Värde                                                                                                                                                                                                                                                                                                                                                                                  |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Namn        | get\_weather                                                                                                                                                                                                                                                                                                                                                                           |
| Beskrivning | Hämtar den aktuella väderprognosen för en plats                                                                                                                                                                                                                                                                                                                                        |
| Metod       | GET                                                                                                                                                                                                                                                                                                                                                                                    |
| URL         | [https://api.open-meteo.com/v1/forecast?latitude=\{latitude}\&longitude=\{longitude}\&current=temperature\_2m,wind\_speed\_10m\&hourly=temperature\_2m,relative\_humidity\_2m,wind\_speed\_10m](https://api.open-meteo.com/v1/forecast?latitude=\{latitude}\&longitude=\{longitude}\&current=temperature_2m,wind_speed_10m\&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m) |

Lägg till två sökvägsparametrar med värdetypen `LLM Prompt`:

| Datatyp | Identifierare | Beskrivning                                      |
| ------- | ------------- | ------------------------------------------------ |
| string  | latitude      | Latitudkoordinaten för den efterfrågade platsen  |
| string  | longitude     | Longitudkoordinaten för den efterfrågade platsen |

#### Lägg till via CLI

#### Skapa en verktygskonfigurationsfil

Spara följande som `tool_configs/get_weather.json`:

```json
{
  "type": "webhook",
  "name": "get_weather",
  "description": "Gets the current weather forecast for a location",
  "api_schema": {
    "url": "https://api.open-meteo.com/v1/forecast?current=temperature_2m,wind_speed_10m",
    "method": "GET",
    "path_params_schema": {
      "latitude": {
        "type": "string",
        "description": "The latitude coordinate for the requested location"
      },
      "longitude": {
        "type": "string",
        "description": "The longitude coordinate for the requested location"
      }
    }
  }
}
```

#### Lägg till verktyget

```bash
elevenlabs tools add "get_weather" --type "webhook" --config-path ./tool_configs/get_weather.json
```

#### Referera till verktyget från din agent

Redigera `agent_configs/<agent-name>.json` och lägg till verktygets ID i `conversation_config.agent.prompt.tool_ids`, och pusha sedan:

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

#### Lägg till via API:et

```python
from elevenlabs import ElevenLabs, ToolRequestModel

elevenlabs = ElevenLabs()

tool = elevenlabs.conversational_ai.tools.create(
    request=ToolRequestModel(
        tool_config={
            "type": "webhook",
            "name": "get_weather",
            "description": "Gets the current weather forecast for a location",
            "api_schema": {
                "url": "https://api.open-meteo.com/v1/forecast?current=temperature_2m,wind_speed_10m",
                "method": "GET",
                "path_params_schema": {
                    "latitude": {
                        "type": "string",
                        "description": "The latitude coordinate for the requested location",
                    },
                    "longitude": {
                        "type": "string",
                        "description": "The longitude coordinate for the requested location",
                    },
                },
            },
        }
    )
)

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "agent": {"prompt": {"tool_ids": [tool.id]}},
    },
)
```

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

const elevenlabs = new ElevenLabsClient();

const tool = await elevenlabs.conversationalAi.tools.create({
  toolConfig: {
    type: "webhook",
    name: "get_weather",
    description: "Gets the current weather forecast for a location",
    apiSchema: {
      url: "https://api.open-meteo.com/v1/forecast?current=temperature_2m,wind_speed_10m",
      method: "GET",
      pathParamsSchema: {
        latitude: {
          type: "string",
          description: "The latitude coordinate for the requested location",
        },
        longitude: {
          type: "string",
          description: "The longitude coordinate for the requested location",
        },
      },
    },
  },
});

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    agent: { prompt: { toolIds: [tool.id] } },
  },
});
```

> **Warning**
>
> En API-nyckel krävs inte för det här verktyget. Om en krävs ska den skickas i headers och lagras som en hemlighet.

#### Orkestrering

Konfigurera din assistent så att den hanterar väderfrågor intelligent med denna systemprompt:

**`Systemprompt`**

```plaintext Systemprompt
You are a helpful conversational agent with access to a weather tool. When users ask about
weather conditions, use the get_weather tool to fetch accurate, real-time data. The tool requires
a latitude and longitude - use your geographic knowledge to convert location names to coordinates
accurately.

Never ask users for coordinates - you must determine these yourself. Always report weather
information conversationally, referring to locations by name only. For weather requests:

1. Extract the location from the user's message
2. Convert the location to coordinates and call get_weather
3. Present the information naturally and helpfully

For non-weather queries, provide friendly assistance within your knowledge boundaries. Always be
concise, accurate, and helpful.

First message: "Hey, how can I help you today?"
```

> **Success**
>
> Testa din assistent genom att fråga om vädret på olika platser. Assistenten ska kunna hantera
> specifika platser ("Hur är vädret i Tokyo?") och be om förtydligande efter allmänna frågor ("Hur
> ser vädret ut i dag?").

## Autentiseringsmetoder som stöds

ElevenLabs Agents stöder flera autentiseringsmetoder för att ansluta dina verktyg säkert till externa API:er. Autentiseringsmetoder konfigureras i dina agentinställningar och ansluts sedan till enskilda verktyg efter behov.

![Arbetsytans autentiseringsanslutning](/docs/_fern-img/131f7e017f01eaba444cddc672efdb77415db1a4c3a39f05b92a1678c5cd68f1.webp)

När de är konfigurerade kan du ansluta dessa autentiseringsmetoder till dina verktyg och hantera anpassade headers i verktygskonfigurationen:

![Verktygets autentiseringsanslutning](/docs/_fern-img/c018c5bf11266512a6d6157e33274b1a12f8c20768e5ab18da0f20f933f8aea9.webp)

#### OAuth2-klientuppgifter

Hanterar automatiskt flödet för OAuth2-klientuppgifter. Konfigurera med ditt klient-ID, klienthemlighet och token-URL (t.ex. `https://api.example.com/oauth/token`). Du kan även ange omfattningar som kommaseparerade värden och ytterligare JSON-parametrar. Konfigurera genom att klicka på **Add Auth** under **Workspace Auth Connections** i avsnittet **Agent** på sidan med agentinställningar.

#### OAuth2 JWT

Använder autentisering med JSON Web Token för OAuth 2.0 JWT Bearer-flödet. Kräver din JWT-signeringshemlighet, token-URL och algoritm (standard: HS256). Konfigurera JWT-anspråk, inklusive utfärdare, målgrupp och ämne. Du kan även ange nyckel-ID, utgångstid (standard: 3 600 sekunder), omfattningar och extra parametrar. Konfigurera genom att klicka på **Add Auth** under **Workspace Auth Connections** i avsnittet **Agent** på sidan med agentinställningar.

#### Grundläggande autentisering

Enkel autentisering med användarnamn och lösenord för API:er som stöder HTTP Basic Auth. Konfigurera genom att klicka på **Add Auth** under **Workspace Auth Connections** i avsnittet **Agent** på sidan med agentinställningar.

#### Bearer-token

Tokenbaserad autentisering som lägger till värdet för din bearer-token i förfrågans header. Konfigurera genom att lägga till en header i verktygskonfigurationen, välja **Secret** som headertyp och klicka på **Create New Secret**.

#### Anpassade headers

Lägg till anpassade autentiseringsheaders med valfritt namn och värde för egna autentiseringsmetoder. Konfigurera genom att lägga till en header i verktygskonfigurationen och ange dess **namn** och **värde**.

## Bästa praxis

#### Namnge verktyg intuitivt och med detaljerade beskrivningar

Om assistenten inte anropar rätt verktyg kan du behöva uppdatera verktygsnamnen och beskrivningarna så att assistenten tydligare förstår när varje verktyg ska väljas. Undvik att använda förkortningar eller akronymer för att förkorta namn på verktyg och argument.

Du kan också inkludera detaljerade beskrivningar av när ett verktyg ska anropas. För komplexa verktyg bör du inkludera beskrivningar för varje argument för att hjälpa assistenten förstå vad den behöver fråga användaren om för att samla in argumentet.

#### Namnge verktygsparametrar intuitivt och med detaljerade beskrivningar

Använd tydliga och beskrivande namn för verktygsparametrar. Ange vid behov det förväntade formatet för en parameter i beskrivningen (t.ex. YYYY-mm-dd eller dd/mm/yy för ett datum).

#### Överväg att ge ytterligare information om hur och när verktyg ska anropas i assistentens&#xA;systemprompt

Tydliga instruktioner i systemprompten kan avsevärt förbättra assistentens precision vid verktygsanrop. Du kan till exempel vägleda assistenten med instruktioner som följande:

```plaintext
Use `check_order_status` when the user inquires about the status of their order, such as 'Where is my order?' or 'Has my order shipped yet?'.
```

Ge kontext för komplexa scenarier. Till exempel:

```plaintext
Before scheduling a meeting with `schedule_meeting`, check the user's calendar for availability using check_availability to avoid conflicts.
```

#### Val av LLM

> **Warning**
>
> När du använder verktyg rekommenderar vi modeller med hög intelligens, som GPT 6 eller Claude Sonnet 5.5.

Det är viktigt att notera att valet av LLM påverkar hur väl funktionsanrop lyckas. Vissa LLM:er kan ha svårt att extrahera relevanta parametrar från konversationen.

## Ljud vid verktygsanrop

Du kan konfigurera bakgrundsljud som spelas upp medan verktyget körs för att förbättra användarupplevelsen. Läs mer om [ljud vid verktygsanrop](/docs/sv/eleven-agents/customization/tools/tool-configuration/tool-call-sounds).