One agent, one session
An agent now has exactly one working session at a time. Every conversation you have with it, and every report from a delegate it handed work to, arrives in that one session in order. Your conversations are threads into the agent, not separate copies of it.
Toby set the direction:
I actually find concurrent sessions to be problematic with durable agents. An agent has identity, but also a complex set of responsibilities. Two instances of the agent acting in parallel can do unexpected, uncoordinated, potentially bad things. Rather than facilitate concurrency, let’s find a way to prevent it (for a given agent).
So an agent never acts twice at once. While it works in one thread, it knows what it just did in another, and each reply goes back to the thread it answers. Parallel work goes to delegates, each with a session of its own.
A session does not run forever. Between tasks, the agent ends it and writes a handoff note: what it finished, what is still open, what to check next. Toby calls this “a judgement call by an agent understanding the implications”, since a task that looks done can still get a follow-up.
When new work arrives, a fresh session starts by reading that handoff note. The platform also keeps a log of the agent’s conversations, which the agent can list, read and search, so it sees what was actually said rather than a summary of it. Each session starts clean, but never from nothing.