SDK for building AI agents with Claude Code's capabilities to programmatically interact with Claude and build autonomous agents that can understand codebases, edit files, and execute workflows.
Define custom subagents with specific tools, prompts, and models.
interface AgentDefinition {
description: string;
tools?: string[];
disallowedTools?: string[];
prompt: string;
model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
criticalSystemReminder_EXPERIMENTAL?: string;
}agents: {
'reviewer': {
description: 'Reviews code for bugs and style',
tools: ['Read', 'Grep', 'Glob'], // Read-only
prompt: 'You are a code reviewer. Analyze for bugs, style, performance, security.',
model: 'opus'
},
'tester': {
description: 'Writes comprehensive tests',
tools: ['Read', 'Write', 'Grep', 'Glob'],
disallowedTools: ['Bash'],
prompt: 'You are a test engineer. Write comprehensive tests covering edge cases.',
model: 'sonnet'
},
'refactorer': {
description: 'Refactors code',
tools: ['Read', 'Edit', 'Grep', 'Glob'],
prompt: 'You are a refactoring specialist. Extract functions, reduce complexity, improve naming.',
model: 'sonnet',
criticalSystemReminder_EXPERIMENTAL: 'NEVER break functionality'
},
'documenter': {
description: 'Generates documentation',
tools: ['Read', 'Write', 'Grep', 'Glob'],
disallowedTools: ['Bash', 'Edit'],
prompt: 'You are a documentation specialist. Create clear API docs, examples, architecture overviews.',
model: 'haiku'
}
}Agents are automatically invoked via the Task tool based on task requirements:
const result = query({
prompt: `
1. Review authentication module
2. Write tests for any bugs
3. Document the auth flow
`,
options: {
agents: {
'reviewer': { /* ... */ },
'tester': { /* ... */ },
'documenter': { /* ... */ }
}
}
});
// Claude automatically:
// 1. Uses 'reviewer' to review auth
// 2. Uses 'tester' to write tests
// 3. Uses 'documenter' to create docsagents: {
// Explicit whitelist
'analyzer': {
description: 'Analyzes code without changes',
tools: ['Read', 'Grep', 'Glob'],
prompt: '...'
},
// Inherit all, blacklist some
'builder': {
description: 'Builds and tests',
disallowedTools: ['Edit', 'Write'],
prompt: '...'
},
// Inherit all tools
'full-access': {
description: 'Full access',
prompt: '...'
}
}Parent: ['Read', 'Write', 'Edit', 'Bash', 'Grep']
Agent A (tools: ['Read', 'Grep']):
→ Gets: Read, Grep
Agent B (disallowedTools: ['Bash']):
→ Gets: Read, Write, Edit, Grep
Agent C (no tools/disallowedTools):
→ Gets: Read, Write, Edit, Bash, Grepagents: {
'quick-formatter': {
description: 'Fast formatting',
model: 'haiku', // Fast & cheap
prompt: '...'
},
'architect': {
description: 'System architecture design',
model: 'opus', // Most capable
prompt: '...'
},
'general-coder': {
description: 'General coding',
model: 'sonnet', // Balanced
prompt: '...'
},
'adaptive': {
description: 'Uses parent model',
model: 'inherit',
prompt: '...'
}
}const result = query({
prompt: 'Improve payment processing module',
options: {
model: 'claude-sonnet-4-5-20250929',
agents: {
'security-auditor': {
description: 'Security audits for vulnerabilities',
tools: ['Read', 'Grep', 'Glob'],
prompt: `Audit for:
- SQL injection
- XSS vulnerabilities
- Auth/authz issues
- Data validation problems
Provide findings with severity and remediation.`,
model: 'opus'
},
'performance-optimizer': {
description: 'Optimizes performance',
tools: ['Read', 'Edit', 'Grep', 'Glob', 'Bash'],
prompt: `Improve:
- Algorithm efficiency
- Memory usage
- DB query performance
- Caching strategies
Measure before/after.`,
model: 'sonnet'
},
'integration-tester': {
description: 'Creates integration tests',
tools: ['Read', 'Write', 'Bash', 'Grep', 'Glob'],
disallowedTools: ['Edit'],
prompt: `Create tests for:
- Complete workflows
- Integration points
- Realistic test data
Run automated suites.`,
model: 'sonnet',
criticalSystemReminder_EXPERIMENTAL: 'Test environment only'
}
}
}
});
for await (const msg of result) {
if (msg.type === 'system' && msg.subtype === 'init') {
if (msg.agents) {
console.log('Available agents:', msg.agents);
}
}
}Install with Tessl CLI
npx tessl i tessl/npm-anthropic-ai--claude-agent-sdk