The model decides what to say. And when to say it.
Talk-To-Nigel is a messaging agent where the LLM controls delivery timing, message splitting, follow-ups, and interrupts — not just the reply.
We'll notify you when access opens.
Core Behaviors
Four things chatbots don't do.
Timing isn't cosmetic here. It's embedded in the model's output schema and executed faithfully by the orchestrator.
Thoughts arrive in pieces
The model splits a single response across multiple messages, the way a real person texts — one thought at a time, not a wall of text.
{ "messageCount": 3, "messages": [ "did you see the game", "that last quarter was insane", "lol" ]}
The model controls the clock
Response delays, inter-message timing, and pacing are part of the model's output — not a cosmetic layer bolted on after generation.
{ "initialDelay": "4m", "timeBetween": "8s", "messageCount": 2, "messages": [ "yeah just saw it", "wild ending" ]}
It texts you first
The agent initiates conversations, checks in after silence, circles back to earlier topics — just like a real friend who remembers to follow up.
{ "messages": ["k."], "followUpTime": "2h", "followUpContext": "Check if they finished homework"}
It knows when you cut it off
When a user sends a message mid-sequence, the orchestrator cancels queued messages and re-prompts the model with full context — including what it intended to say but didn't.
{ "interrupted": true, "messages": [ "oh wait nvm i see what", "you mean" ], "timeBetween": "3s"}
Architecture
A real system. Not a wrapper.
The model outputs structured intent. The orchestrator executes it over real time. The messaging layer delivers it natively. Clean separation of concerns.
Language Model
structured JSON output
Receives conversation context and returns a structured JSON response encoding message content, timing, split behavior, and follow-up intent.
Orchestrator
event-driven state machine
Manages the message queue, executes timed delivery, handles mid-sequence interrupts, and schedules follow-up events.
Messaging Platform
iMessage, SMS, Telegram…
Receives orchestrated commands and delivers messages via native platform APIs — with typing indicators, read receipts, and real delivery.
{ "messageCount": 2,// number of discrete messages to send "messages": [// ordered array of message strings "Hey John.", "Could you go over that spreadsheet one more time?" ], "initialDelay": "4m",// delay before first message "timeBetween": "12s",// gap between consecutive messages "interrupted": false,// was user mid-interrupt detected? "followUpTime": "12h",// when to re-prompt if no response "followUpContext": "Check if John reviewed the spreadsheet"// context for the follow-up prompt}