code: def _add_node(self, agent):
          
          if agent is None:
              return
          node_label = _get_node_label(agent)
          if isinstance(agent, Agent) and agent.bound_conditions:
              bound_agents = [bc.agent for bc in agent.bound_conditions if
                              bc.is_bound]
              if bound_agents:
                  bound_names = [_get_node_label(a) for a in bound_agents]
                  node_label = _get_node_label(agent) + '/' + \
                               '/'.join(bound_names)
                  self._complex_nodes.append([agent] + bound_agents)
              else:
                  node_label = _get_node_label(agent)
          node_key = _get_node_key(agent)
          if node_key in self.existing_nodes:
              return
          self.existing_nodes.append(node_key)
          self.graph.add_node(node_key,
                              label=node_label,
                              **self.node_properties)
docs: Add an Agent as a node to the graph.