executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
rl-agent-zooImplement SMARTS Agent policies, AgentSpec packages, versioned zoo locators, social-agent bubbles, and optional Ray/RLlib integrations without assuming optional training dependencies are installed.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this route when a user needs a SMARTS policy object, an installable agent package, a registered locator, a social agent or bubble, or an RLlib/Ray adapter. Keep core policy and registry work separate from the simulation lifecycle route. Keep benchmark commands and full training runs reference-only.
This route covers:
smarts.core.agent.Agent policies and the act(obs, **configs) contract.smarts.zoo.agent_spec.AgentSpec, registry registration, dynamic module
loading, and make/make_agent.SocialAgentActor, BoidAgentActor, Bubble, airlocks, and policy kwargs.RLlibHiWayEnv configuration and Ray worker distribution.Do not use this route for Gym reset/step/close basics or general action and
observation catalogues; use simulation-environments. Use cli-integrations
for scl zoo and scl benchmark command details. Do not promise training,
checkpoint downloads, benchmark scores, or regression results.
AgentInterface. The policy
must return an action accepted by that interface's action space.AgentSpec; register a versioned name
from an importable module. Run the locator checker before attempting a
simulation.ray and ray.rllib. They are optional,
and are not installed in the prepared core environment. Do not import
RLlibHiWayEnv as a core smoke test when Ray is absent.cli-integrations.Agent and implements act(self, obs, **configs).
Agent.from_function(callable) is suitable for a tiny stateless policy.AgentSpec(interface=..., agent_builder=..., agent_params=...) describes
both the simulator-facing interface and the policy constructor. The builder
is a class or callable, not an already-built policy instance.agent_params are dispatched as no arguments for None, positional
arguments for a list/tuple, keyword arguments for a dict, and one argument
otherwise. build_agent() raises if the builder is absent or not callable.AgentSpec is cloudpickle-checked at construction. Keep builders, params,
adapters, and model handles serializable when workers will be used.module.importable:registered-name-vN (or -latest), where the
registered name includes the version suffix. A bare registered-name-vN
works only after that name is already registered in the current process.register(...). Importability is therefore part of the package
contract; installing a distribution alone is not proof of registration.make(locator, **kwargs) returns an AgentSpec; make_agent(locator, **kwargs) returns (Agent, interface) and applies kwargs to the registered
factory. Use make when the interface/spec must be inspected first.AgentSpec for compatibility;
RLlib's current adapter path may still exercise them, so keep any legacy use
explicit and test it against the selected RLlib release.AgentInterface and the policy's raw action agree. Check the
environment's per-agent action_space[agent_id].contains(action) rather
than relying on a model's declared shape.scripts/check_agent_locator.py --locator module:agent-name-v0.
The checker only imports and inspects the registry; it never installs,
constructs a model, trains, downloads a checkpoint, or starts a simulator.AgentSpec and policy without a scenario first. Use a bounded
simulation smoke only when a scenario is supplied and the lifecycle route
owns that smoke.unverified until the user
supplies a compatible installed stack.