Session Resume
PraisonAI automatically resumes conversations when you use the samesession_id.
When SessionConfig.mirror_runtime_state=True, persisted sessions also restore runtime_state alongside messages — useful for replaying tool call IDs when handing off between native and plugin runtimes. See Session Runtime State.
Tool calls are preserved on resume. The default (zero-config) JSON session store persists assistant tool-call turns and
role="tool" result turns as of PraisonAI PR #3099. Resuming with the same session_id (or via praisonai run --continue / --session <id> / session resume <id>) reconstructs the exact message list the model saw before — including tool calls. Old text-only session files stay compatible; the new tool_calls / tool_call_id fields are only written when a message actually has them.Resume works for team runs launched from a YAML file too.
praisonai run agents.yaml --continue / --session <id> restores per-agent chat history and shared team state, so each agent replays its earlier context before the new prompt. See YAML / Team Session Continuity.The model is preserved across resumes. With no explicit
--model, resume runs on the model the session was recorded with — not your current default. See Session Resume — Model Restoration.Interactive resume redraws your conversation on screen. In
praisonai code, /continue and session resume replay the last 20 turns through the same renderer live turns use — including tool-call surfaces — so scrollback shows what was actually said. See Session Visual Replay.How It Works
Session ID Strategies
User-Based Sessions
Conversation-Based Sessions
Auto-Generated (Default)
If you don’t provide asession_id, one is auto-generated:
CLI Resume
Concurrent Writes
Multiple bot workers writing to the samesession_id are safe — history saves use a single locked atomic write under the hood, so no worker sees an empty history mid-update.
This applies to:
- Messaging bots (
praisonai bot telegram,discord,slack,whatsapp) - Multi-process deployments resuming the same session key
- Managed agents streaming chunks back to the user
agent.start().
Visual Replay on /continue
In interactive praisonai code, typing /continue visually replays the restored conversation through the live renderer — you see the earlier user / assistant turns and tool activity, not a one-line “Restored N messages” summary. This lands with PraisonAI PR #3965.
Replay is bounded to the last N turns — older content is summarised as
… <N> earlier turns so a long history doesn’t flood the terminal. /continue loads the full stored history (not a 50-message tail), so the “earlier turns” count reflects the true total./continue clears the on-screen message list before replay, so repeated /continue calls no longer duplicate or retain stale turns. The default _run_simple fallback (no prompt_toolkit) also renders restored user + assistant turns, not just system lines.Best Practices
- Consistent session_ids - Same ID = same conversation thread
- User isolation - Include user_id in session_id for multi-user apps
- Persistent storage - Use PostgreSQL for production, SQLite for development

