Define what varies
The example represents two kinds of variation separately. Themessages ScenarioList supplies what is being evaluated: a short message and a more explicit message. The AgentList supplies the perspective used to evaluate it: new or experienced users, each acting as an individual contributor or team lead.
Execute the design
Chaining.by(agents).by(messages) gives every profile both messages, in separate interviews. Four profiles times two messages produces eight interviews per model and iteration, each answering the same clarity question. This is a crossed design: EDSL runs every combination of the supplied lists.
With model access configured, the following code uses the default model. You can replace Model() with a model you select. First view the answers together with the variables that produced them:
scenario.condition identifies the message, agent.experience and agent.role identify the profile, and answer.clarity contains its rating. To count the ratings for each message in pandas:
Choose a different assignment pattern
Crossing is useful when every profile should evaluate every condition. Other designs call for a different relationship between the inputs:
For additional factors such as price and message wording, construct scenarios containing each combination you want to test. To compare the same design across models, attach a ModelList as shown in Comparing models. Each added profile, condition, or model increases the number of interviews, which you can inspect and estimate costs for before running.
