fluxloop inputs
Generate and manage test inputs.
Synopsis
fluxloop inputs [command] [options]
Description
The inputs command generates and manages test inputs. Inputs are the messages or data that personas will send to your agent during testing.
Commands
fluxloop inputs generate
Generate test inputs using AI.
Usage:
fluxloop inputs generate [options]
Options:
--persona <name>: Generate inputs for specific persona (required unless --description is provided)--description <desc>: Description of inputs to generate--count <n>: Number of inputs to generate (default: 10)--output <path>: Output file path (default: .fluxloop/inputs.yaml)--model <model>: AI model to use (default: claude-3-sonnet)--variety <level>: Input variety: low, medium, high (default: medium)
Examples:
# Generate inputs for a specific persona
fluxloop inputs generate \
--persona frustrated-customer \
--count 10
# Generate inputs from description
fluxloop inputs generate \
--description "Password reset requests from angry users" \
--count 15
# Generate varied inputs
fluxloop inputs generate \
--persona tech-savvy-user \
--variety high \
--count 20
Interactive Flow:
$ fluxloop inputs generate --persona frustrated-customer --count 10
Generating inputs for persona: frustrated-customer...
✨ Generated 10 inputs:
1. "I can't login! This is ridiculous!"
2. "I've been trying for 30 minutes, nothing works"
3. "Need help NOW! Can't access my account"
4. "This is the worst service I've ever experienced"
5. "I want my money back if this doesn't get fixed"
6. "WHY is this so complicated?!"
7. "I need to speak with someone who can actually help"
8. "Tried everything, still broken"
9. "This is unacceptable! Fix it immediately"
10. "I'm about to switch to your competitor"
✅ Inputs saved to: .fluxloop/inputs.yaml
Next steps:
• Review and edit inputs if needed
• Create a scenario: fluxloop scenarios create
• Or create a bundle: fluxloop bundles create
fluxloop inputs list
List all available inputs.
Usage:
fluxloop inputs list [options]
Options:
--file <path>: Inputs file to list from (default: .fluxloop/inputs.yaml)--persona <name>: Filter by persona--json: Output in JSON format
Examples:
# List all inputs
fluxloop inputs list
# List inputs for specific persona
fluxloop inputs list --persona frustrated-customer
# List from specific file
fluxloop inputs list --file inputs/custom.yaml
fluxloop inputs add
Manually add a test input.
Usage:
fluxloop inputs add [options]
Options:
--text <text>: Input text (required)--persona <name>: Associated persona--tags <tags>: Comma-separated list of tags--file <path>: Inputs file (default: .fluxloop/inputs.yaml)
Examples:
# Add a single input
fluxloop inputs add \
--text "I forgot my password" \
--persona frustrated-customer
# Add input with tags
fluxloop inputs add \
--text "How do I reset my password?" \
--persona tech-savvy-user \
--tags password,auth,reset
fluxloop inputs edit
Edit inputs manually.
Usage:
fluxloop inputs edit [options]
Options:
--file <path>: Inputs file to edit (default: .fluxloop/inputs.yaml)--editor <editor>: Editor to use (default: $EDITOR)
Examples:
# Edit inputs in default editor
fluxloop inputs edit
# Edit with specific editor
fluxloop inputs edit --editor vim
fluxloop inputs validate
Validate inputs file format.
Usage:
fluxloop inputs validate [options]
Options:
--file <path>: Inputs file to validate (default: .fluxloop/inputs.yaml)
Examples:
# Validate inputs file
fluxloop inputs validate
# Validate specific file
fluxloop inputs validate --file inputs/custom.yaml
fluxloop inputs augment
Augment existing inputs with variations.
Usage:
fluxloop inputs augment [options]
Options:
--file <path>: Inputs file to augment (default: .fluxloop/inputs.yaml)--factor <n>: Augmentation factor (default: 2, creates 2x inputs)--variation <type>: Type of variation (paraphrase, typo, tone, length)
Examples:
# Double inputs with paraphrases
fluxloop inputs augment --factor 2
# Add typo variations
fluxloop inputs augment --variation typo
# Create shorter versions
fluxloop inputs augment --variation length
Input File Format
Inputs are defined in YAML format:
# .fluxloop/inputs.yaml
inputs:
- id: input-001
text: "I can't login! This is ridiculous!"
persona: frustrated-customer
tags:
- authentication
- urgent
- negative_sentiment
metadata:
sentiment: negative
urgency: high
complexity: low
- id: input-002
text: "I've been trying for 30 minutes, nothing works"
persona: frustrated-customer
tags:
- authentication
- repeated_attempt
- negative_sentiment
metadata:
sentiment: negative
urgency: high
complexity: low
context:
previous_attempts: 10+
duration: 30min
- id: input-003
text: "Getting error code 500 when trying to reset password"
persona: tech-savvy-user
tags:
- authentication
- technical
- error_report
metadata:
sentiment: neutral
urgency: medium
complexity: medium
technical_details:
error_code: 500
action: password_reset
- id: input-004
text: |
Hello, I'm having some trouble with my account.
Could you please help me reset my password?
Thank you for your assistance.
persona: elderly-customer
tags:
- authentication
- polite
- needs_guidance
metadata:
sentiment: neutral
urgency: low
complexity: low
multiline: true
Input Variations
Paraphrase Variations
Generate semantically similar inputs:
fluxloop inputs augment --variation paraphrase
Original:
- "I can't login"
Variations:
- "Unable to sign in"
- "Login not working"
- "Can't access my account"
Typo Variations
Add realistic typos:
fluxloop inputs augment --variation typo
Original:
- "I forgot my password"
Variations:
- "I fogot my password"
- "I forgot my passwrd"
- "I forgot my passowrd"
Tone Variations
Change communication tone:
fluxloop inputs augment --variation tone
Original (neutral):
- "I need to reset my password"
Variations:
- Polite: "Could you please help me reset my password?"
- Urgent: "NEED PASSWORD RESET NOW!"
- Casual: "Hey, gotta reset my password"
Length Variations
Create shorter/longer versions:
fluxloop inputs augment --variation length
Original:
- "I can't login to my account"
Variations:
- Short: "Can't login"
- Long: "I'm having trouble logging in to my account and need assistance"
AI Generation Options
Variety Levels
Control input diversity:
- low: Similar inputs with minor variations
- medium: Balanced mix of different input types (default)
- high: Maximum variety in phrasing and approach
# Generate highly varied inputs
fluxloop inputs generate \
--persona frustrated-customer \
--variety high
Model Selection
Choose AI model for generation:
claude-3-opus: Most creative and diverseclaude-3-sonnet: Balanced quality and speed (default)claude-3-haiku: Fast and economical
# Use Opus for maximum variety
fluxloop inputs generate \
--persona tech-savvy-user \
--model claude-3-opus \
--count 50
Best Practices
1. Generate Sufficient Volume
Create enough inputs to cover edge cases:
# Generate 50+ inputs per persona
fluxloop inputs generate \
--persona frustrated-customer \
--count 50
2. Include Edge Cases
Manually add edge case inputs:
# Empty input
fluxloop inputs add --text ""
# Very long input
fluxloop inputs add --text "$(cat long-text.txt)"
# Special characters
fluxloop inputs add --text "!@#$%^&*()"
# Multiple languages
fluxloop inputs add --text "Ich kann mich nicht anmelden"
3. Tag Appropriately
Use tags for filtering:
inputs:
- text: "Can't login"
tags:
- authentication
- error
- urgent
- requires_validation
4. Add Metadata
Include useful metadata:
inputs:
- text: "Getting error 500"
metadata:
error_code: 500
expected_response: troubleshooting_steps
should_escalate: false
complexity: medium
5. Test Realistic Scenarios
Include realistic user behaviors:
inputs:
# Incomplete information
- text: "It's broken"
# Multiple issues
- text: "Can't login AND forgot password"
# Spam/abuse
- text: "asdfghjkl"
# Copy-pasted errors
- text: "Error: Uncaught TypeError at line 42"
Multi-turn Inputs
For multi-turn conversations:
# .fluxloop/inputs.yaml
multi_turn_inputs:
- id: conversation-001
persona: frustrated-customer
turns:
- text: "I can't login"
expected_response_type: request_details
- text: "Already tried resetting password"
expected_response_type: offer_alternative
- text: "Nothing works!"
expected_response_type: escalation_or_patience
- id: conversation-002
persona: tech-savvy-user
turns:
- text: "Getting error 500 on login"
expected_response_type: request_technical_details
- text: "Request ID: abc123, timestamp: 2024-01-15 14:30"
expected_response_type: investigation_acknowledgment
- text: "Any updates?"
expected_response_type: status_update
Troubleshooting
Generation Failed
❌ Error: Failed to generate inputs
Possible causes:
• API key expired
• Rate limit exceeded
• Invalid persona reference
Solution:
• Check authentication: fluxloop auth status
• Wait a few minutes and retry
• Verify persona exists: fluxloop personas list
Invalid Input Format
❌ Error: Invalid input file format
File: .fluxloop/inputs.yaml
Line 15: Missing required field 'text'
Solution:
• Check YAML syntax
• Ensure all inputs have 'text' field
• Run: fluxloop inputs validate
Related Commands
fluxloop personas generate: Generate personasfluxloop bundles create: Bundle inputs with personasfluxloop scenarios create: Create scenarios with inputs
See Also
- Synthetic Input Generation: Input generation guide
- Testing Best Practices: Testing strategies