One agent, many providers
An agent keeps its workspace, its thread and its identity when you move it between Codex, Claude and Grok. Switching model should not cost you the context.
Most tools tie the assistant to the model. Change the model and you start again: new chat, new working directory, none of the history that made the last answer good. The model is a setting, so it should behave like one.
What an agent keeps
In OpenBot an agent owns three things that outlive any provider it runs on: a workspace on disk, a thread of everything it has done, and an identity of its own. Point the same agent at Codex instead of Claude Code and it is still the same agent, in the same folder, with the same history behind it.
Restarting the application does not reset it either. An agent that was halfway through something is still halfway through it tomorrow.
Why it is built this way
The alternative is tempting and we decided against it. Wiping an agent on a provider switch would make the state easy to reason about, because there would be almost none. It would also make the feature useless: the only reason to move an agent between providers is to keep what it already knows and change how it thinks.
So the provider session is kept separate from the thread. The session is private resume state belonging to one command-line tool. The thread is yours, and it is what survives.
What this is good for
Run the cheap model until the work gets hard, then move that exact agent up to a stronger one without re-explaining the task. Move it back down when the hard part is finished. Try the same job on two providers and compare the results rather than the setup effort.