# tinker_cookbook.rl.ActionExtra ## *class* [**tinker_cookbook.rl.ActionExtra**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/types.py#L182)(*TypedDict*) Extra metadata passed alongside an action to `Env.step`. All fields are optional so that callers and env implementations can ignore keys they don't care about. Values must be picklable (the rollout executor may serialise them across process boundaries). **Fields:** - [**stop_reason**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/types.py#L190) (*tinker.[StopReason](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/stopreason/index.md)*) – Why sampling stopped — `"stop"` (hit a stop sequence) or `"length"` (hit *max_tokens* without a stop sequence). ## Referenced by - [tinker_cookbook.distillation.PromptOnlyEnv.step](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/distillation/promptonlyenv/#promptonlyenv-step) - [tinker_cookbook.rl.Env.step](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/env/#env-step) - [tinker_cookbook.rl.EnvFromMessageEnv.step](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/envfrommessageenv/#envfrommessageenv-step) - [tinker_cookbook.rl.ProblemEnv.step](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/problemenv/#problemenv-step)