--- title: Stateful Workflows subtitle: Workflows that have memory and can self-correct between runs slug: guides/agents/architectures/stateful-workflows --- In some advanced usecases, you may want your agent to have persistent memory while not retaining conversation history. For example, if you are using a Letta agent as a "workflow" that's run many times across many different users, you may not want to keep the conversation or event history inside of the message buffer. You can create a stateful agent that does not retain conversation (event) history (i.e. a "stateful workflow") by setting the `message_buffer_autoclear` flag to `true` during [agent creation](/api-reference/agents/create). If set to `true` (default `false`), the message history will not be persisted in-context between requests (though the agent will still have access to in-context memory blocks). ```mermaid flowchart LR Input["New Message (Event) Input"] --> Agent subgraph "Agent Memory" CoreMem["Memory Blocks"] MsgBuffer["Message Buffer"] end CoreMem --> Agent MsgBuffer --> Agent Agent --> Finish["Finish Step"] Finish -.->|"Clear buffer"| MsgBuffer style MsgBuffer fill:#f96,stroke:#333 style Agent fill:#6f9,stroke:#333 style Finish fill:#f66,stroke:#333 ```