AI agents built on Vercel's agent stack

UAE · India

Who approves the booking? What to gate before an eve agent answers on WhatsApp

By Shivanath DevinarayananPublished 7 min read
Written forCTO, CXO, or VP or director of engineering who owns the agent stack and the model bill“Which model should run which step, and what does each step cost?”

The short answer

What should a team gate before an agent built with eve books appointments on WhatsApp, and what does it cost to run?

Set an approval on every tool that writes, because an eve tool with no approval setting runs without one. eve is in beta under Vercel's beta terms, Apache-2.0, and has no fee of its own: you pay for the Vercel resources and model tokens it uses. At Mindcat, we gate bookings and test the channel in your country first.

A clinic desk with a phone showing chat bubbles, a brass stamp held above it and a blank appointment card

Takeaways

  1. 01An eve tool with no approval setting behaves like never(): it runs without asking anyone.
  2. 02Use always() on bookings, moves and cancellations. once() and auto() fit lower-risk steps.
  3. 03auto() sends the tool input to a decision model's provider, Jev by default. Check that against your patient data rules.
  4. 04eve is beta and has no fee of its own. You pay for Functions, Workflows, Sandbox, AI Gateway, model tokens and tracing.
  5. 05No Vercel region is in the UAE. Mumbai is the nearest, and AI Gateway pins inference to the US or EU only.

If your team wants a WhatsApp booking agent built on eve, and you will answer for every booking it makes and what each step costs, this is for you. If you have no chat volume to measure yet, this can wait. The worked example is a clinic; the same rules hold for viewings, deliveries or service calls. The first decision is not the model. It is which steps run without a person, because eve leaves that to you, tool by tool, and its default asks nobody.

Why does the approval setting matter more than the model?

Because the model's mistakes reach the customer only through tools. A wrong answer costs a follow-up message; a wrong booking puts a patient at the door with no doctor free. In eve, approval belongs to each tool, and a tool that sets nothing runs without asking.

The eve docs say it plainly: "By default, omitted approval behaves like never(), so tool calls may execute without human approval." The same page tells you to require approval or other safeguards for sensitive, irreversible, regulated, financial, healthcare or external side-effecting actions. There is a second reason on WhatsApp: anyone with your number can type text that steers the model toward a tool. The approval on a write tool is what stops an injected message from becoming a booking.

If you are weighing eve for a customer-facing agent, our eve page sets out what we build with it and what we keep out of a beta.

How does one WhatsApp message run through eve?

Each message is a turn in a durable session. The session can pause for a person for seconds or days and pick up where it stopped.

Five steps: a WhatsApp message, eve resumes the session, the model picks a tool, the rule runs or waits, the reply
One WhatsApp message, one turn. eve is in beta.
  1. 01The patient's message reaches the WhatsApp Business Cloud webhook, which eve's WhatsApp channel mounts at /eve/v1/whatsapp.
  2. 02eve starts a session or resumes the open one. Sessions run on Vercel Workflows, so they survive cold starts and redeploys.
  3. 03The model reads the instructions in agent/instructions.md and picks a tool. Each file in agent/tools/ is one tool.
  4. 04The tool's approval rule runs it, refuses it, or parks the turn until a person decides.
  5. 05The reply streams back to WhatsApp. If the turn waited, it resumes when the answer arrives.

The WhatsApp adapter owns provider sign-in, verification and delivery. eve owns the session, streaming and the pause for a person. Since version 0.78.0, the changelog says, an approved call runs with the identity and credentials of the person whose turn requested it, not the approver's. Before that, a requester could get a call to run with the approver's access, a privilege escalation the release closed.

Which tools should ask a person first?

Anything that changes a booking. Reading the calendar can run alone; writing to it waits for your front desk. Our rule for loosening a gate: a tool moves from always() to once() only after a month in shadow in which the front desk checked every proposed booking and found none wrong, and it moves back the day one is.

Four eve approval settings: never runs with no approval and is the default, once, always, and auto with a decision model
The four approval settings, from eve's docs.

A sample clinic setup, not a client, with the reason for each line:

ToolApprovalWhy
Check free slotsnever()Reads only; a wrong answer costs a follow-up message
Hold a slotonce()Asks the first time in a session, then trusts it for that chat
Book the appointmentalways()A doctor's time and a patient's trip depend on it
Move or cancel a bookingalways()Irreversible for the slot someone else wanted
Sample clinic agent: check free slots never asks, hold a slot asks once, booking and moving or cancelling always ask
A sample clinic setup. Not a client.

What about auto()? It asks a decision model whether the exact call is clear or needs a person, and it defaults to TypeSafe AI's Jev, a small model that answers a yes-or-no question with a confidence. A caution, a failed review or incomplete input sends it to a person. The docs add one line a clinic must read: "The tool input is sent to the decision model's provider." Patient names and phone numbers in that input leave your stack. We implement Jev for clients, so weigh our view with that in mind: we use auto() on steps whose input carries no personal data, and always() on the rest.

A brokerage reads the same table with viewings in place of appointments. Our clinics page shows the rest of the front desk work this sits beside.

What does it cost to run?

eve has no price of its own. Vercel's eve pricing docs say usage is billed through the Vercel resources and third-party services your agent uses.

No eve fee: you pay for Vercel Functions, Workflows, Sandbox, AI Gateway and model tokens, and Always-on Tracing
What an eve agent is billed for, from Vercel's eve pricing docs.

The bill comes from Functions (agent routes, channel webhooks, tool runs), Workflows (session and turn progress), Sandbox (if the agent runs commands), AI Gateway and the model tokens, and Always-on Tracing. WhatsApp's own message charges sit on your Meta account, outside all of these.

The model tokens are usually the line that grows. AI Gateway adds no markup to provider token prices, and it logs the provider, latency, tokens and cost of every request, so each step's cost is a number you can read rather than estimate. Its budgets are soft caps, not hard stops, so set Spend Management as well. Zero data retention is the default on the Gateway, and inference can be pinned to the US or EU only.

The docs give a method, not a number, and it is the right one. Take one real booking conversation and record:

  1. How many turns it takes.
  2. How many model calls and tool calls each turn makes.
  3. Input, cached and output tokens per model call.
  4. How much data streams back.
  5. Whether it uses the sandbox.

Agent Runs shows those counts per session. Multiply by your monthly chats and you have a cost per booking you can defend. Run it on 20 of your own conversations in shadow before you budget.

Our model-mix rule for this agent: turns that only read (slots, opening hours, directions) go to a small model; any turn that can call a write tool goes to the larger one, because a wrong write costs more than the tokens saved. Move repeated instructions into skills so they load only when needed, as the eve pricing page suggests, and use eve's evals on every deployment to catch a drop before patients do.

What is still Beta, and what stays your job?

eve itself. The docs say it is in beta under Vercel's beta terms, and that "the framework, APIs, documentation, and behavior may change before general availability". It is Apache-2.0, and eve.dev describes self-hosting the whole runtime, which answers the lock-in question.

What stays yours:

  • Testing the channel where you are. Run the WhatsApp channel on your own UAE or Saudi number in shadow mode first.
  • Where it runs. Vercel's 19 compute regions include none in the UAE or Saudi Arabia; Mumbai (bom1) is the nearest. AI Gateway pins inference to the US or EU only. Confirm residency per project before you sign.
  • Upgrades. Pin the version and read the changelog. The privilege fix in 0.78.0 is the kind of change you want to know about.

For the wider rule on who approves an agent's action, see human approval for agents. For WhatsApp agents built outside eve, our WhatsApp agents page covers the other route.

When should you not build on eve yet?

When the agent would book with no person watching from day one, or when your legal team needs a generally available framework under contract. A beta under a written gate is fine; a beta with no gate is not.

If you have no production chat volume to measure yet, wait: run the front desk's own WhatsApp for a month and count the bookings first.

We are not a Vercel partner, and eve is open source, so the code and the Vercel account stay yours. When you are ready, we use the method we call Spec, shadow, gate: write which tools exist and which ask, run the agent in shadow beside your front desk, then let it book behind always(). The written assessment is free, the first build week is a fixed AED/SAR 14,900, and the Vercel hub shows what else we build there.

Filed under

AI agents built on Vercel's agent stackeve agent frameworkeve whatsapp channeleve tool approvalwhatsapp booking agent
Useful to someone on your team?

FAQ

Questions teams ask next

Is eve production ready?
Not under generally available terms. Vercel's docs say eve is currently in beta and subject to the Vercel beta terms, and that the framework, APIs, documentation and behaviour may change before general availability. It is open source under Apache-2.0. Treat it as a beta dependency: pin the version, read the changelog before upgrades, and keep a person on every write.
Does eve support WhatsApp?
Yes, through a Chat SDK channel for WhatsApp Business Cloud. Adding it writes agent/channels/whatsapp.ts, and the adapter mounts its webhook at /eve/v1/whatsapp. The adapter owns provider auth and delivery, and eve owns sessions, streaming and human-in-the-loop. Before go-live, run it on your own UAE or Saudi number in shadow mode.
What does the default approval setting do?
When a tool sets no approval, eve treats it like never(), so the call can run without a person. The docs tell you to require approval or other safeguards for sensitive, irreversible, regulated, financial, healthcare or external side-effecting actions. For a clinic, that covers booking, moving and cancelling appointments.
Can we run eve outside Vercel?
Yes. eve.dev describes swapping any backend and self-hosting the whole runtime, for example Postgres for durability and Docker for sandboxes, and its docs include a self-hosting guide. That is your answer to lock-in. On Vercel the agent uses Functions, Workflows and Sandbox; off Vercel you run those parts yourself.

Sources

  1. 01Vercel docs: eve (Beta)Accessed 16 Oct 2026
  2. 02Vercel docs: eve pricing and limitsAccessed 16 Oct 2026
  3. 03eve docs: Human-in-the-LoopAccessed 16 Oct 2026
  4. 04eve integrations: WhatsApp channelAccessed 16 Oct 2026
  5. 05eve: llms.txt (licence and beta status)Accessed 16 Oct 2026
  6. 06Vercel: eve product pageAccessed 16 Oct 2026
  7. 07eve changelogAccessed 16 Oct 2026
  8. 08Vercel docs: RegionsAccessed 16 Oct 2026
  9. 09Vercel docs: AI GatewayAccessed 16 Oct 2026
  10. 10Vercel docs: AI Gateway security and complianceAccessed 16 Oct 2026
Shivanath Devinarayanan, founder of Mindcat

Written by

Shivanath Devinarayanan

Founder, Mindcat Consulting · Salesforce MVP Hall of Fame

Runs 200+ agents in production. Reads every brief that comes in and signs the work that goes out.

About Shivanath

First Agent in Production · the written assessment

We work in real estate and right now, the AI pilot never left the sandbox.

Industry
Problem

Brief: Real estate. Leads from portals and WhatsApp. Follow-up has no owner. Stalled AI or Salesforce pilot. Need a finish, cut, or rebuild call. From: /blog/vercel-eve-agent-whatsapp.