Alternativ können Sie grafische Tools aus der Benutzeroberfläche von watsonx.ai verwenden, um Agenten zu erstellen. Siehe Agentenlabor.
Übersicht
Copy link to section
Agentische Anwendungen ermöglichen es einem Basismodell, als Agent zu fungieren, der den Fluss der Interaktion mit dem Benutzer steuert. Sie legen die Parameter der Interaktion fest, einschließlich der Werkzeuge, die das Basismodell verwenden kann, aber Sie überlassen es dem Basismodell, den nächsten besten Schritt auf der Grundlage des aktuellen Stands der Interaktion zu entscheiden. Der Werkzeugaufruf wird manchmal auch als Funktionsaufruf bezeichnet.
In einem realen Arbeitsablauf möchten Sie vielleicht immer ein Werkzeug zu Beginn jeder Interaktion aufrufen. Im weiteren Verlauf des Austauschs möchten Sie vielleicht verschiedene Aufforderungen verwenden, je nachdem, wie der Benutzer Folgefragen zu einer Aufgabe beantwortet. Oder Sie möchten verschiedene Tools von Drittanbietern aufrufen, die zur Vervollständigung des Arbeitsablaufs erforderlich sind. Sie können diese Optionen festlegen und dann das Stiftungsmodell entscheiden lassen, welche Eingabeaufforderung zurückgegeben oder welches Werkzeug verwendet werden soll, wenn der richtige Zeitpunkt gekommen ist.
Eine App für die Reservierung eines Restaurants muss beispielsweise die folgenden Informationen erfassen und dann eine Reservierung erstellen:
Standort
Anzahl der Gäste
Datum und Uhrzeit
Die Reihenfolge, in der die Informationen gesammelt werden, spielt nur in einigen Lokalen eine Rolle, in denen die Anzahl der Gäste pro Tisch begrenzt ist oder in denen bei schönem Wetter mehr Sitzplätze im Freien zur Verfügung stehen. Sie können diese Bedingungen im Code berücksichtigen und das Basismodell bestimmen lassen, wann zusätzliche Tools, wie z. B. eine Wetter-App eines Drittanbieters, aufgerufen werden sollen, bevor der Agent eine Reservierungsanfrage abschließt.
Unterstützte Stiftungsmodelle
Copy link to section
Wenn Sie einen agentenbasierten Workflow aufbauen, wählen Sie ein Basismodell, das die folgenden Anforderungen erfüllt:
Erledigt Chat-Aufgaben
Unterstützt Werkzeugaufrufe
Kann die nächste Aktion wählen
Um programmgesteuert eine Liste der Foundation-Modelle zu erhalten, die Tool-Aufrufe aus der Chat-API unterstützen, geben Sie den Parameter filters=task_function_calling an, wenn Sie eine Anforderung zur Methode „Liste der verfügbaren Foundation-Modelle“ senden.
curl -X GET \
'https://{region}.ml.cloud.ibm.com/ml/v1/foundation_model_specs?version=2024-10-10&filters=task_function_calling'
Copy to clipboardIn die Zwischenablage kopiert
Hinweis: Sie können die Chat-API nicht für die Entwicklung von Toolaufrufen aus einem Deployment-on-Demand- oder benutzerdefinierten Basismodell verwenden.
Verschiedene Gründungsmodelle handhaben den Aufruf von Werkzeugen auf unterschiedliche Weise. Anhand der folgenden Beispiele können Sie einige der Unterschiede erkennen:
Beispiel für eine Anfrage zum Aufrufen von Werkzeugen
Copy link to section
Das folgende Beispiel definiert zwei Werkzeuge, eine Funktion für Addition und eine Funktion für Multiplikation. Das Beispiel übermittelt Benutzereingaben an das Stiftungsmodell und lässt das Modell auswählen, welches Werkzeug zur Beantwortung der Frage verwendet werden soll.
Im folgenden Beispiel ersetzen Sie die Variable " {url} durch den richtigen Wert für Ihren Fall, z. B. " us-south.ml.cloud.ibm.com. Fügen Sie Ihr eigenes Inhaber-Token und Ihre Projekt-ID hinzu.
curl -X POST \
'https://{url}/ml/v1/text/chat?version=2024-10-08' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJraWQiOi...'
--data '{"model_id":"mistralai/mistral-large","project_id":"4947c695-a374-428c-acca-332c1a1dc9e9","messages":[{"role":"user","content":[{"type":"text","text":"What is 2 plus 4?"}]}],"tools":[{"type":"function","function":{"name":"add","description":"Adds the values a and b to get a sum.","parameters":{"type":"object","properties":{"a":{"description":"A number value","type":"float"},"b":{"description":"A number value","type":"float"}},"required":["a","b"]}}},{"type":"function","function":{"name":"multiply","description":"Multiplies the values a and b.","parameters":{"type":"object","properties":{"a":{"description":"A number value","type":"float"},"b":{"description":"A number value","type":"float"}},"required":["a","b"]}}}],"tool_choice_option":"auto","max_tokens":300,"time_limit":1000}'
Copy to clipboardIn die Zwischenablage kopiertShow more
Die Beispielausgabe zeigt, dass das Modell, in diesem Fall mistral-large, in der Lage ist, das richtige Werkzeug für die Aufgabe zu wählen, nämlich die Funktion ' add.
{"id":"chatcmpl-2f47da4026950db321698cb733b25e89","model_id":"mistralai/mistral-large","model":"mistralai/mistral-large","choices":[{"index":0,"message":{"role":"assistant","tool_calls":[{"id":"H6KoCbaZV","type":"function","function":{"name":"add","arguments":"{\"a\": 2, \"b\": 4}"}}]},"finish_reason":"tool_calls"}],"created":1739311926,"model_version":"2.0.0","created_at":"2025-02-11T22:12:07.243Z","usage":{"completion_tokens":25,"prompt_tokens":189,"total_tokens":214},"system":{"warnings":[{"message":"This model is a Non-IBM Product governed by a third-party license that may impose use restrictions and other obligations. By using this model you agree to its terms as identified in the following URL.","id":"disclaimer_warning","more_info":"https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx"}]}}
Copy to clipboardIn die Zwischenablage kopiertShow more
Beispiel für einen Werkzeugaufruf mit granite-3-2b-instruct
Copy link to section
Die folgende Anfrage definiert zwei Werkzeuge, eine Funktion für Addition und eine Funktion für Multiplikation, und fragt das granite-3-2b-instruct foundation model, welches Werkzeug verwendet werden soll.
Die Granite können Werkzeuge besser aufrufen, wenn Sie eine Systemaufforderung mit der Anfrage bereitstellen. Es wird die folgende Systemaufforderung verwendet:
Sie sind Granite, entwickelt von IBM. Sie sind ein hilfreicher KI-Assistent mit Zugriff auf die folgenden Tools. Wenn ein Tool benötigt wird, um die Anfrage des Benutzers zu beantworten, antworten Sie mit "<|tool_call>", gefolgt von einer JSON-Liste der verwendeten Tools. Wenn ein Tool nicht in der bereitgestellten Liste der Tools enthalten ist, teilen Sie dem Benutzer mit, dass Sie die Anfrage nicht erfüllen können.
Im folgenden Beispiel ersetzen Sie die Variable " {url} durch den richtigen Wert für Ihren Fall, z. B. " us-south.ml.cloud.ibm.com. Fügen Sie Ihr eigenes Inhaber-Token und Ihre Projekt-ID hinzu.
Der Körper der Anfrage enthält den folgenden JSON-Ausschnitt:
{"model_id":"ibm/granite-3-2b-instruct","project_id":"4947c695-a374-428c-acca-332c1a1dc9e9","messages":[{"role":"system","content":[{"type":"text","text":"You are Granite, developed by IBM. You are a helpful AI assistant with access to the following tools. When a tool is required to answer the user's query, respond with <|tool_call|> followed by a JSON list of tools used. If a tool does not exist in the provided list of tools, notify the user that you do not have the ability to fulfill the request."}]},{"role":"user","content":[{"type":"text","text":"What is 2 times 4?"}]}],"tools":[{"type":"function","function":{"name":"add","description":"Adds the values a and b to get a sum.","parameters":{"type":"object","properties":{"a":{"description":"A number value","type":"float"},"b":{"description":"A number value","type":"float"}},"required":["a","b"]}}},{"type":"function","function":{"name":"multiply","description":"Multiplies the values a and b.","parameters":{"type":"object","properties":{"a":{"description":"A number value","type":"float"},"b":{"description":"A number value","type":"float"}},"required":["a","b"]}}}],"tool_choice_option":"auto","max_tokens":300,"time_limit":10000}
Copy to clipboardIn die Zwischenablage kopiertShow more
Das Gründungsmodell granite-3-2b-instruct ist in der Lage, das richtige Werkzeug zur Beantwortung der Anfrage auszuwählen.