Glossary
Quick lookup for General Bots terms. If you’re lost, start here.
A
A2A Protocol - Agent-to-Agent Protocol. Enables bots to communicate and delegate tasks to each other in multi-agent systems. Messages include request, response, broadcast, and delegate types.
ADD BOT - BASIC keyword to add a bot to the current session with triggers, tools, or schedules.
Argon2 - Password hashing algorithm used for secure credential storage. Makes brute-force attacks computationally infeasible.
Auto-Bootstrap - The automatic first-run process that installs and configures all dependencies: PostgreSQL, cache, storage, and LLM servers.
B
BASIC - The scripting language for General Bots dialogs. Inspired by the 1964 language, simplified for conversational AI. Powers all .bas scripts with keywords like TALK, HEAR, and LLM.
BM25 - Best Match 25. Sparse retrieval algorithm for keyword-based search. Used in hybrid RAG alongside dense (semantic) search.
BOOK - BASIC keyword to schedule calendar appointments.
Bot Memory - Persistent storage scoped to a single bot, shared across all users. Access with SET BOT MEMORY and GET BOT MEMORY.
Bot Package - A folder ending in .gbai containing everything to run a bot: scripts, documents, and configuration.
BotSession - The active conversation between user and bot. Tracks state, history, and context. Persists to database, cached for speed.
Bootstrap - Initial setup process that installs all dependencies automatically on first launch.
BROADCAST TO BOTS - BASIC keyword to send a message to all bots in the current session.
C
Cache - In-memory storage component for sessions, temporary data, and semantic caching. Provides sub-millisecond access times.
Collection - A folder of documents in .gbkb/ that becomes searchable knowledge. Each subfolder is a separate collection.
Chunking - The process of splitting documents into smaller pieces for embedding and retrieval. Default chunk size is optimized for context windows.
config.csv - The configuration file for each bot. Simple key-value pairs in CSV format. Lives in the .gbot/ folder.
Context - Information available to the LLM during a conversation. Includes history, knowledge base results, and user-provided context via SET CONTEXT.
Context Compaction - Automatic summarization of older conversation history to fit within token limits while preserving important information.
CREATE DRAFT - BASIC keyword to compose and save an email draft to the user’s mailbox.
CREATE TASK - BASIC keyword to create a task with assignee and due date.
D
DELEGATE TO BOT - BASIC keyword to send a task to another bot and optionally wait for a response.
Dense Search - Semantic search using vector embeddings. Finds content by meaning rather than exact keywords.
Dialog - A .bas script defining conversation flow. Contains BASIC code with keywords like TALK and HEAR.
Drive - Built-in S3-compatible object storage. Stores documents, templates, and uploads. Auto-installed during bootstrap.
E
Embedding - Text converted to numerical vectors for similarity search. Similar meanings produce similar vectors.
Embedding Model - Neural network that generates embeddings. Default is BGE, replaceable with any GGUF-compatible model.
Episodic Memory - Summaries of past conversations stored for long-term context. Automatically generated when conversations end.
Event Handler - BASIC code triggered by events. Use ON keyword with triggers like "login", "email", or cron expressions.
F
FIND - BASIC keyword to search database tables with filter criteria. Returns matching records.
FOR EACH - BASIC keyword for iterating over collections and query results.
G
.gbai - “General Bot AI” package folder. Contains the entire bot. Example: support.gbai/ becomes the bot at /support.
.gbdialog - Subfolder containing BASIC scripts. Must include start.bas as the entry point. Tools go in tools/ subdirectory.
.gbdrive - File storage configuration subfolder. Maps to Drive buckets for document management.
.gbkb - “Knowledge Base” subfolder. Each subdirectory becomes a searchable collection with automatic indexing.
.gbot - Configuration subfolder containing config.csv with bot settings.
.gbtheme - Optional UI customization subfolder for CSS, images, and HTML templates.
General Bots - Open-source enterprise conversational AI platform. Combines LLMs with structured dialogs, knowledge bases, and multi-channel support.
GET - BASIC keyword to retrieve data from APIs, files, or session variables.
GET BOT MEMORY - BASIC keyword to retrieve persistent bot-level data.
GET USER MEMORY - BASIC keyword to retrieve cross-session user data accessible from any bot.
GraphQL - Query language for APIs. Supported via the GRAPHQL keyword for complex data retrieval.
H
HEAR - BASIC keyword to wait for and capture user input. name = HEAR stores the response in a variable.
Hot Reload - Automatic reloading of BASIC scripts when files change. No restart needed.
Hybrid Search - RAG approach combining dense (semantic) and sparse (keyword) retrieval using Reciprocal Rank Fusion.
HTMX - Frontend library used for dynamic UI updates without full page reloads.
I
INSERT - BASIC keyword to add records to database tables.
Intent - What the user wants to accomplish. Detected from natural language via LLM classification.
K
Keyword - A BASIC command like TALK, HEAR, or LLM. About 50+ available. Written in uppercase by convention.
Knowledge Base (KB) - Documents searchable by the bot. Organized in folders under .gbkb/. Activate with USE KB "foldername".
L
LiveKit - WebRTC platform used for video meetings in General Bots.
LLM - Large Language Model. The AI that powers natural conversation. Supports OpenAI, Anthropic, Groq, and local models via llama.cpp.
llama.cpp - C++ library for running LLM inference locally. Used for self-hosted model deployment.
Local-First - Architecture principle where everything runs locally by default. No cloud dependencies required.
M
MCP - Model Context Protocol. Standard format for defining tools that LLMs can call. Supported alongside OpenAI function format.
Memory - Data persistence system with four scopes: User Memory (cross-bot), Bot Memory (per-bot), Session Memory (temporary), and Episodic Memory (conversation summaries).
Model Routing - Dynamic selection of LLM models based on task requirements. Use USE MODEL "fast", "quality", "code", or "auto".
Multi-Agent - Architecture where multiple specialized bots collaborate on complex tasks.
Multi-Channel - Same bot works across WhatsApp, Telegram, Teams, Web, and other channels without modification.
N
No Forms - General Bots philosophy since 2017: people should converse, not fill forms. Conversations replace traditional UI forms.
O
ON - BASIC keyword to define event handlers for triggers, schedules, or webhooks.
OIDC - OpenID Connect. Authentication protocol handled by the Directory service (Zitadel).
P
Package Manager - Built-in system that installs bot packages. Drop a .gbai folder and it’s automatically loaded.
PARAM - Declares tool parameters. PARAM name, email means the tool needs these inputs. LLM collects them automatically.
PostgreSQL - The database for General Bots. Stores users, sessions, messages, and bot configuration. Auto-installed and auto-configured.
POST - BASIC keyword to make HTTP POST requests to external APIs.
Pragmatismo - Brazilian software company that created and maintains General Bots.
Q
Qdrant - Vector database for semantic search at scale. Optional component for large knowledge bases.
R
RAG - Retrieval-Augmented Generation. Pattern where relevant documents are retrieved and provided to the LLM as context.
Reranking - Optional LLM-based scoring of search results for improved relevance. Adds latency but improves quality.
Rhai - Rust scripting engine that powers the BASIC interpreter. Sandboxed and safe.
RRF - Reciprocal Rank Fusion. Algorithm for combining rankings from multiple search methods in hybrid RAG.
RUN PYTHON / JAVASCRIPT / BASH - BASIC keywords to execute code in sandboxed environments.
S
SAVE - BASIC keyword to write data to CSV files or database tables.
Script - A .bas file with BASIC code. start.bas is the entry point; other scripts are tools or utilities.
Semantic Cache - Caching system that matches similar (not just identical) queries to reuse LLM responses.
Semantic Search - Finding content by meaning rather than exact keywords. Powered by embeddings and vector similarity.
SEND MAIL - BASIC keyword to send emails with optional HTML and attachments.
Session - Active conversation state between user and bot. Expires after inactivity (default 30 minutes).
Session Memory - Temporary storage for the current conversation. Access with SET and GET.
SET - BASIC keyword to store values in session variables or update database records.
SET BOT MEMORY - BASIC keyword to store persistent bot-level data.
SET CONTEXT - BASIC keyword to add information to the LLM context. Influences all subsequent responses.
SET SCHEDULE - BASIC keyword for cron-based task scheduling. Accepts natural language like "every monday at 9am".
SET USER MEMORY - BASIC keyword to store cross-session user data accessible from any bot.
Sparse Search - Keyword-based search using algorithms like BM25. Excels at exact matches and rare terms.
SSE - Server-Sent Events. Used for real-time streaming of LLM responses.
Stalwart - Email server component providing IMAP/SMTP/JMAP support.
Suite - The complete General Bots workspace application with Chat, Drive, Tasks, Mail, Calendar, and other apps.
SWITCH - BASIC keyword for multi-way conditional branching.
T
TALK - BASIC keyword to send messages to the user. Supports text, markdown, and multimedia.
Template - Pre-built bot configuration in the templates/ folder. Copy and modify to create new bots.
Token - Unit of text for LLMs. Roughly 4 characters. Context windows are measured in tokens.
Tool - A .bas file the LLM can call automatically. Define with PARAM declarations and a DESCRIPTION. Place in the tools/ folder.
TRANSFER CONVERSATION - BASIC keyword to hand off the entire conversation to another bot.
U
UPDATE - BASIC keyword to modify existing database records.
USE KB - BASIC keyword to activate a knowledge base for semantic search. USE KB "policies" makes the policies collection searchable.
USE MODEL - BASIC keyword to switch LLM models. Options: "fast", "quality", "code", or "auto".
USE TOOL - BASIC keyword to enable a tool for LLM use. The AI determines when to call it.
User Memory - Persistent storage scoped to a user, accessible across all bots and sessions.
V
Vault - HashiCorp Vault. Secrets management service for storing credentials securely. Only VAULT_* environment variables are used.
Vector - Mathematical representation of meaning. Similar meanings produce similar vectors.
Vector Database - Database optimized for storing and searching embeddings. Qdrant is the default option.
W
WAIT - BASIC keyword to pause execution for a specified duration.
WEBHOOK - BASIC keyword to create HTTP endpoints that trigger bot actions.
WebSocket - Real-time connection for chat. Enables instant messaging without polling. Path: /ws.
Z
Zitadel - Identity and access management service. Handles authentication, users, and permissions.
Package Extensions
| Extension | Purpose |
|---|---|
.gbai | Complete bot package |
.gbdialog | BASIC scripts |
.gbkb | Knowledge base documents |
.gbot | Bot configuration |
.gbtheme | UI customization |
.gbdrive | File storage mapping |
.bas | BASIC script file |
Common Confusions
“Do I need containers?” - No. BotServer installs everything directly or in optional LXC containers.
“What database?” - PostgreSQL, automatically installed and configured.
“What about scaling?” - Single server handles 1000+ concurrent users. Scale by running multiple instances.
“Is BASIC really BASIC?” - Inspired by BASIC, not strict implementation. Simplified and focused on conversations.
“Can I use TypeScript/Python/etc?” - BASIC handles conversation logic. Use RUN PYTHON/JAVASCRIPT for code execution, or integrate via REST API.
“Is it production-ready?” - Yes. Used in production since 2016, current Rust version since 2023.