class_docstr: SeeKeR Agent.
  
  One module performs search query generation, knowledge response generation,
  and dialogue response generation.
  
  Additionally, may also perform search decision generation.
  
  To provide arguments to a sub-agent, simply prepend the argument with one of
  `sdm/sqm/krm/drm`.
class_docstr_tok: ["SeeKeR","Agent",".","One","module","performs","search","query","generation",",","knowledge","response","generation",",","and","dialogue","response","generation",".","Additionally",",","may","also","perform","search","decision","generation",".","To","provide","arguments","to","a","sub-agent",",","simply","prepend","the","argument","with","one","of","`","sdm\/sqm\/krm\/drm","`","."]
docstr: Initialize a shared version of the "knowledge" model.
  
  This just makes sure that each "agent" has the same params, but different
  history objects.
  
  :param opt_key:
      which sub agent to create with the shared model.
docstr_tok: ["Initialize","a","shared","version","of","the","``","knowledge","''","model",".","This","just","makes","sure","that","each","``","agent","''","has","the","same","params",",","but","different","history","objects",".",":","param","opt_key",":","which","sub","agent","to","create","with","the","shared","model","."]
code: def _init_shared_model(self, opt_key: str):
      """
      Initialize a shared version of the "knowledge" model.
  
      This just makes sure that each "agent" has the same params, but different
      history objects.
  
      :param opt_key:
          which sub agent to create with the shared model.
      """
      return super().init_shared_model(
          self.opts[opt_key], self.knowledge_agent
      )
  
imports: from collections import defaultdict
  import copy
  import torch
  from types import MethodType
  from typing import List, Tuple, Optional, Dict, Any
  from parlai.agents.bart.bart import BartAgent
  from parlai.agents.fid.fid import FidAgent, GoldDocRetrieverFiDAgent, SearchQuerySearchEngineFiDAgent, WizIntGoldDocRetrieverFiDAgent
  from parlai.agents.rag.args import setup_rag_args
  from parlai.agents.rag.retrievers import Document
  from parlai.core.agents import Agent, create_agent_from_shared, create_agent
  from parlai.core.message import Message
  from parlai.core.mutators import MessageMutator, Mutator
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from parlai.core.torch_agent import Batch, Output, History
  from parlai.core.torch_generator_agent import TorchGeneratorAgent
  from parlai.tasks.wizard_of_wikipedia.agents import TOKEN_KNOWLEDGE, TOKEN_END_KNOWLEDGE
  import parlai.utils.logging
  from projects.seeker.agents.seeker_modules import ComboFidModel
  from projects.seeker.utils import SearchDecision, drm_get_batch_context, krm_get_batch_context, krm_get_batch_context_only_knowledge, GENERATE_QUERY, IS_SEARCH_REQUIRED, DO_SEARCH, DO_NOT_SEARCH
  from projects.seeker.agents.modular_agent import ModularAgentMixin
label_desc: Use image node_id 9 for calling the SeekerAgent obj's underlying member method code with example usage: obj._init_shared_model(opt_key) and returns: super