class_docstr: Subclass MemoryRagAgent to provide MemoryLongFidAgent with appropriate
  generation_model (in particular MemoryLongFidAgent that uses the
  ShiftInvariantEncoder)
class_docstr_tok: ["Subclass","MemoryRagAgent","to","provide","MemoryLongFidAgent","with","appropriate","generation_model","(","in","particular","MemoryLongFidAgent","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)
      LongFidAgent.add_cmdline_args(parser, partial_opt)
      MemoryLongFidModel.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 MemoryLongFidAgent obj's underlying member method code with example usage: obj.add_cmdline_args(cls, parser, partial_opt) and returns: parser