docs: def UpdateKnowledgeBase(self, response, provides):
      """Set values in the knowledge base based on responses."""
  
      if isinstance(response, rdf_anomaly.Anomaly):
        return
  
      if isinstance(response, rdf_client.User):
        self.knowledge_base.MergeOrAddUser(response)
        return
  
      if isinstance(response, rdf_protodict.Dict):
        response_dict = response.ToDict()
        for attribute, value in iteritems(response_dict):
          if attribute in provides:
            self.SetKnowledgeBaseValue(attribute, value)
        return
  
      # If its not a dict we only support a single value.
      if len(provides) == 1:
        self.SetKnowledgeBaseValue(provides[0], response)