Cortex Agents¶
Übersicht¶
Cortex Agents orchestrieren sowohl über strukturierte als auch über unstrukturierte Datenquellen hinweg, um Erkenntnisse zu liefern. Sie planen Aufgaben, verwenden Tools zur Ausführung dieser Aufgaben und generieren Antworten. Agenten verwenden Cortex Analyst (strukturiert) und Cortex Search (unstrukturiert) als Tools, zusammen mit LLMs, um Daten zu analysieren. Cortex Search extrahiert Erkenntnisse aus unstrukturierten Quellen, während Cortex Analyst SQL zur Verarbeitung strukturierter Daten generiert. Darüber hinaus können Sie gespeicherte Prozeduren und benutzerdefinierte Funktionen (User-Defined Functions, UDFs) verwenden, um kundenspezifisch Tools zu implementieren. Eine umfassende Unterstützung für die Identifizierung und Ausführung von Tools ermöglicht die Bereitstellung von anspruchsvollen Anwendungen, die auf Unternehmensdaten basieren.
Der Arbeitsablauf umfasst vier Hauptkomponenten:
Planung: Anwendungen wechseln oft zwischen der Verarbeitung von Daten aus strukturierten und unstrukturierten Quellen. Nehmen wir zum Beispiel eine dialogorientierte App, mit der Sie Abfragen von Benutzern beantworten können. Ein Geschäftsanwender kann zunächst nach den Top-Vertriebshändlern nach Umsatz (strukturiert) fragen und dann zu einer Anfrage nach einem Vertrag (unstrukturiert) wechseln. Cortex-Agenten können eine Anfrage analysieren, um einen Plan zu orchestrieren und eine Lösung oder Antwort zu finden.
Erkunden Sie die Optionen: Wenn der Benutzer eine mehrdeutige Frage stellt (z.B. „Erzählen Sie mir etwas über Acme Supplies“), zieht der Agent verschiedene Möglichkeiten in Betracht – Produkte, Standort oder Verkaufspersonal – um die Eindeutigkeit und Genauigkeit zu verbessern.
Aufteilung in Teilaufgaben: Cortex-Agenten können eine Aufgabe oder Anfrage (z. B. „Was sind die Unterschiede zwischen den Vertragsbedingungen von Acme Supplies und Acme Stationery?“) in mehrere Teile aufteilen, um eine präzisere Antwort zu erhalten.
Toolübergreifendes Routing: Der Agent wählt das richtige Tool – Cortex Analyst oder Cortex Search – um einen geregelten Zugriff und die Einhaltung der Unternehmensrichtlinien zu gewährleisten.
Verwendung des Tools: Wenn ein Plan vorhanden ist, ruft der Agent die Daten effizient ab. Cortex Search extrahiert Erkenntnisse aus unstrukturierten Quellen, während Cortex Analyst SQL erstellt, um strukturierte Daten zu verarbeiten. Eine umfassende Unterstützung für die Tool-Identifizierung und Tool-Ausführung ermöglicht die Bereitstellung anspruchsvoller Anwendungen auf der Grundlage von Unternehmensdaten.
Reflexion: Nach jeder Verwendung des Tools wertet der Agent die Ergebnisse aus, um die nächsten Schritte zu bestimmen – um eine Klärung zu bitten, zu iterieren oder eine endgültige Antwort zu erstellen. Diese Orchestrierung ermöglicht es, komplexe Abfragen zu verarbeiten und gleichzeitig die Genauigkeit und die Einhaltung von Vorschriften innerhalb des sicheren Bereichs von Snowflake zu gewährleisten.
Überwachen und optimieren Sie: Nach der Bereitstellung können die Kunden Metriken verfolgen, die Leistung analysieren und die Verhaltensweise für kontinuierliche Verbesserungen verfeinern. Auf der Client-Seite können Entwickler TruLens verwenden, um die Interaktion mit dem Agenten zu überwachen. Durch die kontinuierliche Überwachung und Verfeinerung der Governance-Kontrollen können Unternehmen die Agenten von AI zuverlässig skalieren und gleichzeitig die Sicherheit und Compliance gewährleisten.
Tutorials, die Ihnen den Einstieg erleichtern, finden Sie unter Tutorials für Cortex Agents.
Bemerkung
Obwohl Snowflake sich bemüht, qualitativ hochwertige Antworten zu liefern, kann die Richtigkeit der LLM-Antworten oder der angegebenen Zitate nicht garantiert werden. Sie sollten alle Antworten von den Agenten-API überprüfen, bevor Sie sie Ihren Benutzern zur Verfügung stellen.
Anforderungen an die Zugriffssteuerung¶
Um eine Anfrage an Cortex Agent über die API zur Agentenausführung zu stellen, können Sie eine Rolle verwenden, der die Rolle SNOWFLAKE.CORTEX_USER oder SNOWFLAKE.CORTEX_AGENT_USER zugewiesen ist. CORTEX_USER bietet Zugriff auf alle abgedeckten AI-Features einschließlich Cortex Agents, während CORTEX_AGENT_USER Zugriff auf das Agents-Feature ermöglicht.
Um Cortext Agents mit einem semantischen Modell zu verwenden, benötigen Sie außerdem die folgenden Berechtigungen:
Berechtigung |
Objekt |
|---|---|
CREATE-AGENT |
Das Schema, in dem Sie den Cortext Agent erstellen möchten. |
USAGE |
Die in der Cortex Agents-Anfrage erwähnten Cortex Search Services. |
USAGE |
Die Datenbank, das Schema und die Tabellen, auf die im semantischen Cortex Agents-Modell verwiesen wird. |
Anfragen an die Cortex Agents-API müssen ein Autorisierungstoken enthalten. Einzelheiten zur Authentifizierung bei API finden Sie unter Authentifizierung von Snowflake REST APIs mit Snowflake. Beachten Sie, dass das Beispiel in diesem Thema ein Sitzungstoken verwendet, um sich bei einem Snowflake-Konto zu authentifizieren.
Beschränken des Zugriffs auf bestimmte Rollen
Die Rolle CORTEX_USER ist standardmäßig der Rolle PUBLIC zugewiesen. Die Rolle PUBLIC wird automatisch allen Benutzern und Rollen zugewiesen. Wenn Sie nicht möchten, dass alle Benutzer diese Berechtigung haben, können Sie der Rolle PUBLIC die Berechtigung entziehen und den Zugriff nur bestimmten Rollen gewähren. Weitere Informationen dazu finden Sie unter Erforderliche Berechtigungen.
Um selektiven Zugriff auf Cortex Agents zu ermöglichen, sodass nur eine Teilmenge von Benutzern Zugriff auf das Feature hat, verwenden Sie die Rolle CORTEX_AGENTS_USER.
Beschränken des Zugriffs mit der Cortex Agents-Benutzerrolle
Um bestimmten Benutzern selektiven Zugriff auf Cortex Agents zu gewähren, verwenden Sie die Datenbankrolle SNOWFLAKE.CORTEX_AGENT_USER. Diese Rolle beinhaltet die Berechtigungen, die zum Aufrufen der Cortex Agent-API erforderlich sind.
Wichtig
Wenn Ihre Benutzerrollen über die Rolle CORTEX_USER verfügen, müssen Sie den Zugriff auf die Rolle CORTEX_USER widerrufen. Um Ihren Benutzerrollen die Datenbankrolle CORTEX_USER zu entziehen, führen Sie den folgenden Befehl mit der Rolle ACCOUNTADMIN aus:
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE agent;
Um Zugriff auf Cortex Agents bereitzustellen, verwenden Sie die Rolle ACCOUNTADMIN für Folgendes:
Erteilen Sie die Datenbankrolle SNOWFLAKE.CORTEX_AGENT_USER einer kundenspezifischen Rolle.
Weisen Sie diese kundenspezifische Rolle Benutzern zu.
Bemerkung
Sie können Benutzern Datenbankrollen nicht direkt zuweisen. Weitere Informationen dazu finden Sie unter GRANT DATABASE ROLE.
Beispiel:
Erstellt die kundenspezifische Rolle
cortex_agent_user_role.Gewährt ihr die Datenbankrolle CORTEX_AGENT_USER.
Weist diese Rolle
example_userzu.
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_agent_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_AGENT_USER TO ROLE cortex_agent_user_role;
GRANT ROLE cortex_agent_user_role TO USER example_user;
Sie können Zugriff auf Cortex Agents auch über bestehende Rollen gewähren. Wenn Sie z. B. eine agent-Rolle haben, die von Agenten in Ihrer Organisation verwendet wird, können Sie den Zugriff mit einer einzigen GRANT-Anweisung erteilen:
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_AGENT_USER TO ROLE agent;
Authentifizierung¶
Snowflake REST-APIs unterstützen die Authentifizierung über programmatische Zugriffstoken (PATs), die Authentifizierung über ein Schlüsselpaar mit JSON-Web Token (JWTs) und OAuth. Weitere Details dazu finden Sie unter Authentifizierung von Snowflake REST APIs mit Snowflake.
Wichtig
Cortex Agents verwendet Modelle, die möglicherweise nicht in allen Regionen verfügbar sind. Um auf diese Modelle zugreifen zu können, müssen Sie die regionenübergreifende Ableitung aktivieren, sofern dies möglich ist. Weitere Informationen dazu finden Sie unter Regionale Verfügbarkeit.
Hinweise zu Kosten¶
In der Vorschau gibt es für Cortex Agents keine weiteren Kostenaspekte, abgesehen von den Kosten, die mit der zugrunde liegenden Funktionalität von Cortex Search und Cortex Analyst verbunden sind. Für die Dienste Cortex Search und Cortex Analyst fallen Kosten gemäß den unter Snowflake Service Consumption Table aufgeführten Details an. Auch die Verwendung von kundenspezifischen Tools kann Warehouse-Kosten verursachen.
Modelle¶
Mit Cortex Agents können die folgenden Modelle verwendet werden. Wenn das Modell in der lokalen Region nicht verfügbar ist, müssen Sie die regionenübergreifende Ableitung verwenden.
claude-4-sonnetclaude-3-7-sonnetclaude-3-5-sonnetopenai-gpt-5
Cortex Agent-Konzepte¶
Cortex Agents verwenden Cortex Analyst, Cortex Search und kundenspezifische Tools, um Aufgaben zu planen und Antworten zu generieren. Sie können die Orchestrierung anhand von Anweisungen beeinflussen. Sie können auch Attribute angeben, um ein Tool auf der Grundlage von Geschäftslogik dynamisch auszuwählen.
Während einer Interaktion verwenden Agenten einen Thread, um den Kontext beizubehalten. Ein Thread ermöglicht das einfache Abrufen des gesamten Konversationskontexts, um ihn in der Anwendungslogik zu verwenden.
Sie können Feedback von Endbenutzern sammeln, während Sie den Agenten kontinuierlich iterieren und verfeinern. Ein expliziter Feedbackmechanismus (positiv/negative Bewertung), gekoppelt mit subjektivem Feedback (Text), ermöglicht es Ihnen, Benutzereingaben während des gesamten Lebenszyklus des Agenten zu erfassen.
Agentenobjekt¶
Die Konfiguration des Agenten umfasst alle Metadaten, Orchestrierungseinstellungen und Tooldetails, die im Agentenobjekt gespeichert sind. Sie können das Agentenobjekt verwenden, um mit dem Agenten zu interagieren.
Threads¶
Threads halten den Kontext Ihrer Interaktionen mit dem Agenten fest, sodass Sie den Kontext nicht in der Clientanwendung pflegen müssen. Um Threads zu verwenden, erstellen Sie ein Threadobjekt und verweisen in den Interaktionen mit Agenten auf die Thread-ID.
Orchestrierung¶
Cortex Agents nutzen eine LLM-basierte Orchestrierung zur Planung von Aufgaben und zur Generierung von Antworten. Sie können die Orchestrierung mit den folgenden Einstellungen steuern:
Modelle¶
Informationen über die Modelle, die Sie mit Cortex Agents für die Orchestrierung verwenden können, finden Sie unter Modelle.
Anleitung¶
Mithilfe von Antwortanweisungen können Sie die Antworten des Agenten entsprechend einer bestimmten Marke oder Tonalität konfigurieren.
Beispielfragen¶
Sie können diese Fragen verwenden, um die Konversation in Ihrer Clientanwendung zu unterstützen. Dies sind häufige Fragen, die Benutzern den Einstieg in die Interaktion erleichtern können.
Tools¶
Cortex Agents können die Orchestrierung sowohl über strukturierte als auch über unstrukturierte Daten vornehmen. Außerdem ermöglichen kundenspezifische Tools den Agenten die Interaktion mit anderen Backend-Systemen oder die Implementierung kundenspezifischer Logik.
Semantische Cortex Analyst-Ansicht¶
Sie können Cortex Analyst verwenden, um SQL-Abfragen aus natürlicher Sprache zu erstellen. Um Cortex Analyst zu verwenden, müssen Sie ein semantisches Modell erstellen. Weitere Informationen dazu finden Sie unter Ein semantisches Modell erstellen.
Cortex Search Service¶
Verwenden Sie Cortex Search, um Ihre Daten zu durchsuchen. Weitere Informationen dazu finden Sie unter CREATE CORTEX SEARCH SERVICE.
Bemerkung
Die DEFAULT_ROLE des abfragenden Benutzers muss über die Berechtigung USAGE für den Cortex Search Service sowie für die Datenbank und das Schema, in dem er sich befindet, verfügen.
Kundenspezifische Tools¶
Sie können gespeicherte Prozeduren und benutzerdefinierte Funktionen (UDFs) verwenden, um kundenspezifische Geschäftslogik als Tool zu implementieren. Weitere Informationen dazu finden Sie unter Übersicht zu gespeicherten Prozeduren und Überblick über benutzerdefinierte Funktionen.
Logisches Denken und Überlegen¶
Der Agent gibt während der gesamten Interaktion Ereignisse aus, die Einblicke in seinen „Denkprozess“ liefern. Diese Schritte umfassen das anfängliche Aufteilen der Aufgaben, das Sequenzieren in Unteraufgaben und die Auswahl der Tools für die Unteraufgabe. Darüber hinaus legt der Agent auch seine Überlegungen zu den Toolergebnissen offen und legt dar, wie diese die weitere Orchestrierung beeinflussen.
Überwachen und iterieren¶
Sie können das Feedback der Endbenutzer als Bewertung (positiv/negativ) zusammen mit etwaigen subjektiven Anmerkungen (als Text) sammeln. Diese können verwendet werden, um den Agenten über den Lebenszyklus hinweg zu verfeinern und zu verbessern.
Mit Agenten interagieren¶
Cortex Agents unterstützt zwei verschiedene Methoden der Interaktion mit Agenten über die REST API:
Konfigurieren eines Agentenobjekts zur Interaktion mit dem Agenten: Mit dieser Methode konfigurieren Sie zunächst ein Agentenobjekt, das für die gesamte Interaktion wiederverwendet werden kann. Die Konfiguration eines Agentenobjekts vereinfacht den Clientcode und ermöglicht CI/CD für unternehmensfähige Anwendungen.
Interaktion ohne Agentenobjekt: Bei dieser Methode müssen Sie die Agentenkonfiguration als Teil jeder Interaktionsanforderung übergeben. Die Interaktion ohne Agentenobjekt ermöglicht es Ihnen, Anwendungsfälle schnell auszuprobieren und mit verschiedenen Szenarien zu experimentieren.
Weitere Informationen zu diesen Methoden finden Sie unter Agents konfigurieren und mit ihnen interagieren.