Three Simple Primitives
Everything is built from Minions (instances), MinionTypes (schemas), and Relations (typed links).
Three Simple Primitives
Everything is built from Minions (instances), MinionTypes (schemas), and Relations (typed links).
Progressive Complexity
Start with a single flat agent. Grow into nested structures with memory, skills, and teams — no migration needed.
Schema-Driven Validation
Every field is validated against its type schema. No more guessing what shape your agent data is in.
Framework Agnostic
Works with any storage backend, any runtime, any AI framework. Pure TypeScript & Python, zero opinions about infrastructure.
import { Minions, MemoryStorageAdapter } from 'minions-sdk';
const storage = new MemoryStorageAdapter();const minions = new Minions({ storage });
// 1. Create an agentconst assistant = minions.create('agent', { title: 'Research Assistant', fields: { role: 'researcher', model: 'gpt-4', systemPrompt: 'You are a research assistant.', tools: ['web-search', 'summarize'], },});
// 2. Persist itawait minions.save(assistant.data);
// 3. Load it backconst loaded = await minions.load(assistant.data.id);console.log(loaded?.title); // > "Research Assistant"
// 4. Search across all minionsconst results = await minions.searchMinions('research');from minions import Minions, MemoryStorageAdapter
storage = MemoryStorageAdapter()minions = Minions(storage=storage)
# 1. Create an agentassistant = minions.create("agent", { "title": "Research Assistant", "fields": { "role": "researcher", "model": "gpt-4", "systemPrompt": "You are a research assistant.", "tools": ["web-search", "summarize"], },})
# 2. Persist itawait minions.save(assistant.data)
# 3. Load it backloaded = await minions.load(assistant.data.id)print(loaded.title) # > "Research Assistant"
# 4. Search across all minionsresults = await minions.search_minions("research")