generate_config_from_description
Create Ludus cyber range configurations from natural language descriptions, automatically generating YAML files for deployment with clarification requests for ambiguous inputs.
Instructions
Generate a complete Ludus range configuration from natural language description.
This is an enhanced AI-powered version of build_range_from_description that provides:
Better natural language understanding beyond simple regex matching
Intelligent clarification requests for ambiguous or incomplete inputs
Multiple configuration suggestions and alternatives
Educational explanations of design decisions and best practices
Args: description: Natural language description of the desired cyber range. Can be conversational and doesn't need to follow strict formatting. include_suggestions: Whether to include enhancement suggestions (default: True) include_clarifications: Whether to request clarifications for missing info (default: True)
Returns: Dictionary containing: - status: "success" or "needs_clarification" - configuration: Complete Ludus YAML configuration dict - metadata: VM count, complexity, resource profile info - parsed_requirements: Structured understanding of the prompt - suggestions: Optional enhancements (if include_suggestions=True) - educational_notes: Explanations of design choices - clarifications: Questions to ask if critical info missing - next_steps: What to do with the generated config
Examples: # Simple Active Directory lab result = await generate_config_from_description( "I need an Active Directory lab with a domain controller " "and 3 Windows 10 workstations for practicing lateral movement" )
# Red team training environment
result = await generate_config_from_description(
"Build a red team training lab with:
- AD domain corp.local
- 2 domain controllers for redundancy
- 5 workstations (Windows 10 and 11)
- SQL server with database
- File server with shares
- Exchange server for email
- Kali Linux attacker machine
- Wazuh SIEM for blue team practice"
)
# Web application security lab
result = await generate_config_from_description(
"Create a web app pentest lab with Ubuntu web server, "
"MySQL database, and Kali for attacking. Include Splunk "
"for monitoring the attacks."
)
# Blue team SOC lab
result = await generate_config_from_description(
"I want to build a SOC training lab with multiple endpoints "
"to monitor, a SIEM (preferably Wazuh), and an attacker VM "
"to simulate threats"
)Notes: - If the description is ambiguous or missing critical info, status will be "needs_clarification" with specific questions - You can then provide answers and call this function again with more details added to the description - The generated config is ready to deploy with deploy_range() - Consider reviewing suggestions for additional capabilities
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| include_suggestions | No | ||
| include_clarifications | No |