Scaling a live transcription pipeline past 40 concurrent sessions
Adaptive buffering, WebSocket backpressure, and the error budget that keeps it honest.
The category is new enough that the term gets used loosely. Here is the definition we build against, how it differs from a meeting assistant, and why verification is the hard part.
An execution agent is a system that carries out the work a conversation implies, rather than only recording or summarizing it. You judge a note-taker on the quality of its summary. You judge an execution agent on the work it completes.
That distinction sounds like marketing until you look at where the time actually goes. A sales call generates a proposal to send, a CRM stage to move, and a follow-up to schedule. A product meeting generates three tickets and an owner for each. The conversation is not the bottleneck, and neither is remembering it — the bottleneck is a human sitting down afterward and re-entering decisions that were already made out loud.
A meeting assistant improves the memory. An execution agent removes the re-entry.
| Meeting note-taker | Execution agent | |
|---|---|---|
| Output | A transcript and a summary | Completed work in your tools |
| Action items | A list for a human to do | Filed, drafted or updated directly |
| Measured on | Summary accuracy | Actions completed and reverted |
| Tool access | Read, or export | Scoped write access, per action |
| Main risk | A wrong summary | A wrong action — hence verification |
| Work left over | All of it | The parts you chose to approve |
The moment an agent can write to your CRM or your outbox, the cost of a mistake changes shape. A bad summary wastes a minute of reading. A bad action emails the wrong number to a customer, and no amount of apologising un-sends it.
Language models are good at proposing what a conversation implies and bad at knowing when they've made something up. That asymmetry is the whole design problem. Nebula's answer is to keep the two jobs separate: a neural model proposes candidate actions, and a symbolic layer decides whether each one is allowed to run. Three checks have to pass.
Can this action be traced to specific words that were actually said? If the model inferred it from context with no supporting utterance, it doesn't run.
Does the action have everything it needs to execute — a recipient, a value, a target record? A half-specified action becomes a question, not an attempt.
Is this action inside the autonomy tier you granted for this tool? Anything external or irreversible defaults to needing a human.
The result is an agent that fails in a specific and useful direction. When it isn't sure, it stages a draft and asks, rather than guessing and sending. That's a worse demo and a better product.
Longer pieces in progress. Subscribe below and we'll send them as they land — no other email.
Adaptive buffering, WebSocket backpressure, and the error budget that keeps it honest.
What the rules layer actually asserts, and what happens when a proposed action fails one.
What a general-purpose chatbot gets wrong about turning a conversation into work.
Two-party-consent states, GDPR, and designing a blocklist people actually trust.
A repeatable structure, and the template that turns every call into CRM-ready actions.
Where teams start, what they loosen first, and the one setting nobody should automate.
One email when there's something worth reading. No cadence promises we won't keep.