class_docstr: Subclass LongRagAgent to provide MemoryRagAgent with appropriate generation_model
  (in particular MemoryLongRagModel that uses the ShiftInvariantEncoder)
class_docstr_tok: ["Subclass","LongRagAgent","to","provide","MemoryRagAgent","with","appropriate","generation_model","(","in","particular","MemoryLongRagModel","that","uses","the","ShiftInvariantEncoder",")"]
code: def add_cmdline_args(
      cls, parser: ParlaiParser, partial_opt: Optional[Opt] = None
  ) -> ParlaiParser:
      MemoryRagAgent.add_cmdline_args(parser, partial_opt)
      LongRagAgent.add_cmdline_args(parser, partial_opt)
      return parser
  
imports: from typing import Optional, Union
  from parlai.core.message import Message
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from projects.blenderbot2.agents.sub_modules import KnowledgeAccessMethod
  from projects.blenderbot2.agents.modules import T5BlenderBot2RagModel, BlenderBot2RagModel, T5BlenderBot2FidModel, BlenderBot2FidModel, BlenderBot2FidModelMixin
  import torch
  from projects.blenderbot2.agents.blenderbot2 import BlenderBot2RagAgent
  from .long_rag import LongRagAgent, LongRagModel, LongFidAgent, LongFidModel
label_desc: Use image node_id 1 for calling the MemoryLongRagAgent obj's underlying member method code with example usage: obj.add_cmdline_args(cls, parser, partial_opt) and returns: parser