Skip to main content

Documentation Index

Fetch the complete documentation index at: https://koreai-v2-home-nav.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Agent Platform 2.0: Comprehensive Overview

This document is a consolidated reference covering the Agent Platform 2.0 end-to-end. It is designed to serve as input for generating training slides and presentation decks that provide both an executive-level overview and sufficient technical depth for a developer audience.

1. Elevator Pitch

Agent Platform 2.0 is an enterprise SaaS platform for building, deploying, and managing AI agents using ABL (Agent Blueprint Language) — the enterprise control plane for agentic AI, where deterministic governance meets autonomous reasoning. Instead of writing hundreds of lines of imperative framework code, teams describe what their agents should do in a structured, human-readable DSL — and the platform handles execution, multi-agent routing, 20+ communication channels, knowledge retrieval, guardrails, and full observability. Three sentences that capture the value:
  1. Declarative, not imperative. A 15-line ABL definition replaces what would otherwise be several hundred lines of Python/JS framework boilerplate. Agent definitions are version-controlled, diffable, and readable by non-engineers.
  2. Multi-agent orchestration is a first-class primitive. Supervisors route conversations to specialist agents with handoff, delegation, escalation, and fan-out patterns — all defined declaratively in ABL.
  3. Enterprise-grade from day one. Multi-tenant isolation, encryption at rest/transit, input/output guardrails, audit logging, PII protection, and SOC 2 Type II compliance are built into the platform core — not bolted on.

2. Who Is This For?

PersonaEntry PointWhat They Do
Agent DeveloperStudio IDE / ABL DSLDefine agent behavior, write supervisor routing logic, configure tools and knowledge bases
QA / TesterEvaluation FrameworkCreate personas, scenarios, and LLM judges to validate agent behavior at scale
Ops EngineerDeployments & SessionsDeploy agents across environments, monitor traces, track session analytics
Workspace AdminAdmin ConsoleManage tenants, users, permissions, LLM credentials, channel connections, and security policies

3. Platform Architecture

Three Core Services

Studio — Browser-based IDE (Next.js, port 5173). No local installation. Design agents visually or in code, test interactively, deploy to production. Runtime — Stateless execution engine (Node.js, port 3112). Receives messages from 20+ channels, loads compiled agent definitions (IR), executes reasoning loops or step-based flows, calls LLMs, invokes tools, enforces guardrails, manages sessions, coordinates multi-agent handoffs. SearchAI — Full RAG pipeline (port 3113, with SearchAI Runtime on 3114). Handles document ingestion (PDF, DOCX, HTML, CSV, JSON), text extraction, chunking (semantic/fixed/hierarchical), embedding (BGE-M3), vector+keyword hybrid search, vocabulary resolution, knowledge graph extraction, and live data sync via connectors. Supporting Services — Admin Console (port 3003), Python services for document processing: Docling (8080), BGE-M3 embeddings (8000), Preprocessing (8003). Infrastructure: MongoDB 7.0+ (replica set), Redis 7+ (persistence, TLS), ClickHouse (optional, for analytics).

End-to-End Flow


4. ABL — The Agent Blueprint Language

Every enterprise deploying agents faces the same tension: you need AI autonomy to unlock value, but you need deterministic control to stay in production. ABL resolves this with a schema-driven language purpose-built for multi-agent orchestration.
  • Full-spectrum control — Not just autonomous or deterministic — ABL spans the entire control spectrum. Delegate autonomously, supervise selectively, or lock down as a deterministic state machine. One language, every mode.
  • Local + remote agent topology — Local agents run deterministic logic with creative reasoning. Remote agents connect any custom framework via A2A-enabled fan-out patterns. Your agents, your infrastructure, one orchestration layer.
  • Parallel execution with state semantics — Fan-out/fan-in orchestration with parent-child state transfer — so parallel agents stay coordinated without brittle glue code.
  • Compiled and immutable by design — Agent definitions compile into immutable artifacts. Every version is auditable, every deployment is reproducible, every change is governed.
  • Deep observability — native, not bolted on — Tracing across agent delegation chains is built into the runtime. No third-party instrumentation, no blind spots between handoffs.
  • AI-programmable platform — ABL is not just human-writable — it is designed as a code-generation target. AI authors agent blueprints; the platform compiles and enforces them.

File Types

ExtensionDocument TypePurpose
.agent.ablAgent definitionMost common — defines a single agent
.supervisor.ablSupervisorTop-level orchestrator for multi-agent
.tools.ablTool libraryReusable tool definitions shared across agents
.agent.yamlYAML agentAlternative YAML format for agent definitions
BEHAVIOR_PROFILEBehavior profileReusable behavior configurations

Top-Level Sections

Every ABL agent can include these sections (only AGENT and GOAL are required):
SectionPurposeRequired
AGENTAgent name (PascalCase_With_Underscores)Yes
GOALPrimary objectiveYes
VERSIONSemantic version (default: “1.0.0”)No
DESCRIPTIONHuman-readable summaryNo
LANGUAGEBCP 47 language code (e.g., “en”, “es-EC”)No
PERSONAAgent personality and communication styleNo
IDENTITYStructured identity (role, expertise, tone)No
LIMITATIONSExplicit boundaries (what agent cannot do)No
INSTRUCTIONSOperational procedural guidanceNo
EXECUTIONModel & runtime configurationNo
TOOLSTool definitions and importsNo
GATHERInformation collection fieldsNo
FLOWStructured execution stepsNo
MEMORYSession & persistent stateNo
CONSTRAINTSBusiness rule enforcementNo
GUARDRAILSInput/output safety checksNo
HANDOFFAgent transfer rulesNo
DELEGATESub-agent delegationNo
ESCALATEHuman escalation triggersNo
COMPLETECompletion conditionsNo
NLUNatural language understanding configNo
ON_STARTSession initializationNo
ON_ERRORError handlersNo
HOOKSLifecycle event handlersNo
TEMPLATESReusable response templatesNo
MESSAGESCustomizable system-generated messagesNo
LOOKUP_TABLESReference data for validationNo
ATTACHMENTSFile/media collection configNo
SYSTEM_PROMPTCustom system prompt templateNo

Anatomy of an ABL Agent

AGENT: Support_Assistant

VERSION: "1.0.0"

EXECUTION:
  model: claude-sonnet-4-5-20250929
  temperature: 0.3
  max_tokens: 4096
  max_reasoning_iterations: 15
  enable_thinking: true
  thinking_budget: 2048

GOAL: |
  Help customers with product questions. Be concise
  and friendly. If you do not know the answer, say so.

PERSONA: |
  Helpful product support assistant. Answers questions
  clearly and concisely.

LIMITATIONS:
  - "Cannot process payments or refunds"
  - "Cannot access customer account information"

TOOLS:
  search_knowledge(query: string) -> {results: object[], totalCount: number}
    description: "Search the product knowledge base"

GUARDRAILS:
  profanity_filter:
    kind: input
    check: not_contains_blocked_words(input)
    action: block
    message: "Please keep our conversation respectful."

INSTRUCTIONS: |
  1. Understand the customer's question
  2. Search the knowledge base for relevant information
  3. Provide a clear, sourced answer
  4. If unsure, offer to connect with a human agent

Execution Configuration

The EXECUTION block controls model selection and runtime behavior:
PropertyDescription
modelPrimary LLM model identifier
temperatureSampling temperature (0.0-1.0)
max_tokensMaximum tokens in LLM response
max_reasoning_iterationsMaximum reasoning loop iterations
max_flow_iterationsMaximum step transitions in flow
tool_timeoutTool execution timeout (ms)
llm_timeoutLLM inference timeout (ms)
session_idle_timeoutSession expiration timeout
fallback_modelModel for unavailability fallback
enable_thinkingExtended thinking capability
thinking_budgetToken budget for extended thinking
compaction_thresholdContext usage ratio triggering auto-compaction
inline_gatherCollect gather fields inline during conversation
voice_latency_targetTarget latency for voice responses
Per-Operation Model Routing — Route different operations to different models within the same agent:
EXECUTION:
  models:
    extraction: gpt-4o-mini        # Fast model for data extraction
    response_gen: claude-sonnet     # Balanced model for responses
    reasoning: claude-opus          # Powerful model for complex reasoning
    coordination: gpt-4o-mini      # Fast model for multi-agent routing

One Agent, Two Execution Modes

Every agent reasons by default. When you need structured execution, add a FLOW section with steps. This is not a different type of agent — it is the same agent with an optional flow definition.
FeatureAgent (default)Agent with steps
Decision makingLLM decides next action autonomouslySteps define explicit transitions
Best forOpen-ended conversations, complex reasoningStructured workflows, deterministic processes
Reasoning controlAlways onPer-step (REASONING: true/false)
Editor UIFull-page configuration panelFull-page config + visual flow canvas

Per-Step Reasoning Control — The Differentiator

Within a FLOW, each step’s REASONING toggle controls whether it uses LLM reasoning or runs deterministically:
FLOW:
  collect_preferences:
    REASONING: false         # Deterministic data collection
    GATHER:
      - destination: required
      - travel_dates: required
    THEN: research_options

  research_options:
    REASONING: true          # LLM autonomously researches
    GOAL: "Research travel options for {{destination}}"
    AVAILABLE_TOOLS: [search_flights, search_hotels, get_weather]
    MAX_TURNS: 8
    EXIT_WHEN: "all options found"
    STEP_CONSTRAINTS:
      - REQUIRE total_cost <= budget
    THEN: present_plan

  present_plan:
    REASONING: false         # Deterministic presentation
    RESPOND: "Here is your travel plan: {{compiled_itinerary}}"
    THEN: COMPLETE
This gives teams deterministic control where they need predictability (data collection, confirmations, API calls) and LLM autonomy where they need flexibility (research, analysis, open-ended Q&A).

Flow Control Constructs

ConstructPurpose
THENBasic next-step transition
ON_RESULTMulti-way branching based on tool result (IF/ELSE)
ON_INPUTBranching based on user input after GATHER
ON_SUCCESS/FAILAlternative to ON_RESULT for binary branching
DIGRESSIONSIntent-based flow interruptions with resume/goto
SUB_INTENTSStep-scoped intent patterns for corrections
MAX_ATTEMPTSLimit step executions with ON_EXHAUSTED fallback
CALL...WITH...ASInvoke tool with parameters, store result
SETAssign session variables
CHECKEvaluate condition with ON_FAIL
CLEARRemove variables from context
TRANSFORMFilter, map, sort, limit arrays
PRESENTDisplay formatted presentation before collection
COMPLETEExit the flow

Interactive Actions in Flow

Steps can present interactive UI elements (buttons, select menus, input fields) and handle user responses:
  confirm_booking:
    REASONING: false
    RESPOND: "Review your booking details:"
    ACTIONS:
      - id: confirm
        type: button
        label: "Confirm Booking"
        value: confirmed
      - id: cancel
        type: button
        label: "Cancel"
        value: cancelled
    ON_ACTION:
      - ACTION_ID: confirm
        SET:
          booking_status: "confirmed"
        THEN: process_payment
      - ACTION_ID: cancel
        RESPOND: "Booking cancelled."
        THEN: COMPLETE

Expressions & Built-in Functions

ABL includes a full expression language with 36+ built-in functions: Operators: ==, !=, >, <, >=, <=, IN, NOT IN, contains, matches, AND, OR, NOT, IS SET, IS NOT SET, EXISTS, EMPTY Math: ADD, SUB, MUL, DIV, ROUND, ABS, MIN, MAX String: UPPER, LOWER, TRIM, SUBSTRING, REPLACE, SPLIT, JOIN, PAD_START, PAD_END, REPEAT Formatting: MASK (last4, first4, N*N patterns), FORMAT_CURRENCY, FORMAT_DATE, ORDINAL Type: IS_ARRAY, IS_NUMBER, IS_STRING, TO_NUMBER, TO_STRING, LENGTH Array/Object: ARRAY_FIND, ARRAY_FIND_INDEX, OBJECT_KEYS, OBJECT_VALUES, OBJECT_MERGE Utility: COALESCE, NOW, UNIQUE_ID Template Syntax: {{variable_name}}, {{#if variable}}...{{/if}}, {{FORMAT_CURRENCY(balance, "USD")}}

Data Types

Primitive types: string, number, boolean, date, datetime Complex types: array<T>, object<{...}>, enum<[...]>, union<[...]>, nullable<T> Lookup Tables — Reference data for validation with three source types:
SourceDescription
inlineStatic values defined directly in ABL
collectionExternal data collection (database-backed)
apiHTTP endpoint returning lookup data
Lookup tables support case_sensitive, fuzzy_match, and fuzzy_threshold (default 0.85) for flexible matching.

Attachments

GATHER can collect files and media with automatic processing:
ATTACHMENTS:
  receipt_photo:
    prompt: "Please upload a photo of your receipt"
    category: image
    required: true
    max_file_size_mb: 10
    allowed_mime_types: ["image/jpeg", "image/png"]
    ocr_enabled: true
CategoryProcessingAccess Pattern
documentOCR text extraction{{field.extracted_text}}
imageOCR text extraction{{field.extracted_text}}
audioSpeech-to-text transcription{{field.transcript}}
videoKeyframe extraction + optional transcription{{field.keyframes}}

5. Multi-Agent Orchestration

ABL has first-class support for multi-agent systems with four coordination patterns:

Orchestration Patterns

PatternDescriptionUser Experience
HandoffRoute conversation to a specialist agentUser is “transferred” to a new agent
DelegationSend a sub-task to an agent and get results backTransparent — user doesn’t see the delegation
EscalationTransfer to a human agent with full contextUser gets connected to a real person
Fan-outRun multiple agents in parallel, merge resultsTransparent — user sees a single combined result

Session Hierarchy

Context flow between agents:
Data TypeTransferred?
Session metadataYes (non-internal values forwarded)
Conversation historyConfigurable: none/summary_only/full/last_N
GATHER progressNo (not transferred)
Custom variables (SET)Yes (transferred as metadata)
Agent-specific stateNo (not transferred)
Persistent memoryVia grant_memory paths

Supervisor Definition

SUPERVISOR: Travel_Supervisor

GOAL: "Route customers to the right specialist"

AGENTS:
  - REF: Flight_Search
    ALIAS: flights
    CAPABILITIES: ["flight booking", "flight status"]
  - REF: Hotel_Search
    ALIAS: hotels
    CAPABILITIES: ["hotel booking", "accommodation"]

HANDOFF:
  - TO: Flight_Search
    WHEN: intent contains "flight" OR intent contains "fly"
    PRIORITY: 1
    CONTEXT:
      pass: [destination, date, passengers]
      summary: "User needs flight booking assistance"
      history: summary_only
      grant_memory: ["user.preferences.travel"]
    RETURN: true
    ON_RETURN: "Summarize the booking result"
    MAP:
      booking_id: flight_booking_id

  - TO: Hotel_Search
    WHEN: intent contains "hotel" OR intent contains "stay"
    PRIORITY: 2
    CONTEXT:
      pass: [destination, checkin, checkout, guests]
    RETURN: true

  - TO: Live_Agent_Transfer
    WHEN: user.frustration_detected == true
    PRIORITY: 0
    CONTEXT:
      pass: [conversation_summary, transfer_reason]
    RETURN: false

Supervisor Advanced Features

ROUTING — Priority-ordered conditional routing rules with flags and constraints:
ROUTING:
  - NAME: "High-value routing"
    PRIORITY: 1
    WHEN: customer_tier == "platinum"
    THEN: ROUTE_TO premium_agent
    FLAGS: [priority_boost]
    CONSTRAINTS:
      channels: ["voice", "chat"]
STATE — Typed state schema for supervisor-managed variables (organized by namespace, with source tracking) POLICIES — High-level behavioral rules with allowedWhen, forbiddenWhen, and triggerSignal conditions BEHAVIOR — Supervisor capabilities: canRespondDirectly, allowedDirectActions, forbiddenActions COMMUNICATION — Language, formality level (formal/informal/neutral), pronouns, vocabulary, constraints

Delegation (Call-and-Return)

DELEGATE:
  - AGENT: Price_Calculator
    WHEN: "user asks about pricing"
    PURPOSE: "Calculate total price with discounts"
    INPUT:
      items: cart_items
      membership: customer_tier
    RETURNS:
      total_price: calculated_total
      discount_applied: discount_percent
    USE_RESULT: "Present the pricing to the user"
    TIMEOUT: 30000
    ON_FAILURE: respond
    FAILURE_MESSAGE: "Unable to calculate price right now."

Fan-out (Parallel Delegation)

Multiple DELEGATE entries with overlapping WHEN conditions execute in parallel. Each has independent TIMEOUT and ON_FAILURE handling, with distinct variable names in RETURNS.

Escalation to Humans

ESCALATE:
  triggers:
    - WHEN: "user.frustration_detected == true"
      REASON: "Customer expressing frustration"
      PRIORITY: high
      TAGS: ["customer-experience"]
    - WHEN: "handoff_count >= 3"
      REASON: "Multiple failed handoffs"
      PRIORITY: critical
  context_for_human: [conversation_summary, customer_tier, account_id]
  routing:
    queue: "tier2-support"
    skill_tags: ["billing", "retention"]
  on_human_complete:
    - IF: "outcome == 'resolved'"
      THEN: COMPLETE
    - IF: "outcome == 'needs_agent'"
      THEN: HANDOFF Specialist_Agent

Human Task System

When escalation triggers, a human task appears in the team inbox:
PropertyDescription
Task typesapproval, data_entry, review, decision, escalation
Statuspending, assigned, in_progress, completed, expired, cancelled
Prioritylow, medium, high, critical
Form fieldstext, number, boolean, select, textarea, date
SLADeadline with escalation chains
Sessions suspend until human resolution, then resume with human.field context available.

Project Orchestration Patterns (Pre-built Topologies)

PatternDescriptionBest For
ConciergeSingle front-facing agent delegates behind the scenesCustomer service, help desk
RouterTriage agent routes to specialists directlyMulti-department support
TieredTriage -> L1 -> L2 with escalation pathsTechnical support
CustomFlexible topologyAdvanced use cases

Real-World Scale: Jupiter Banking Example

A 12-agent enterprise banking deployment with priority-ordered routing:

6. Studio — The Development Environment

Studio is a browser-based IDE — no local installation required. It covers the entire agent lifecycle.

Key Capabilities

  • Project Dashboard — Grid of project cards with metrics (agents, sessions, tokens, cost, containment rate), search, and “New Project” dropdown
  • Agent Editor — 17 configuration sections organized into six groups:
    • Identity & Core: Identity, Execution, Tools
    • Data & Logic: Gather, Memory, Flow
    • Safety & Behavior: Constraints, Guardrails, Behavior
    • Coordination: Handoffs, Delegates, Escalation
    • Lifecycle: On Start, Error Handling, Completion
    • Advanced: Templates, Definition
  • Visual Flow Editor — Canvas-based flow designer with drag-and-drop step palette, node connections, zoom/pan, and property panel for editing step details
  • Code Editor — Monaco-powered ABL editor with syntax highlighting and real-time validation; changes sync between visual and code modes
  • AI Architect — Context-aware AI assistant built into Studio (see details below)
  • AI-Guided Project Creation — Multi-phase wizard (see details below)
  • Test Chat — Interactive testing with real-time trace inspection, debug panel, session management, and variable state viewer
  • Command Palette — Cmd+K (Mac) / Ctrl+K quick navigation across pages, agents, and actions
  • Project Switcher — Dropdown at top of sidebar to switch projects without returning to dashboard
  • Agent Versioning — Version history with status tracking (draft, testing, staged, active, deprecated), side-by-side diff viewer, and promotion workflow
  • Pattern-Aware Agent Creation — Auto-assigns roles (Concierge, Router, Tiered, Custom) based on selected orchestration pattern
  • WebSocket Connectivity Indicator — Real-time connection status in header

AI Architect

A context-aware AI assistant embedded in Studio that helps design, build, and improve agents:
  • Context Awareness: Adapts to current page (Agents, Sessions, Overview), current agent, and current section being edited
  • Suggestion Chips: Context-specific suggestions:
    • Agent editor: “Explain code”, “Add error handling”, “Suggest improvements”, “Generate tests”
    • Session viewer: “Analyze session”, “Suggest fix”
    • Project overview: “Summarize health”, “Identify bottlenecks”
  • Code Changes: Proposes changes via diff view with Accept/Reject/Refine workflow
  • Conversation History: Project-scoped, persisted to server across sessions
  • Controls: Maximize/restore, minimize, close; accessible from header icon, section buttons, or floating button

AI-Guided Project Creation Wizard

A multi-phase process for generating complete project structures:
  1. Welcome — Introduction to the wizard
  2. Interview — AI asks targeted questions about your use case
  3. Upload — Analyze uploaded documents (product manuals, FAQs, policies)
  4. Generating — AI generates project structure, agents, tools, and routing
  5. Reveal — Preview generated structure
  6. Review — Edit and refine before creation
  7. Create — Generate the project with all components

Project Sidebar Navigation

SectionPages
BuildOverview, Agents, Workflows
ResourcesTools, Knowledge Bases, Integrations
EvaluateEvaluations, Experiments
OperateSessions, Deployments, Inbox, Alerts, Transfer Sessions
InsightsDashboard, Agent Performance, Quality Monitor, Customer Insights, Voice Analytics
GovernGuardrails, Governance
SettingsMembers, API Keys, Models, Config Variables, Git, Runtime Config, Trace Dimensions, Agent Transfer, PII Protection

7. Tools & Integrations

Agents connect to external systems through five tool types:

Tool Types

TypeDescriptionUse Case
HTTP ToolsREST API calls with auth, retry, circuit breakerCRM lookup, payment processing, booking APIs
Code SandboxIsolated JavaScript/Python executionCustom calculations, data transforms, ML inference
MCP ServersModel Context Protocol connectionsStandardized multi-tool servers (browser, database, etc.)
Lambda ToolsServerless function invocationsLightweight compute, event processing
Async WebhooksSuspend/resume for long-running operationsPayment processing, approval workflows, async tasks

Tool Declaration Syntax

TOOLS:
  tool_name(param1: type, param2: type = default) -> {field: type, field?: type}
    description: "What this tool does"
    type: http | mcp | sandbox | lambda | async_webhook
    # ... binding-specific properties

Tool Execution Hints

  hints:
    cacheable: true          # Results can be cached
    latency: fast|medium|slow
    side_effects: true       # Modifies external state
    requires_auth: true
    timeout: 5000

Key Tool Features

  • Authentication: None, API key, Bearer, OAuth2 client credentials, OAuth2 user authorization, SAML, custom headers
  • OAuth2 Details: token_url, client_id, client_secret, scopes, provider (for consent UI); automatic token caching and refresh
  • Reliability: Configurable timeout, retry count, retry_delay, exponential backoff, circuit breaker (threshold + reset_ms)
  • Rate Limiting: Per-tool requests/second caps
  • Confirmation Prompts: Require user approval before executing tools with side effects (require: always|never|when_side_effects, immutable_params for protected values)
  • Async Webhooks: Platform suspends session, registers callback URL, resumes on webhook callback with HMAC-SHA256 signature verification; configurable timeout (supports minutes to hours)
  • Result Mapping: on_result for variable assignment from tool output; on_error for error handling with variable assignment
  • PII Access Control: pii_access levels (tools, user, logs, llm) control where sensitive data flows
  • Context Access: context_access with read and write permissions for session variables
  • Reusable Tool Files: .tools.abl files with base_url, shared auth, timeout, retry, headers defaults; import syntax: FROM "./tools/file.tools.abl" USE: tool1, tool2

Code Sandbox Tools

TOOLS:
  calculate_tax(amount: number, state: string) -> {tax: number, total: number}
    description: "Calculate sales tax"
    type: sandbox
    runtime: javascript    # or python
    timeout: 5000
    memory_mb: 128
    code: |
      function calculate_tax({ amount, state }) {
        const rates = { CA: 0.0725, NY: 0.08, TX: 0.0625 };
        const tax = amount * (rates[state] || 0.05);
        return { tax: Math.round(tax * 100) / 100, total: amount + tax };
      }

Tool Definition Example (HTTP)

TOOLS:
  process_payment(amount: number, currency: string, card_token: string) -> {transaction_id: string, success: boolean}
    description: "Process a payment"
    type: http
    endpoint: "https://payments.example.com/v1/charge"
    method: POST
    auth: bearer
    timeout: 10000
    retry: 3
    retry_delay: 1000
    circuit_breaker:
      threshold: 5
      reset_ms: 60000
    confirmation:
      require: always
      immutable_params: [amount, currency]

Error Handling

Agent-level and step-level error handlers with retry and backoff:
ON_ERROR:
  tool_timeout:
    RESPOND: "The service is taking longer than expected."
    RETRY: 2
    RETRY_DELAY: 3000
    RETRY_BACKOFF: exponential
    RETRY_MAX_DELAY: 30000
    THEN: CONTINUE
  tool_error:
    RESPOND: "Something went wrong. Let me try a different approach."
    THEN: ESCALATE
Error types: tool_timeout, tool_error, validation_error, llm_error, routing_failure, agent_unavailable, timeout. Each supports subtypes for fine-grained matching and BACKTRACK_TO for flow step recovery.

8. Knowledge Bases & RAG

SearchAI provides an integrated RAG pipeline with no custom retrieval code required.

Ingestion Pipeline

Upload/Connect -> Ingest -> Extract Text -> Chunk -> Enrich -> Embed -> Store
  1. Ingest — Register document, check for duplicates via content hashing
  2. Extract — Format-specific text extraction (PDF, DOCX, JSON, HTML, plain text)
  3. Chunk — Split into searchable segments
  4. Enrich — Entity detection, summary generation, language detection, knowledge graph extraction
  5. Embed — Vector generation via BGE-M3 (multilingual)
  6. Store — Vector database with metadata and permissions

Supported Formats

  • Documents: PDF, DOCX, TXT, Markdown
  • Web: HTML pages, crawls
  • Structured: JSON, CSV
  • Rich media: Images in documents (with OCR)

Chunking Strategies

StrategyDescription
Fixed-sizeTarget token size with configurable overlap
SemanticSplits on natural boundaries (paragraphs, sections)
HierarchicalTree of summarized chunks
Sliding windowOverlapping windows for context preservation

Search Strategies

StrategyDescription
Hybrid (recommended)Combines vector similarity + keyword matching
SemanticPure vector search for conceptual matching
StructuredMetadata-filtered queries for structured data
AggregationSum, avg, count, min, max over structured datasets

Agent-Level Search Tools

ToolPurpose
search_hybridVector + keyword search (default)
search_vectorPure semantic search
vocabulary_resolveBusiness terms to metadata filters
search_aggregateSum, avg, count, min, max over data
search_structuredMetadata filter queries
search_listPaginated structured results

Search Configuration

  • topK: Number of results (default 5)
  • minScore: Confidence threshold (default 0.7)
  • strategy: hybrid/vector/structured/aggregation
  • cacheTtl: Embedding cache TTL

Live Data Connectors

ConnectorWhat It SyncsAuth Type
SharePointDocuments and pagesOAuth 2.0
ConfluencePages and blog postsAPI token
JiraIssues, comments, attachmentsAPI token
SalesforceKnowledge articles, casesOAuth 2.0
ServiceNowKnowledge articles, incidentsOAuth 2.0 / API key
HubSpotKB articlesAPI key
Web CrawlerAny websiteConfigurable crawl rules
DatabaseSQL query resultsConnection string
All connectors support delta sync on configurable schedules — initial full sync followed by periodic delta syncs. Deleted document removal is automatic.

9. Data Collection with GATHER

GATHER collects structured data from users through natural conversation.

Key Features

  • LLM Extraction: Users provide multiple fields in a single message; the LLM extracts them all
  • Strategies: llm (default — LLM-based), pattern (regex-based), hybrid (combined)
  • Field Types: string, number, date, email, phone, boolean
  • Validation: Regex patterns (REGEX), code-based (CODE), LLM-based judgment (LLM), cross-field validation via CONSTRAINTS
  • Inference: Auto-extract values from conversation context with configurable infer_confidence threshold (default 0.8) and optional infer_confirm
  • Corrections: Users can change previously provided values without restarting (enable with CORRECTIONS: true)
  • Progressive Activation: Fields activate only after dependencies are met (activation: progressive, depends_on)
  • Extraction Hints: Guide LLM on how to interpret ambiguous input
  • List Collection: list: true to collect arrays of values
  • Range Collection: range: true to collect {low, high} pairs
  • Preferences: preferences: true to categorize into accept/desire/avoid/refuse
  • Sensitive Fields: sensitive: true with sensitive_display (redact/mask/replace) and mask_config
  • Transient Fields: transient: true to auto-clean after GATHER completes
  • Custom Retry: Per-field retry_prompt and max_retries

GATHER Example

GATHER:
  FIELDS:
    destination:
      prompt: "Where would you like to travel?"
      type: string
      required: true
      infer: true
      infer_confidence: 0.9
      extraction_hints: "Look for city names, country names, or airport codes"

    budget:
      prompt: "What's your budget range?"
      type: number
      range: true
      validate: min(100)
      depends_on: [destination]
      activation: progressive

    travel_dates:
      prompt: "When do you want to travel?"
      type: date
      required: true
      validate: "value > NOW()"
      retry_prompt: "Please provide a future date."

  STRATEGY: llm
  CORRECTIONS: true
  COMPLETE_WHEN: "destination IS SET AND travel_dates IS SET"

10. Memory & State Management

Session Variables

  • Scoped to a single conversation; created at session start, discarded at end
  • Declared in MEMORY.session section
  • Types: string, number, object, array, boolean
  • Properties: TYPE, DESCRIPTION, INITIAL, RESET (per_session / per_step / never)
  • Used in templates ({{var}}), conditions, and tool calls

State Manipulation Directives

# SET -- assign values (literals, expressions, function calls)
SET:
  total: ADD(subtotal, tax)
  greeting: "Hello, {{customer_name}}"
  order_id: UNIQUE_ID(12)
  timestamp: NOW()

# CLEAR -- remove variables from session
CLEAR: [temp_result, intermediate_data]

# TRANSFORM -- filter, map, sort, limit arrays
TRANSFORM:
  SOURCE: search_results
  AS: item
  INTO: filtered_results
  FILTER: "item.score >= 0.8"
  MAP: "{title: item.title, url: item.url}"
  SORT_BY: "item.score DESC"
  LIMIT: 5

Persistent Memory

  • Survives across sessions (user preferences, history)
  • Dot-notation paths: user.preferences.language, project.faq_count
  • Scope: user (per-user) or project (shared across users)
  • Access control: read, write, readwrite
  • TTL-based expiration (s/m/h/d)
  • Stored in fact store, accessible via Memory API

Auto-Recall (Remember/Recall Pattern)

MEMORY:
  remember:
    - WHEN: "preferred_language IS SET"
      STORE:
        preferred_language -> user.preferences.language
      TTL: 90d

  recall:
    - ON: session:start
      ACTION: inject_context
      PATHS: ["user.preferences"]
    - ON: search:before
      ACTION: load_memory
      DOMAIN: "user.history"
    - ON: session:start
      ACTION: prompt_llm
      INSTRUCTION: "Recall the user's previous interactions and preferences"

11. Safety & Guardrails

Multi-layered safety built into the platform core with a three-tier architecture:

Three-Tier Guardrail Implementation

TierTypeSpeedDescription
1CEL-basedFastestDeterministic pattern matching (regex)
2Model-basedFastPre-trained safety models (moderation)
3LLM-basedModerateNatural language LLM judgment checks

Input Guardrails

  • Pattern-based detection (regex for PII: SSN, credit cards, phone numbers)
  • Model-based content moderation (OpenAI Moderation, Azure Content Safety, Lakera Guard, Anthropic)
  • LLM-based topic relevance checks
  • Actions: block, warn, redact, escalate, reask, filter
  • Priority ordering (lower numbers run first)
  • severity_actions for per-severity branching

Output Guardrails

  • PII leak prevention
  • Toxicity scoring
  • Response length limits
  • Fix strategies: strip_html, redact_pii, truncate, normalize, custom (CEL expression)
  • max_reasks for reask action (default 2)
  • filter_min_length for minimum content length after filtering

Streaming Guardrails

  • streaming: true to enable real-time evaluation during response generation
  • streaming_interval: token, sentence, or chunk_size
  • Stops generation mid-stream on violation

Business Constraints

CONSTRAINTS:
  booking_rules:
    - REQUIRE passenger_count <= 9
      ON_FAIL: "We can only book for up to 9 passengers."

    - REQUIRE departure_date > NOW()
      ON_FAIL:
        RESPOND: "Travel dates must be in the future."
        COLLECT: [departure_date]
        THEN: retry

  risk_controls:
    - LIMIT daily_transactions <= 50
      ON_FAIL: ESCALATE

    - RESTRICT destination IN ["sanctioned_countries"]
      ON_FAIL: BLOCK
Constraint keywords: REQUIRE (assertion), LIMIT (numeric boundary), RESTRICT (prohibition) Constraint labels: always, pre_search, pre_action, pre_booking, or custom labels. They group related rules for readability; use WHEN or structural BEFORE for runtime gating.

Guardrail Providers

ProviderTypeCategories
OpenAI ModerationModel-basedhate, violence, sexual, self-harm, harassment
Azure Content SafetyModel-basedhate, violence, sexual, self-harm
AnthropicModel-basedharmless, honest
Lakera GuardModel-basedprompt injection, PII, toxic
Built-in PIIPattern-basedSSN, credit cards, phone, email
Custom HTTP/WebhookCustomAny via external endpoint
Custom LLMLLM-basedAny via natural language check

Guardrail Policies (Centralized)

  • Project-level and agent-level scope (project policies are universal, agent policies are domain-specific)
  • Settings: enableInputGuardrails, enableOutputGuardrails, enableStreamingGuardrails
  • Budget controls: maxEvalsPerMinute, maxCostPerDay
  • Caching: enabled, ttlSeconds to reduce duplicate evaluations
  • Constitution principles for organizational safety guidelines
  • Audit trail of all guardrail evaluations
  • Fail modes: fail-open (flag if provider unavailable) or fail-closed (block)

Built-in Guardrail Templates

Pre-configured templates for common patterns: account_number_masking, credential_input, ssn_protection, profanity_filter, harmful_content_detection

Rate Limiting

LevelControls
Tenantrequests/min, messages/min
ProjectmessagesPerMinute, sessionsPerHour, tokensPerMinute
Per-userIndividual limits
TokentokensPerMinute, tokensPerDay budgets
SDK channelmessagesPerMinute, maxConcurrentSessions
Rate limit responses: HTTP 429 with retryAfter header.

Audit Logging

  • Enabled by default; tracks mutations (create, update, delete) and auth events
  • Fields: timestamp, actor, action, resource, outcome, requestId, ipAddress
  • Request/response body capture with redactFields for sensitive data
  • Export to CSV or external SIEM systems
  • Retention: 90+ days on Professional/Enterprise plans

12. NLU & Multi-Language Support

Intent Classification

NLU:
  intents:
    - NAME: book_flight
      PATTERNS: ["book", "flight", "fly to"]
      EXAMPLES:
        - "I need to book a flight to London"
        - "Can you find me flights next Tuesday?"
      ENTITIES: [destination, travel_date]

    - NAME: check_status
      PATTERNS: ["status", "where is", "track"]
      EXAMPLES_FILE: "./intents/status-examples.txt"

  entities:
    - NAME: destination
      TYPE: enum
      VALUES: ["London", "Paris", "Tokyo"]
      SYNONYMS:
        London: ["LON", "Heathrow", "LHR"]

    - NAME: travel_date
      TYPE: date
      VALIDATION: "value >= NOW()"
  • Pattern-based and example-based intent definitions
  • Entity types: enum, pattern (regex), date, number, location, free_text
  • Categories for high-level routing
  • Synonyms for canonical value mapping

Embedding-Based Semantic Matching

NLU:
  embeddings:
    enabled: true
    provider: openai
    model: text-embedding-3-small
    threshold: 0.75
    cache_ttl: 3600
Provides robust classification when patterns alone are insufficient.

NLU Model Configuration

  • fast: Low-latency model for routing (e.g., gpt-4o-mini)
  • balanced: Higher-accuracy model for extraction (e.g., claude-sonnet)
  • Evaluation: log_predictions, ab_test, confidence_threshold
  • External NLU: config_file reference for external YAML configuration

Multi-Language Support

  • ISO 639-1 language codes with auto-detection
  • allow_code_switching: Follow user’s language changes mid-conversation
  • Language-specific model routing via language_models
  • Domain glossary for consistent terminology across languages
  • Multilingual embeddings (BGE-M3) for cross-language search
  • Language-based agent routing via handoff conditions
  • TEMPLATES for multi-language pre-written responses
  • Environment variable support for deployment-specific language overrides

13. Lifecycle & Hooks

ON_START (Session Initialization)

Fires before any user input; used for welcome messages, variable setup, and tool calls:
ON_START:
  SET:
    session_start: NOW()
    greeting_sent: false
  CALL: get_user_profile
    WITH: {user_id: "{{session.userId}}"}
    AS: user_profile
  RESPOND: "Welcome back, {{user_profile.name}}! How can I help?"
  VOICE:
    INSTRUCTIONS: "Speak warmly and professionally"
  RICH_CONTENT:
    ADAPTIVE_CARD: |
      { "type": "AdaptiveCard", ... }
  ACTIONS:
    - id: quick_start
      type: button
      label: "Quick Start Guide"

HOOKS (Lifecycle Event Handlers)

HOOKS:
  before_agent:
    SET: {agent_activated: NOW()}
    CALL: log_activation
  after_agent:
    CALL: save_summary
  before_turn:
    CALL: check_session_validity
  after_turn:
    SET: {last_activity: NOW()}
HookFires When
before_agentAgent first activated
after_agentAgent completes or deactivated
before_turnBefore processing user message
after_turnAfter turn completes

TEMPLATES (Reusable Responses)

TEMPLATES:
  booking_confirmation:
    DEFAULT: "Your booking #{{booking_id}} is confirmed for {{date}}."
    MARKDOWN: "## Booking Confirmed\n**ID**: {{booking_id}}\n**Date**: {{date}}"
    ADAPTIVE_CARD: |
      { "type": "AdaptiveCard", "body": [...] }
    VOICE:
      INSTRUCTIONS: "Read the confirmation slowly and clearly"
    ACTIONS:
      - id: view_details
        type: button
        label: "View Details"
Reference with TEMPLATE(booking_confirmation) in RESPOND or ON_START.

MESSAGES (System Message Customization)

Override system-generated messages for consistent branding:
  • error_default — Generic error message
  • constraint_blocked — Constraint violation message
  • escalation_format — Human escalation message
  • conversation_complete — Session end message
  • gather_prompt — Data collection prompt

14. Rich Content & Voice

Rich Content Formats

FormatChannelDescription
MARKDOWNWeb, generalFormatted markdown
ADAPTIVE_CARDMicrosoft TeamsAdaptive Cards JSON
SLACKSlackBlock Kit JSON
WHATSAPPWhatsAppInteractive messages (buttons, lists)
AG_UIAG-UI / CopilotKitAG-UI events
HTMLEmail, webHTML content
CAROUSELWeb, mobileScrollable card collection

Carousels

RICH_CONTENT:
  CAROUSEL:
    - title: "Flight Option 1"
      subtitle: "$299 - Direct"
      imageUrl: "https://example.com/flight1.jpg"
      buttons:
        - id: select_flight_1
          type: button
          label: "Select"
          value: "FL001"
    - title: "Flight Option 2"
      subtitle: "$199 - 1 Stop"
      imageUrl: "https://example.com/flight2.jpg"
      buttons:
        - id: select_flight_2
          type: button
          label: "Select"
          value: "FL002"

Interactive Actions

ACTIONS:
  - id: departure_select
    type: select
    label: "Select departure city"
    options: ["New York", "Los Angeles", "Chicago"]
  - id: passenger_count
    type: input
    inputType: number
    label: "Number of passengers"
    placeholder: "1-9"
    required: true
  - id: submit_search
    type: button
    label: "Search Flights"
    value: search

submitLabel: "Submit"
submitId: search_form

Voice (SSML)

VOICE:
  ssml: |
    <speak>
      Your flight <say-as interpret-as="characters">UA</say-as>
      <say-as interpret-as="cardinal">472</say-as>
      departs at <say-as interpret-as="time">3:45pm</say-as>.
      <break time="500ms"/>
      Gate <say-as interpret-as="characters">B</say-as>
      <say-as interpret-as="cardinal">12</say-as>.
    </speak>
  instructions: "Speak clearly and at a measured pace"
  plain_text: "Your flight UA 472 departs at 3:45 PM from Gate B12."

File Attachments

  • ATTACHMENTS block declares accepted file types per category (image, document, audio, video)
  • Automatic processing: OCR for images/documents, transcription for audio, keyframe extraction for video
  • Max file size, allowed MIME types configurable
  • Channel handling normalized across web, Slack, WhatsApp, Teams, Email, Telegram
  • Upload API: POST /api/projects/:projectId/sessions/:id/attachments
  • Status tracking: scanStatus, processingStatus, embeddingStatus

15. Testing & Evaluation Framework

A complete testing pipeline built into the platform:

Components

ComponentPurpose
PersonasSynthetic user profiles with communication style, domain knowledge, behavioral traits, goals
ScenariosTest conversation scripts with initial messages, expected outcomes, milestones
EvaluatorsLLM judges, trajectory analyzers, code scorers, human review
Eval SetsBundles of personas + scenarios + evaluators as reusable test suites
RunsExecute the Cartesian product: every persona x scenario x variant, scored by all evaluators

Evaluation Pipeline

Test Data Generation -> Conversation Execution -> LLM Judge Evaluation -> Recommendation Generation

Studio Test Chat

  • Interactive testing with real-time message input/response
  • Observe tool calls, flow transitions, handoffs, guardrails in real-time
  • Metadata per message: step executed, tools called, response time
  • Trace inspection: span tree, decision points, timing
  • Session management: start new, view history, copy session ID
  • Variable state viewer: inspect current session variables

Test Personas

  • Communication styles: casual, formal, technical, terse, verbose
  • Domain knowledge levels: beginner, intermediate, expert
  • Behavioral traits and goals
  • AI-generated personas for quick setup
  • Adversarial personas: prompt_injection, social_engineering, off_topic, abusive, edge_case

Test Scenarios

  • Category, difficulty (easy/medium/hard), entry agent
  • Initial message and expected outcome
  • Max turns for conversation length
  • Expected milestones: key checkpoints the conversation should hit
  • Agent path: expected sequence of agents (for multi-agent testing)
  • Tags for filtering and organization

Evaluator Types

TypeDescription
LLM JudgeLLM scores conversations using rubric (1-5 or pass/fail)
Trajectory EvaluatorAssesses execution path: milestones, handoffs, efficiency
Code ScorerDeterministic checks via regex, keywords, thresholds
Human ReviewManual assessment by human reviewer

LLM Judge Features

  • Categories: quality, safety, efficiency, empathy, tool_correctness, custom
  • Configurable judge model (gpt-4o, claude-sonnet, etc.) and temperature
  • Chain of thought: explain reasoning before scoring
  • Bias mitigation: Position swap, blind evaluation, cross-model judge, evidence-first mode

Eval Sets & Runs

  • Eval Sets: Combine personas + scenarios + evaluators as reusable test suites
  • Cartesian product: Total conversations = personas x scenarios x variants
  • Total evaluations: conversations x evaluators
  • Concurrency control: Max concurrent conversations configurable
  • Regression detection: Compare current run vs. baseline with configurable threshold (e.g., 0.1 = 10% delta)
  • CI/CD integration: API-triggered runs, regression checks block deployments

Result Interpretation

PatternMeaningAction
High avg, low stdDevConsistently goodShip it
High avg, high stdDevGood but unpredictableInvestigate outliers
Low avg, low stdDevConsistently badReview instructions/flow
Low avg, high stdDevWildly varyingCheck specific failing scenarios

Result Details

  • Per-evaluator score breakdown with standard deviation and confidence intervals
  • Individual conversation review: full transcript, scores with reasoning, trace, milestones
  • Pass@K metric for creative tasks
  • Regression detail: evaluator, persona/scenario, baseline vs. current, delta

16. 20+ Communication Channels

Deploy agents to any channel without changing agent logic:
CategoryChannels
MessagingWhatsApp, Slack, Microsoft Teams, Telegram, Messenger, Instagram, LINE, Twilio SMS
VoiceJambonz (SIP), Twilio Voice, AudioCodes, LiveKit, BYOC SIP, Browser Voice, Kore Voice
WebWeb Chat Widget (SDK), WebSocket, AG-UI
EnterpriseZendesk, Genesys, Email
APIHTTP, HTTP Async, Agent-to-Agent (A2A)

Channel-Specific Features

ChannelRich OutputThreadingMediaStreaming
Web SDKFull (HTML, Markdown)N/AUploadSSE
SlackBlock KitThreadedFilesNo
TeamsAdaptive CardsThreadedFilesNo
WhatsAppInteractive (buttons, lists)NoMediaNo
VoiceSSMLN/AN/AReal-time
EmailHTMLThreadAttachNo
TelegramKeyboardsNoMediaNo

Web SDK Setup

import { AgentSDK } from '@agent-platform/web-sdk';

const sdk = new AgentSDK({
  baseUrl: 'https://your-instance.ablplatform.com',
  projectId: 'proj_abc123',
  channelId: 'chan_xyz789',
});

await sdk.connect({ token: 'sdk_token_here' });
const chat = sdk.chat();
chat.send('Hello!');
chat.onMessage((msg) => console.log(msg.text));

Web SDK Features

  • Modes: Vanilla JavaScript, React hooks (AgentProvider, useAgent(), useChat(), useVoice()), web component
  • Chat: Message sending, attachment uploads (25MB max), typing indicators, rich content rendering
  • Voice: Voice interaction with VAD (voice activity detection), pipeline mode and realtime mode
  • Widget: Configurable position (bottom-right/left, top-right/left), theme customization (primaryColor, fontFamily)
  • Security: Domain restriction via allowedOrigins whitelist, user context passing (id, name, email, metadata)
  • Environment targeting: dev/staging/production

Slack Integration

  • Create Slack app with scopes: chat:write, app_mentions:read, im:read/write, files:read
  • Threaded replies to keep channels clean
  • Slash commands (e.g., /ask) routing to webhook
  • Interactivity: button clicks, menu selections
  • Multi-workspace support via generic webhook URL

WhatsApp Integration

  • Meta Cloud API or third-party (Infobip, Twilio)
  • Interactive messages: buttons, lists
  • Media support: images, documents, audio, video (auto-downloaded)

Voice Channels

  • Jambonz (primary SIP gateway), Twilio, BYOC SIP, AudioCodes VoiceAI Connect
  • STT providers: Deepgram, others
  • TTS providers: ElevenLabs, others
  • SSML support for fine-grained voice control
  • Browser-based voice via Twilio Client SDK

Rich Content Across Channels

  • Multi-channel templates: DEFAULT, MARKDOWN, HTML, VOICE, ADAPTIVE_CARD, SLACK, WHATSAPP
  • Carousels with images and action buttons
  • Interactive actions: buttons, select menus, input fields with form submission
  • SSML for fine-grained voice control
  • File attachments with OCR, transcription, and key frame extraction
  • Fallback to plain text RESPOND when channel doesn’t support rich content

17. Deployment & Operations

Agent Versioning

  • Version snapshots: Capture compiled ABL definition at a point in time
  • Version status: draft, testing, staged, active, deprecated
  • Version comparison: Side-by-side diff viewer showing additions/removals
  • Promotion workflow: Promote versions through status stages
  • Validation: Compilation errors rejected before version creation

Deployment Pipeline

Development -> Staging -> Production
  • Versioned manifests: Agent name -> version mapping (or “auto” for latest)
  • Entry agent: Typically the supervisor
  • Deployment lifecycle: active -> draining -> retired
    • Active: Accepting new sessions
    • Draining: No new sessions; existing sessions complete naturally
    • Retired: Fully decommissioned
  • Rollback: Retire current, reactivate previous deployment
  • Model overrides: Per-agent model/temperature without changing ABL code
  • Auto-follow channels: Update automatically when new deployments are created
  • Only one active deployment per environment

Environment Management

  • Three built-in environments: dev, staging, production
  • Per-environment variables: referenced as {{env.KEY}}
  • Secret variables: write-only after saving (never exposed in API/logs)
  • Copy variables between environments
  • Feature flags via environment variables
  • Environment-specific model overrides and channel bindings

Git Integration

  • Supports GitHub (OAuth/PAT/GitHub App), GitLab, Bitbucket, generic Git (PAT/SSH)
  • Export format: agents/, tools/, project.yaml, project-lock.yaml
  • Push/pull ABL files between Studio and repository
  • Auto-sync with configurable conflict strategies: manual, local_wins, remote_wins
  • Auto-deploy on branch push (GitOps workflow)
  • Branch-per-environment mapping: develop->dev, staging->staging, main->production

Project Import/Export

  • Export preview: Manifest, lockfile, files, warnings with validation
  • Export format: JSON with manifest, lockfile, files map (folder or zip)
  • Import preview: Dry-run showing operations (create/update/delete)
  • Import validation: Applied with validation before changes take effect
  • CI/CD integration: Pull preview, apply if valid
  • Migration: Export from one workspace, import to another
  • Limits: 1 MB individual file, 50 MB total; max 1000 agents, 500 tools

18. Operations & Monitoring

Session Browser

  • Sortable, filterable session table with date range and agent filters
  • Full conversation transcripts
  • Agent conversation tree visualization (multi-agent branching)
  • Execution trace timeline with timing, payloads, decisions
  • Session export to CSV format

Trace System (Full Observability)

Every execution produces a span tree with these event types:
Event TypeWhat It Captures
llm_callModel, tokens, latency, prompt/response
tool_callTool name, parameters, timing
tool_resultReturn values, errors
decisionRouting decisions, condition evaluations
handoffAgent transfers with context
guardrail_evalCheck results, actions taken
state_changeVariable assignments, memory updates
errorError type, message, stack
responseFinal response sent to user
  • Real-time trace streaming during test sessions
  • Trace analysis endpoint for automated diagnostics
  • Trace search: agent:name, status:outcome, model:name, duration:>2s, tokens:>5000
  • Filter by type, decision kind, span ID
  • Metrics: latency, token usage, tool success rate, guardrail block rate

Insights Dashboard

  • KPI cards: Sessions, Messages, Tokens, Estimated Cost, Containment Rate
  • Trend charts: Volume and containment over time
  • Cost breakdown: By agent, by model, by environment
  • Agent performance: Sessions, duration, resolution rate, messages per session, tokens, cost, error rate
  • Quality monitoring: Score trends, regression alerts
  • Customer insights: User behavior patterns, satisfaction signals
  • Voice analytics: Call duration, MOS scores, jitter, latency, barge-in rate, ASR score, TTS MOS, silence percentage, turns

Voice Analytics (Detailed)

MetricDescription
Session countTotal voice calls per period
Error countFailed calls
Call durationAverage and distribution
MOS scoresMean Opinion Score (inbound/outbound)
JitterAudio quality variance
LatencyResponse time
Barge-in rateUser interruptions
DTMF fallbackKeypad-based fallback rate
ASR scoreSpeech recognition accuracy
TTS MOSText-to-speech quality
Silence %Percentage of silence in calls
TurnsAverage conversation turns

Human-in-the-Loop

  • Task inbox for approvals, data entry, review, decisions, escalations
  • SLA countdown and priority indicators
  • Transfer session monitoring across providers (SmartAssist, Genesys, NICE, Five9)
  • Human Task API:
    • GET /api/projects/:projectId/human-tasks — View pending tasks
    • POST .../human-tasks/:taskId/claim — Claim a task
    • POST .../human-tasks/:taskId/resolve — Complete a task
    • POST .../human-tasks/:taskId/assign — Reassign a task

Alerts

  • Alert rules: error rate spikes, volume changes, SLA breaches, eval score drops, deployment events, latency thresholds, token budget, abandonment rate
  • Notification channels: in-app, email, webhook

Custom Trace Dimensions

Extract business attributes from session data for segmentation and custom analytics views.

Natural Language Analytics

Query analytics data using natural language (e.g., “Show me error rate trends for the billing agent last week”).

19. API & SDKs

Authentication Methods

MethodPrefix/HeaderUse CaseLifetime
JWT Bearer TokenAuthorization: BearerStudio sessions, user actionsShort-lived
API Keyabl_ prefixServer-to-server, CI/CDLong-lived
SDK Session TokenX-SDK-Token headerEmbedded widget sessionsShort-lived
Public API Keypk_ prefixClient-side widget, origin-restrictedLong-lived

Conversation API

  • Send messages to agents, create/retrieve sessions, access conversation history
  • Streaming: SSE (Server-Sent Events) for real-time response streaming
  • Traces: Retrieve execution traces with detailed span trees
  • Sessions: Create, list, get by ID, send messages, get history

Management APIs

  • Agent Management: CRUD operations on agent definitions
  • Multi-Agent Workflows: Supervisor routing, handoff rules, delegation configuration
  • Tool Management: Create, configure, test tools (HTTP, code, MCP)
  • Deployment Management: Publish to environments, manage deployment lifecycle
  • Project Configuration: Create/update/delete projects, manage settings

Knowledge & Memory APIs

  • Memory API: GET/SET/DELETE operations on named memory stores
  • Contacts API: Create/read/update contacts, link to sessions, query with filters

Analytics APIs

  • Metrics aggregation by dimensions: category, event_type, agent_name, channel, hour, day
  • Available metrics: count, avg_duration, error_rate, p95_duration, sum_tokens, sum_cost
  • Event categories: session, message, llm, tool, agent, gather, flow, channel, deployment, search, voice, audit, evaluation, feedback, system
  • Session-level metrics, cost breakdown, session export
  • Voice analytics: Hourly aggregations with MOS, jitter, latency, barge-in, ASR, TTS metrics

Project Export/Import API

  • GET .../export/preview — Preview export metadata
  • GET .../export — Full export (manifest + lockfile + files)
  • POST .../import/preview — Dry-run import showing operations
  • POST .../import — Apply import with validation

Key API Features

  • SSE streaming for real-time responses
  • Offset-based pagination (limit/offset)
  • Rate limit headers (X-RateLimit-Remaining, Retry-After)
  • Standard error codes with clear resolution guidance
  • CORS support for widget embedding

ABL SDK (@abl/core + @abl/compiler)

FunctionPurpose
parse(text)Parse ABL text to AST
parseAgent(text)Parse agent definition
parseSupervisor(text)Parse supervisor definition
parseAgentBasedABL(text)Parse agent-based format
parseYamlABL(text)Parse YAML format
validate(text)Validate ABL, return errors
isValid(text)Boolean validity check
serialize(ast)Convert AST back to ABL text
compileABLtoIR(docs)Compile parsed docs to Intermediate Representation
validateIR(ir)Validate compiled IR
validateCrossAgentRefs()Validate cross-agent references
validateFieldReferences()Validate field references
parseCondition(text)Parse expression/condition
expressionToPython(expr)Convert expression to Python
tokenize(text)Lexer for custom tooling

20. Administration & Security

Workspace & Team Management

Resource Hierarchy: Organization (optional) > Workspace > Project Workspace Roles:
RoleKey Permissions
OwnerFull control, transfer ownership, delete workspace, manage billing
AdminManage members, models, secrets, connectors, view audit logs
OperatorDeploy agents, view analytics, manage env vars, view sessions
MemberCreate/edit agents, run tests, manage project resources
ViewerRead-only access
Project Roles: Admin (full project control), Developer (build/change project resources), Tester (verification, simulation, analytics), Viewer (read-only) Organization Roles: ORG_OWNER, ORG_ADMIN, ORG_MEMBER, ORG_BILLING Custom Roles: Tenant-scoped role definitions managed from workspace settings and used for project-level custom memberships. Canonical engineering detail lives in docs/features/workspace-sharing.md and docs/features/custom-project-roles.md. Member Management: Invite by email, pending invitation tracking (7-day expiry), resend/revoke, and role hierarchy enforcement.

Authentication

  • Email/password with optional MFA (TOTP with recovery codes)
  • Enterprise SSO:
    • SAML 2.0: ACS URL, Entity ID, attribute mapping (email, firstName, lastName)
    • OIDC: Discovery URL, Client ID, Client Secret, scopes
    • Domain verification via DNS TXT record
    • Force SSO enforcement with password fallback for Owner
  • MFA enforcement: Workspace-level with grace period (7/14/30 days)
  • JWT-based session tokens
  • API keys: Long-lived, prefixed abl_, scoped to projects, hash-based storage
  • SDK tokens: Short-lived, safe for browser
  • Channel authentication: HMAC signature, JWT, API keys

AI Model Configuration

Provider-Neutral Architecture — Register models at workspace level, assign to tiers:
TierPurposeExample Models
FastLow-latency, high-throughputHaiku, GPT-4o mini, Gemini Flash
BalancedGeneral-purposeSonnet, GPT-4o, Gemini Flash
PowerfulComplex reasoningOpus, o3, Gemini Pro
VoiceReal-time voice interactionGPT-4o Realtime, Gemini Live
Supported Providers:
ProviderModels
AnthropicClaude 4 Opus, Sonnet, Haiku
OpenAIGPT-4.1, GPT-4o, GPT-4o mini, o3
Azure OpenAIGPT-4, GPT-4o (Azure deployments)
GoogleGemini 2.5 Pro, Flash; Gemini 2.0 Flash
Amazon BedrockClaude, Titan models
Custom/LiteLLM100+ providers via unified interface
5-Level Model Resolution Chain (priority order):
  1. Deployment override
  2. Agent DSL declaration (EXECUTION.model)
  3. Agent DB config (Studio settings)
  4. Project DB config (tier mapping)
  5. Tenant default
Operation Tier Overrides: Different tiers for extraction, validation, tool_selection, response_gen, summarization, reasoning, coordination, realtime_voice Fallback Chains: Automatic retry with alternative providers on failure Context Window Management: Tool result compression, prior turn truncation, conversation compaction (triggered by compaction_threshold) LLM Policies: Allowed providers, model allowlists, daily/monthly token budgets, rate limits, demo mode Credential Management: API key validation, workspace/personal scoping, active/inactive status, last used/validated timestamps

Security Posture

AreaImplementation
EncryptionTLS in transit, application-level encryption at rest, KMS for credentials
Tenant IsolationEvery query scoped to tenantId; cross-tenant returns 404
Audit LoggingImmutable logs for all admin actions, guardrail events, deployments
PII ProtectionGATHER sensitive field masking, guardrail-based PII detection/redaction
Secret ManagementEncrypted storage, never exposed in logs/traces/API responses; reference via {{secret.KEY}}
Rate LimitingTenant, project, user, and channel level limits
Input ValidationAll API inputs validated/sanitized, payload size limits
Session SecurityProject/tenant scoped, encrypted at rest, configurable timeouts, explicit termination

KMS — Bring Your Own Key (Enterprise)

  • Envelope encryption: Key Encryption Key (KEK) from your provider wraps short-lived Data Encryption Keys (DEKs)
  • Supported providers: AWS KMS (symmetric CMK), Azure Key Vault (RSA/AES), Google Cloud KMS (AES), External KMS (any REST-compatible)
  • DEK scope: Per project/environment
  • Key rotation: Automatic (if provider supports) or manual via new key version
  • Failure modes: Fail-closed (encryption/decryption fail) or graceful degradation (cached DEKs)

Secrets & Configuration

  • Secrets: Key-value pairs with encryption, workspace or project-scoped; rotation via generate new -> update -> revoke old
  • Environment Variables: Per project, per environment; reference as {{env.KEY}}; secret flag hides value in UI; bulk import via .env or CSV
  • Workspace Guardrails: Content safety categories with configurable thresholds (0.0-1.0) and actions (block/warn/log) at workspace level; layered with project-specific policies

Connectors & Integrations

CategoryConnectorsAuth Types
MessagingSlack, Teams, WhatsApp, TelegramOAuth 2.0, API key
CommunicationTwilio, SendGrid, SMTPAPI key, basic auth
CRMSalesforce, HubSpot, ZendeskOAuth 2.0, API key
WebhooksInbound/outbound webhook supportHMAC, API key
CustomAny REST API via HTTP connectorConfigurable
Connectors have lifecycle states: active, expired (OAuth refresh needed), revoked. Schema discovery auto-detects available data fields.

Compliance

FrameworkStatus
SOC 2 Type IIMaintained (independently audited)
GDPRCompliant (data minimization, right to erasure, data portability, DPA available)
ISO 27001Aligned
CCPACompliant
HIPAAReady (Enterprise plan with BAA)

Data Protection

  • Data retention: Configurable per tenant, auto-purged
  • Right to erasure: Cascading deletion across all services
  • PII handling: Detection, tokenization, redaction in logs
  • LLM provider data: Varies by provider (Anthropic, OpenAI, Azure, AWS data policies)
  • Data residency: Region-specific deployments available
  • Responsible disclosure: security@ablplatform.com with 2-day acknowledgment, 5-day assessment SLA
  • Data Processing Agreement (DPA): Available on request

21. Billing, Plans & Limits

Plan Tiers

FeatureStarterProfessionalEnterprise
Members525Unlimited
Projects320Unlimited
Sessions/month1,00050,000Unlimited
Tokens/month1M50MUnlimited
LLM Providers2AllAll
Knowledge Bases1 KB, 100 docs, 10MB20 KB, 10K docs, 100MBUnlimited
ConnectorsYesYes
GuardrailsBasicFullFull + custom
SSOSAML + OIDC
KMS (BYOK)Yes
SLABest effort99.9%99.95% + custom
SupportCommunityStandard (1 biz day)Premium (1 hour critical)

Usage Tracking & Billing

  • Credit model: Allocated credits with burn rate tracking and low-credit alerts
  • Usage metrics: Sessions, messages, tokens, tool calls, estimated cost
  • LLM usage analytics: Daily trends by provider, model, agent
  • Billing periods: Monthly or annual with monthly tracking
  • Alerts: Credit low, usage threshold, health degraded, feature limit, SLA breach

Platform Limits

CategoryLimits
Rate LimitsAuth routes: 20/15min; API routes: 100/min; Chat: configurable
Payload10MB request, 1MB webhook, 25MB file upload, 100MB batch
SessionMax concurrent, configurable age/idle/service timeouts
Data RetentionSessions: 30d, Messages: 90d, Traces: 30d, Audit: 90d (configurable)

22. Deployment Options

OptionDescription
Cloud (SaaS)Default. Sign up, open Studio, start building. Nothing to install or manage.
Self-Hosted (Enterprise)On-premises deployment for data residency/compliance requirements. Same capabilities.

Self-Hosted Requirements

RequirementMinimum (Dev)Recommended (Production)
CPU4 cores16+ cores
Memory16 GB RAM64+ GB RAM
Storage50 GB SSD500+ GB NVMe
RuntimeDocker 24+, Node.js 20 LTSKubernetes 1.28+
DatabaseMongoDB 7.0+ (replica set)MongoDB 7.0+ (replica set)
CacheRedis 7+ (persistence, TLS)Redis 7+ (persistence, TLS)
AnalyticsOptionalClickHouse

Self-Hosted Services

ServicePortPurpose
Runtime3112Agent execution engine
Studio5173Browser IDE
Admin3003Administration console
SearchAI3113Knowledge pipeline
SearchAI Runtime3114Knowledge search
Docling8080Document processing (Python)
BGE-M38000Embedding model (Python)
Preprocessing8003Text preprocessing (Python)

Self-Hosted Security Checklist

  • TLS on all endpoints
  • 256-bit encryption key
  • 32+ character JWT secret
  • Auth enabled on MongoDB/Redis
  • PII detection enabled
  • Rate limiting configured
  • IP allowlist
  • Audit logging enabled

Operational Features

  • Health checks: /health on Runtime/Admin, /api/health on Studio/SearchAI
  • Scaling: Stateless Runtime/SearchAI behind load balancer; session state in Redis; shared state in MongoDB
  • Zero-downtime upgrades: Rolling updates with maxSurge:1, maxUnavailable:0, graceful WebSocket drain
  • Vault providers: Environment vars, file, HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, K8s Secrets
  • Database migrations: Auto-applied on startup; manual migrations available via CLI

23. Competitive Differentiation

CapabilityAgent Platform 2.0LangGraphCrewAIBedrock Agents
Agent definitionDeclarative DSLPython codePython codeConsole + SDK
Per-step reasoning controlYesManualNoNo
Multi-agent orchestrationBuilt-in (supervisor, handoff, fan-out, delegation)Graph-basedRole-basedSingle agent
Communication channels20+ built-inCustomCustomLimited
Visual editorStudio (visual + code)LangGraph StudioNoConsole
Knowledge/RAGIntegrated (SearchAI)CustomCustomKnowledge bases
GuardrailsDSL-level (input + output + streaming)CustomCustomBedrock Guardrails
Evaluation frameworkBuilt-in (personas, scenarios, LLM judges)LangSmithNoNo
Multi-tenant isolationPlatform-levelCustomCustomAWS IAM
Voice supportNative (6+ voice channels)CustomNoNo
Human-in-the-loopBuilt-in (task inbox, approvals)CustomNoNo
DeploymentHosted or self-hostedSelf-hostedSelf-hostedAWS only

24. Industry Examples

The platform includes production-quality agent templates across industries:
IndustryExampleScale
BankingJupiter: 12-agent retail bankingCredit cards, loans, deposits, fraud, disputes
AirlinesSkyConnect: 6-agent travel serviceFlight search, booking management, policy advisor
RetailFace Frames: 5-agent optical storeProduct discovery, order management, returns
TelecomNOC Supervisor: network operationsAlarm triage, outage detection, vendor dispatch
HealthcarePatient assistantAppointment scheduling, symptoms, prescriptions
TravelHotel booking with parallel searchFlights + hotels + activities fan-out
InsuranceClaims processingIntake, assessment, routing, approval workflows

Orchestration Pattern Templates

PatternDescription
Sequential PipelineA -> B -> C chain processing
Router/DispatcherCentral router to specialists
Hub-and-SpokeCoordinator with satellite agents
Parallel Fan-outMultiple agents in parallel, merge results
Tiered EscalationL1 -> L2 -> Human with de-escalation
Human-in-the-LoopAgent + approval gates
Specialist SwarmCoordinator spawns specialist teams
Event-Driven ReactorAgents respond to system events

Integration Patterns

PatternDescription
API GatewayTool-based REST calls to backend services
OAuth 2.0 ConnectorsSlack, Salesforce, HubSpot with auto-refresh tokens
Webhook IngestionInbound events trigger agents via channel webhooks
Agent-to-Agent (A2A)REST API or internal handoff protocol between agents
Async Approval ChainsMulti-step human approval workflows with webhook callbacks

25. Developer Experience

Getting Started (Under 5 Minutes)

  1. Sign up at ablplatform.com (no installation required)
  2. Create a project in Studio (or use AI-Guided Wizard)
  3. Paste a 20-line ABL definition
  4. Test in the built-in chat playground
  5. Deploy to a web widget or any channel

Development Workflow

Tutorial Path

TutorialTopicDurationLevel
1Build your first agent~30 minBeginner
2Build a scripted flow~25 minBeginner
3Multi-agent & knowledge bases~45 minIntermediate
4Safety, testing, publishing~45 minIntermediate

26. Community & Support

Getting Help

ChannelDescription
DocumentationComprehensive docs within Studio
Community ForumCommunity forum for builders
SlackCommunity Slack workspace
Stack OverflowTag: abl-platform
In-app SupportBuilt into Studio
GitHub IssuesBug reporting with component labels
Public Roadmaproadmap.ablplatform.com with priority voting

Support Tiers

TierResponse TimeAvailability
CommunityBest effortForum/Slack
Standard1 business dayEmail/tickets
Premium4 hoursDedicated channel
Enterprise1 hour (critical)Dedicated + phone

Uptime Commitments

PlanSLA
FreeBest effort
Starter99.5%
Growth99.9%
Enterprise99.95%

Incident Response

Detection -> Acknowledgment (15 min) -> Investigation (30-min updates) -> Resolution -> Post-mortem (5 business days) Status monitoring: status.ablplatform.com with email/RSS subscriptions.

Partner Program

Early access to features, technical support, co-marketing, training materials, and partner directory listing.

27. Glossary of Key Terms

TermDefinition
ABLAgent Blueprint Language — the enterprise control plane for agentic AI
AgentAutonomous unit with goal, persona, tools, and rules
SupervisorCoordination layer that routes conversations to specialist agents
HandoffContext-preserving transfer of conversation to another agent
DelegateSynchronous sub-agent invocation (call-and-return)
EscalateTransfer to a human agent with full context
Fan-outParallel delegation to multiple agents, merged results
FlowStep-based execution with deterministic transitions
ReasoningLLM-driven autonomous decision-making (default mode)
GatherStructured data collection from natural conversation
GuardrailSafety policy enforced on input, output, or streaming content
ConstraintBusiness rule with enforcement action on violation
SessionStateful conversation between user and agent(s)
ThreadAgent activation within a session (each agent gets its own thread)
TraceExecution record with span tree of all events
Knowledge BaseDocument collection with vector embeddings for semantic search
RAGRetrieval-Augmented Generation — search + LLM
IRIntermediate Representation — compiled ABL ready for execution
ChannelCommunication endpoint (web, Slack, WhatsApp, voice, etc.)
TenantIsolated workspace with its own data, users, and configuration
ProjectContainer grouping agents, tools, knowledge bases, and settings
Model TierAbstraction layer: Fast, Balanced, Powerful, Voice
MCPModel Context Protocol — standardized tool server interface
NLUNatural Language Understanding — intent classification and entity extraction
SSMLSpeech Synthesis Markup Language — voice output control

28. Summary: Why Agent Platform 2.0

  1. Fastest path from idea to production agent — 20-line ABL definitions, browser IDE, AI-guided project creation, no infrastructure to manage
  2. Unique per-step reasoning control — Mix deterministic and LLM-driven steps in one agent, controlling cost, latency, and predictability
  3. Enterprise multi-agent orchestration — Supervisors, handoff, delegation, fan-out, escalation, and human-in-the-loop as first-class DSL constructs
  4. 20+ channels out of the box — Web, voice, WhatsApp, Slack, Teams, and more — agent logic stays the same
  5. Integrated RAG pipeline — Upload documents, configure search strategies, connect live data sources — no custom retrieval code
  6. Built-in evaluation framework — Personas, scenarios, LLM judges, trajectory evaluators, regression detection, CI/CD integration
  7. Enterprise security as a foundation — SOC 2, GDPR, multi-tenant isolation, encryption, guardrails, audit logging, KMS/BYOK
  8. Provider-neutral LLM support — Anthropic, OpenAI, Google, Azure, Bedrock, custom — with 5-level resolution cascade and automatic fallback chains
  9. Full observability — Trace every LLM call, tool invocation, decision, and handoff with span-level timing and natural language analytics
  10. Visual + code development — Teams collaborate with each member using their preferred editing mode, with AI Architect assistance
  11. Complete lifecycle management — Version control, Git integration, environment management, GitOps workflows, import/export, rollback
  12. Flexible deployment — Cloud SaaS or self-hosted with Kubernetes, Docker, and full operational tooling