Erstellen von KI-Agententools
Wichtig
Dieses Feature befindet sich in der Public Preview.
In diesem Artikel erfahren Sie, wie Sie Tools für KI-Agents mithilfe des Mosaik AI Agent Frameworks erstellen. Weitere Informationen finden Sie unter "Was sind zusammengesetztes KI-System und KI-Agenten?"
KI-Agents verwenden Tools zum Ausführen von Aktionen neben der Sprachgenerierung, z. B. Abrufen strukturierter oder unstrukturierter Daten, Ausführen von Code oder Sprechen mit Remotediensten (z. B. Senden einer E-Mail oder Slack-Nachricht).
Um einem Agent Tools mit Mosaik AI Agent Framework bereitzustellen, können Sie eine beliebige Kombination der folgenden Methoden verwenden:
- Erstellen von Tools mit Unity-Katalogfunktionen: Unity-Katalogfunktionen bieten einfache Ermittlungen, Governance und Freigabe. Unity Catalog-Funktionen funktionieren besonders gut für die Anwendung von Transformationen und Aggregationen auf großen Datasets.
- Erstellen von Tools mit Agentcode: Dieser Ansatz ist nützlich, wenn Aufrufe an REST-APIs ausgeführt werden, beliebiger Code oder Bibliotheken verwendet werden oder Tools mit sehr geringer Latenz ausgeführt werden. Dieser Ansatz fehlt jedoch an der integrierten Auffindbarkeit und Governance, die von Unity Catalog-Funktionen bereitgestellt wird. Wiegen Sie diesen Kompromiss, wenn Sie Ihren Agenten erstellen, um zu bestimmen, welcher Ansatz am besten geeignet ist.
Beide Ansätze funktionieren für Agents, die in benutzerdefiniertem Python-Code geschrieben wurden, oder verwenden sie eine Agent-Erstellungsbibliothek wie LangGraph.
Verbessern von Toolanrufen mit Dokumentation
KI-Agents verwenden Ihre Dokumentation, um zu verstehen, wann und wie Sie die von Ihnen bereitgestellten Tools verwenden. Achten Sie also beim Definieren von Tools darauf, klare und detaillierte Dokumentationen für das Tool, seine Parameter und die Rückgabewerte hinzuzufügen.
Verwenden Sie COMMENT
für Unity-Katalogfunktionen, um das Tool zu beschreiben.
Anforderungen
- Databricks empfiehlt, bei der Entwicklung von Agenten die aktuelle Version des MLflow-Python-Clients zu installieren. Informationen zu den
mlflow
Versionsanforderungen finden Sie unter Authentifizierung für abhängige Ressourcen.
Erstellen von Tools mit Unity-Katalogfunktionen
Die folgenden Beispiele zeigen, wie Sie Agenttools mit Unity Catalog-Funktionen erstellen.
Python-Executor-Tool
In diesem Beispiel wird ein Tool zum Ausführen von Python-Code erstellt.
Ein LLM kann dieses Tool verwenden, um Python-Code auszuführen, der von einem Benutzer bereitgestellt oder von der LLM geschrieben wurde.
Führen Sie den folgenden Code in einer Notebook-Zelle aus. Es verwendet die %sql
Notebook-Magie, um eine Unity Catalog-Funktion namens python_exec
zu erstellen.
%sql
CREATE OR REPLACE FUNCTION
main.default.python_exec (
code STRING COMMENT 'Python code to execute. Remember to print the final result to stdout.'
)
RETURNS STRING
LANGUAGE PYTHON
DETERMINISTIC
COMMENT 'Executes Python code in the sandboxed environment and returns its stdout. The runtime is stateless, and you can not read the output of the previous tool executions. No such variables, "rows", or "observations" were defined. Calling another tool inside a Python code is NOT allowed. Use standard Python libraries only.'
AS $$
import sys
from io import StringIO
sys_stdout = sys.stdout
redirected_output = StringIO()
sys.stdout = redirected_output
exec(code)
sys.stdout = sys_stdout
return redirected_output.getvalue()
$$
Tabellenabfragetool
In diesem Beispiel wird ein Tool zum Abfragen von Kundendaten aus einer Unity-Katalogtabelle erstellt.
Es erstellt eine Unity-Katalogfunktion, die aufgerufen wird lookup_customer_info
, dass ein LLM zum Abrufen strukturierter Daten aus einer hypothetischen customer_data
Tabelle verwendet werden kann.
Führen Sie den folgenden Code im SQL-Editor aus.
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer whose info to look up'
)
RETURNS STRING
COMMENT 'Returns metadata about a particular customer given the customer name, including the customer email and ID. The
customer ID can be used for other queries.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;
Zuweisen von Unity-Katalogtools zu Agents
Nachdem Sie die Unity-Katalogtools erstellt haben, weisen Sie ihren Agenten die Tools zu, damit sie verwendet werden können.
In diesem Abschnitt wird beschrieben, wie Sie einen Toolanruf-Agent mithilfe des KI-Playgrounds erstellen.
Exportieren von Toolanruf-Agents aus dem KI-Playground
Verwenden Sie den KI-Playground , um einem LLM Unity-Katalog tools zuzuweisen, den Agent zu testen und dann den Code zu exportieren, der den Toolaufruf-Agent definiert.
Um den KI-Playground zum Exportieren von Agents zu verwenden, muss Ihr Arbeitsbereich die folgenden Anforderungen erfüllen:
- Unity-Katalog aktiviert
- Serverlose Computefunktion aktiviert
- Pay-per-Token Foundation-Modelle oder externe Modelle aktiviert
Wählen Sie im Playground ein Modell mit aktivierter Bezeichnung "Extras " aus.
Wählen Sie "Extras" aus, und klicken Sie auf "Tool hinzufügen".
Wählen Sie im Dropdownmenü eine Unity-Katalogfunktion aus:
Verwenden Sie den Playground, um zu chatten und die aktuelle Kombination aus LLM, Tools und Systemaufforderungen zu testen. Probieren Sie Variationen aus, um ein Gefühl für die Funktionsweise des aktuellen Setups zu erhalten.
Exportieren Sie den Agent nach dem Hinzufügen von Tools in Python-Notizbücher:
Klicken Sie auf "Exportieren ", um Python-Notizbücher zu generieren, die den Agent definieren und bereitstellen.
Nach dem Exportieren des Agentcodes werden drei Dateien in Ihrem Arbeitsbereich gespeichert:
agent
Notebook: Enthält Python-Code, der Ihren Agent mithilfe von LangChain definiert.driver
Notebook: Enthält Python-Code zum Protokollieren, Ablaufverfolgen, Registrieren und Bereitstellen des KI-Agents mithilfe von Mosaik AI Agent Framework.config.yml
: Enthält Konfigurationsinformationen zu Ihrem Agent, einschließlich Tooldefinitionen.
Öffnen Sie das
agent
Notizbuch, um den LangChain-Code anzuzeigen, der Ihren Agent definiert. Verwenden Sie dieses Notizbuch, um den Agent programmgesteuert zu testen und zu durchlaufen, z. B. zum Definieren weiterer Tools.Wenn Sie mit den Ausgaben des Agents zufrieden sind, können Sie das
driver
Notizbuch ausführen, um Ihren Agent für einen Model Serving-Endpunkt zu protokollieren und bereitzustellen.
Erstellen von Tools mit Agentcode
Sie können auch Tools im Code des Agents und nicht in Unity-Katalogfunktionen erstellen.
Dieser Ansatz ist hilfreich beim Aufrufen von REST-APIs, beim Verwenden von beliebigem Code oder Bibliotheken oder beim Ausführen von Tools mit geringer Latenz. Das Definieren von Tools im Code des Agents fehlt jedoch an der Auffindbarkeit und Governance, die von Unity Catalog-Funktionen bereitgestellt wird.
Ein Beispiel für ein Vektorsuchabruftool, das im Agentcode definiert ist, finden Sie unter Erstellen eines Vektorsuch-Retriever-Tools.