class_docstr: Defines an interface for defining the components of an RL agent.
  
  Implementations of this interface contain a complete specification of a
  concrete RL agent. An instance of this class can be used to build an
  RL agent which interacts with the environment either locally or in a
  distributed setup.
class_docstr_tok: ["Defines","an","interface","for","defining","the","components","of","an","RL","agent",".","Implementations","of","this","interface","contain","a","complete","specification","of","a","concrete","RL","agent",".","An","instance","of","this","class","can","be","used","to","build","an","RL","agent","which","interacts","with","the","environment","either","locally","or","in","a","distributed","setup","."]
docstr: Creates the agent policy.
  
     Creates the agent policy given the collection of network components and
     environment spec. An optional boolean can be given to indicate if the
     policy will be used for evaluation.
  
  Args:
    networks: struct describing the networks needed to generate the policy.
    environment_spec: struct describing the specs of the environment.
    evaluation: when true, a version of the policy to use for evaluation
      should be returned. This is algorithm-specific so if an algorithm makes
      no distinction between behavior and evaluation policies this boolean may
      be ignored.
  
  Returns:
    Behavior policy or evaluation policy for the agent.
docstr_tok: ["Creates","the","agent","policy",".","Creates","the","agent","policy","given","the","collection","of","network","components","and","environment","spec",".","An","optional","boolean","can","be","given","to","indicate","if","the","policy","will","be","used","for","evaluation",".","Args",":","networks",":","struct","describing","the","networks","needed","to","generate","the","policy",".","environment_spec",":","struct","describing","the","specs","of","the","environment",".","evaluation",":","when","true",",","a","version","of","the","policy","to","use","for","evaluation","should","be","returned",".","This","is","algorithm-specific","so","if","an","algorithm","makes","no","distinction","between","behavior","and","evaluation","policies","this","boolean","may","be","ignored",".","Returns",":","Behavior","policy","or","evaluation","policy","for","the","agent","."]
code: def make_policy(
      self,
      networks: Networks,
      environment_spec: specs.EnvironmentSpec,
      evaluation: bool = False,
  ) -> Policy:
      """Creates the agent policy.
  
         Creates the agent policy given the collection of network components and
         environment spec. An optional boolean can be given to indicate if the
         policy will be used for evaluation.
  
      Args:
        networks: struct describing the networks needed to generate the policy.
        environment_spec: struct describing the specs of the environment.
        evaluation: when true, a version of the policy to use for evaluation
          should be returned. This is algorithm-specific so if an algorithm makes
          no distinction between behavior and evaluation policies this boolean may
          be ignored.
  
      Returns:
        Behavior policy or evaluation policy for the agent.
      """
      # TODO(sabela): make abstract once all agents implement it.
      del networks, environment_spec, evaluation
      raise NotImplementedError
  
imports: import abc
  import dataclasses
  from typing import Generic, Iterator, List, Optional
  from acme import adders
  from acme import core
  from acme import specs
  from acme.jax import networks
  from acme.jax import types
  from acme.utils import counting
  from acme.utils import loggers
  import reverb
label_desc: Use image node_id 6 for calling the ActorLearnerBuilder obj's underlying member method code with example usage: obj.make_policy(networks, environment_spec, evaluation) without return types