-
Notifications
You must be signed in to change notification settings - Fork 4
Programmatic API
Alessio Rocchi edited this page Jan 27, 2026
·
1 revision
Using aistack programmatically in TypeScript/JavaScript.
npm install @blackms/aistackimport {
spawnAgent,
getMemoryManager,
startMCPServer,
getConfig
} from '@blackms/aistack';
// Spawn agent
const agent = spawnAgent('coder', {
name: 'my-coder'
});
// Use memory
const memory = getMemoryManager();
await memory.store('key', 'content');
const results = await memory.search('query');
// Start MCP server
const server = await startMCPServer(getConfig());import { loadConfig, getConfig } from '@blackms/aistack';
// Load from file
const config = loadConfig('./aistack.config.json');
// Get cached config
const config = getConfig();import {
spawnAgent,
getAgent,
listAgents,
stopAgent
} from '@blackms/aistack';
// Spawn
const agent = spawnAgent('coder', {
name: 'my-coder',
metadata: { project: 'myapp' }
});
// Get by ID
const agent = getAgent('agent-id');
// List all
const agents = listAgents();
// Stop
stopAgent(agent.id);import { getMemoryManager } from '@blackms/aistack';
const memory = getMemoryManager();
// Store
await memory.store('key', 'content', {
namespace: 'myns',
metadata: { tags: ['important'] },
generateEmbedding: true
});
// Search
const results = await memory.search('query', {
namespace: 'myns',
useVector: true,
limit: 10
});
// Get
const entry = memory.get('key', 'myns');
// Delete
await memory.delete('key', 'myns');// Create session
const session = await memory.createSession({
project: 'myproject'
});
// Create task
const task = await memory.createTask(
'coder',
'Implement feature',
session.id
);
// Assign task
await memory.assignTask(task.id, agent.id);
// Complete task
await memory.updateTaskStatus(task.id, 'completed', 'Done');
// End session
await memory.endSession(session.id);import {
TaskQueue,
MessageBus,
HierarchicalCoordinator
} from '@blackms/aistack';
// Task Queue
const queue = new TaskQueue();
queue.enqueue(task, 8); // priority
// Message Bus
const bus = getMessageBus();
bus.send(fromId, toId, 'message:type', payload);
bus.subscribe(agentId, handler);
// Coordinator
const coordinator = new HierarchicalCoordinator({
maxWorkers: 5
});
await coordinator.initialize();
await coordinator.submitTask(task, 8);import {
createProvider,
AnthropicProvider,
OpenAIProvider
} from '@blackms/aistack';
// Create from config
const provider = createProvider(config);
// Or directly
const anthropic = new AnthropicProvider(apiKey, model);
const openai = new OpenAIProvider(apiKey, model);
// Chat
const response = await provider.chat([
{ role: 'user', content: 'Hello' }
], {
temperature: 0.7,
maxTokens: 1000
});Related:
Getting Started
Core Concepts
Agent Guides
- Overview
- Coder
- Researcher
- Tester
- Reviewer
- Adversarial
- Architect
- Coordinator
- Analyst
- DevOps
- Documentation
- Security Auditor
MCP Tools
- Overview
- Agent Tools
- Memory Tools
- Task Tools
- Session Tools
- System Tools
- GitHub Tools
- Review Loop Tools
- Identity Tools
Recipes
- Index
- Code Review
- Doc Sync
- Multi-Agent
- Adversarial Testing
- Full-Stack Feature
- Memory Patterns
- GitHub Integration
Advanced
- Plugin Development
- Custom Agent Types
- Workflow Engine
- Vector Search Setup
- Web Dashboard
- Programmatic API
- Resource Monitoring
Reference