Skip to main content
You’ve already built a LangChain or LangGraph agent: a graph with a model, tools, memory, and guardrails. On Waterr, that agent can play two roles:
  1. The agent IS the persona — it joins a live video meeting as the AI character: it hears the participant, thinks with your graph, and speaks the reply. Waterr supplies the face, voice, ears, and room; your agent supplies the mind.
  2. The agent operates the platform — using the langchain-waterr toolkit it creates personas, defines scenarios on the fly, dispatches meetings, and reads back goal-scored results.
Most real builds use both: the agent sets up the meeting and takes it. This page walks through each role, then closes the loop.

Role 1 — Your agent as the meeting persona

This is the part that usually surprises people: you don’t port your agent into a new SDK. Waterr’s meeting pipeline speaks the OpenAI chat-completions protocol to whatever endpoint a scenario points at (Bring Your Own Agent). Serve your graph behind that shape and it becomes the voice on the call.

Step 1 — Wrap your graph in an OpenAI-compatible endpoint

LangGraph’s astream (with stream_mode="messages") yields exactly what an SSE chat-completions response needs:
Your tools (CRM lookups, order status, ticketing) run inside the graph as they always have — server-side, invisible to Waterr, no registration needed.

Step 2 — Point a scenario at it

Step 3 — That’s it

Every meeting on that scenario now runs on your graph. The participant sees a persona in a video room; under the hood Waterr transcribes them in real time, POSTs the conversation to your endpoint, and speaks your streamed tokens back — with turn-taking, interruptions, transcripts, and analysis all handled.
Keep first-token latency under ~1.5s — this is a live conversation, and slow graphs feel slow even with Waterr’s filler-audio masking. Endpoint contract, security model, and timeout behavior are on the Bring Your Own Agent page.

Role 2 — Your agent as the operator

The WaterrToolkit gives your agent five tools to run the platform itself:
The interesting part is dynamic scenario creation: because scenarios are just API objects, your agent can compose a bespoke interview/discovery/ training session per situation — persona and script generated from context it already has (a job description, a support ticket, a CRM record) — rather than picking from a fixed menu:
The agent chains waterr_create_persona → waterr_create_scenario → waterr_create_meeting and returns a URL. Ada clicks it, has the interview in the browser, and afterwards the same agent calls waterr_get_meeting_results to score her against the goals and decide the next step — advance, reject, or schedule round two.

The full loop

Combine the roles and the whole system is yours end to end:
  1. Operator: your agent generates the persona + scenario and creates the meeting (toolkit).
  2. Persona: the meeting’s brain is your graph via the connector — same memory and tools that created it.
  3. Feedback: webhooks (transcript.ready, session.analysis_complete) push the transcript and analysis back into your pipeline, where the agent acts on the outcome.
Waterr is the face and the room; your LangGraph is the mind and the memory — before, during, and after the call.