Skip to content

Latest commit

 

History

History
109 lines (87 loc) · 5.56 KB

File metadata and controls

109 lines (87 loc) · 5.56 KB
title Chaos Mode
version 3.8.51
lastUpdated 2026-09-01

Chaos Mode

Dashboard: Chaos Mode (sidebar) → /dashboard/chaos
API: GET / PUT /api/chaos/config · POST /api/chaos/run (dashboard session) · POST /api/skills/collect/chaos (API key)
Source: src/lib/chaos/chaosExecutor.ts, src/lib/chaos/chaosConfig.ts

Chaos Mode sends one task to several providers at once — every participating provider contributes one model instance, and you get all the answers side by side (or chained). It is a multi-model execution surface, not a routing strategy: your normal /v1/chat/completions traffic is never affected by it.

Disambiguation — three different things ship with "chaos" in the name:

Thing What it is Where documented
Chaos Mode The dashboard page + API described here: fan one task out to many providers (parallel or collaborative). This guide
auto/chaos An Auto-Combo model id with fault-injection scoring weights, for resilience testing. Nothing to configure. AUTO-COMBO.md
Chaos combo config A persisted combo with config.chaos.enabled fans out to a panel with an optional judge model (API-only). open-sse/services/autoCombo/chaosEngine.ts

Setup

  1. Open Dashboard → Chaos Mode (/dashboard/chaos).

  2. Turn it on — Chaos Mode ships disabled by default (enabled: false in src/lib/chaos/chaosConfig.ts). While disabled, POST /api/chaos/run answers 400 — "Chaos Mode is not enabled. Enable it in Dashboard → Chaos Mode.".

  3. Pick the participants and defaults (persisted per instance via the settings store):

    Field Meaning Default / limits
    enabled Master switch false
    defaultMode parallel or collaborative (see below) parallel
    providerOverrides Per-provider participation (providerId, optional modelId, enabled) empty = every active provider, max 200
    systemPrompt Override for the built-in Chaos system prompt optional, max 10 000 chars
    timeoutMs Max time per model call 120000 (5 000–600 000)
    maxTokens max_tokens per model call 4096 (256–128 000)
  4. Run a test from the page itself — the results panel shows each provider's answer, status and duration.

Execution modes

  • parallel — every model gets the same task simultaneously; you receive all answers independently.
  • collaborative — models run in a chain: each one sees the previous model's output and is asked to refine, extend, critique or offer an alternative. The response's summary field concatenates the successful outputs in chain order (parallel runs have no summary).

API

POST /api/chaos/run — dashboard session

Cookie-authenticated (the management session — see MANAGEMENT-AUTH.md); used by the dashboard page.

// body
{
  "task": "Compare approaches to X",   // required
  "providers": ["glm", "kimi"],         // optional filter
  "mode": "parallel",                   // optional — overrides defaultMode
  "systemPrompt": "",                  // optional override
  "maxTokens": 4096                      // optional override
}

POST /api/skills/collect/chaos — API key

Bearer-token variant for external callers. The key must carry the Chaos Mode permission (chaosModeEnabled), which is off by default — enable it per key in Dashboard → API Manager → edit key → permissions → Chaos Mode. Same body as above.

curl -X POST http://localhost:20128/api/skills/collect/chaos \
  -H "Authorization: Bearer $OMNIROUTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"task":"Compare approaches to X","mode":"parallel"}'

Both endpoints return the same shape:

{
  "task": "",
  "mode": "parallel",
  "startedAt": "2026-09-01T00:00:00.000Z",
  "totalProviders": 3,
  "totalResults": 3,
  "models": [
    { "providerId": "glm", "providerName": "GLM", "modelId": "glm-4.7",
      "status": "success", "content": "", "durationMs": 3210 }
  ],
  "summary": "" // collaborative mode only
}

Troubleshooting

  • 400 Chaos Mode is not enabled — step 2 above: the global switch is off.
  • API key gets rejected on /api/skills/collect/chaos — the key lacks the per-key chaosModeEnabled permission (off by default; this is a setting, not an error).
  • A provider you expected is missing from the results — check providerOverrides on the Chaos Mode page (a disabled override excludes it) and whether the provider connection is active.