Skip to main content
v2

Intent and Schema Internals

Dialogue act resolution

DialogueActStep handles linguistic classification before intent resolution even begins. It supports three configuration modes via convengine.flow.dialogue-act.resolute:

  • REGEX_ONLY
  • REGEX_THEN_LLM
  • LLM_ONLY

Core Dialogue Acts

ActMeaningRegex Sample
AFFIRMUser agrees or confirms(?i)^\\s*(yes|yep|yeah|sure)\\s*$
NEGATEUser disagrees or cancels(?i)^\\s*(no|nope|cancel)\\s*$
ANSWERUser answers an active clarification or slot questionshort direct answer in active flow
EDITUser requests a correction(?i)^\\s*(edit|change|modify)\\s*$
RESETUser requests a fresh start(?i)^\\s*(reset|start over)\\s*$
QUESTIONUser asks a clarifying questiontext ending in '?'
NEW_REQUEST(Fallback) User begins a new topicdefault fallback

When the LLM path is engaged (confidence below llm-threshold), it must return a strict JSON payload containing the act and confidence to be parsed by the engine. It can also derive standaloneQuery, which becomes resolved_user_input when present.

Interaction policy decision

InteractionPolicyStep derives the routing policy for the current turn based on existing context.

Engine Routing Policies

Policy DecisionTrigger ContextPipeline Impact
EXECUTE_PENDING_ACTIONDialogueAct=AFFIRM + hasPendingActionTriggers PendingActionStep; Skips Intent Resolution
REJECT_PENDING_ACTIONDialogueAct=NEGATE + hasPendingActionMarks Pending task REJECTED; Skips Intent Resolution
FILL_PENDING_SLOTDialogueAct!=NEW_REQUEST + hasPendingSlotPasses input to SchemaExtractionStep; Skips Intent Resolution
RECLASSIFY_INTENTDialogueAct=NEW_REQUEST (or no pending state)Forces standard Intent Resolution

Confirmation routing and correction

CorrectionStep runs after InteractionPolicyStep and before intent/schema rework. It handles confirmation-state turns without forcing full re-extraction:

  • AFFIRM in confirmation state can set routing_decision=PROCEED_CONFIRMED
  • EDIT in confirmation state can patch a single field in-place and keep the flow in CONFIRMATION
  • downstream rules can use POST_SCHEMA_EXTRACTION and PRE_AGENT_MCP to route the next state deterministically

Intent resolver behavior

The pipeline resolves intent in order of priority via CompositeIntentResolver.

Lock and Skip Behaviors

The engine prevents intent drift during active schema collection automatically. You will see these audit signals in the trace when intent resolution is intentionally bypassed:

  • INTENT_RESOLVE_SKIPPED_POLICY
  • INTENT_RESOLVE_SKIPPED_SCHEMA_COLLECTION
  • INTENT_RESOLVE_SKIPPED_STICKY_INTENT

Schema extraction

SchemaExtractionStep drives missing-field follow-up flows and automatically formats prompt templates utilizing ce_prompt_template.

Schema LLM Injection Template
JSON

Runtime facts are evaluated and written into the EngineSession context by AutoAdvanceStep, making them available for ce_rule evaluation:

  • missing_fields
  • missing_field_options
  • schema_json
  • schema_complete

Once extraction is complete, POST_SCHEMA_EXTRACTION rules can move the flow into confirmation without waiting for MCP execution.

Practical design rule

Use schema extraction for required slot collection, and use dialogue acts + interaction policies for short confirmations (like replying "yes" to "Are you sure?"). This ensures intent reclassification does not disrupt your active multi-turn flows.