ask_conference
Run a multi-round brainstorming where several models debate a topic, building on or challenging each other, then produce a map of disagreement: converged points, crux, and what would change it.
Instructions
DIVERGENT, MULTI-ROUND — a brainstorming CONFERENCE where several models argue a topic TOGETHER over rounds, each reading the running transcript and building on (or pushing back against) what came before, then a rapporteur writes the MAP OF THE DISAGREEMENT (converged / the crux / what would change it). Unlike ask_council (models answer in isolation, then reconcile) the participants actually hear each other, so positions can move — use it for open-ended ideation and design exploration ('what should we build', 'ways to approach X'), where you want genuine divergence rather than one averaged answer. Pick the bench with models (from ['fable','opus','deepseek','minimax','glm','gemini','codex','grok','kimi'] plus any 'atlas:' / 'openrouter:' / 'ollama:' token); default is the available subset of fable/opus/deepseek/minimax/glm. rounds is 1–10 (default 3) and synthesizer writes the closing map (default 'fable'). When called with no models and the MCP client supports form elicitation, a NATIVE model picker pops up to choose the roster and topic (set interactive: false to skip it). Costs one model call per participant per round plus the synthesis, so it is heavier than a council — keep the bench and rounds modest. Same scope as ask: conceptual software/engineering ideation is in scope; direct offensive-security asks and non-software domains are refused. Aliases: 'm3' = minimax, 'gpt' = codex, 'opus5' = opus.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| models | No | The debater bench (2 or more). From ['fable','opus','deepseek','minimax','glm','gemini','codex','grok','kimi'] plus any 'ollama:<model>' / 'atlas:<id>' / 'openrouter:<id>' token. Omit to be offered a native picker (when the client supports elicitation), else it falls back to the available subset of fable/opus/deepseek/minimax/glm. | |
| rounds | No | How many rounds of turns each participant takes (default 3, up to 10). | |
| context | No | Optional code snippets, file paths, or structural context (shared by all participants). | |
| session | No | Optional coordination key for the cross-agent hub (`session_list` / `session_peek`). Reuse the same key across agents working the same decision so turns group together. Defaults to the tool name (`ask_council` / `ask_chain` / `ask_debate` / …) when omitted. | |
| trusted | No | Operator-authorized. When true, the prohibited-use denylist runs in log-only mode: security vocabulary in the question AND in `context` is audited but does not block. Use for legitimate security-engineering work (PoC analysis, CVE research, binary hardening review) where the ask genuinely needs security terms. Takes effect ONLY when the operator has set ASK_FABLE_ALLOW_TRUSTED (env or config); otherwise the flag is ignored and the denylist still applies. | |
| question | No | The topic or open question for the models to brainstorm and argue together. | |
| context_ref | No | Key(s) of context saved with `context(op="write", …)` to pull in and prepend to `context` — paste a big context ONCE, reference it by key here. Missing keys are reported, not fatal. | |
| interactive | No | When true and `models` is omitted, pop a native model picker if the MCP client supports form elicitation. Set false to skip it. | |
| synthesizer | No | Model that writes the closing map of the disagreement (default 'fable'; 'opus', 'codex', …). | fable |
| attack_premise | No | After the blind round, name the premise every opening assumed and assign one participant to argue it is FALSE (two extra calls). This is the challenge nobody else will make, since agreeing on the premise is what lets the rest of the discussion happen. Needs 3+ seats and 2+ rounds; skipped otherwise. |