Conversations
Conversations allow a workflow to continue across multiple turns instead of treating every run as a one-shot execution. They are built on top of persisted workflow context, conversation checkpoints, and the suspend/resume execution model.
What A Conversation Is
A conversation is identified by:
workflowIdconversationId
That pair represents one persisted multi-turn workflow instance.
Each turn creates a new Run, while the conversation keeps the shared state and checkpoint needed for later turns.
Conversation Workflow Behavior
When a workflow is conversation-enabled:
- A new conversation starts from the Start node.
- A completed conversation can start another turn from the Start node again, using the saved conversation context from the previous turn.
- A suspended conversation resumes from the waiting continuation point instead of the Start node.
- Each turn is still stored as a normal run with run history, traces, and assets.
Suspend And Resume
The Suspend node is the built-in way to pause a conversation and wait for another turn.
At suspension time SharpOMatic stores:
- the current conversation status
- the context at the suspension point
- the workflow checkpoint
- any workflow snapshots needed to continue later
On the next turn, the engine can:
- continue without any additional input
- merge extra context into the resume operation
This is what powers the editor's Resume tab for suspended conversations.
Completed Conversations Can Continue
Conversation turns are not limited to suspended workflows. If the latest turn completed successfully, you can still run the conversation again. In that case SharpOMatic starts a new turn from the Start node and uses the output context from the previous turn as the base context for the next one.
This makes it possible to model multi-turn chat, review cycles, or iterative workflows where each turn builds on the previous result.
Editor Experience
When you open a conversation-enabled workflow in the editor:
- the latest conversation is loaded automatically
- the trace panel shows per-turn trace history
- conversation-scoped assets are shown separately from run-scoped assets
- the
Resumetab appears when the latest conversation turn is resumable
For suspended turns, the Input tab is hidden and Resume becomes the first tab.
For completed conversation turns, Resume is still available, but it appears after Input because the next turn restarts from the Start node.
Programmatic APIs
Use the conversation methods on IEngineService:
StartOrResumeConversationAndWaitStartOrResumeConversationAndNotifyStartOrResumeConversationSynchronously
These methods accept:
workflowIdconversationId- optional
resumeInput - optional
inputEntries
See Running Workflows for examples.
Constraints
- Only workflows marked as conversation-enabled can use conversation APIs.
- A conversation can only run on one turn at a time.
- Suspended conversations cannot accept start input entries on resume.
- Evaluations do not support conversation workflows because they cannot answer suspend events during row execution.
If you need conversations inside your application, run them directly through the workflow editor or the conversation methods in IEngineService, not through evaluations.