diff --git a/docs/reusable-ai-agents.md b/docs/reusable-ai-agents.md index 430770a739..fc8fc4d396 100644 --- a/docs/reusable-ai-agents.md +++ b/docs/reusable-ai-agents.md @@ -64,10 +64,11 @@ The worker reconciles them once per agent invocation, nested agent tools include 3. The memory id is the step's, else the run's, else a legacy id baked into the `auto` object. 4. With no memory id the agent runs stateless and says so in the job log. -Memory is stored per (memory id, step id), in `ai_agent_memory` or S3 at `memory/{workspace}/{memory -id}/{step}.json`. The chat transcript (`flow_conversation_message`) always follows the run's id, -even when a step sets its own. Nothing expires stored memory: deleting a chat conversation deletes -its memory, and a memory named by a string id stays until it is overwritten. +Memory is stored per (memory id, step id), in `ai_agent_memory` or S3 at +`memory/{workspace}/{memory id}/{step}.json`. The chat transcript (`flow_conversation_message`) +always follows the run's id, even when a step sets its own. Nothing expires stored memory: deleting +a chat conversation deletes its memory, and a memory named by a string id stays until it is +overwritten. Compatibility runs one way. New workers read every older shape. The editor rewrites a legacy step only when the author changes it, so a flow nobody edits keeps running on older workers, while a