CouncilEx.Councils.Voting (CouncilEx v0.1.0)

Copy Markdown View Source

Topology #5 — independent_analysis → vote (with aggregator) → chair.

All members analyse independently, then cast structured votes. The vote round aggregates results; the chair synthesizes from the vote outcome.

Usage

council =
  CouncilEx.Councils.Voting.new(
    as: MyApp.VoteCouncil,
    members: [
      {:m1, MyApp.Members.Voter, [provider: :openai, model: "gpt-4o-mini"]},
      {:m2, MyApp.Members.Voter, [provider: :openai, model: "gpt-4o-mini"]}
    ],
    chair: {MyApp.Members.Synth, [provider: :openai, model: "gpt-4o"]},
    aggregator: CouncilEx.Aggregators.WeightedMean
  )

Summary

Functions

new(opts)

@spec new(keyword()) :: module()