Validate AgentConfig definitions for the Agent Framework. Use when creating or modifying agent configurations to ensure correct structure, valid tool references, and proper sub-agent composition...
Validates AgentConfig definitions against the Agent Framework schema.
interface ModelConfig {
provider: 'gemini' | 'openai' | 'anthropic' | 'ollama' | 'custom';
model: string; // e.g., "gpt-4o", "claude-3-haiku", "llama3.2"
baseUrl?: string; // For custom/Ollama endpoints
apiKeyEnvVar?: string; // Environment variable name for API key
}
interface AgentConfig {
id: string; // Required: unique identifier
name: string; // Required: display name
type: 'llm' | 'sequential' | 'parallel' | 'loop' | 'custom'; // Required
modelConfig: ModelConfig; // Required for type='llm'
description: string; // Required: for orchestrator routing
instruction: string; // Required: system prompt
tools: string[]; // MCP tool IDs
subAgents: string[]; // Sub-agent IDs
outputKey?: string; // For state passing
maxIterations?: number; // For LoopAgent (default: 3)
stateSchema?: Record<string, any>; // Optional state definition
createdAt: Date;
isActive: boolean;
}
| Field | Type | Condition |
|---|---|---|
id |
string | Always required, must be unique |
name |
string | Always required |
type |
enum | Must be one of: 'llm', 'sequential', 'parallel', 'loop', 'custom' |
description |
string | Always required (used for routing) |
instruction |
string | Required for 'llm' type |
modelConfig |
object | Required for 'llm' type |
modelConfig with valid provider and modelinstruction (system prompt)outputKey recommended for state passingsubAgentssubAgentsoutputKeysubAgentsmaxIterations (default: 3)tools[] must exist in MCP registrysubAgents[] must be a valid agent ID{
"id": "research-agent",
"name": "Research Agent",
"type": "llm",
"modelConfig": {
"provider": "gemini",
"model": "gemini-2.5-flash"
},
"description": "Gathers and summarizes information from various sources",
"instruction": "You are a research assistant...",
"tools": ["web_search", "document_reader"],
"subAgents": [],
"outputKey": "research_results",
"isActive": true
}
{
"id": "broken-agent",
"name": "Broken",
"type": "llm"
// MISSING: modelConfig, description, instruction
}
# Validate Python Pydantic model
uv run python -c "from agent.state.models import AgentConfig; AgentConfig.model_validate(config)"
# Check TypeScript interface
bun run typecheck