Cortex Code-Agent-SDK

Das Cortex Code Agent-SDK ermöglicht das Erstellen von agentenbasierten AI-Anwendungen mit Python und TypeScript. Ihre Agenten können Dateien lesen, Befehle ausführen, Codebasen durchsuchen, SQL ausführen und Code bearbeiten, wobei Sie dieselben Tools und die gleiche Agentenschleife verwenden, die Cortex Code unterstützen.

Das SDK umfasst integrierte Tools für Dateioperationen, Shell-Befehle und Code-Bearbeitung, sodass Ihr Agent sofort arbeiten kann, ohne dass Sie die Ausführung von Tools implementieren müssen.

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "What does this codebase do? Give me a one-paragraph summary.",
  options: { cwd: process.cwd() },
})) {
  if (message.type === "assistant") {
    for (const block of message.content) {
      if (block.type === "text") process.stdout.write(block.text);
    }
  }
}

Erste Schritte

Voraussetzungen

Anforderung

Details

Cortex Code-CLI

Installieren mit pip (curl -LsS https://ai.snowflake.com/static/cc-scripts/install.sh | sh)

Snowflake-Verbindung

Konfigurieren über Snowflake-CLI-Verbindungseinstellungen, normalerweise in ~/.snowflake/connections.toml. Vorhandene Setups in ~/.snowflake/config.toml werden ebenfalls unterstützt. Übergeben Sie die connection-Option oder legen Sie default_connection_name in der TOML-Datei fest. Konfigurieren von Verbindungen.

Node.js (TypeScript)

Version 18.0.0 (oder höher)

Python (Python-SDK)

Version 3.10 (oder höher)

1. Installieren der Cortex Code-CLI

Installieren der CLI:

curl -LsS https://ai.snowflake.com/static/cc-scripts/install.sh | sh

2. SDK installieren

Installieren Sie das SDK von npm oder PyPI:

npm install cortex-code-agent-sdk

3. Konfigurieren Sie Ihre Snowflake-Verbindung

Das SDK authentifiziert sich über Ihre Snowflake-CLI-Verbindungseinstellungen. Fügen Sie eine Verbindung zu ~/.snowflake/connections.toml hinzu oder verwenden Sie ein bestehendes Setup in ~/.snowflake/config.toml (siehe Konfigurieren von Verbindungen):

[my-connection]
account = "myorg-myaccount"
user = "myuser"
authenticator = "externalbrowser"

Das SDK verwendet die Standardverbindung von CLI, es sei denn, Sie geben eine Verbindung explizit über die connection-Option an.

Wenn das Cortex Code-CLI nicht auf Ihrem PATH ist, verweisen Sie das SDK durch Festlegen von CORTEX_CODE_CLI_PATH=/path/to/cortex darauf, oder indem Sie cliPath (TypeScript) oder cli_path (Python) in den SDK-Optionen übergeben

4. Führen Sie Ihren ersten Agenten aus

Im folgenden Beispiel wird ein Agent erstellt, der Ihr Projekt untersucht und zusammenfasst, was es tut:

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "What does this codebase do? Give me a one-paragraph summary.",
  options: { cwd: process.cwd() },
})) {
  if (message.type === "assistant") {
    for (const block of message.content) {
      if (block.type === "text") process.stdout.write(block.text);
    }
  }
  if (message.type === "result") {
    console.log("\nDone:", message.subtype);
  }
}

Ein ausführlicheres Tutorial finden Sie unter Schnellstart.

Wichtige Funktionen

Integrierte -Tools

Ihr Agent kann ohne zusätzliche Konfiguration Dateien lesen, Befehle ausführen, SQL ausführen und Codebasen durchsuchen. Die verfügbaren Tools können je nach Umgebung und Laufzeitfunktionen variieren:

Tool

Beschreibung

Lesen

Lesen jeder Datei im Arbeitsverzeichnis

Schreiben

Erstellen von neuen Dateien

Bearbeiten

Vornehmen präziser Änderungen an bestehenden Dateien

Bash

Ausführen von Terminalbefehlen, Skripten und Git-Operationen

Glob

Suchen von Dateien nach Mustern (**/*.ts, src/**/*.py)

Grep

Durchsuchen von Dateiinhalten mit Regex

SQL

Ausführen von SQL-Abfragen auf Snowflake

Sitzungen mit mehreren Runden

Sie können den Kontext über mehrere Datenbörsen hinweg pflegen. Der Agent behält das Wissen über gelesene Dateien, durchgeführte Analysen und den Verlauf der Konversation:

import { createCortexCodeSession } from "cortex-code-agent-sdk";

const session = await createCortexCodeSession({ cwd: process.cwd() });

await session.send("Read the authentication module");
for await (const event of session.stream()) {
  if (event.type === "result") break;
}

// Second turn - "it" refers to the auth module from context
await session.send("Now find all places that call it");
for await (const event of session.stream()) {
  if (event.type === "result") break;
}

await session.close();

Sie können auch eine bestehende Sitzung fortsetzen oder in eine neue Sitzung aufspalten:

// Continue the most recent conversation
const session = await createCortexCodeSession({
  cwd: process.cwd(),
  continue: true,
});

// Or fork a resumed session into a new session ID
const forked = await createCortexCodeSession({
  cwd: process.cwd(),
  resume: "previous-session-id",
  forkSession: true,
});

MCP-Server

Sie können über das Modell-Kontextprotokoll eine Verbindung zu externen Systemen herstellen:

from cortex_code_agent_sdk import CortexCodeAgentOptions

options = CortexCodeAgentOptions(
    mcp_servers={
        "my-tools": {
            "command": "node",
            "args": ["my-mcp-server.js"],
        },
    },
)

Hooks

Sie können an Schlüsselpunkten im Lebenszyklus des Agenten benutzerdefinierten Code ausführen. Zu den verfügbaren Hook-Ereignissen gehören: PreToolUse, PostToolUse, Stop, UserPromptSubmit und mehr. Hooks werden sowohl im Python- als auch dem TypeScript-SDKs unterstützt. Siehe Python-SDK-Referenz oder TypeScript-SDK-Referenz für weitere Details.

Strukturierte Ausgabe

Sie können den Agenten zwingen, eine Antwort zurückzugeben, die mit einem JSON-Schema übereinstimmt

const result = query({
  prompt: "Analyze this codebase",
  options: {
    cwd: ".",
    outputFormat: {
      type: "json_schema",
      schema: {
        type: "object",
        properties: {
          languages: { type: "array", items: { type: "string" } },
          summary: { type: "string" },
        },
        required: ["languages", "summary"],
      },
    },
  },
});

Weitere Informationen dazu finden Sie unter Strukturierte Ausgabe.

Sitzungskontrolle

Sie können das Verhalten des Agenten über Sitzungsoptionen steuern:

Option

Beschreibung

maxTurns / max_turns

Begrenzen Sie die Anzahl der Wendungen, bevor der Agent stoppt

effort

Legen Sie den Thinking-Aufwand für das Modell fest ("minimal", "low", "medium", "high", "max")

abortController / abort_event

Unterbrechen Sie den laufenden Agenten mittendrin. Die Sitzung bleibt für weitere Eingabeaufforderungen bestehen.

env

Übergeben Sie Umgebungsvariablen an den Agentenprozess

additionalDirectories / add_dirs

Fügen Sie zusätzliche Verzeichnisse hinzu, auf die der Agent cwd hinaus zugreifen kann

plugins

Laden Sie Plugin-Verzeichnisse für benutzerdefinierte Erweiterungen

systemPrompt / system_prompt

Ersetzen oder fügen Sie an die Standard-Systemeingabeaufforderung an

settingSources / setting_sources

Steuern Sie, welche Einstellungsdateien geladen werden ("user", "project", "local")

Unterstützte Modelle

Stellen Sie das Modell mit der model-Option ein. Snowflake empfiehlt "auto" für die automatische Auswahl des passenden Modells mit der höchsten Qualität.

Modell

Bezeichner

Auto (empfohlen)

auto

Claude Opus 4.6

claude-opus-4-6

Claude Sonnet 4.6

claude-sonnet-4-6

Claude Opus 4.5

claude-opus-4-5

Claude Sonnet 4.5

claude-sonnet-4-5

Claude Sonnet 4.0

claude-4-sonnet

OpenAI GPT 5.2

openai-gpt-5.2

Regionenübergreifende Inferenz

Die Verfügbarkeit der Modelle variiert je nach Region. Ein Kontoadministrator kann die regionsübergreifende Inferenz aktivieren, um auf Modelle zuzugreifen, die lokal nicht verfügbar sind:

ALTER ACCOUNT SET CORTEX_ENABLED_CROSS_REGION = 'AWS_US';

Weitere Informationen dazu finden Sie unter Regionenübergreifende Inferenz.

Nächste Schritte