DeepSeek Harness plugin

cortiq-router

Умный маршрутизатор LLM-запросов для DeepSeek Harness (dsh). Классифицирует каждый промпт по типу задачи (code, math, translation и др.) и сложности (low/medium/high) через семантический роутер

Jump to install

Source facts

Repository
infosave2007/cortiq-router
Latest update
Aug 21, 2026
Category
Models & Providers
GitHub stars
1
Format
plugin
Package path
packages/dsh-llm-cortiq-router
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
packages/dsh-llm-cortiq-router/package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-21

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/infosave2007/cortiq-router/tree/HEAD/packages/dsh-llm-cortiq-router
Plugin: cortiq-router
Author: infosave2007

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer2 files
README.mdSource · read only

cortiq-dsh-llm-router 🧠✨

Your LLMs on autopilot. One key — every prompt is automatically dispatched to the best model.

> Stop guessing which model to pick. Just type — the plugin figures out where to send each request.

---

🚀 Quick Start (1 minute)

dsh plugin add cortiq-dsh-llm-router
# Go to Settings → Models → Cortiq Router, paste your key
# Then pick "Cortiq Router · Auto" in the chat model selector

Done. The plugin handles everything from here.

> One prerequisite: the router picks among the models your other provider > plugins already serve (e.g. llm-deepseek). Keep at least one of them > configured — the router never talks to a model vendor itself.

---

🎁 Free Trial

Get a free key for 1 month — no payment required.

👉 allaigate.com — sign up and get a cortiq_… key instantly.

No promo code needed. After the trial, plans start at just $1/month.

---

💰 What does it cost?

Without pluginWith plugin
All requests go to expensive modelsSimple requests → cheap model
Overpay 10–50×Save up to 90%
Manual model selection every timeFully automatic

---

🎯 What it does

The plugin is a smart dispatcher for your LLMs. It reads every prompt, understands what you're asking, and routes it to the right model.

Live example

You type: "Write a Python function to reverse a linked list"

Without pluginWith plugin
🤷‍♂️ Have to pick a model yourself🔍 Router: "This is code, low complexity (0.29)"
🎲 Guess: DeepSeek V4 Pro ($)🧠 Rule: code @ low → fast model
Response in 3s, paid $0.01⚡ Response in 0.5s, free

But: "Implement a distributed consensus algorithm"

Without pluginWith plugin
🤷‍♂️ Guess again🔍 Router: "This is code, high complexity (0.78)"
Maybe Flash is enough?🚀 Escalation: hard request → powerful model
Response might be bad✅ Strong model handles it well

---

⚙️ What can you configure?

Complexity thresholds

complexityBands:
  low:   0.35    # score ≤ 0.35 → simple task
  medium: 0.65   # ≤ 0.65 → medium, > 0.65 → hard

Which models at which complexity

globalTiers:
  low:    [deepseek-v4-flash]           # simple → fast & cheap
  medium: [deepseek-v4-pro]             # medium → more powerful
  high:   [deepseek-v4-pro]             # hard → strongest

Per-task rules

taskRules:
  code:
    low:  [deepseek-v3-chat]            # simple code → fast model
    high: [deepseek-v4-pro]             # complex code → powerful model
  translation: [deepseek-v3-chat]       # simple form: same model at all tiers
  creative-writing:
    low:  [deepseek-v4-flash]
    high: [deepseek-v4-pro]

---

🎮 Who is this for?

YouWhy you need it
AI agent developersYour agent picks the right model automatically, saving tokens
Freelancers / solo devsSave on API costs without sacrificing quality
Teams / startupsOne key, automatic routing, full transparency
EnthusiastsSmart routing for $1/month — no headache

---

📊 Real-world accuracy

We ran 8 different prompt types through the live allaigate router:

Prompt                                                    Task              Conf    → Routed To
─────────────────────────────────────────────────────────────────────────────────────────────
Write a Python function to reverse a linked list          code              0.991   fast model ✓
Solve quadratic equation x² - 5x + 6 = 0                  math              0.980   medium model
Translate to French: Hello world                          translation       0.988   fast model ✓
Write a poem about AI consciousness                       creative-writing  0.950   fast model ✓
What is the capital of France?                            qa                0.998   medium model
Summarize: The quick brown fox...                         summarization     0.980   medium model
Extract date and price from invoice                       extraction        0.997   medium model
How are you doing today?                                  chitchat          1.000   medium model

8/8 — all task types correctly identified. ✓ = task rule applied → model chosen intentionally

---

🔄 How it works

You: "write code to reverse a list"
    │
    ▼
┌─────────────────────────────┐
│ 1. Text extraction           │ ← only last_user (PII stays local)
└──────────┬──────────────────┘
           │ POST /v1/route
           ▼
┌─────────────────────────────┐
│ 2. Semantic router           │ ← router.allaigate.com
│    task=code, complexity=low │
└──────────┬──────────────────┘
           │
           ▼
┌─────────────────────────────┐
│ 3. Routing table             │ ← your configuration
│    code @ low → flash        │
│    ↳ fallback → flash/pro    │
└──────────┬──────────────────┘
           │ invoke
           ▼
┌─────────────────────────────┐
│ 4. Delegated to the provider │
│    plugin that serves it     │
└─────────────────────────────┘

---

🎛 Picking a policy per chat

The model picker lists four entries. All of them route; the last three pin the policy profile for that conversation, so you don't have to open settings:

EntryWhat it does
AutoRoutes using the profile configured in settings
Auto · cost saverPrefers the cheap end of every chain
Auto · balancedThe middle ground
Auto · quality firstEscalates sooner to the strong models

---

⚙️ Settings UI

The plugin adds its own Cortiq Router section to the harness settings, in every language it ships:

What you get there
Classifier keypaste it once; stored through the credentials service, with a configured / not-configured badge
Endpoint & behaviourclassifier URL, policy profile, what gets classified, character cap, timeout, decision logging
Complexity bandswhere low / medium / high sit on the 0…1 score, with a low-below-medium check
Model chainsthe per-tier chains and the fallback model
Per-task rulesa table of task × low / medium / high / any, with add and remove

> It is a section of its own, not a card inside Models. The Models page > picks its provider editor by namespace and offers third-party providers only > a note pointing at settings.yaml, with Apply disabled — so the plugin > registers through the same settings.section slot the Models page itself uses.

---

🌍 Languages

The plugin ships its own copy in 7 languages — 🇬🇧 English · 🇷🇺 Русский · 🇨🇳 中文 · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇹🇷 Türkçe — selected by the language setting:

llm-cortiq-router:
  language: auto   # auto | en | ru | zh | de | fr | es | tr

auto follows the harness UI language. Note that the dsh browser client itself ships only English and Chinese, so auto resolves to one of those two; pick any of the other five explicitly here to use it.

Translated: the entries this provider shows in the model picker, and the message shown when no candidate model could serve a call — the strings a provider plugin actually puts in front of you. Log lines stay English: they are diagnostics meant for issues and grep.

---

📦 Installation

# From DSH plugin store
dsh plugin add cortiq-dsh-llm-router

# Or via npm
npm install cortiq-dsh-llm-router

Or add to your cordis.patch.yml:

- insert:
    - id: llm-cortiq-router
      name: 'cortiq-dsh-llm-router'

🔑 Get Your Key

1. Open allaigate.com 2. Sign up — get a free 1-month key instantly 3. Copy your key (cortiq_…) 4. In DSH: Settings → Models → Cortiq Router → paste your key

Or set the environment variable:

export CORTIQ_ROUTER_KEY=cortiq_your_key_here

---

💡 Tips

  • Start with defaults — they're sensible and work out of the box; the

classifier lives at router.allaigate.com, and routerUrl points a self-hosted deployment somewhere else

  • Add per-task rules for tasks that matter most to you
  • Tweak complexityBands to fine-tune when a request is considered "hard"
  • Watch the log — with echoRouting on (the default), every call prints

task=… tier=… score=… → provider/model, so you can see what it chose

  • Chains survive a missing key — a candidate whose provider refuses the

call (no credential, no adapter, unknown model) is skipped and the next one answers; only a provider that already started streaming keeps the call

  • Name a route explicitly — a candidate written as provider:model

(e.g. deepseek-official:deepseek-v4-pro) skips catalog lookup entirely

---

📄 License

MIT — do whatever you want.

---

One key. No guessing. Every request goes to the best model. 🚀