Agentic Pattern Libraryby Vikas Goyal
← All patterns
32

Talker–Reasoner

Also known as: fast talker / slow thinker, conversational front + reasoning back, dual-agent voice architecture

A System 1 model keeps the conversation live while a System 2 model works in the background.

TrackAgentic systems FamilyFast & slow Maturity Emerging ChangesCoordination
01

Problem

Voice and live chat need replies within about a second, or the conversation feels broken. But the tasks people ask for, like rebooking travel or diagnosing an account, need multi-step reasoning and tool calls that take far longer. One model can’t be both instant and thorough.

  • Conversation needs sub-second turn-taking and natural acknowledgements.
  • Real work needs reasoning and tools that take 5–30 seconds or more.
  • The user may keep talking, change their mind or add details mid-task.
  • Two models that each hold part of the state can contradict each other.
02

Solution

Split the agent into two roles that run at the same time. The Talker is a fast model that owns the conversation: it acknowledges, asks clarifying questions and relays results in natural language. The Reasoner is a slower model that owns the task: it plans, calls tools and writes its findings and current beliefs to a shared memory. The Talker reads from that memory on every turn, so it can say what’s known so far without waiting, and it passes new user input to the Reasoner as updates.

03

Diagram

User TalkerSystem 1 · <1s replies ReasonerSystem 2 · plans Shared memorybeliefs · progress Toolssearch · book voice new details writes reads every turn

The two models never block each other. Shared memory is the contract between them, so the Talker only says what the Reasoner has written down.

04

When to use

Use it when

  • Voice agents or live chat where silence feels broken
  • Tasks need tools or reasoning that take many seconds
  • Users add details or change requests while work is in progress
  • You want the conversational tone tuned separately from task logic

Avoid it when

  • Tasks finish in a second or two; one model is simpler
  • Asynchronous channels like email where waiting is fine
  • You can't afford two models running for every session
05

Trade-offs

Latency Talker replies in under a second; work continues behind it
Cost Two models active per session
Complexity Shared state, concurrency and interruption handling
Reliability Good if the Talker sticks to what's in memory

Gains

  • Natural, responsive conversation even during long tasks
  • Users can add details mid-task without restarting it
  • Tone and task logic can be tuned and evaluated separately

Costs

  • Two models and a shared state store to run and monitor
  • Race conditions when the user changes the request mid-task
  • Risk of the Talker promising something the Reasoner hasn't confirmed
06

Worked example

Scenario
A voice travel agent for a corporate travel desk. The traveler's 3pm flight was cancelled.
  1. Traveler“My 3pm to Seattle got cancelled. Can you rebook me?”
  2. TalkerReplies in about 400 ms: “Sorry about that. I’m checking options now. Do you still need to land before your 6pm meeting?”
  3. ReasonerStarts in parallel: pulls the booking, searches same-day flights, checks fare policy. Writes status: searching to memory.
  4. Traveler“Yes, and I’d prefer an aisle.”
  5. TalkerPasses constraint: land_by 17:30, seat: aisle to the Reasoner and says “Got it, aisle and before 5:30.”
  6. ReasonerAfter 11 seconds, writes two options: a 4:10pm in-policy flight landing 6:20pm, and a 3:45pm flight landing 5:15pm that is $140 over policy. Flags that the second needs manager approval.
  7. TalkerReads both from memory and explains the trade-off in two sentences. It doesn’t claim either is booked.
07

Failure modes

FailureSymptomMitigation
Talker overpromisesSays "you're booked" before the Reasoner has confirmedTalker may only state facts present in shared memory
Stale constraintsReasoner finishes using details the user already changedVersion the task state; Reasoner re-checks before final output
Awkward silence or chatterTalker repeats "still working" or goes quietReasoner writes progress updates the Talker can relay
Split-brainThe two models hold different beliefs about the taskOne shared memory as the source of truth; Talker keeps no task state