# .gbdialog Dialogs

The `.gbdialog` package contains BASIC scripts that define conversation flows, tool integrations, and bot behavior.

## What is .gbdialog?

`.gbdialog` files are written in a specialized BASIC dialect that controls:
- Conversation flow and logic
- Tool calls and integrations
- User input processing
- Context management
- Response generation

## Basic Structure

A typical `.gbdialog` script contains:

```basic
REM This is a comment
TALK "Hello! How can I help you today?"

HEAR user_input

IF user_input = "help" THEN
    TALK "I can help you with various tasks..."
ELSE
    LLM user_input
END IF
```

## Key Components

### 1. Control Flow
- `IF/THEN/ELSE/END IF` for conditional logic
- `FOR EACH/IN/NEXT` for loops
- `EXIT FOR` to break loops

### 2. User Interaction
- `HEAR variable` to get user input
- `TALK message` to send responses
- `WAIT seconds` to pause execution

### 3. Data Manipulation
- `SET variable = value` for assignment
- `GET url` to fetch external data
- `FIND table, filter` to query databases

### 4. AI Integration
- `LLM prompt` for AI-generated responses
- `ADD_TOOL tool_name` to enable functionality
- `SET_KB collection` to use knowledge bases

## Script Execution

Dialog scripts run in a sandboxed environment with:
- Access to session context and variables
- Ability to call external tools and APIs
- Integration with knowledge bases
- LLM generation capabilities

## Error Handling

The system provides built-in error handling:
- Syntax errors are caught during compilation
- Runtime errors log details but don't crash the bot
- Timeouts prevent infinite loops
- Resource limits prevent abuse
