Choosing a recipe
A recipe is picked along two axes: what it evolves, and how it learns.
|
Reactive: learns from the traffic it already serves |
Proactive: generates its own attempts | |
|---|---|---|
|
Model weights |
sao: feedback on each attempt over a stream of tasks openclawrl: multi-turn traffic, reward read from the next state |
tttd: repeated attempts at one problem, at test time |
|
Harness: prompts, rules, skills, config |
skillclaw: grows a skill pool from the failures in its own served traffic gepa: rewrites the tree by reflecting on the transcripts it already served |
not available |
Pick by the signal your workload can produce.
|
The signal you have |
Recipe |
Evolves |
Needs GPUs |
|---|---|---|---|
|
Feedback on each attempt, over a stream of tasks |
model weights |
yes | |
|
A fixed grid of sibling attempts at one problem |
model weights |
yes | |
|
Agent conversations without reports |
model weights |
yes | |
|
Feedback on individual requests, and failures worth learning from |
skillclaw (built into Reef) |
harness tree |
no |
|
A score per request, and a stronger model to reflect with |
gepa (built into Reef) |
harness tree |
no |
How a recipe is selected #
A deployment serves exactly one recipe, named by reef.recipe in its config. Every scenario it creates uses that recipe. Requests never name a recipe, and scenario snapshots do not store one. The scenario header is the only routing a caller provides. The artifact repository is therefore deployment-owned: do not point deployments configured with different recipes at the same repository.
reef:
recipe: recipes.sao.recipe:SAORecipe
batch_size: 1reef.recipe accepts the core value recipe, a dotted class, or a preset. Reef does not register or import learning methods. The recipes/ tree in this repository is a cookbook; installed method packages work the same way. Configuration describes each spelling.
Every recipe has a checkpoint strategy, defaulting to EveryNVersions(1). checkpoint_every_n_versions is the shorter spelling in deployment YAML.