Decisions & Consensus

Every consensus decision in Kaneru is persisted with full reasoning — question, votes, strategy, outcome, participants, and confidence. Decisions are stored as Cortex triples and committed to the DAG, making them queryable and auditable. "Why did we block v2.1?" becomes a triple query, not a lost Slack thread.

Consensus Strategies

Kaneru supports 5 consensus strategies for multi-agent decisions:

StrategyDescription
majoritySimple majority vote — each agent gets one vote, most votes wins
weightedWeighted vote — votes are scaled by each agent's EMA expertise score
arbitrateLLM-arbitrated — a designated agent reviews all positions and decides
pbft-localPractical Byzantine Fault Tolerance (local) — tolerates up to f faulty agents in a 3f+1 quorum
leader-scoreLeader-based — the highest-scoring agent's vote is authoritative

Choose a strategy based on your trust model:

  • majority for equal-weight teams
  • weighted when expertise matters (security experts outweigh generalists on CVE triage)
  • arbitrate for nuanced decisions requiring reasoning
  • pbft-local when agents may produce unreliable outputs
  • leader-score for hierarchical teams with a clear authority

How Decisions Are Stored

Each decision is persisted as a set of Cortex RDF triples under a decision: subject:

PredicateValue
questionThe question that was decided
strategyWhich consensus strategy was used
resolvedValueThe outcome
confidenceConfidence score (0.0–1.0)
participantsComma-separated agent IDs
votesJSON object mapping agent IDs to vote weights
ventureIdAssociated venture (if any)
missionIdAssociated mission (if any)
decidedAtISO 8601 timestamp

Auto-Recording

When you call consensusResolve() in the agent mesh, the result is automatically persisted to DecisionHistory. No manual recording step is needed — every resolved consensus becomes a queryable decision record.

consensusResolve(question, agentVotes, strategy)
  → ConsensusResult
  → DecisionHistory.record(result, { ventureId, missionId })

Querying Decisions

List Decisions

bash
# All decisions across all ventures
mayros kaneru decisions list

# Filter by venture
mayros kaneru decisions list --venture <id>

# Limit results
mayros kaneru decisions list --venture <id> --limit 5

Decisions are returned sorted by most recent first.

Explain a Decision

Get a human-readable breakdown of a specific decision:

bash
mayros kaneru decisions explain --decision <id>

Output:

Decision: a1b2c3d4e5f6
Question: Should we block the v2.1 release?
Strategy: weighted
Outcome: block
Confidence: 87.5%
Decided at: 2026-03-18T14:30:00.000Z
Participants: scanner, reviewer, fixer
Votes:
  scanner: 0.92
  reviewer: 0.85
  fixer: 0.45
Venture: venture-sec-001
Mission: SEC-42

Run Consensus

Trigger a consensus round from the CLI:

bash
mayros kaneru consensus \
  --question "Should we merge PR #42?" \
  --strategy weighted \
  --agents scanner,reviewer,fixer

MCP Tools

📌

kaneru_decisions_list

Query decision history with optional venture filter. Returns decisions sorted by most recent first.

📌

kaneru_decisions_explain

Get a human-readable explanation of a specific decision with votes, strategy, and reasoning.

👥

kaneru_consensus

Run a consensus round with a question, strategy, and agent list.

Use Cases

  • Release gates — "Should we ship v2.1?" with weighted votes from security, QA, and engineering agents
  • Triage decisions — "Is CVE-2026-1234 critical?" with majority vote across scanner agents
  • Architecture choices — "REST or GraphQL for the new API?" with LLM arbitration
  • Incident response — "Rollback or hotfix?" with leader-score from the on-call agent

Next Steps