Most agent frameworks treat each run as stateless. The agent starts fresh, does its work, and the output is consumed by whatever called it. If you run the same workflow again next week, the agent has no memory of what it produced last time. For some use cases that is fine. For others -- recurring research tasks, iterative drafting, accumulated domain knowledge -- you want the agent to remember what it learned in previous runs and build on it. The question is how to add cross-run memory without introducing global shared state that makes the system hard to reason about. Named Scopes as the Isolation Mechanism AgentEnsemble uses named memory scopes. Each task declares which scopes it reads from and writes to. A task can only see memory from scopes it explicitly declares. MemoryStore store = MemoryStore . inMemory (); Task researchTask = Task . builder () . description ( "Research current AI trends" ) . expectedOutput ( "A research report" ) . agent ( researcher ) . memory ( "ai-research" ) .…