council
Facilitate structured three-stage deliberation among agents: independent voting, anonymized cross-ranking, and final synthesis to achieve balanced consensus with cancellation support.
Instructions
3-stage council: independent → cross-rank (anonymized) → synthesis.
Use cases:
Atomic deliberation when you don't want to manage poll/cancel state
3-perspective review with explicit ranking step (reduces first-mover bias)
Quick consensus that's stronger than
consult_parallelbut lighter thandebate
council_id registers a cancellation watermark with
CancellationRegistry. To cancel an in-flight council, the caller must
supply the id upfront and then bump the counter via
CancellationRegistry.request_cancel(id) from another in-process caller.
The MCP-exposed debate_cancel tool does NOT cover council ids — it
looks up DebateStore which has no council entries. Cancellation is
honoured between stages only; running subprocesses are never killed
mid-stage.
ctx is the FastMCP-injected context. When the client supports progress
notifications it sees three events (one per stage); otherwise emit is a
silent no-op.
Returns a dict with status ∈ {success, cancelled, failed}
plus partial: True when results are degraded (some stage1 vote failed,
or stage3 chairman failed). failed is reserved for "all stage1 voters
failed" — the council had nothing to deliberate on.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agents | Yes | ||
| question | Yes | ||
| chairman | No | ||
| persona | No | default | |
| timeout_seconds | No | ||
| council_id | No | ||
| ctx | No |