AAssemblix
Dialogue workflows · text, voice & avatar · scored · self-hostable

Build conversational AI agents.

Design the whole dialogue as a graph — branching logic, any LLM, your own docs. Run it as text, real-time voice, or a lip-synced AI avatar. And let workflows score every conversation while it happens.

No credit card·Free tier·Source-available
OpenAIGeminiOpenAI RealtimeGemini LiveElevenLabsAnam

The real editor — building a conversation graph, then switching its output to voice and to a live avatar.

A 45-second narrated walkthrough of Assemblix. It opens on the point that a single prompt cannot hold a real conversation. The screen then shows the Assemblix editor: a node palette on the left with Agent, Sticker, End, Transcribe, Condition, Delay, Set Variable and HTTP Request, and a canvas where a conversation graph is assembled — Start connects to an Agent node running gpt-4.1-nano, which branches through a Condition node into separate paths and an End node. The agent's settings panel opens on the right, showing the model picker, instructions, chat history, voice input, streaming, tools, knowledge bases and a response format selector. The Output field is switched to AI avatar, and the avatar configuration appears: provider Anam, avatar model Cara, a list of selectable avatar personas, and a voice picker. The walkthrough then shows the three output modes an agent can use — plain text, real-time streamed voice, or a live lip-synced AI avatar — and finishes on knowledge bases: PDFs and Markdown files are uploaded into a knowledge base that a support agent queries so its answers stay grounded in your own documents.
01 / Dialogue builder

Build conversational agents visually.

A prompt can't hold a real conversation. A graph can. Drag nodes, wire the branches, publish — the flow of the dialogue is the thing you edit, not a wall of instructions.

The Assemblix editor: node palette on the left, a sales-training conversation graph on the canvas with a classifier agent branching through condition nodes into six phrase agents

A real agent — classifier → condition → six branch agents, each on its own model.

01

Branch on anything

Condition nodes route the conversation on intent, on state, on a tool's answer. Every path is visible, so nothing hides inside a prompt.

02

A model per node

Classify on a cheap fast model, reason on a strong one. The provider is a property of the node, not of the project.

03

Real nodes, not blocks

Agent, Condition, Delay, Set Variable, Transcribe, HTTP Request. Reach anything over HTTP, then keep going in the graph.

02 / Layers

Text, voice, or avatar — one switch.

Most tools make you pick the channel up front and rebuild the bot to add voice. Here the modality is a layer on top of the dialogue you already built — a field on the agent, not a second project.

Refund policy agentOpenAI · gpt-4oOutput

Text

Plain chat replies.

VoiceRealtime

Speaks out loud, streamed live as it thinks.

AI avatar

A talking face on screen.

VoiceElevenLabs · realtimeOn

Realtime streaming

Speak as the agent thinks

RachelVoiceWarm · natural · en-US
AI avatarAnam · lip-syncedOn
A live lip-synced AI avatar answering on camera
AnaRealtime avatar persona
Lip-synced

Voice input works the same way in a graph — drop a Transcribe node in front of the agent and the workflow takes speech as well as it takes text.

New

And when the conversation has to be fast: realtime voice agents.

A graph is the right shape for a dialogue you design. It is the wrong shape for a phone call — anything that waits for a graph to finish sounds like someone reading from a script. So a voice agent is a prompt and a voice running straight against a speech-to-speech model, with nothing on the path to the reply.

Read the voice agent docs
≈0.5s to answer
Fast enough to interrupt, and it stops when you do.
OpenAI Realtime or Gemini Live
The crispest barge-in, or markedly better non-English speech across 70+ languages. A dropdown, not a rebuild.
Every call recorded
Transcript, duration and cost per call — and a session API so the same call runs inside your own product.
03 / What people build

Conversations someone has to act on afterwards.

The pattern repeats: an agent talks to a person, and the transcript is worth something to the business. Assemblix is the builder for the first half and the engine for the second.

Voice assistants

Take the call, answer the question, book the appointment. Sub-second replies mean callers talk to it instead of waiting through it.

voice

Lead qualification

Talk to the lead, then classify and score them in the background and push the result into your CRM before the call is even over.

textvoicescoring

Sales agents

Walk a prospect through the pitch as a branching graph — and grade every conversation against criteria you wrote yourself.

textvoicescoring

Employee training

The agent plays the difficult customer. An analysis workflow scores how the rep handled it and hands back the transcript with the breakdown.

voiceavatarscoring

Education & language practice

Conversational drills and knowledge checks where the agent does the talking and a workflow marks the answers.

voiceavatarscoring

Interviews & surveys

Run structured interviews or NPS calls at any volume, then pull structured answers out of every transcript automatically.

voicescoring

Internal help desk

Ground an agent on your own PDFs and Markdown, then let staff ask it questions by chat or out loud.

textvoice

Agents inside your product

Every workflow is a typed HTTP endpoint and every voice agent has a session API — the conversation runs behind your own UI.

textvoice

None of these are templates you are locked into — they are the same four layers wired differently.

04 / Analysis

Every conversation, scored.

A voice platform hands you a recording. Assemblix hands you the recording and the engine that reads it — because the visual builder you used for the dialogue is also the one you use for what happens to it.

Per turn

Fires on everything the caller says

Each finished utterance starts a workflow, with the agent's previous reply for context — enough to detect intent, catch a complaint, or update a record mid-call.

On hang-up

Fires once, with the whole transcript

The full conversation flattened into text plus the structured turns, the duration, and why the call ended.

What the final hook receivesJSON
{
  "message": "user: I'd like to return an order\nassistant: …",
  "voice": {
    "session_id": "vs_8f21c4",
    "transcript": [
      { "role": "user", "text": "I'd like to return an order" }
    ],
    "duration_sec": 74.2,
    "end_reason": "user_hangup"
  }
}
What your workflow writes backAnalysis run · 1.2s · linked to the call
Discovery8/10
Objection handling6/10
Next step agreed9/10
intent
"return_request"
order_id
"A-40912"
sentiment
"frustrated"
crm_pushed
true

The conversation never waits

Hooks run in the background. The agent keeps talking at full speed no matter how slow the analysis is.

Analysis observes, it does not steer

A hook cannot end a call or change the reply. A failing workflow is logged and dropped — it can never break the conversation.

They are ordinary workflows

Nothing about them is voice-specific. Build them on the same canvas, run them by hand, replay them in the execution viewer.

05 / Grounded and stateful

It remembers, and it knows your docs.

Two things separate an agent from a chat widget: it carries context across turns, and it answers from your material instead of guessing.

Agents that remember

Typed workflow and agent state carries context across every turn — set it, branch on it, watch it update. The values live in Postgres, so a conversation survives restarts, deploys, and weeks of silence.

Agent stateLive
turn
3number
current_stage
"connection""closing"updated
cart_total
49number
refund_requested
trueboolean
customer_name
"Alex"string

Answer from your own docs

Upload PDFs, paste text, attach the knowledge base to any agent. It retrieves over your material and answers with citations — no fine-tuning, no separate vector database to run.

PDFReturn policy.pdf14 pages
MDSupport FAQ.md62 answers
PDFPricing 2026.pdf6 pages
Company knowledge3 docs · 128 chunks · vector search on
Support agentAnswers with citations from your docs
06 / Build and debug

Test it instantly. Replay every run.

Run the agent in the debug panel — type or talk — and watch each step as it happens. When something goes wrong in production, open the run and walk it back step by step.

The Assemblix debug panel running an agent live, with the state inspector on the left and a step-by-step trace on the right
Debug chat · live stateEvery step lands in the trace with its duration — and the state panel updates as the run moves.
Execution replay in Assemblix showing state after each step, the model request, input data and duration for a completed run
Execution replay · step by stepInspect each model call, every variable, and every branch the agent took — after the fact.
07 / Workflows-as-API

Every agent is also a typed endpoint.

Hit publish and you get POST /api/workflows/wf_… with bearer auth and a stable contract. Put it behind your own product, your own UI, your own funnel — no separate deploy, no infrastructure code.

Call your agentcURL
curl -X POST https://app.assmblx.com/api/workflows/wf_a3f2 \
  -H "Authorization: Bearer $ASSEMBLIX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": { "message": "I want a refund" },
    "state": { "user_id": "u_42" }
  }'
Response200 OK
{
  "executionId": "exec_d7c9b585",
  "status": "completed",
  "output": {
    "parsed_message": {
      "intent": "refund",
      "confidence": 0.94,
      "next_action": "check_policy"
    },
    "tool_executions": []
  },
  "state": { "user_id": "u_42", "turn": 3 },
  "metadata": { "durationMs": 850, "totalSteps": 3 }
}

Postgres-backed state · Webhooks, REST, schedules · Every run traced and replayable.

08 / Vendor-neutral

Any provider. Your own keys.

Nothing here is locked to one vendor. Bring your own keys for the model, the realtime voice, the synthesis, and the avatar — and swap any of them without rebuilding the agent.

Bring your own keys · vendor-neutral

  • OOpenAILLM
  • GGeminiLLM
  • DDeepSeekLLM
  • OOpenAI RealtimeSpeech-to-speech
  • GGemini LiveSpeech-to-speech
  • EElevenLabsVoice
  • AAnamAvatar
  • YYandex SpeechKitVoice · STT

Every plan can run on our keys or on yours — there is no tier where bringing your own key is locked. On our keys the provider cost is passed through with a 10% margin; on yours you pay the provider directly and we charge only the platform fee.

09 / Open source spirit

Self-host the whole stack in one command.

Own your stack. Postgres-only core, no phone-home, bring your own keys. Source-available and free to self-host.

  • Postgres-only core — Redis + worker queue optional
  • No phone-home · bring your own provider keys
  • SSRF-guarded HTTP node, secrets encryption, Prometheus metrics in the box
  • Custom nodes as pip packages, auto-discovered

Source-available — MIT + Commons Clause. The commercial billing layer is a separate Enterprise license, off by default.

~/assemblix — docker compose
$ git clone https://github.com/nmamizerov/assemblix
$ cd assemblix && docker compose up
→ pulling images…
✓ postgres ready on :5432
✓ assemblix-api ready on :8000
✓ assemblix-web ready on :3000
Assemblix is live → http://localhost:3000
FAQ

Common questions about Assemblix.

Short, direct answers to the things people ask most. Anything still unclear — ping us on Telegram, we reply fast.

What is Assemblix?
Assemblix is a visual builder for conversational AI agents. Instead of writing one long prompt and hoping, you design the whole conversation as a graph: agent nodes, condition nodes that branch on intent or state, knowledge bases, and tool calls. Any agent in that graph can answer as text, as real-time streamed voice, or as a live lip-synced AI avatar. Every published agent is also an authenticated HTTP endpoint your own product can call.
How do I add voice to an AI agent in Assemblix?
Open the agent node and change its Output field to Voice. That is the whole change — the conversation graph you already built stays exactly as it is. Voice is streamed in real time as the agent thinks, through ElevenLabs or Yandex SpeechKit with your own key. For speech input, put a Transcribe node in front of the agent and the same graph accepts speech as well as typed text.
How do AI avatars work?
Set an agent's Output to AI avatar and pick a provider, avatar persona, and voice. Assemblix currently uses Anam for lip-synced realtime avatars. The avatar speaks the agent's answer live on camera, driven by the same conversation graph — you do not build a separate avatar bot, and you do not change any of the branching logic.
What is a realtime voice agent, and is it a workflow?
No — and that is the point. A voice agent is a prompt and a voice running directly against a speech-to-speech model (OpenAI Realtime or Gemini Live), with no graph on the path to the reply, so it answers in about half a second and you can interrupt it. Workflows still reach the conversation, but as background analysis hooks rather than as the thing generating the answer. Graph agents with voice output and realtime voice agents both exist in Assemblix, and choosing one does not affect the other.
How do I score or analyze a conversation automatically?
Attach workflows to a voice agent as analysis hooks. A per-turn hook fires on every finished thing the caller says, with the agent's previous reply for context; a final hook fires once when the call ends, with the whole transcript, the duration, and why it ended. Inside the workflow you do whatever you want — grade the call against your own criteria with an agent node, extract structured fields, push to a CRM over HTTP, raise an alert. The conversation never waits for a hook, and a hook can never end a call or change a reply.
How is Assemblix different from Voiceflow, ElevenLabs Agents, Vapi, and n8n?
Four differences. First, modality is a switch, not a product decision: the same agent answers as text, voice, or a lip-synced avatar without rebuilding the flow. Second, the conversation and its analysis are built in the same place — pure voice platforms hand you a recording, Assemblix hands you the recording and a visual engine that scores it. Third, you get real engineering control: typed persistent state in Postgres, explicit condition branches, step-by-step execution replay, and a different model per node. Fourth, every agent is also a typed HTTP endpoint with bearer auth, so it drops into your own product instead of living inside someone's widget. And Assemblix is source-available: self-host the whole stack with one docker compose up.
Can an agent answer from my own documents?
Yes. Upload PDFs or paste text into a knowledge base and attach it to any agent. The agent retrieves over your material and answers with citations. Vector search is built in — there is no separate vector database to run and no fine-tuning step.
Which providers are supported?
For models: OpenAI, Google Gemini, and DeepSeek. For voice: ElevenLabs and Yandex SpeechKit, which also handles speech-to-text. For avatars: Anam. Provider is selected per node and you bring your own keys, so nothing is locked to a single vendor.
What is persistent state and how does it work?
Persistent state is the typed variables an agent carries across turns — the stage of the conversation, a cart total, a flag like refund_requested. State lives in Postgres, is readable and writable from any node, and can be branched on by condition nodes. It survives restarts, deploys, and weeks of inactivity, which is what lets you build an assistant that actually remembers the customer.
How do I call an Assemblix agent as an API?
Send a POST request to /api/workflows/{workflow_id} with a Bearer token. The body carries input (matching your typed schema) and an optional state object. The response is typed JSON with output, executionId, status, updated state, and metadata such as durationMs and totalSteps. Every run is traced and inspectable via /api/executions/{executionId}.
How much does Assemblix cost and what is in the Free tier?
Self-hosting is free: clone the repo, run docker compose up, and there is nothing to pay us — no feature is held back and there is no paywall in the UI. The prices below are for the managed cloud, if you would rather not operate it yourself. Everything is metered in one currency: a credit is $0.0001 of usage. A run costs one credit plus a 10% margin on model usage when you use our keys; on your own keys you pay the per-run credit and nothing else. A minute of realtime voice costs $0.02 plus the provider rate with the same margin on our keys — and that $0.02 applies on your own keys too. Free is $0 forever with 5,000 credits a month, 10 requests a minute and one live voice call. Pro is $19/mo with 60,000 credits, 60 requests a minute and five live calls. Business is $49/mo with 200,000 credits, 150 requests a minute and fifteen live calls. No plan limits how many agents or workflows you build, every plan can use its own provider keys, and there are no per-seat charges. Need more mid-month? Credit packs are $10 for 25,000 credits, $25 for 70,000 and $50 for 160,000, and purchased credits never expire.
Can I self-host Assemblix?
Yes. Assemblix is source-available (MIT + Commons Clause). Clone the repo at github.com/nmamizerov/assemblix and run docker compose up — a Postgres-only core, no phone-home, bring your own provider keys. The commercial billing layer is a separate Enterprise license and off by default. Prefer managed? Cloud is available at app.assmblx.com.
How do I debug an agent that behaved badly?
Run it in the debug panel while you build — type or talk to it and watch each step execute with its duration and its effect on state. For anything already in production, open the run and replay it step by step: which branch the condition took, what went into each model call, what came back, and how state looked after every step.
10 / Pricing

Self-host it free. Or use the cloud.

Everything above runs on your own machine at no cost — the whole install, nothing held back, no paywall in the UI. The prices below are for the managed cloud. One meter, one number: a credit is $0.0001 of usage. No seats, and no plan limits how much you build. Run out mid-month and you top up with a pack — $10 / 25,000 credits, $25 / 70,000, $50 / 160,000. Purchased credits never expire.

Free
$0forever

For prototyping and weekend hacks.

  • Unlimited agents & workflows
  • 5,000 credits / month
  • 10 requests / min · 1 live voice call
  • Bring your own provider keys
  • Community support
Start free
Most teams pick this
Pro
$19/mo

For production solo and small teams.

  • Everything in Free
  • 60,000 credits / month
  • 60 requests / min · 5 live voice calls
  • Email support, 24h
Start with Pro
Business
$49/mo

For scale and heavier voice traffic.

  • Everything in Pro
  • 200,000 credits / month
  • 150 requests / min · 15 live voice calls
  • Priority support, 4h + Slack
Start with Business

Need enterprise / SLA? Talk to us →

09 / Built with you

Missing something? We ship fast.

Tell us what's missing — new nodes, providers, integrations land in days, not quarters. Direct line to the founder.

Request a feature

Your first talking agent, live in 5 min.

Free tier, no credit card. Build the conversation as a graph, flip the output to voice, and hear it answer.