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
Managing State Across Interactions › When to Clear StateOne section · Sections in this chapter5 / 13 ↓
Sections in this chapter13
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]:
Codedef 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]:
Codedef 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 FalseClear Persistent State When:
- The user explicitly asks to forget something
- The user deletes their account
- Data retention policies require it
In[9]:
Codedef 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."