Vettero
Build

Agents

LLM-driven assistants with prompts, tools, RAG, guardrails, and channel-aware behavior.

Agents are LLM-driven workspace resources. You define a task prompt, attach tools and knowledge, set guardrails and channel behavior, then run or preview the agent in real time.

When to use

  • Build a conversational assistant for chat, voice, or general (tool-callable) use
  • Ground answers with knowledge bases, tools, and structured arguments
  • Keep behavior constrained with guardrails, context limits, and human approval on tools

Create an agent

Open Build → Agents and create a new resource.

  1. Name (min 2 characters), optional Description.
  2. Channel — how the agent runs:
ChannelRole
GeneralFunctional agent — callable as a tool or from workflows/functions; not a chat surface
ChatIn-app / chat-style conversations
VoiceVoice calls with separate STT and TTS
Realtime VoiceEnd-to-end realtime audio model (agent-only)

After create, Vettero opens the agent builder. You can also open an existing agent from the Agents list.

Open the builder

The builder has a left activity bar, a main panel, and (on Config) a Preview pane on the right. Use Save in the header when the config is valid.

Activity bar

PanelPurpose
ConfigTask, Input, accordion settings, and Preview
IntegrationsWeb and In App chat integrations for this agent (shown when the agent has a channel)

Write the task and input

On Config, above the accordion:

FieldRole
TaskSystem / behavior prompt. Supports LiquidJS templates, # tool mentions, @ resource mentions, and {{ … }} variables. Menu: Refine Prompt. Build with AI opens Studio to edit this assistant.
Input (Optional)Treated as the first user message (for example a greeting). Same LiquidJS / {{ … }} support as Task.

Write clear identity, allowed topics, which tools to call, and when to hand over or escalate. For prompt, LLM, and settings tips, see Prompts.

LiquidJS and {{ … }}

Task and Input support full Liquid templates (output, tags, filters) against the run context. Autocomplete suggests schema fields when you type {{. See Variables for Liquid syntax, filters, tags, env vars, and path bindings.

# tool mentions

Type # in the Task editor to pick a tool from the same tree as Manage Tools (blocks, agents, workflows, functions, skills, APIs, MCP, knowledge bases, queries, service tools, chat widgets, and so on).

  • Inserts a # mention in the prompt so the model is told about that tool.
  • Selecting a tool mention adds it to the Tools list if it is not already attached.
  • Use # when the agent should be able to call that capability.

@ resource mentions

You do not know workspace resource ids. Type @ for autocomplete and pick a resource by name (not the same as attaching a callable tool).

@ typeWhat you reference
Agent / WorkflowAgent or workflow
ServiceA connected third-party service
TableA workspace data table
KbA knowledge base
Chat ProfileA chat profile (for example handover targets)
Role / UserWorkspace roles and members
WhatsApp templateAn approved WhatsApp template (when available)
  • You keep seeing the name in the editor. The stored token is the id (@type:id, for example @kb:…, @chat_profile:…), which is what the agent needs (for example to pass into a tool call).
  • Use @ so the prompt can point at a concrete resource (handover profile, KB, table, person) without you copying ids.
  • Table, chat profile, user, and role mentions are prompt references only and are not auto-added as tools. Attach callable tools with # or the Tools tab.

Channel visibility

Which accordion sections appear depends on channel and whether the agent is conversational. On the main agent builder, a channel agent is treated as conversational.

SectionChatGeneralVoiceRealtime VoiceNotes
BasicYesYesYesYes—
LLMText LLMText LLMText LLMRealtime Voice LLM—
Voice Config——STT/TTS + callCall behavior onlyVoice channels only
RAGYesYesYesYesHidden when non-conversational
ToolsYesYesYesYes—
GuardrailsYesYesYesYesEffective on chat/text runs (see Guardrails)
ArgumentsYesYesYesYes—
ResultYesYesYesHiddenNeeds structured-output model
SuggestionsYes———Chat channel only (General is functional)
StartersYesYesYesYesHidden for WhatsApp / non-conversational
ContextYesYes——Hidden for voice / realtime
STMYesYes——Hidden for voice / realtime

General is a functional (tool-callable) agent — Suggestions apply to Chat only.

Configure Basic

Identity for the assistant:

SettingWhat it does
NameDisplay name in lists and the builder header
DescriptionShort summary of what the agent does

On the main Agent page, name and description may be read-only in the builder — edit them on the Agent details page instead.

Configure the LLM

Powers replies (or realtime audio).

Text / chat / voice (non-realtime)

SettingWhat it does
ProviderConnected LLM service under Integrations
ModelText-generation (or capability-filtered) model
Max TokensOptional cap; empty means unlimited (provider default)
Temperature0–2 when the model supports it (default 1.1)
Enable reasoningWhen the model exposes reasoning controls
Reasoning EffortModel-dependent (for example low / medium / high)
Reasoning Budget (tokens)Optional token budget for reasoning
Reasoning SummaryNone / Auto / Concise / Detailed

Realtime Voice

Uses a separate realtime config instead of the text LLM:

SettingWhat it does
ProviderRealtime-capable voice provider
ModelAudio / realtime model
VoiceSpeaking voice for the session
Enable input transcriptionSpeech-to-text of the user for chat history (separate ASR pricing); optional transcription model

Changing provider clears model/voice; changing model clears voice.

Configure Voice Config

Shown for Voice and Realtime Voice only.

STT / TTS (Voice channel)

Required before voice preview works:

SettingWhat it does
STT Service / STT ModelSpeech-to-text for the caller
TTS Service / TTS Model / TTS VoiceText-to-speech for the agent

Realtime Voice hides STT/TTS (the realtime model handles audio).

Call behavior (both voice types)

SettingDefaultWhat it does
Max call duration (minutes)15Hang up after this length (1–60)
Silence reprompt count2Check-ins after silence before hangup (0–10)
Silence before reprompt (seconds)10Idle time after the agent finishes before a check-in (0–30)
Silence reprompt instructionsBuilt-in promptWhat to say on silence check-in (max 500 characters)

Configure RAG

Conversational agents only. Attach a knowledge base so the agent can retrieve grounded content.

SettingWhat it does
Create New / Attach ExistingBind a knowledge base
Manage / DetachOpen the KB or remove the binding
RAG StrategyAgentic — model calls the KB as a tool (default). 2-Step — retrieve before the turn and inject chunks. Hybrid — both
Top KHow many chunks to retrieve (default 3)

If the selected model lacks tool-calling, strategies remain editable but retrieval may be unreliable for agentic modes. You can also mention a knowledge base in the Task with @kb:… or attach it as a tool on the Tools tab.

Configure Tools

Select tools the agent can call. The model must support tool-calling; otherwise the tools UI is blocked with a warning.

Use Manage Tools to pick callable tools, grouped for example as:

GroupWhat you attach
ServicesTools from connected accounts (blocks/actions the integration exposes)
BlocksWorkspace/block tools, including Send Notification for the in-app bell inbox. Recipients are workspace members and/or roles. Tenant-wide send is not available on agents.
Agent / WorkflowOther agents or workflows as tools
FunctionFunctions
SkillsSkills. Selecting at least one skill also attaches get_skill, which loads the skill body by name.
Chat WidgetChat widgets as renderable tools
Table/QueryTables and queries
Api / MCPAPI schemas and MCP integration tools
KbKnowledge bases as retrieval tools
WhatsApp templatesWhatsApp templates when available for the channel

Typing # in Task and selecting a tool also attaches it to this list.

Tool approval

When a tool requires approval, the agent pauses the chat/run until someone approves or rejects. On reject (or non-approval), the tool is not executed and the model is told the outcome.

ModeBehavior
No approvalTool runs without a human gate
Require role approvalSelect one or more workspace roles. An approval request is created for those roles and appears on the Approvals page. Any user with one of those roles can approve or reject. If the current chat user already has an approval role, they can approve inside the chat without leaving the conversation.
Require current user approvalThe current chat user must approve (chat channel only)

For workflow Request Approval / Request Information blocks and the Approvals UI, see Approval Flow.

Configure Guardrails

Guardrails are on by default. The Policy is added to the task. Put {{ ctx.rejectionPolicy }} in the task to choose where it goes. If you leave it out, the policy is appended.

SettingWhat it does
Enable GuardrailsTurns the feature on. The policy cannot be empty
PolicyRequired text. It is added to the task, and the checker enforces it
Fallback MessageDefault: I cannot help with that request.
Enable ModeratorOptional LLM or TypeSafe checker. Each check is an extra call, so cost and delay go up
Check InputScan the latest user message before the model
Check OutputScan the reply. On deny, replace it with the fallback
Per replyOne check when the reply finishes
Per sentenceA check at the end of each sentence while the reply streams
ModeratorTypeSafe or LLM. The question is built from the policy

In a live chat the user sees the reply until the checker rejects it. The text is then replaced with the fallback.

The policy is still added on voice and realtime voice. The checker does not run there.

Configure Arguments

Optional JSON Schema for structured inputs into the run.

SettingWhat it does
Enable ArgumentsTurns args on; turning off clears the schema
Arguments schemaObject-root JSON Schema builder

Use Liquid {{ args.fieldName }} (and other rendered variables) in Task and Input. In Preview, Edit Args fills values for the session.

Configure Result

Hidden for Realtime Voice. When enabled, the agent returns a structured JSON result instead of plain text.

SettingWhat it does
Structured result (JSON Schema)Requires a model with structured-output; cleared automatically if the model does not support it
Result schemaJSON Schema for the structured payload

Configure Suggestions

Chat channel only (not General — General is a functional agent). Also hidden for voice, realtime voice, and WhatsApp. Suggests follow-up replies during conversations.

SettingDefaultWhat it does
Enable SuggestionsOffTurn suggestions on
Number of Suggestions3How many suggestions to generate
Number of Messages to Keep10Recent messages used as context
Custom LLM for SuggestionsOptionalSeparate text-generation + structured-output LLM

Configure Starters

Up to 5 prompts shown as buttons when a chat starts with no messages. The user taps one to send it as their first message. Hidden for voice, WhatsApp, and non-conversational setups. Add or remove starter message strings in the list.

Configure Context

Conversational text channels only (hidden for voice / realtime voice). Controls how long histories are kept.

SettingDefaultWhat it does
Enable Context ManagementOffTurn trimming/summarization on
Context Management StrategyTrimTrim Old Messages or Summarize Old Messages
Trigger Messages Count100Start managing when history reaches this many messages (min 10, step 10)
Messages to Keep10How many recent messages to retain
Custom LLM for SummarizationOptionalOnly when strategy is Summarize

Configure STM

Conversational text channels only (hidden for voice / realtime voice). STM is Short-Term Memory for files (and vision when applicable).

SettingWhat it does
Load Files into STMLoad uploaded files into short-term memory. Requires tool-calling; disabled with a warning otherwise
Non-text modalitiesIf the model accepts image (or other non-text) input, those file types load automatically even when the toggle is off

Preview and debug

The right pane tests the live configuration.

ControlWhat it does
Start PreviewBegins a preview session (config must be valid; save when dirty)
Text Chat / Voice ChatVoice channel: pick text or full voice (voice needs STT/TTS complete)
Realtime VoiceConnect mic, mute/unmute, end call; optional text fallback if speech is missed
DebugToggle debug output for the session
Edit ArgsSet Argument values for this preview (empty if Arguments are off)
ResetClear the preview session and start over

Fix validation errors from the Config panel before preview will start.

Where agents are used

PlaceHow
Chat integrationsWeb widget or in-app sidebar chat bound to this agent
ChannelsDefault agent for inbound chat/voice, or start a chat on a channel with a chosen agent
Other agentsAttached as an Agents tool
WorkflowsAgent blocks / tools that run or hand off to an agent
FunctionsBound agent resource and await vt.runAgent(key, input?) (general channel)
MCP ServersExpose workspace agents as tools on an MCP server when configured
ScheduleOne-time runs that start this agent
TrashSoft-deleted agents can be restored within retention

Limits and tips

  • Pick a model with tool-calling if you need tools, agentic RAG, or Load Files into STM.
  • Structured result and suggestion LLMs need structured-output support.
  • The guardrail policy is part of the task. The optional checker is a separate LLM or TypeSafe call and adds cost.
  • Starters max out at 5 agent-opening messages.
  • Tool approvals pause the run until approve/reject; role holders use Approvals (or in-chat when they hold an approval role). See Approval Flow.
  • Voice preview needs STT/TTS (Voice) or provider + model + voice (Realtime Voice) before a voice session can start.
  • Channel choice at create time drives which Config sections you see; change channel-related behavior carefully when switching surfaces.
Copyright © 2026