Managing State Across Interactions › When to Clear State

Michael BrenndoerferJuly 11, 20252 min read
AI Agent HandbookAll chapters
Part 7 of 15Agent State and Architecture - Putting It All Together
Chapter 20Managing State Across Interactions › When to Clear State
Reading section 5 of 13 · When to Clear State · 2 minSection 5 of 13 · 2 min

Book contents

Section 5 of 13 · 2 min read

Managing State Across Interactions › When to Clear StateOne section · Sections in this chapter5 / 13 ↓

Knowing when to clear state is as important as knowing what to track. Here are practical guidelines:

Clear Ephemeral State When:

  • A task completes successfully
  • A task fails and needs to restart
  • The user explicitly starts a new task
  • The user says something like "never mind" or "start over"
In[7]:
Code
def handle_user_input(self, user_input: str):
    # Check for reset signals
    if any(phrase in user_input.lower() for phrase in ["never mind", "start over", "forget that"]):
        self.ephemeral_state = {}
        return "Okay, starting fresh. What can I help you with?"

Clear Session State When:

  • The user explicitly logs out
  • A timeout period passes (e.g., 30 minutes of inactivity)
  • The application closes
  • The user starts a completely new topic
In[8]:
Code
def check_session_timeout(self):
    """Clear session if it's been inactive too long"""
    if self.session_state["session_start"]:
        elapsed = datetime.datetime.now() - self.session_state["session_start"]
        if elapsed.total_seconds() > 1800:  # 30 minutes
            self.end_session()
            return True
    return False

Clear Persistent State When:

  • The user explicitly asks to forget something
  • The user deletes their account
  • Data retention policies require it
In[9]:
Code
def forget_preference(self, key: str):
    """Remove a specific persistent fact"""
    if key in self.persistent_state["preferences"]:
        del self.persistent_state["preferences"][key]
        self._save_persistent_state()
        return f"I've forgotten your {key} preference."
    return f"I don't have a {key} preference stored."