debate
Run a single-call, context-asymmetric deliberation that pits opposing positions against each other to minimize confirmation bias and converge on a balanced outcome.
Instructions
Run a context-asymmetric debate in a single call.
One canonical entry point. Pick a mode:
auto(default): Ploidy generates both sides via the configured OpenAI-compatible API endpoint and returns the convergence result. Requires non-emptycontext_documentsplus a configured API endpoint. HITL pause/resume is available viapause_at; resume with the legacydebate_reviewtool.solo: you supply both positions (and optionally both challenges) and Ploidy persists + converges them. No external API key needed — the recommended single-terminal flow when the caller (e.g. Claude Code itself) writes both sides locally.
The older 12-tool surface (debate_start / debate_join /
debate_position / ...) remains available for two-terminal and
HITL workflows but is now deprecated; new integrations should use
this tool.
Args:
prompt: The decision question to debate.
mode: "auto" or "solo".
deep_position: (solo only) Deep side's stance.
fresh_position: (solo only) Fresh side's stance.
deep_challenge: (solo only) Optional deep-side critique.
fresh_challenge: (solo only) Optional fresh-side critique.
deep_label / fresh_label: (solo) display labels for roles.
fresh_role: (auto) "fresh" or "semi_fresh".
delivery_mode: (auto + semi_fresh) "passive", "active",
or "selective".
pause_at: (auto) Optional "challenge" or "convergence"
HITL pause point.
deep_n / fresh_n: (auto) Ploidy level per side.
effort: (auto) "low", "medium", "high", "max".
injection_mode: (auto) Context formatting mode.
context_pct: (auto) Percentage of context to retain.
language: (auto) Output language code.
deep_model / fresh_model: (auto) Model override. Supplying either
applies it to both sides; if both are supplied they must match.
context_documents: Documents attached only to the Deep side. Required
and non-empty in auto mode; optional provenance in solo mode.
context_sources: Optional provenance labels, one per context document.
blocked_sources: Optional strings that must not appear in source labels
or context documents.
target_lease: Optional target identifier that pins this debate's scope.
allowed_sources: Optional source-label allowlist; defaults to target_lease
when a target lease is set.
Returns: Convergence result dict, or paused state (auto + pause_at).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | |
| deep_n | No | ||
| effort | No | high | |
| prompt | Yes | ||
| fresh_n | No | ||
| language | No | en | |
| pause_at | No | ||
| deep_label | No | Deep | |
| deep_model | No | ||
| fresh_role | No | fresh | |
| context_pct | No | ||
| fresh_label | No | Fresh | |
| fresh_model | No | ||
| target_lease | No | ||
| deep_position | No | ||
| delivery_mode | No | none | |
| deep_challenge | No | ||
| fresh_position | No | ||
| injection_mode | No | raw | |
| allowed_sources | No | ||
| blocked_sources | No | ||
| context_sources | No | ||
| fresh_challenge | No | ||
| context_documents | No |