Skip to main content
v1

Pipeline Steps (what each step does)

Step responsibilities

StepPrimary responsibilityMain session mutationsConfig/table dependencies
LoadOrCreateConversationStepFetch or bootstrap conversation rowconversation, intent/state/context syncce_conversation
ResetConversationStepEarly explicit resetintent/state/context/input params resetinput flags, command text
PersistConversationBootstrapStepEnsure conversation row persistednone/metadatace_conversation
AuditUserInputStepPersist user input auditnonece_audit
PolicyEnforcementStepPolicy block and stoppayload + stop result on blockce_policy
IntentResolutionStepResolve intent with classifier+agentintent/state/clarification fieldsce_intent, ce_intent_classifier, ce_config
ResetResolvedIntentStepReset on configured reset intentfull resetce_config RESET_INTENT_CODES
FallbackIntentStateStepFill missing intent/state defaultsintent/statenone
AddContainerDataStepFetch and attach container datacontainerData/context mergece_container_config
McpToolStepMCP planner/tool loopcontext_json.mcp.*ce_mcp_tool, ce_mcp_db_tool, ce_config
SchemaExtractionStepSchema-driven extraction and lock handlingschema facts/context/lockce_output_schema, ce_prompt_template
AutoAdvanceStepCompute schema status factsschemaComplete/hasAnyresolved schema + context
RulesStepMatch and apply transitions/actionsintent/state/input paramsce_rule
ResponseResolutionStepResolve and generate output payloadpayload/last assistant jsonce_response, ce_prompt_template
PersistConversationStepPersist final conversation and resultfinalResultce_conversation
PipelineEndGuardStepTiming audit + terminal guardtimingsce_audit
Hook where you need precision
  • Before schema extraction: normalize inputs
  • After rules: inspect intent/state transition correctness
  • Before response resolution: inject display hints
Don’t hardcode transitions in steps

Prefer transitions in ce_rule unless absolutely framework-level behavior is required. This keeps domain behavior data-driven and testable via audit traces.