Skip to content

Debate

DebateStepDescription runs a round-robin debate: each role argues in turn for a number of rounds, then a judge synthesises a conclusion.

from mmar_carl import DebateStepDescription, DebateStepConfig
DebateStepDescription(
number=1,
title="Debate the proposal",
config=DebateStepConfig(
roles=["optimist", "skeptic"],
role_prompts={
"optimist": "Argue for the proposal's strengths.",
"skeptic": "Probe the proposal's weaknesses.",
},
rounds=2,
judge_prompt="Weigh both sides and state the strongest conclusion.",
output_memory_key="verdict",
),
)
FieldPurpose
rolesThe debating roles (in turn order).
role_promptsPer-role system prompt.
roundsHow many full round-robins.
task_sourceReference for the topic (default $history[-1]).
judge_promptPrompt the judge uses to synthesise.
output_memory_key / output_namespaceWhere the verdict is stored.
llm_configDefault model for all roles + judge.
role_llm_configsPer-role model overrides (use different models per role).