Skip to main content

Development Lifecycle

1

Configure Environment

Set up environment variables
Add API keys and configuration for sandbox
2

Configure Persona

Define your agent’s personality
Edit persona in sandbox mode
3

Local Development

Build and test your skills locally
Use sandbox mode for testing
4

Testing

Test conversational flows and individual tools
5

Push to Server

Upload your skill version to the server
6

Sandbox Testing

Test in sandbox environment before production
Choose sandbox mode when prompted
7

Deploy to Production

Make your skill available to all users

Local Development Workflow

Starting Development

Start by syncing with the server to get any remote changes:
lua test - Test tools one at a time with specific inputs lua chat - Interactive conversation testing in sandbox or production

The Development Loop

Edit files in src/tools/:

Testing Features

Tool Testing

Test individual tools with specific inputs

Chat Testing

Test conversational flows and tool selection

Sandbox Mode

Test with local changes before deploying

Production Validation

Verify deployed changes work correctly

Testing Workflow

Interactive Tool Testing

Test individual tools with specific inputs:
1

Select Tool

Choose from list of available tools
2

Enter Inputs

Provide values based on tool’s schema
3

View Results

See execution results or errors
4

Iterate

Fix issues and test again

Conversational Testing

Test how the AI uses your tools in natural conversation:
Select Sandbox mode to test with your local changes. Test Scenarios:
Test the ideal user journey
  • “Show me products”
  • “Add laptop to cart”
  • “Checkout”
Test unusual but valid inputs
  • Empty results
  • Maximum values
  • Optional parameters
Test invalid inputs
  • Missing required fields
  • Invalid data types
  • Out of range values
Test complex workflows
  • Create → Add → Update → Delete
  • Search → Select → Checkout

Version Management

Semantic Versioning

Use semantic versioning: MAJOR.MINOR.PATCH
The lua.skill.yaml file is auto-managed by the CLI. The version number is the only field you should manually edit when preparing a new release. All other fields are managed automatically.
When to increment:
Bug fixes and minor improvements
  • Fixed error handling
  • Updated descriptions
  • Performance improvements

Pushing Versions

Each push creates a new version that can be deployed independently.

Advanced Agent Features

Beyond skills and tools, lua-cli supports webhooks, jobs, and message processing:

LuaAgent Configuration

Webhooks

Receive events from external services:
Test webhooks:

Jobs

Schedule automated tasks:

PreProcessors

Filter messages before they reach your agent:

PostProcessors

Format responses after agent generation:
Learn more:

Deployment Workflow

Sandbox Testing

Before deploying to production, test in sandbox:

Deploying to Production

When ready, deploy to all users:
1

Select Version

Choose which version to deploy from list
2

Confirm

Confirm the deployment (shows warning)
3

Deploy

Version is deployed to production
4

Verify

Test with real users or in production chat
Deployment is immediate! If lua deploy reports success, that exact code serves the very next invocation of the agent (allow up to roughly a minute for edge caches to catch up). All users will get the new version right away.
lua deploy activates one primitive at a time. Once your agent has an agent version already promoted, lua deploy performs a scoped promote: it creates and promotes a new agent version identical to the current one except for the primitive you just deployed, so your agent-version history stays consistent. For releases that touch several primitives at once, prefer lua version create + lua version promote — it snapshots and atomically activates everything together, with no mixed-version window. Sandbox testing (lua chat, lua test) never affects what’s live.

Best Practices

Development

Build one tool at a time
  • Create basic version
  • Test thoroughly
  • Add complexity gradually

Version Control

Testing

Always test locally before pushing:
Test pushed versions in sandbox before deploying:
Keep a list of test scenarios:
  • Happy path flows
  • Edge cases to verify
  • Known issues to watch for

Deployment

Pre-Deployment Checklist:
  • ✅ Synced with server: lua sync
  • ✅ Tested all tools with lua test
  • ✅ Tested conversational flows with lua chat
  • ✅ Updated version number
  • ✅ Updated tool descriptions
  • ✅ Checked error messages
  • ✅ Tested in sandbox mode
  • ✅ Verified environment variables

Common Workflows

Quick Fix Workflow

Feature Development Workflow

Multi-Developer Workflow

Troubleshooting

Problem: Cannot start chat sessionSolutions:
  1. Run lua auth configure to set up API key
  2. Ensure lua.skill.yaml exists (run lua init)
  3. Deploy skills with lua push before using sandbox
  4. Check network connection
Problem: Local changes not reflectedSolutions:
  1. Ensure you selected “Sandbox” mode
  2. Check compilation succeeded
  3. Verify skills pushed to sandbox successfully
  4. Try running lua push first
Problem: Deployed but still seeing old behaviorSolutions:
  1. Verify correct version was deployed
  2. Check lua.skill.yaml version number
  3. Test in production mode with lua chat
  4. Check if deploy actually succeeded
Problem: Version already pushed to serverSolution: Increment version number:
Problem: Server has different persona/name than local codeSolutions:
  1. Run lua sync to see the diff and choose action
  2. Use lua sync --accept to auto-update from server
  3. Use lua sync --push to push local changes to server
Note: By default, lua compile does NOT check for drift. Use lua compile --sync to enable drift detection.This happens when someone updated the agent from the admin dashboard.

Next Steps

AI Agent Building Guide

Complete workflow for AI IDEs (Cursor, Windsurf, Copilot)

CLI Reference

Complete command documentation

Build Your First Skill

Follow a complete tutorial

Non-Interactive Mode

Automate commands for CI/CD and scripting

Version Command

Atomic agent versions, promote, rollback, and version status