Tools

Rezepte

Wie ein Tool seine Anfragen baut und was der Agent davon sieht.

Das Rezept sagt einem Tool, welche Anfragen es an die Verbindung schickt, woher die Werte kommen und was der Agent von der Antwort zu sehen bekommt.

Beispiel

{
  "kind": "fetch",
  "announce": true,
  "announce_text": "Einen Moment, ich schaue nach freien Terminen.",
  "sources": {
    "a": {
      "method": "GET",
      "url": "/slots?date={{date}}",
      "params": [
        {
          "from": "llm",
          "name": "date",
          "value": "Wunschtag des Anrufers im Format YYYY-MM-DD",
          "type": "string",
          "required": true
        }
      ]
    }
  },
  "output": {
    "fields": [
      "slots"
    ],
    "limit": 5,
    "remember": []
  }
}

Felder

Feld Bedeutung
kind fetch liest Daten, action löst etwas aus, etwa eine Buchung.
announce Ob der Agent etwas sagt, während das Tool läuft.
announce_text Was er dann sagt.
sources Die Anfragen, nach Buchstaben benannt und in dieser Reihenfolge ausgeführt: a, b, c.
output.fields Welche Felder der Antwort der Agent sieht. Alles andere bleibt bei dir.
output.limit Höchstzahl an Einträgen, wenn die Antwort eine Liste ist. null für alle.
output.remember Felder, die sich der Agent für spätere Tools merkt, etwa results.id.

Anfrage (sources)

Feld Bedeutung
method GET, POST, PUT, PATCH oder DELETE.
url Pfad relativ zu base_url der Verbindung. {{name}} setzt einen Parameter ein.
for_each_of Führt die Anfrage einmal je Eintrag einer früheren Anfrage aus, z. B. "a".
params Die Parameter, siehe unten.

Parameter (params)

Feld Bedeutung
from llm: der Agent füllt den Wert aus dem Gespräch. fixed: ein fester Wert. variable: eine Gesprächsvariable aus Space abrufen.
name Name des Parameters. Punkte bilden verschachtelte Felder: address.street, items.0.sku.
value Bei llm die Anweisung an den Agenten, bei fixed der Wert, bei variable der Name der Variable.
type string, integer, number, boolean, array oder object.
required Ob der Parameter vorhanden sein muss.
fields Die Unterfelder bei array und object.
values Erlaubte Werte, optional.

Bei GET gehen Parameter, die nicht als Platzhalter in url stehen, in die Adresse, bei den übrigen Methoden in den JSON-Body.

Gute Rezepte

  • Schreib bei from: llm in value, was genau gemeint ist und in welchem Format: "Wunschtag des Anrufers im Format YYYY-MM-DD" statt "Datum".
  • Gib dem Agenten über output.fields nur, was er zum Antworten braucht. Weniger Felder heißt weniger Fehler.
  • Prüfe jede Anfrage vorher mit Testanfrage senden.