CREATE-AGENT

Erstellt ein neues Cortex Agent-Objekt mit den angegebenen Attributen und Informationen.

Siehe auch:

DESCRIBE-AGENT, DROP-AGENT, SHOW-AGENTS

Syntax

CREATE [ OR REPLACE ] AGENT [ IF NOT EXISTS ] <name>
  [ COMMENT = '<comment>' ]
  [ PROFILE = '<profile_object>' ]
  FROM SPECIFICATION
  $$
  <specification_object>
  $$;
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für das Buch angibt. Der Wert muss für das Schema, in dem das Buch erstellt wird, eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

COMMENT = comment

Beschreibung des Agenten.

PROFILE = profile_object

Gibt den OBJECT-Wert an, der Informationen zum Agentenprofil enthält, wie z. B. Anzeigename, Avatar und Farbe. Serialisieren Sie das profile_object wie folgt in eine Zeichenfolge:

'{"display_name": "<display_name>", "avatar": "<avatar>", "color": "<color>"}'
Copy

Die folgende Tabelle beschreibt die Schlüssel-Wert-Paare in diesem Objekt:

Schlüssel

Typ

Beschreibung

display_name

String

Anzeigename für den Agenten.

avatar

String

Name oder Bezeichner der Datei des Avatarbilds.

color

String

Farbthema für den Agenten (z. B. „blau“, „ grün“, „rot“)

FROM SPECIFICATION $$ specification_object $$

Gibt den VARCHAR-Wert an, der die Einstellungen für einen Agenten wie ein YAML-Objekt enthält.

Das YAML-Objekt sollte die folgende Struktur haben:

models:
  orchestration: <model_name>

orchestration:
  budget:
      seconds: <number_of_seconds>
      tokens: <number_of_tokens>

instructions:
  response: '<response_instructions>'
  orchestration: '<orchestration_instructions>'
  system: '<system_instructions>'
  sample_questions:
      - question: '<sample_question>'
        answer: '<sample_answer>'
      ...

tools:
  - tool_spec:
      type: '<tool_type>'
      name: '<tool_name>'
      description: '<tool_description>'
      input_schema:
          type: 'object'
          properties:
            <property_name>:
              type: '<property_type>'
              description: '<property_description>'
          required: <required_property_names>
  ...

tool_resources:
  <tool_name>:
    <resource_key>: '<resource_value>'
    ...
  ...
Copy

Die folgende Tabelle beschreibt die Schlüssel-Wert-Paare in diesem Objekt:

Schlüssel

Typ

Beschreibung

models

ModelConfig

Eine optionale Modellkonfiguration für den Agenten. Enthält das Orchestrierungsmodell (z. B. claude-4-sonnet). Wenn keines angegeben ist, wird ein Modell automatisch ausgewählt. Derzeit nur für den Schritt der Orchestrierung verfügbar.

orchestration

OrchestrationConfig

Eine optionale Konfiguration der Orchestrierung, einschließlich Budgeteinschränkungen (z. B. Sekunden, Token).

instructions

AgentInstructions

Optionale Anweisungen für das Verhalten des Agenten, einschließlich Antwort, Orchestrierung, System und Beispielfragen.

tools

Array von Tool

Eine optionale Liste von Tools, die dem Agenten zur Verfügung stehen. Jedes Tool enthält eine tool_spec mit Typ, Name, Beschreibung und Eingabeschema. Tools können über eine entsprechende Konfiguration in tool_resources verfügen.

tool_resources

Zuordnung von ToolResource

Eine optionale Konfiguration für jedes Tool, auf das im Tools-Array verwiesen wird. Die Schlüssel müssen mit dem Namen des jeweiligen Tools übereinstimmen.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE-AGENT

Schema

Erforderlich, um den Cortex Agent zu erstellen.

USAGE

Cortex Search Service

Erforderlich, um die Cortex Search Services in der Cortex Agents-Anfrage auszuführen.

USAGE

Datenbank, Schema, Tabelle

Erforderlich für den Zugriff auf die Objekte, auf die im semantischen Modell der Cortex Agents verwiesen wird.

Nutzungshinweise

  • Die Klauseln OR REPLACE und IF NOT EXISTS schließen sich gegenseitig aus. Sie können nicht beide in der gleichen Anweisung verwendet werden.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

CREATE OR REPLACE AGENT my_agent1
  COMMENT = 'agent level comment'
  PROFILE = '{"display_name": "My Business Assistant", "avatar":  "business-icon.png", "color": "blue"}'
  FROM SPECIFICATION
  $$
  models:
    orchestration: claude-4-sonnet

  orchestration:
    budget:
      seconds: 30
      tokens: 16000

  instructions:
    response: "You will respond in a friendly but concise manner"
    orchestration: "For any revenue question use Analyst; for policy use Search"
    system: "You are a friendly agent that helps with business questions"
    sample_questions:
      - question: "What was our revenue last quarter?"
        answer: "I'll analyze the revenue data using our financial database."

  tools:
    - tool_spec:
        type: "cortex_analyst_text_to_sql"
        name: "Analyst1"
        description: "Converts natural language to SQL queries for financial analysis"
    - tool_spec:
        type: "cortex_search"
        name: "Search1"
        description: "Searches company policy and documentation"

  tool_resources:
    Analyst1:
      semantic_view: "db.schema.semantic_view"
    Search1:
      name: "db.schema.service_name"
      max_results: "5"
      filter:
        "@eq":
          region: "North America"
      title_column: "<title_name>"
      id_column: "<column_name>"
  $$;
Copy