Eine Agent Engine zum Erstellen leistungsstarker und sicherer KI-Agenten auf Basis von Starknet. Verfügbar als NPM-Paket und einsatzbereites Backend.
Schnellstart
Voraussetzungen
Starknet-Wallet (empfohlen: Argent X )
API-Schlüssel des KI-Anbieters (Anthropic/OpenAI/Google Gemini/Ollama)
Node.js und pnpm installiert
Installation
git clone https://github.com/kasarlabs/snak.git
cd snak
pnpm install
Konfiguration
Erstellen Sie eine .env Datei, indem Sie .env.example kopieren:
Geben Sie dann die erforderlichen Werte in Ihre .env Datei ein:
# --- Starknet configuration (mandatory) ---
STARKNET_PUBLIC_ADDRESS="YOUR_STARKNET_PUBLIC_ADDRESS"
STARKNET_PRIVATE_KEY="YOUR_STARKNET_PRIVATE_KEY"
STARKNET_RPC_URL="YOUR_STARKNET_RPC_URL"
# --- AI Model API Keys (mandatory) ---
# Add the API keys for the specific AI providers you use in config/models/default.models.json
# The agent will automatically load the correct key based on the provider name.
# Example for OpenAI:
OPENAI_API_KEY="YOUR_OPENAI_API_KEY" # (e.g., sk-...)
# Example for Anthropic:
ANTHROPIC_API_KEY="YOUR_ANTHROPIC_API_KEY" # (e.g., sk-ant-...)
# Example for Google Gemini:
GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
# Example for DeepSeek:
DEEPSEEK_API_KEY="YOUR_DEEPSEEK_API_KEY"
# Note: You do not need an API key if using a local Ollama model.
# --- General Agent Configuration (mandatory) ---
SERVER_API_KEY="YOUR_SERVER_API_KEY" # A secret key for your agent server API
SERVER_PORT="3001"
# --- PostgreSQL Database Configuration (mandatory) ---
POSTGRES_USER="admin"
POSTGRES_PASSWORD="admin"
POSTGRES_ROOT_DB="postgres" # Database used to create/manage the application database
POSTGRES_HOST="localhost"
POSTGRES_PORT="5454"
# --- LangSmith Tracing (Optional) ---
# Set LANGSMITH_TRACING=true to enable tracing
LANGSMITH_TRACING=false
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY="YOUR_LANGSMITH_API_KEY" # (Only needed if LANGSMITH_TRACING=true)
LANGSMITH_PROJECT="Snak" # (Optional project name for LangSmith)
# --- Node Environment ---
NODE_ENV="development" # "development" or "production"
KI-Modelle konfigurieren (optional): Die Datei config/models/default.models.json definiert die Standard-KI-Modelle für verschiedene Aufgaben ( fast , smart , cheap ). Sie können diese Datei anpassen oder neue Modellkonfigurationen erstellen (z. B. my_models.json ) und diese beim Ausführen des Agenten angeben. Die Struktur finden Sie unter config/models/example.models.json .
Der Agent verwendet das provider in der Modellkonfiguration, um zu bestimmen, welcher API-Schlüssel aus der .env Datei geladen werden soll (wenn provider beispielsweise openai ist, wird OPENAI_API_KEY geladen).
Erstellen Sie Ihre Agenten-Konfigurationsdatei (z. B. default.agent.json oder my_agent.json ) im Verzeichnis config/agents/ :
{
"name": "Your Agent name",
"group": "Your Agent group",
"description": "Your AI Agent Description",
"lore": ["Some lore of your AI Agent 1", "Some lore of your AI Agent 1"],
"objectives": [
"first objective that your AI Agent need to follow",
"second objective that your AI Agent need to follow"
],
"knowledge": [
"first knowledge of your AI Agent",
"second knowledge of your AI Agent"
],
"interval": "Your agent interval beetween each transaction of the Agent in ms,",
"chatId": "Your Agent Chat-id for isolating memory",
"maxIterations": "The number of iterations your agent will execute before stopping",
"mode": "The mode of your agent, can be interactive, autonomous or hybrid",
"memory": {
"enabled": "true or false to enable or disable memory",
"shortTermMemorySize": "The number of messages your agent will remember"
},
"plugins": ["Your first plugin", "Your second plugin"],
"mcpServers": {
"nxp_server_example": {
"command": "npx",
"args": ["-y", "@npm_package_example/npx_server_example"],
"env": {
"API_KEY": "YOUR_API_KEY"
}
},
"local_server_example": {
"command": "node",
"args": ["node /path/to/local_server/dist/index.js"]
}
}
}
Sie können Ihre eigene Agentenkonfiguration einfach mit unserem Tool auf SnakeAgent erstellen.
Related MCP server: AgentCraft MCP Server
Verwendung
Eingabeaufforderungsmodus
Führen Sie die Eingabeaufforderung aus:
# start with the default.agent.json
pnpm run start
# start with your custom configuration
pnpm run start --agent="name_of_your_config.json" --models="name_of_your_config.json"
Servermodus
Führen Sie den Server aus:
# start with the default.agent.json
pnpm run start:server
# start with your custom configuration
pnpm run start:server --agent="name_of_your_config.json" --models="name_of_your_config.json"
Verfügbare Modi
|Interaktiver Modus|Autonomer Modus|
|---|---|---|
|Eingabeaufforderungsmodus|✅|✅|
|Servermodus|✅|✅|
Implementieren Sie Snak in Ihrem Projekt
Installieren Sie das Snake-Paket
#using npm
npm install @snakagent
# using pnpm
pnpm add @snakagent
Erstellen Sie Ihre Agenteninstanz
import { SnakAgent } from 'starknet-agent-kit';
const agent = new SnakAgent({
provider: new RpcProvider({ nodeUrl: process.env.STARKNET_RPC_URL }),
accountPrivateKey: process.env.STARKNET_PRIVATE_KEY,
accountPublicKey: process.env.STARKNET_PUBLIC_ADDRESS,
aiModel: process.env.AI_MODEL,
aiProvider: process.env.AI_PROVIDER,
aiProviderApiKey: process.env.AI_PROVIDER_API_KEY,
signature: 'key',
agentMode: 'interactive',
agentconfig: y,
});
const response = await agent.execute("What's my ETH balance?");
Aktionen
Weitere Informationen zu Aktionen finden Sie in diesem Abschnitt der Dokumentation . Eine umfassende Benutzeroberfläche im Kit bietet einen leicht navigierbaren Katalog aller verfügbaren Plugins und ihrer Aktionen und vereinfacht so die Suche und Nutzung.
Um Ihrem Agenten Aktionen hinzuzufügen, können Sie einfach der Schritt-für-Schritt-Anleitung hier folgen.
Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Lizenz
MIT-Lizenz – Einzelheiten finden Sie in der Datei LICENSE.
Ausführliche Dokumentation finden Sie unter docs.kasar.io