-
Notifications
You must be signed in to change notification settings - Fork 4
Configuration Schema
Alessio Rocchi edited this page Jan 29, 2026
·
2 revisions
Complete configuration schema reference.
interface AgentStackConfig {
version: string;
providers: ProvidersConfig;
memory: MemoryConfig;
agents: AgentsConfig;
github: GitHubConfig;
plugins: PluginsConfig;
mcp: MCPConfig;
auth: AuthConfig;
hooks: HooksConfig;
driftDetection?: DriftDetectionConfig;
consensus?: ConsensusConfig;
resourceExhaustion?: ResourceExhaustionConfig;
}
interface ProvidersConfig {
default: string;
anthropic?: {
apiKey: string;
model?: string;
maxTokens?: number;
temperature?: number;
};
openai?: {
apiKey: string;
model?: string;
maxTokens?: number;
temperature?: number;
};
ollama?: {
baseUrl: string;
model?: string;
maxTokens?: number;
temperature?: number;
};
}
interface MemoryConfig {
path: string;
defaultNamespace: string;
vectorSearch?: {
enabled: boolean;
provider: 'openai' | 'ollama';
model?: string;
dimensions?: number;
};
options?: {
verbose?: boolean;
fileMustExist?: boolean;
timeout?: number;
};
}
interface AgentsConfig {
maxConcurrent: number;
defaultTimeout: number;
retryAttempts?: number;
retryDelay?: number;
}
interface GitHubConfig {
enabled: boolean;
useGhCli?: boolean;
token?: string;
}
interface PluginsConfig {
enabled: boolean;
directory: string;
autoload?: boolean;
}
interface MCPConfig {
transport: 'stdio' | 'http';
port?: number;
host?: string;
verbose?: boolean;
timeout?: number;
}
interface AuthConfig {
enabled: boolean;
jwtSecret?: string;
accessTokenExpiry?: string;
refreshTokenExpiry?: string;
}
interface HooksConfig {
sessionStart: boolean;
sessionEnd: boolean;
preTask: boolean;
postTask: boolean;
}
interface DriftDetectionConfig {
enabled: boolean;
threshold?: number; // Default: 0.95
warningThreshold?: number; // Default: undefined (no warning)
ancestorDepth?: number; // Default: 3
behavior?: 'warn' | 'prevent'; // Default: 'warn'
asyncEmbedding?: boolean; // Default: true
}
interface ConsensusConfig {
enabled: boolean;
requireForRiskLevels?: TaskRiskLevel[]; // Default: ['high', 'medium']
reviewerStrategy?: 'adversarial' | 'different-model' | 'human';
timeout?: number; // Default: 300000 (5 minutes)
maxDepth?: number; // Default: 5
autoReject?: boolean; // Default: false
highRiskAgentTypes?: string[];
mediumRiskAgentTypes?: string[];
highRiskPatterns?: string[];
mediumRiskPatterns?: string[];
}
interface ResourceExhaustionConfig {
enabled: boolean;
warningThresholdPercent?: number; // Default: 0.8
checkIntervalMs?: number; // Default: 60000
pauseOnIntervention?: boolean; // Default: true
autoTerminate?: boolean; // Default: false
thresholds?: ResourceThresholds;
}
interface ResourceThresholds {
maxFilesAccessed?: number; // Default: 100
maxApiCalls?: number; // Default: 50
maxSubtasksSpawned?: number; // Default: 20
maxTokensConsumed?: number; // Default: 100000
maxTimeWithoutDeliverableMs?: number; // Default: 300000
}
type TaskRiskLevel = 'low' | 'medium' | 'high';{
"version": "1.0.0",
"providers": {
"default": "anthropic",
"anthropic": {
"apiKey": "${ANTHROPIC_API_KEY}",
"model": "claude-sonnet-4-20250514"
}
},
"memory": {
"path": "./data/aistack.db",
"defaultNamespace": "default",
"vectorSearch": {
"enabled": true,
"provider": "openai"
}
},
"agents": {
"maxConcurrent": 10,
"defaultTimeout": 300
},
"github": {
"enabled": true,
"useGhCli": true
},
"plugins": {
"enabled": true,
"directory": "./plugins"
},
"mcp": {
"transport": "stdio"
},
"auth": {
"enabled": true,
"jwtSecret": "${JWT_SECRET}"
},
"hooks": {
"sessionStart": true,
"sessionEnd": true,
"preTask": true,
"postTask": true
},
"driftDetection": {
"enabled": true,
"threshold": 0.95,
"warningThreshold": 0.85,
"ancestorDepth": 3,
"behavior": "warn",
"asyncEmbedding": true
},
"consensus": {
"enabled": true,
"requireForRiskLevels": ["high", "medium"],
"reviewerStrategy": "adversarial",
"timeout": 300000,
"maxDepth": 5,
"autoReject": false,
"highRiskAgentTypes": ["coder", "devops", "security-auditor"],
"mediumRiskAgentTypes": ["architect", "coordinator", "analyst"],
"highRiskPatterns": ["delete", "remove", "drop", "deploy", "production"],
"mediumRiskPatterns": ["modify", "update", "change", "configure"]
},
"resourceExhaustion": {
"enabled": true,
"warningThresholdPercent": 0.8,
"checkIntervalMs": 60000,
"pauseOnIntervention": true,
"autoTerminate": false,
"thresholds": {
"maxFilesAccessed": 100,
"maxApiCalls": 50,
"maxSubtasksSpawned": 20,
"maxTokensConsumed": 100000,
"maxTimeWithoutDeliverableMs": 300000
}
}
}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