Dynamic Planner: AI that turns a complex request into a step-by-step plan
The Dynamic Planner watches a conversation and, when a user is pursuing a genuinely multi-step task inside the agent's domain and is visibly unsure how to proceed, offers to expand that task into a temporary storyline — a checklist-driven, step-by-step plan the agent then executes one focused step at a time, with progress the user can see. Planning happens once, under validation; execution is deterministic.
Most conversations don't need a plan. Someone asking your agent a price, an opening hour or a single how-to question should get a direct answer, not a project. But some conversations are different: the user is trying to get a whole thing done — register a company, apply for a visa, resolve a damaged-furniture claim — and they are visibly unsure where to start. The Dynamic Planner exists for exactly that moment: it turns that one conversation into a temporary storyline (a nested, checklist-driven plan) that the agent then walks step by step.
It is a Pro capability, switchable per tenant. The model that does the planning is assigned per tenant by the platform operator rather than chosen inside the conversation, which is what makes it possible to point a tenant with data-residency constraints at a local or regional model and leave everyone else on a hosted one.
When does a plan get triggered?
Never by the model "deciding on its own", and never by an open text box that lets users order arbitrary plans. There are exactly three ways in, in decreasing order of determinism:
- An expandable storyline step. The tenant marks a step of an authored storyline as expandable. When a user reaches it, the agent offers to expand that step into a sub-plan. The author already made the judgment call at design time; nothing is left to chance.
- The user accepts an offer. Every plan starts with a confirmation card (the same ask-form UI used everywhere else). The user can always decline, and the agent will not ask again in that session.
- The escalation judge. Outside storylines, a small dedicated model call watches each turn and scores it on three dimensions — described below. Only when all three pass does the user even see the offer. The main chat model is never trusted to remember to trigger anything; the judge is a forced, structured call made by the engine.
A storyline the tenant authored always takes priority: while one is driving the conversation, the planner stays silent. Hand-built process beats generated process.
The three-dimension escalation test
The judge evaluates task complexity, user confusion, and domain fit — and all three must hold. This is the heart of the feature, so here is the actual logic with examples.
1. Complexity — is this genuinely multi-step? The task should need several steps, several documents or several turns to complete. One question is not a plan.
- ✅ "I want to set up a US company for e-commerce and I have no idea what that involves"
- ❌ "How much does Delaware registration cost?" — a price check, answer it directly
- ❌ "How do I fill line 7b on form SS-4?" — one concrete step of a process the user already runs
2. Confusion — does the user want to be walked through it? Signals: "where do I even start", "what do I need to prepare", "walk me through the whole thing", "I can't keep track of all this". A user who knows the process and asks about one link in the chain is not confused — give them the link, not a plan.
- ✅ "My boss asked me to set up the US subsidiary and I've never done anything like this"
- ✅ "Registration is done — what comes after? Annual filings? Tax? I can't keep it straight, I'd rather you keep track for me"
- ❌ "My documents are ready, just tell me where to submit" — informed, not confused
3. Domain fit — is it the agent's job? A user saying the word "plan" does not open the gate. Tenants pay per conversation; an agent for company formation refuses to become a general personal assistant, however politely the request is phrased.
- ❌ "Make me a three-month fitness plan, detailed by week" — out of domain, decline
- ❌ "Plan a ten-day Europe trip step by step" — out of domain, decline
The generated plan itself is also domain-constrained: the planner receives the agent's remit and must keep every step inside it.
What happens after "yes"
Planning is the only probabilistic moment, and it happens once: a planner model drafts the plan as structured data — steps, per-step instructions, a checklist of what to collect, a completion criterion. The draft is validated like any storyline graph (malformed plans are retried, then handed to a fallback model; a plan that never validates simply never runs). A standing boundary template is stamped into every step deterministically — contradictions must be challenged, nothing outside the step's list may be recommended, no approval or pricing promises — so the guardrails never depend on the planning model remembering to write them.
From there, execution is the storyline engine doing what it always does: one focused step per turn, checklist items ticked only when there is evidence, progress shown in the banner, a thin progress bar, and a step list the engine renders — so what you see is the actual state, not the model's recollection of it. Plans run nested: if a storyline step expanded into a plan, the parent storyline resumes exactly where it left off when the plan completes.
Common questions
- Can my existing agent use this, or do I have to build something new?
- An existing agent can use it as-is. The Dynamic Planner is a tenant-level switch on a Pro plan; once it is on, your agent keeps its own knowledge bases, Skills and tools, and simply gains the ability to offer a step-by-step plan when a conversation warrants one. Nothing about the agent has to be rewritten.
- What stops it from making plans for things my business does not do?
- The agent's own task description is used as a domain gate: a request that falls outside it is refused even when the user explicitly asks for a plan. Someone asking a company-formation agent for a fitness plan is turned down, and the generated plan itself is constrained to stay inside the agent's remit.
- What happens if the customer abandons a plan halfway through?
- Progress is saved against that conversation, so the customer can come back later and continue from the step they left. A plan belongs to the case rather than to the person — unlike an authored storyline, which follows the person across conversations — so a second conversation starts a fresh one. They can also exit a plan at any time; exiting clears the plan but does not stop them from starting a new one afterwards.
- Can I see what a plan will look like before customers get it?
- Yes. A preview tool generates a plan for any goal and returns it for review without storing anything or affecting a single user, and a separate tool replays sample messages to show whether they would trigger a plan at all. Both are available over the API and to a coding agent through MCP.
- Does the AI decide on its own to interrupt customers with plans?
- No. A plan is only ever offered, never imposed: the customer sees a confirmation card and can decline, and once declined the agent does not ask again in that conversation. Offers are also suppressed while a storyline you authored is driving the conversation.
- How much does a plan cost to generate?
- One planning call per accepted offer, billed as tokens like any other model call and tracked separately from ordinary chat usage so you can see it per tenant. Execution afterwards costs the same as any other conversation turn. The exact amount depends on which model your tenant is assigned for planning.
Most of what an agent needs to know is already written down — on your website, and in the PDFs your team already sends customers. Importing from a URL covers the public half; uploading covers the rest.
A structured index is a small table an agent builds from the fields your documents already carry — title, price, level, link, image — alongside the vector search it uses for meaning. Vector search finds passages that read like the question; it cannot count, filter by number, or group. The structured index answers those, and lets the agent quote a link or an identifier exactly instead of reconstructing it from a fragment.
A storyline is a directed graph an agent follows with each end user — every node is a step (its own task, knowledge and tools), exits carry conditions, and each person's progress, profile and notes are saved and resumed across sessions and channels. It turns an agent from an assistant that does point-tasks into one that can deliver a multi-step service itself.
Long-form writing is an agent producing a complete, multi-section document — a filing, a market-entry report, a due-diligence memo — by planning the outline first, asking for anything it needs before it starts, researching each section against your material and public sources, and writing section by section on a job that survives a restart. You edit it in a canvas beside the chat, rewrite any passage by selecting it, and every version is kept.