Supervisor + sub-agents with routing
The supervisor inspects each user message, picks an action (a specific sub-agent or supervisor itself for small talk), and runs it. routing_info in the chat response tells you which action was selected and why.
The Agent service runs multi-step AI workflows where a supervisor agent receives the user request and, at each step,
Learn more about AgentAgents are configured, not prompted once — define your supervisor and sub-agents, wire up their collections and routing, then talk to the whole team through one endpoint.
Create an agent and its sub-agents
Configure routing, tools and collections
Chat with it from your app via core-agent-chat
No account yet? Start free — 100 credits, no card.
The Agent service runs multi-step AI workflows where a supervisor agent receives the user request and, at each step, routes to the right sub-agent based on the request intent and the sub-agent triggers (keywords/description). Sub-agents are specialists with their own action profile (persona, goal, response style), optional RAG over a collection, and their own model + temperature. The supervisor and sub-agents share a graph definition (you describe it during create / update). Ideal for customer-facing helper bots, support triage, and any flow that benefits from intent-based routing across multiple specialists.
The supervisor inspects each user message, picks an action (a specific sub-agent or supervisor itself for small talk), and runs it. routing_info in the chat response tells you which action was selected and why.
Each sub-agent has trigger {keywords, description}, priority, action {persona, goal, response_style}, model_name, temperature, optional output_schema, and optional RAG (use_rag + collection_key).
Sub-agents can be RAG-enabled (use_rag:true + collection_key). When the supervisor routes a question to that sub-agent, it retrieves from the linked collection before answering.
Send via POST core-agent-chat for a full response. Add stream:true to the same endpoint for OpenAI-compatible SSE streaming (chat.completion.chunk events ending with [DONE]).
Agent calls open or continue conversation_key threads. List, inspect or delete via the agent-conversation endpoints.
Helper bot for your customer base
A single supervisor serves your customers; routes by intent (FAQ, product, billing, technical) to dedicated sub-agents. Consistent tone, with escalation when needed.
Support triage
Incoming requests classified by intent and routed to billing / technical / general support sub-agents.
RAG over multiple knowledge bases
Different sub-agents can read from different collections — e.g., 'product-docs' for one sub-agent, 'help-center' for another. Supervisor picks the right one per question.
Mixed reasoning + retrieval
Combine sub-agents with RAG (knowledge questions) and sub-agents without RAG (general reasoning). The supervisor routes by intent.
input
Agent configuration (name, system_message, model_name, temperature, optional collection_ids and per-sub-agent action profiles), and chat messages with optional conversation_key
output
Agent metadata, sub-agents (with trigger/action), graph state, and chat responses with routing_info and (optionally) sources
agent_keyrequiredstringAgent identifier (ag_ prefix). Field name is consistent across the agent endpoints (unlike core-chat which uses chatbot_id).
messagerequiredstringUser message
conversation_keystringOptional cv_-prefixed key to continue an existing conversation. Omit to start a new one.
streamboolean · default: falseSet true to receive the response as SSE (OpenAI-compatible chunks).
data.responsestringFinal user-facing response text.
data.agent_keystringEchoed agent_key (ag_ prefix).
data.conversation_keystringConversation identifier (cv_ prefix). Pass back to continue.
data.routing_infoobjectRouting decision: { selected_action ('SUPERVISOR' or 'SUB_AGENT'), action_name, reason, intent }.
data.frontend_triggerobjectOptional payload the agent emits to trigger frontend behavior (e.g. open a form).
data.data_collectionobjectOptional structured data the agent wants to collect from the user.
data.sourcesarrayRAG sources used by the selected sub-agent (empty when use_rag is false or no relevant chunks).
Pay for create/update operations and chat. List, details, and delete are free.
| Service | Unit | Price |
|---|---|---|
| Create Agent | item | $1.0/agent |
| Update Agent / Update Graph / Add Sub-Agent / Update Sub-Agent | item | $0.5/operation |
| Chat (REST or SSE) | token | $0.001/call (currently flat — see note below) |
| List, Details, Delete | item | Free |
core-agent-chat streaming bills per token (2 credits per 1K); non-streaming calls currently bill a negligible flat amount until token metering lands there too.
Multi-step agent runs (supervisor + multiple sub-agent calls) do more underlying model work than a single LLM call — the current flat billing does not reflect this.