Skip to content

[FEATURE] Memory observability & debugging toolkit for multi-agent Crews #7352

Description

@DijieDeng

Problem

When running multi-agent Crews with memory enabled (short-term, long-term, entity, and user memory), developers have almost no visibility into:

  • What each agent is reading from and writing to memory
  • When memory entries get stale, overwritten, or poisoned
  • Why an agent made a particular decision based on memory context
  • How memory from one agent influences downstream agents in the crew

This makes debugging multi-agent systems extremely difficult. The current verbose=True flag shows agent thoughts but doesn't surface memory reads/writes. Developers are left to guess whether memory is helping or hurting their crew's performance.

Why This Matters Now

Memory handling is one of the hottest topics in the AI agent space in 2025. Recent surveys (e.g., Memory in the Age of AI Agents, arXiv 2512.13564) show that traditional short/long-term taxonomies are insufficient, and frameworks need better introspection. Other frameworks are starting to address this:

  • LangGraph provides checkpoint state inspection and time-travel debugging
  • Microsoft Agent Framework has built-in OpenTelemetry tracing with memory spans
  • CrewAI currently has no memory introspection story

Proposed Solution

Add a memory observability layer to CrewAI that can be enabled for debugging:

crew = Crew(
    agents=[researcher, writer],
    tasks=[...],
    memory=True,
    memory_observability=True,  # NEW
)

When enabled, this would:

  1. Log every memory read/write with agent name, timestamp, memory type, and content preview
  2. Emit memory events as structured logs or callbacks (e.g., on_memory_read, on_memory_write)
  3. Surface memory context in agent traces alongside tool calls and LLM invocations
  4. Provide a crew.memory_snapshot() method to inspect current memory state at any point

API Sketch

# Option A: Callback-based
def on_memory_event(event: MemoryEvent):
    print(f"[{event.agent}] {event.operation}{event.memory_type}: {event.preview}")

crew = Crew(
    agents=[...],
    tasks=[...],
    memory=True,
    memory_callbacks=[on_memory_event],
)

# Option B: Snapshot introspection
crew.kickoff()
print(crew.memory_snapshot())  # Returns structured view of all memory stores

Scope

This could start as a documentation-first approach (logging patterns + example code) and evolve into a first-class API. Even a documented recipe for hooking into the existing memory backends would be a huge win for the community.

Related Issues

Willingness to Contribute

I'd be happy to help draft documentation or contribute to a prototype if there's interest from maintainers.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    vendor-pitchThird-party vendor or SDK pitch, not a CrewAI bug

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions