Skip to main content

Synthesize and compare multiple LLM responses with OpenRouter council

Workflow preview

Synthesize and compare multiple LLM responses with OpenRouter council preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

Overview

This template adapts Andrej Karpathy’s LLM Council concept for use in n8n, creating a workflow that collects, evaluates, and synthesizes multiple large language model (LLM) responses to reduce individual model bias and improve answer quality.

🎯 The gist

This LLM Council workflow acts as a moderation board for multiple LLM “opinions”:

  • The same question is answered independently by several models.
  • All answers are anonymized.
  • Each model then evaluates and ranks all responses.
  • A designated Council Chairman model synthesizes a final verdict based on these evaluations.
  • The final output includes:
    • The original query
    • The Chairman’s verdict
    • The ranking of each response by each model
    • The original responses from all models

The goal is to reduce single‑model bias and arrive at more balanced, objective answers.

🧰 Use cases

This workflow enables several practical applications:

  • Receiving more balanced answers by combining multiple model perspectives
  • Benchmarking and comparing LLM responses
  • Exploring diverse viewpoints on complex or controversial questions

⚙️ How it works

  • The workflow leverages OpenRouter, allowing access to many LLMs through a single API credential.
  • In the Initialization node, you define:
    • Council member models: Models that answer the query and later evaluate all responses
    • Chairman model: The model responsible for synthesizing the final verdict
  • Any OpenRouter-supported model can be used: https://openrouter.ai/models
  • For simplicity:
    • Input is provided via a Chat Input trigger
    • Output is sent via an email node with a structured summary of the council’s results

👷 How to use

  • Select the LLMs to include in your council:
    • Council member models: Models that independently answer and evaluate the query. The default template uses:
      • openai/gpt-4o
      • google/gemini-2.5-flash
      • anthropic/claude-sonnet-4.5
      • perplexity/sonar-pro-search
    • Chairman model: Choose a model with a sufficiently large context window to process all evaluations and rankings.
  • Start the Chat Input trigger.
  • Observe the workflow execution and review the synthesized result in your chosen output channel.

⚠️ Avoid using too many models simultaneously. The total context size grows quickly (n responses + n² evaluations), which may exceed the Chairman model’s context window.

🚦 Requirements

  • OpenRouter API access configured in n8n credentials
  • SMTP credentials for sending the final council output by email (or replace with another output method)

🤡 Customizing this workflow

  • Replace the Chat Input trigger with alternatives such as Telegram, email, or WhatsApp.
  • Redirect output to other channels instead of email.
  • Modify council member and chairman models directly in the Initialization node by updating their OpenRouter model names.