Un motor de agentes para crear agentes de IA potentes y seguros, impulsado por Starknet. Disponible como paquete NPM y como backend listo para usar.
Inicio rápido
Prerrequisitos
Cartera Starknet (recomendada: Argent X )
Clave API del proveedor de IA (Anthropic/OpenAI/Google Gemini/Ollama)
Node.js y pnpm instalados
Instalación
git clone https://github.com/kasarlabs/snak.git
cd snak
pnpm install
Configuración
Cree un archivo .env copiando .env.example :
Luego, completa los valores necesarios en tu archivo .env :
# --- 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"
Configurar modelos de IA (opcional): El archivo config/models/default.models.json define los modelos de IA predeterminados que se utilizan para diferentes tareas ( fast , smart , cheap ). Puede personalizar este archivo o crear nuevas configuraciones de modelo (p. ej., my_models.json ) y especificarlas al ejecutar el agente. Consulte config/models/example.models.json para ver la estructura.
El agente utiliza el campo provider en la configuración del modelo para determinar qué clave API cargar desde el archivo .env (por ejemplo, si provider es openai , carga OPENAI_API_KEY ).
Cree su archivo de configuración del agente (por ejemplo, default.agent.json o my_agent.json ) en el directorio 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"]
}
}
}
Puede crear simplemente su propia configuración de agente utilizando nuestra herramienta en snakagent
Related MCP server: AgentCraft MCP Server
Uso
Modo de aviso
Ejecute el mensaje:
# 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"
Modo servidor
Ejecutar el servidor:
# 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"
Modos disponibles
|Modo interactivo|Modo Autónomo|
|---|---|---|
|Modo de aviso|✅|✅|
|Modo servidor|✅|✅|
Implementa Snak en tu proyecto
Instalar el paquete snak
#using npm
npm install @snakagent
# using pnpm
pnpm add @snakagent
Crea tu instancia de agente
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?");
Comportamiento
Para obtener más información sobre las acciones, puede consultar esta sección de documentación . La interfaz completa del Kit ofrece un catálogo fácil de navegar con todos los complementos disponibles y sus acciones, lo que simplifica su descubrimiento y uso.
Para agregar acciones a su agente, puede seguir fácilmente la guía paso a paso aquí
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Licencia MIT: consulte el archivo LICENCIA para obtener más detalles.
Para obtener documentación detallada, visite docs.kasar.io