- In code — declare it with
defineAgentin a Zavu Function and deploy. The code is the source of truth. - In the dashboard or over the API — create and configure it directly.
The pieces
Two things live in Zavu Cloud that are easy to conflate:- Your Function is your TypeScript, running in its own isolated runtime. It holds your tool handlers — the code that talks to your systems.
- The Agent is the configuration a conversation runs against: the prompt, the model, which channels trigger it, its knowledge bases, and pointers to your tools.
zavu deploy publishes the first and derives the second from it.
What a deploy actually does
The step worth understanding is the manifest. After publishing, Zavu asks your function what it declared, and reconciles reality to match it. That is what makes the code the source of truth:- A
defineAgentyou added becomes a new agent. - A field you changed is updated.
- A
defineAgentyou deleted deletes the agent.
A message arrives
A call arrives
Voice adds speech in and out around the same agent, and one important difference: on a call the model is offered your tools. The caller can interrupt while the agent is speaking (barge-in) and the agent stops to listen. It can also transfer to a human, or end the call.Where tools run
This is the single most common surprise, so it is worth stating plainly.
A text agent with tools attached does not refuse — it answers “let me check
that, one moment” and then does nothing, which is the worst outcome on a
messaging channel. Use a flow with a
tool step when
a text agent needs to reach your backend.
zavu agents test warns you whenever an agent has tools its channels will never
call.
What you can verify, and when
Most of the loop is free and instant. The last step is not.agents test runs the text path. It exercises the prompt, the model and the
knowledge base, and it reports what it could not prove — a disabled agent, tools
its channels will not call, flows it did not evaluate. Treat those warnings as
part of the result.Agents and senders
A sender is the identity a conversation happens on: a phone number, a WhatsApp account, an email address. An agent can answer on several senders. A sender answers with at most one agent — connecting one that is already in use is rejected, naming the agent that holds it.Where to go next
Functions quickstart
Write and deploy your first agent in code.
Factory agents
Start from a production agent instead of a blank file.
Voice agents
Answer and place phone calls.
Agent setup
Create and configure an agent without writing code.
