Referenz: Cortex Code-Agent-SDK – TypeScript¶
Unter diesem Thema finden Sie die vollständige API-Referenz für das Cortex Code Agent-SDK für TypeScript, einschließlich aller Funktionen, Typen und Schnittstellen.
Installation¶
Erfordert Node.js 18 oder höher. Das Paket ist ausschließlich für ESM. Das SDK erwartet, dass die Cortex Code-CLI separat installiert wird. Wenn es nicht auf Ihrem PATH liegt, legen Sie CORTEX_CODE_CLI_PATH=/path/to/cortex fest oder übergeben Sie cliPath in den Sitzungsoptionen.
Funktionen¶
Abfrage()¶
Die Primärfunktion für die Interaktion mit Cortex Code. Erstellt einen asynchronen Generator, der Nachrichten bei Eintreffen streamt.
Parameter
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine einzelne Benutzer-Eingabeaufforderung oder ein asynchrones iterierendes Objekt von SDK-Benutzernachrichten für Streaming-Eingaben. |
|
|
Optionales Konfigurationsobjekt (siehe Optionen) |
Rückgabewerte
Ein Query-Objekt, das AsyncGenerator<CortexCodeEvent> mit zusätzlichen Kontrollmethoden erweitert.
Beispiel
createCortexCodeSession()¶
Erstellt eine dauerhafte Sitzung für Konversationen mit mehreren Runden.
Beispiel
Abfrageobjekt¶
Rückgabewert von query(). Erweitert AsyncGenerator<CortexCodeEvent>.
Methode |
Beschreibung |
|---|---|
|
Senden von SIGINT für den zugrunde liegenden Prozess |
|
Ändern des Berechtigungsmodus für spätere Ausführung in der aktiven Abfrage |
|
Ändern des Modells für nachfolgende Runden |
|
Rückgabe von Initialisierungs-Handshake-Metadaten der CLI |
|
Rückgabe von Slash-Command-Metadaten aus der Initialisierungsantwort, wenn von der CLI angekündigt. |
|
Rückgabe von Modellmetadaten aus der Initialisierungsantwort, wenn dies von der CLI angekündigt wird |
|
Rückgabe von benutzerdefinierten Agenten-Metadaten aus der Initialisierungsantwort, wenn dies von der CLI angekündigt wird |
|
Rückgabe von Kontometadaten aus der Initialisierungsantwort, wenn dies von der CLI angekündigt wird |
|
Streamen von zusätzlichen SDK-Benutzernachrichten in die aktive Abfrage |
|
Abbrechen einer laufenden Hintergrundaufgabe durch ID |
|
Schließen der Sitzung und Beenden des Prozesses |
CortexCodeSession-Schnittstelle¶
Rückgabewert von createCortexCodeSession(). Unterstützt Multi-Turn-Konversationen und implementiert``AsyncDisposable`` zur Verwendung mit await using (Node.js 24+).
Eigenschaft/Methode |
Beschreibung |
|---|---|
|
PID des zugrunde liegendenCLI-Prozesses |
|
Senden von Klartext- oder einer strukturierten SDK-Benutzermeldung |
|
Streamen von Ereignissen vom Agenten |
|
Rückgabe von Initialisierungs-Handshake-Metadaten der CLI |
|
Senden von Unterbrechungssignal |
|
Ändern des Berechtigungsmodus für spätere Runden in der Sitzung |
|
Ändern des Modells mitten in der Sitzung |
|
Abbrechen einer laufenden Hintergrundaufgabe durch ID |
|
Beenden der Sitzung und Abbrechen des Prozesses |
|
Ruft |
Optionen¶
Konfiguration, die an query() oder createCortexCodeSession() übergeben wird.
Option |
Typ |
Standard |
Beschreibung |
|---|---|---|---|
|
|
Aktuelles Arbeitsverzeichnis des Prozesses |
Arbeitsverzeichnis für die Sitzung. Wenn weggelassen, erbt dieSDK das aktuelle Arbeitsverzeichnis des Prozesses. |
|
|
CLI-Standard |
Zu verwendendes Modell. Verwenden Sie |
|
|
CLI-Standard |
Snowflake-Verbindungsname von Snowflake CLI-Verbindungseinstellungen, normalerweise |
|
|
|
Profilname (wird aus |
|
|
|
Sitzungs-ID, um eine frühere Konversation fortzusetzen |
|
|
|
Fortsetzen der letzten Konversation Setzt die letzte Sitzung fort, ohne dass eine Sitzungs-ID erforderlich ist. |
|
|
|
Integrieren Sie eine fortgesetzte Sitzung in eine neue Sitzungs-ID, anstatt sie an Ort und Stelle fortzuführen. Mi t``resume`` verwenden. |
|
|
|
Explizite Sitzungs-ID für die Konversation. Wenn weggelassen, generiert die CLI automatisch eine. |
|
|
|
|
|
|
|
Sicherheitsflag, erforderlich bei Verwendung von |
|
|
|
Tools zur automatischen Genehmigung ohne Eingabeaufforderung |
|
|
|
Tools, um immer abzulehnen |
|
|
Kundenspezifischer Berechtigungs-Handler, der vor jeder Ausführung des Tools aufgerufen wird. Siehe canUseTool-Callback. |
|
|
|
|
MCP-Name des Tools, der für Berechtigungsaufforderungen verwendet wird. Wenn |
|
|
|
Maximale Anzahl von Agent-Runden, bevor der Agent angehalten wird. Wenn erreicht ist, gibt die Sitzung ein |
|
|
|
Denkaufwand-Ebene für das Modell. Eine der folgenden: |
|
|
|
Zusätzliche Arbeitsverzeichnisse, die der Sitzung zur Verfügung gestellt werden sollen |
|
|
|
Zu ladende Plugin-Verzeichnisse. Akzeptiert Pfade als Zeichenfolgen oder |
|
|
|
Umgebungsvariablen wurden in die erzeugte Prozessumgebung zusammengeführt. Setzen Sie einen Schlüssel auf``undefined``, um eine vererbte Variable zu entfernen. |
|
|
|
Senden Sie ein Unterbrechungssignal, indem Sie |
|
|
|
Kundenspezifische System-Eingabeaufforderung. Übergeben Sie eine Zeichenfolge, um den Standard vollständig zu ersetzen, oder ein SystemPromptPreset, um ihn zu erweitern. |
|
|
|
Text, der an die Standard-Systemeingabeaufforderung angehängt wurde. Verwenden Sie dies, um Anweisungen hinzuzufügen, ohne die integrierte Eingabeaufforderung zu ersetzen. |
|
|
|
Hook-Callbacks zum Abfangen der Ausführung von Tools und anderer Agentenereignisse. Siehe Hooks. |
|
|
|
Einstellen der zu ladenden Quellen Array von |
|
|
|
Schließt Streaming-Ereignisse auf Token-Ebene ein |
|
|
|
Externe MCP-Serverkonfigurationen. Schlüssel sind Servernamen, Werte sind Serverkonfigurationen (z. B. |
|
|
|
Deaktiviert MCP-Server |
|
|
|
Strukturierte Ausgabe – validiert die endgültige Antwort gegen ein JSON-Schema |
|
|
|
Pfad zum kundenspezifischenCLI-Binärwert Beim Weglassen überprüft das SDK zuerst |
|
|
|
Zusätzliche CLI-Argumente als Schlüssel-Wert-Paare |
canUseTool-Callback¶
Kundenspezifischer Berechtigungs-Handler, der vor jeder Ausführung des Tools aufgerufen wird. Zurückgeben eines Zulassungs- oder Ablehnungsergebnisses, um zu steuern, ob der Tool-Aufruf fortgesetzt wird.
Bei vielen normalen Tool-Berechtigungsprüfungen enthält die Callback-Eingabe Felder wie { action, resource }. Für diese Prüfungen werden das Zulassen/Ablehnen-Ergebnis und die optionale Ablehnungsmeldung verwendet. updatedInput wird für SDK-Routing-Pseudo-Tools wie AskUserQuestion und``ExitPlanMode`` verwendet, die Tool-spezifische Felder enthalten.
Beispiel
SystemPromptPreset¶
Anstatt die Systemeingabeaufforderung vollständig zu ersetzen, verwenden Sie ein voreingestelltes Objekt, um die integrierte Eingabeaufforderung zu erweitern.
Beispiel
Hooks¶
Mit Hooks können Sie Agentenereignisse wie die Ausführung von Tools abfangen. Jedes Hook-Ereignis wird einem Array von Matching-Ereignissen zugeordnet, und jedes Matching-Ereignis enthält ein optionales Muster und einen oder mehrere Callbacks.
Beispiel
Nachrichtentyp¶
Ereignisse, die von query() und session.stream() zurückgegeben werden:
SDKAssistantMessage¶
Wird ausgegeben, wenn der Agent eine Antwort erzeugt. Enthält einen oder mehrere Inhaltsblöcke.
SDKResultMessage¶
Wird ausgegeben, wenn der Agent einen Turn beendet hat. Überprüfen Sie subtype auf Erfolg oder Fehler.
SDKUserMessage¶
Wird als Echo zurückgegeben, wenn eine Benutzermeldung verarbeitet wird.
SDKSystemMessage¶
Systemereignisse, wie z. B. die Initialisierung der Sitzung.
Inhaltsblöcke¶
Typ |
Felder |
|---|---|
|
|
|
|
|
|
|
|
Streaming-Ereignisse¶
Typ |
Beschreibung |
|---|---|
|
Partielles Text-/Denkstreaming (erfordert |
|
|
|
|
SDKPartialAssistantMessage wird für Teiltext- und Denkblöcke ausgegeben. Vollständige Tool-Aufrufe kommen weiterhin als AssistantMessage-Blöcke an, und Tool-Ergebnisse kommen weiterhin als UserMessage-Blöcke an.
Strukturierte Ausgabe¶
Zwingt den Agenten, eine Antwort zurückzugeben, die mit einem JSON-Schema übereinstimmt:
Weitere Informationen dazu finden Sie unter Strukturierte Ausgabe.
Fehlerbehandlung¶
Rechtliche Hinweise¶
Wenn Ihre Cortex Code-Konfiguration ein Modell verwendet, das im Rahmen der Modell- und Service-Pass-Through-Bedingungen bereitgestellt wurde, unterliegt Ihre Nutzung dieses Modells zusätzlich den Bedingungen für dieses Modell auf dieser Seite.
Die Datenklassifizierung der Eingaben und Ausgaben ist in der folgenden Tabelle aufgeführt.
Klassifizierung von Eingabedaten |
Klassifizierung von Ausgabedaten |
Benennung |
|---|---|---|
Usage Data |
Kundendaten |
Abgedeckte AI-Features [1] |
Weitere Informationen dazu finden Sie unter KI und ML in Snowflake.