Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

System Limits Reference

This document provides a comprehensive reference for all system limits, rate limits, package sizes, and configurable parameters in General Bots. Each limit includes the config.csv key, default value, and the source code location where it’s enforced.


Quick Reference

CategoryLimitDefaultConfig Key
Package SizeTotal package100 MBpackage-max-size
Package SizeSingle file10 MBuser-file-limit
Package SizeFile count1,000user-file-count
Package SizeScript size1 MBscript-max-size
SessionMessage history50session-message-history
SessionVariable storage1 MBsession-variable-limit
SessionConcurrent sessions1,000session-max-concurrent
SessionRate limit60/minsession-rate-limit
SessionTimeout30 minsession-timeout
Knowledge BaseCollections50kb-max-collections
Knowledge BaseDocument size50 MBkb-doc-max-size
File UploadPer file10 MBupload-max-size
File UploadAttachment25 MBattachment-max-size
APIRate limit100/minapi-rate-limit
Loop SafetyMax iterations100,000loop-max-iterations
GOTO SafetyMax iterations1,000,000goto-max-iterations

Package Size Limits

Controls the size and composition of .gbai packages.

Total Package Size

PropertyValue
Config Keypackage-max-size
Default104,857,600 (100 MB)
UnitBytes
Sourcebotserver/src/core/package_manager/mod.rs
name,value
package-max-size,209715200

Single Document Size

PropertyValue
Config Keyuser-file-limit
Default10,485,760 (10 MB)
UnitBytes
Sourcebotserver/src/core/package_manager/mod.rs

File Count Per Package

PropertyValue
Config Keyuser-file-count
Default1,000
UnitFiles
Sourcebotserver/src/core/package_manager/mod.rs

Script File Size

PropertyValue
Config Keyscript-max-size
Default1,048,576 (1 MB)
UnitBytes
Sourcebotserver/src/basic/compiler/mod.rs

Session Limits

Controls resource usage per user session.

Message History

PropertyValue
Config Keysession-message-history
Default50
UnitMessages
Sourcebotserver/src/core/session/mod.rs
NotesMessages kept in LLM context window

Variable Storage

PropertyValue
Config Keysession-variable-limit
Default1,048,576 (1 MB)
UnitBytes
Sourcebotserver/src/core/session/mod.rs
NotesTotal size of all session variables

Concurrent Sessions

PropertyValue
Config Keysession-max-concurrent
Default1,000
UnitSessions
Sourcebotserver/src/core/session/mod.rs
NotesPer server instance

Session Rate Limit

PropertyValue
Config Keysession-rate-limit
Default60
UnitMessages per minute
Sourcebotserver/src/core/session/mod.rs

Session Timeout

PropertyValue
Config Keysession-timeout
Default1,800 (30 minutes)
UnitSeconds
Sourcebotserver/src/core/session/mod.rs

Knowledge Base Limits

Controls document ingestion and vector storage.

Maximum Collections

PropertyValue
Config Keykb-max-collections
Default50
UnitCollections
Sourcebotserver/src/basic/keywords/kb.rs

Document Size by Type

File TypeMax SizeConfig Key
PDF50 MBkb-pdf-max-size
Word (.docx)25 MBkb-word-max-size
Excel (.xlsx)25 MBkb-excel-max-size
Text/Markdown10 MBkb-text-max-size
Images10 MBkb-image-max-size

RAG Parameters

Config KeyDefaultDescription
rag-top-k10Number of chunks to retrieve
rag-chunk-size512Tokens per chunk
rag-chunk-overlap50Overlap between chunks
rag-hybrid-enabledtrueEnable hybrid search
rag-rerank-enabledfalseEnable reranking

File Upload Limits

Controls file upload operations.

Standard Upload

PropertyValue
Config Keyupload-max-size
Default10,485,760 (10 MB)
UnitBytes
Sourcebotserver/src/api/upload.rs

Email Attachment

PropertyValue
Config Keyattachment-max-size
Default26,214,400 (25 MB)
UnitBytes
Sourcebotserver/src/basic/keywords/send_mail.rs

Archive Extraction

LimitDefaultConfig Key
Archive size100 MBextract-archive-max-size
Extracted size500 MBextract-output-max-size
Files in archive10,000extract-max-files
Path depth10extract-max-depth

API Rate Limits

Controls API request rates.

General API

PropertyValue
Config Keyapi-rate-limit
Default100
UnitRequests per minute
Sourcebotserver/src/api/middleware/rate_limit.rs

Endpoint-Specific Limits

Endpoint CategoryLimitConfig Key
Standard endpoints100/minapi-rate-limit
Compliance scans5/hourapi-scan-rate-limit
Report generation10/hourapi-report-rate-limit
LLM inference20/minllm-rate-limit
Embedding100/minembedding-rate-limit

Rate Limit Headers

All API responses include rate limit headers:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed
X-RateLimit-RemainingRequests remaining in window
X-RateLimit-ResetUnix timestamp when limit resets

Loop Safety Limits

Prevents infinite loops in BASIC scripts.

WHILE/DO Loops

PropertyValue
Config Keyloop-max-iterations
Default100,000
UnitIterations
Sourcebotserver/src/basic/keywords/procedures.rs

GOTO State Machine

PropertyValue
Config Keygoto-max-iterations
Default1,000,000
UnitIterations
Sourcebotserver/src/basic/compiler/goto_transform.rs

Sandbox Limits

Controls code execution sandbox resources.

Memory Limit

PropertyValue
Config Keysandbox-memory-mb
Default256
UnitMegabytes
Sourcebotserver/src/basic/keywords/code_sandbox.rs

CPU Limit

PropertyValue
Config Keysandbox-cpu-percent
Default50
UnitPercent
Sourcebotserver/src/basic/keywords/code_sandbox.rs

Execution Timeout

PropertyValue
Config Keysandbox-timeout
Default30
UnitSeconds
Sourcebotserver/src/basic/keywords/code_sandbox.rs

Communication Limits

WhatsApp

LimitDefaultConfig Key
Messages per second10whatsapp-rate-limit
Broadcast recipients1,000whatsapp-broadcast-max
Template message size1,024whatsapp-template-max-size

Email

LimitDefaultConfig Key
Recipients per email50email-max-recipients
Emails per hour100email-rate-limit
Attachment size25 MBemail-attachment-max-size

Delegate to Bot

PropertyValue
Config Keydelegate-message-max-size
Default1,048,576 (1 MB)
UnitBytes
Sourcebotserver/src/basic/keywords/delegate_to_bot.rs
PropertyValue
Config Keydelegate-timeout
Default300
UnitSeconds
Sourcebotserver/src/basic/keywords/delegate_to_bot.rs

Storage Limits

User Storage Quota

PropertyValue
Config Keyuser-storage-quota
Default104,857,600 (100 MB)
UnitBytes
Sourcebotserver/src/basic/keywords/drive.rs
PropertyValue
Config Keydownload-link-expiry
Default86,400 (24 hours)
UnitSeconds
Sourcebotserver/src/basic/keywords/download.rs

LLM Limits

Token Limits

Config KeyDefaultDescription
llm-max-tokens4,096Max output tokens
llm-context-window8,192Context window size
llm-temperature0.7Default temperature

Tokens Per Minute (TPM)

PropertyValue
Config Keyllm-tpm-limit
Default20,000
UnitTokens per minute
Sourcebotcoder/src/main.rs
Env VarLLM_TPM

A2A Protocol Limits

Maximum Hops

PropertyValue
Config Keya2a-max-hops
Default5
UnitHops
Sourcebotserver/src/basic/keywords/a2a_protocol.rs
NotesPrevents infinite delegation chains

Video/Audio Limits

Player Limits

Config KeyDefaultDescription
player-max-file-size-mb100Max video file size
player-default-volume80Default volume (0-100)
player-preloadmetadataPreload strategy

Configuring Limits

Via config.csv

Add entries to your bot’s config.csv file:

name,value
package-max-size,209715200
session-rate-limit,120
api-rate-limit,200
llm-max-tokens,8192

Via Environment Variables

Some limits can be set via environment variables (overrides config.csv):

Environment VariableConfig Key
LLM_TPMllm-tpm-limit
SESSION_TIMEOUTsession-timeout
API_RATE_LIMITapi-rate-limit

Via API

Update limits programmatically:

SET CONFIG "session-rate-limit" TO "120"
SET CONFIG "api-rate-limit" TO "200"

Monitoring Limits

Viewing Current Limits

config = GET CONFIG "api-rate-limit"
TALK "Current API rate limit: " + config

Rate Limit Errors

When limits are exceeded, the system returns:

HTTP StatusError CodeDescription
429RATE_LIMITEDToo many requests
413PAYLOAD_TOO_LARGEFile/request too large
507INSUFFICIENT_STORAGEStorage quota exceeded

Best Practices

  1. Start Conservative: Begin with default limits and increase as needed
  2. Monitor Usage: Track rate limit headers to understand usage patterns
  3. Plan for Scale: Increase limits gradually as traffic grows
  4. Document Changes: Track limit changes in your bot’s changelog
  5. Test Limits: Verify your application handles limit errors gracefully