class_docstr: OPT BB3 Agent.
class_docstr_tok: ["OPT","BB3","Agent","."]
docstr: Override super class to handle failures.
docstr_tok: ["Override","super","class","to","handle","failures","."]
code: def batch_act_decision(
      self,
      observations: List[Dict[Union[str, Module], Message]],
      module: Module,
      batch_reply_final: List[Message],
  ) -> Tuple[List[Message], List[int]]:
      """
      Override super class to handle failures.
      """
      agent = self.batch_agents[module]
      batch_reply, indices = super().batch_act_decision(
          observations, module, agent
      )
      failed = self.detect_and_handle_failures(
          module, batch_reply, batch_reply_final
      )
      indices = [i for i in indices if i not in failed]
      return batch_reply, indices
  
imports: import copy
  import random
  from typing import List, Optional, Dict, Any, Union, Tuple
  from parlai.agents.rag.retrievers import Document
  from parlai.core.agents import Agent, create_agent
  from parlai.core.message import Message
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  import parlai.utils.logging
  from projects.bb3.agents.module import Module
  from projects.bb3.agents.r2c2_bb3_agent import BlenderBot3Agent
  from projects.bb3.agents.opt_api_agent import BB3OPTAgent
  from projects.bb3.agents.search_agent import SearchAgent
  from projects.bb3.agents.utils import Decision, APIUtils, is_opener, DisplayUtils, set_failed_reply
  import projects.bb3.prompts
label_desc: Use image node_id 20 for calling the BlenderBot3Agent obj's underlying member method code with example usage: obj.batch_act_decision(observations, module, batch_reply_final) and returns: batch_reply,  indices