Skip to main content

Multi-agent consensus system - LLM agents with different prompts analyze problems, critique each other, iterate to agreement

Project description

Consult

CI PyPI version Python License

Multi-agent consensus system. N LLM agents with domain-specific prompts analyze your problem in parallel, critique each other's outputs, iterate until approval threshold is met, then a synthesis agent produces one unified answer.

When to Use This

Single LLM calls optimize for one dimension. Use this when:

  • The problem spans multiple domains (security + performance + data modeling)
  • You want structured disagreement before commitment
  • The cost of a bad architecture decision exceeds the cost of slower, more expensive analysis
  • You're making decisions that are expensive to reverse

Don't use this for simple questions. It's 3-10x the cost and latency of a single API call.

Installation

pip install getconsult
export ANTHROPIC_API_KEY=sk-ant-...

How It Works

┌──────────────────────────────────────────────────────────────────┐
│                         WORKFLOW                                 │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. PARALLEL ANALYSIS                                            │
│     N agents with domain-specific system prompts                 │
│     analyze the problem concurrently                             │
│                                                                  │
│  2. PEER REVIEW                                                  │
│     Each agent reviews each other agent's output                 │
│     (N agents = N*(N-1) pairwise reviews)                        │
│                                                                  │
│  3. META REVIEW                                                  │
│     Cross-cutting analysis: integration gaps,                    │
│     unstated assumptions, conflicting recommendations            │
│                                                                  │
│  4. REVISION                                                     │
│     Agents incorporate peer + meta feedback, update solutions    │
│                                                                  │
│  5. APPROVAL VOTING                                              │
│     Each agent votes on each other's revised solution            │
│     APPROVE (1.0) / CONCERNS (0.7) / OBJECT (0.0)                │
│                                                                  │
│  6. RESOLUTION                                                   │
│     ≥80% aggregate approval → consensus                          │
│     <80%, iterations remain → back to step 2                     │
│     <80%, max iterations reached → orchestrator decides          │
│                                                                  │
│  7. SYNTHESIS                                                    │
│     Presentation agent produces ONE unified answer:              │
│     - Merges convergent recommendations                          │
│     - Highlights resolved trade-offs                             │
│     - Notes remaining caveats from peer review                   │
│     - Provides actionable next steps                             │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

Output: Single synthesized recommendation, not N separate answers.

Usage

consult -p "problem statement" [options]

Examples

# Zero-downtime schema migration with constraints
consult -p "Migrating 200M row PostgreSQL table from UUID to bigint PKs. \
47 foreign key references, 12 indexes, 3k QPS. Cannot lock table. \
Current plan: add column, backfill, swap. Backfill estimated 9 hours. \
What's wrong with this plan and what's the alternative?"

# Production debugging with incomplete information
consult -p "Kubernetes pods OOMKilled. Container limit 4Gi, JVM heap 2Gi, \
G1GC on OpenJDK 17. RSS grows to 3.8Gi over 6 hours. Native memory \
tracking shows 800MB unaccounted. Happens in prod not staging (same image). \
What are we missing?"

# Multi-domain architecture decision
consult -p "Event sourcing vs state-based for order service. \
100k orders/day, need 7-year audit trail, eventual consistency acceptable \
for reads, strong consistency required for inventory decrements. \
Team has zero ES experience. What are the actual trade-offs we'll hit?"

With Expert Selection

# Default: backend, database, infrastructure
consult -p "..."

# Security-focused (security, backend, infrastructure)
consult -p "..." -e security_focused

# Custom combination
consult -p "..." -e "database_expert,performance_expert,security_expert"

With Multiple Iterations (Pro)

# 3 revision cycles
consult -p "..." -i 3

# 90% agreement threshold
consult -p "..." -t 0.9

With Context (Pro)

# Include diagram
consult -p "Review for single points of failure" -a architecture.png

# Continue previous session
consult -p "Now add caching layer" --memory-session project-x

CLI Reference

consult -p "problem" [options]

Required:
  -p, --problem TEXT          Problem statement

Expert Selection:
  -e, --experts TEXT          Set name or comma-separated types
                              Sets: essentials, architecture, security_focused,
                                    performance, full_stack, data_platform, ai_system
                              Types: database_expert, backend_expert, security_expert,
                                     performance_expert, infrastructure_expert,
                                     software_architect, frontend_expert, cloud_engineer,
                                     ml_expert, data_expert

Analysis:
  -m, --mode [single|team]    single = one provider, team = all three (Pro)
  --provider NAME             anthropic, openai, or google
  -i, --max-iterations N      Max revision cycles (default: 1, Pro: up to 5)
  -t, --consensus-threshold F Approval threshold (default: 0.8)

Output:
  --markdown                  Save to ~/.consult/outputs/
  --markdown-filename TEXT    Custom filename
  -c, --copy                  Copy to clipboard

Context:
  --memory-session NAME       Session identifier (Pro)
  -a, --attachments FILES     Images/PDFs to include (Pro)

Info:
  --status                    Tier, limits, usage
  --list-experts              Available experts and sets
  --dry-run                   Validate without API calls
  --version                   Version

Expert Types

Type Domain
database_expert Schema, queries, consistency, migrations
backend_expert API design, service boundaries, error handling
security_expert Auth, validation, threat modeling, compliance
infrastructure_expert Deployment, scaling, monitoring, reliability
performance_expert Profiling, caching, bottleneck analysis
software_architect System design, trade-offs, patterns
frontend_expert UI architecture, state, rendering
cloud_engineer Cloud services, IaC, containers, networking
ml_expert ML pipelines, training, inference, MLOps
data_expert Pipelines, ETL, streaming, warehousing

Expert Sets

Set Composition
essentials backend, frontend
architecture architect, database, cloud
security_focused security, backend, infrastructure
performance performance, backend, database
full_stack backend, frontend, database, infrastructure

Consensus Mechanism

Each agent votes on each other agent's solution:

Verdict Score Meaning
APPROVE 1.0 No blocking issues
CONCERNS 0.7 Acceptable with caveats
OBJECT 0.0 Blocking problems

3 agents = 6 pairwise votes. Aggregate = mean of all votes.

After consensus (or orchestrator resolution), a synthesis agent produces one unified answer incorporating all expert perspectives. You get a single recommendation, not N separate outputs.

Tiers

BYOK: you provide API keys, pay providers directly.

Free Pro ($9/mo)
Queries/day 3 100
Queries/hour 2 20
Max experts 2 (-e essentials required) 10
Max iterations 1 5
Team mode No Yes
TUI No Yes
Sessions No Yes
Attachments No Yes
Export No Yes

License Key

export CONSULT_LICENSE_KEY="CSL2_pro_..."
# or
echo "CSL2_pro_..." > ~/.consult/license

Configuration

# ~/.consult/.env

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...      # optional
GOOGLE_API_KEY=...         # optional

# Model overrides (defaults are cost-optimized)
ANTHROPIC_MODEL=claude-sonnet-4-20250514
OPENAI_MODEL=gpt-4o

Performance

Configuration Latency
2 experts, 1 iteration 45-90s
3 experts, 1 iteration 90-150s
3 experts, 3 iterations 180-300s

Latency dominated by sequential LLM calls per phase. Agents within each phase run in parallel.

Data Storage

~/.consult/
├── .env              # API keys (chmod 600)
├── license           # License key
├── sessions/         # Session state (Pro)
├── outputs/          # Exports (Pro)
├── cache/            # Rate limit tracking
└── logs/             # Debug logs (keys redacted)

Security

  • API keys never logged or persisted outside .env
  • Session files use hashed identifiers
  • Logs redact sensitive patterns
  • No telemetry or phone-home

Development

git clone https://github.com/1x-eng/agentic-atlas.git
cd agentic-atlas
pip install -e ".[dev]"
pytest

License

Proprietary. See LICENSE.

Personal and internal business use permitted. Commercial distribution or SaaS integration requires separate license.


Built on AutoGen.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

getconsult-0.7.0.tar.gz (221.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

getconsult-0.7.0-py3-none-any.whl (249.8 kB view details)

Uploaded Python 3

File details

Details for the file getconsult-0.7.0.tar.gz.

File metadata

  • Download URL: getconsult-0.7.0.tar.gz
  • Upload date:
  • Size: 221.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for getconsult-0.7.0.tar.gz
Algorithm Hash digest
SHA256 d57278dbf7b136ae4f6e245205d9be570dac9ae632974bbddd7e6f4e3bd3bd28
MD5 bd01f4303ba5e39bdbf43e7b819ae143
BLAKE2b-256 b6ddd28130e7918370a4f1871aaf9ac84da925689a499d65ef11ac59435f6bd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for getconsult-0.7.0.tar.gz:

Publisher: release-please.yml on 1x-eng/agentic-atlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file getconsult-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: getconsult-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 249.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for getconsult-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec1ffc93c3f6f3bdb72b1ba875c3d4a2af4ef2e5b99ddb984587447214516352
MD5 9430459d0513ef65db4cf0479f1934ad
BLAKE2b-256 728226c823f292bd0eaeb46463a0998a564b2848b2099fa64dfa1ae25d8aff90

See more details on using hashes here.

Provenance

The following attestation bundles were made for getconsult-0.7.0-py3-none-any.whl:

Publisher: release-please.yml on 1x-eng/agentic-atlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page