Skip to main content

Specifications

Explanation

When you start an optimization on the platform, Genie sends an optimization specification to your agent. BaseExecutor parses this payload and builds an OptimizationContext — that is the core ADK structure every executor path shares.

What your agent code receives depends on which executor you use:

ExecutorWhat your code receives
RLExecutorEnvData and AgentData, constructed by RLExecutor from the optimization context
Custom BaseExecutor subclassOptimizationContext directly

EnvData and AgentData are RL-specific conveniences: RLExecutor builds them before instantiating your RLAgentEnv subclass. The core ADK does not construct these types — if you implement your own executor, work with OptimizationContext instead. See RL Agents, Environments, and What To Do Next for how the pieces fit together.

The specification includes:

The platform builds an internal OptimizationSpec from your project configuration. You normally interact with OptimizationContext (or, on the RL path, the EnvData / AgentData that RLExecutor derives from it) rather than parsing that wire format yourself.