Back to skills
SKILL.md
Agent Creator
ASecurityCreate composable AI agent systems in NestJS projects following the "tools all the way down" architecture. Use this skill when users want to: (1) Create new AI agents with orchestrator/planner/executor/evaluator components, (2) Build agentic systems that can call other agents as tools, (3) Implement DAG-based planning with parallel execution, (4) Add database-backed state persistence for agent runs, (5) Create custom evaluators for quality assurance. Triggers on "create agent", "build agent",...
- 3 stars
- 0 votes
- 0 copies
- 0 views
- Added September 7, 2026
Works with
Security analysis
100/100Pro scans all 5 files and shows the line behind each finding
npx -y skills add levalencia/agent-god-mode --skill agent-creator --agent claude-codeAre you the author of Agent Creator?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/levalencia-agent-creator)---
name: agent-creator
description: |
Create composable AI agent systems in NestJS projects following the "tools all the way down" architecture. Use this skill when users want to: (1) Create new AI agents with orchestrator/planner/executor/evaluator components, (2) Build agentic systems that can call other agents as tools, (3) Implement DAG-based planning with parallel execution, (4) Add database-backed state persistence for agent runs, (5) Create custom evaluators for quality assurance. Triggers on "create agent", "build agent", "agent system", "agentic", "orchestrator", "planner/executor pattern", or NestJS AI agent requests.
context: fork
agent: Explore
---
# Agent Creator
Create composable AI agent systems in NestJS with uniform tool interfaces, DAG-based planning, and database-backed state.
## Core Concept
Every agent system exposes the same `Tool` interface as a simple tool. Callers don't know if they're calling a web search API or a complex research system. This enables arbitrary composition and nesting.
## Workflow
### 1. Gather Requirements
Ask the user:
1. **Purpose**: What should this agent accomplish?
2. **Inputs/Outputs**: What data goes in and comes out?
3. **Tools**: What capabilities does it need? (existing tools or other agents)
4. **Success Criteria**: How do we know the output is good?
5. **Evaluator Types**: What quality dimensions matter? (see [evaluators.md](references/evaluators.md))
### 2. Generate Agent Structure
Create this NestJS module structure:
```
src/agents/{agent-name}/
├── {agent-name}.module.ts # NestJS module
├── {agent-name}.tool.ts # Tool interface (public API)
├── services/
│ ├── orchestrator.service.ts # Workflow coordination
│ ├── planner.service.ts # Plan generation
│ ├── executor.service.ts # Tool execution
│ └── state.service.ts # State management
├── evaluators/
│ ├── evaluator.registry.ts # Registry service
│ └── {type}.evaluator.ts # Per evaluator type
├── tools/
│ └── tool.registry.ts # Available tools
├── entities/ # TypeORM entities
├── dto/ # Input/output DTOs
├── prompts/ # LLM prompts
├── config/
│ └── {agent-name}.config.ts
└── interfaces/
```
### 3. Implement Components
For each component, follow the patterns in:
- [architecture.md](references/architecture.md) - Core interfaces, component roles, loops
- [nestjs-patterns.md](references/nestjs-patterns.md) - NestJS service templates
- [prompts.md](references/prompts.md) - System prompts for planner/executor/evaluators
- [evaluators.md](references/evaluators.md) - Built-in evaluator types
### 4. Wire Up Module
```typescript
@Module({
imports: [TypeOrmModule.forFeature([...entities])],
providers: [
OrchestratorService,
PlannerService,
ExecutorService,
StateService,
EvaluatorRegistry,
...evaluators,
ToolRegistry,
AgentTool,
],
exports: [AgentTool], // Only export the Tool interface
})
export class AgentNameModule {}
```
## Key Architecture Rules
1. **Uniform Interface**: Agent's public API is always `Tool.execute(input, context)`
2. **Planning Loop**: plan → evaluate plan → revise → repeat (max iterations)
3. **Execution Loop**: execute step → evaluate → retry with feedback → repeat
4. **DAG Plans**: Steps declare dependencies; independent steps run in parallel
5. **State Persistence**: All context, messages, plans, executions stored in PostgreSQL
6. **Composition**: Agents can use other agents as tools transparently
## Quick Reference
### Tool Interface
```typescript
interface Tool {
id: string;
name: string;
description: string;
inputSchema: JSONSchema;
outputSchema: JSONSchema;
execute(input: any, context?: ExecutionContext): Promise<ToolResult>;
}
```
### Plan Structure
```typescript
interface Plan {
id: string;
goal: string;
success_criteria: string[];
steps: PlanStep[];
}
interface PlanStep {
id: string;
description: string;
tool_id: string;
input: any;
success_criteria: string[];
evaluator_type: string;
depends_on: string[]; // DAG dependencies
}
```
### Default Config
```typescript
export const agentConfig = {
maxDepth: 3,
maxPlanIterations: 3,
maxStepRetries: 3,
timeoutMs: 300000,
llm: { model: 'claude-sonnet-4-20250514', maxTokens: 4096 },
};
```
## Composition Example
After creating `research-agent` and `document-generator`:
```typescript
// document-generator/tools/tool.registry.ts
@Injectable()
export class ToolRegistry {
constructor(private readonly researchTool: ResearchTool) {
this.register(this.researchTool);
}
}
```
The document generator's planner can now create steps using `research-system-v1` as a tool_id.
Files in this skill
- SKILL.md
- references/architecture.md
- references/evaluators.md
- references/nestjs-patterns.md
- references/prompts.md
Attribution
Comments
Loading comments…