Alternating statements in three phases: opening, rounds rebuttals each,
and closing. An optional judge then delivers a structured verdict. The
phase labels make it easy to analyze argument development over time.
Arguments
- pro, con
Agents arguing for and against.
- topic
The motion being debated.
- rounds
Number of rebuttal exchanges (default 2).
- judge
Optional Agent; if supplied, returns a verdict with a winner, a confidence, and reasoning.
- msg_mode
Message construction,
"roleflip"(default) or"flat";NULLusesgetOption("LLMRagent.msg_mode"). Seeconversation().- quiet
Passed through; FALSE prints utterances live.
- ...
Passed to the agents' underlying LLMR calls.
Value
An object of class agent_debate: a list with transcript
(tibble: turn, phase, speaker, text), verdict (list or NULL),
and motion. as.data.frame() returns the transcript.
Examples
if (FALSE) { # \dontrun{
cfg <- LLMR::llm_config("groq", "openai/gpt-oss-20b", temperature = 0.7)
d <- debate(
pro = agent("Pro", cfg, persona = "You argue FOR the motion, rigorously."),
con = agent("Con", cfg, persona = "You argue AGAINST the motion, rigorously."),
topic = "Social media does more harm than good to democratic discourse.",
judge = agent("Judge", cfg, persona = "A strict, impartial debate judge.")
)
d$verdict
} # }