Skip to content

Memory Strategies based on design patterns with connector Types #701

@marcellodesales

Description

@marcellodesales

What you'd like to see

  • The current memory model uses sqlite to implement the memory capability of agents
  • What if I want to implement the concept of a Knowledge Graph?
  • Maybe implement a specification such as mem0.ai's approach

Tip

The "3x improvement" associated with Neo4j's GraphRAG (Graph Retrieval-Augmented Generation) refers to studies showing that this approach, on average, improves the accuracy of LLM responses by three times compared to traditional, vector-only RAG methods. It is not a specific "agent" but rather an architectural approach and set of tools that leverage knowledge graphs to provide superior context and reasoning capabilities to AI agents.

Why you'd like to see it

  • Memory should be a plugable data type that instructs the Cagent to choose the approach to "Rag".
  • The developer, knowing different strategies and design patterns around Rag implementation, should be able to choose the memory strategy at minimum
  • Long-term memory: I think this is currently used as a Rag in the current implementation
  • Short-term memory: Using Whiteboard Memory for Short-Term Context, where a multi-agent system exchanges information through a whiteboard.

This is discussed in detail by different vendors. I'd like to call out two:

What I would like to see is a high-level construct that defines the shared short-term memory model for agents, where types are implementations following the concept of "docker plugins"... If cagent plugins could be one of the architectural ways to deliver on these features, I think developers would benefit from the community-driven solutions.

# First class, top-level construct for a short-term memory
memory:
  name: whiteboard
  kind: neo4j-graph
  metadata:
    url: localhost:4499
    auth: secret-1234

Workarounds?

  • Messaging passing among the agents throught the design of the memory construct.
  • Major problem is in agent versioning, memory structure versioning, etc.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/agentFor work that has to do with the general agent loop/agentic features of the appstatus/needs-triageFor issues that need to be triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions