DeepSeek Harness 插件

cortiq-router

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

跳到安装方式

来源信息

GitHub 仓库
infosave2007/cortiq-router
最近更新
2026年8月21日
分类
模型与服务商
GitHub stars
1
载体类型
plugin
包路径
packages/dsh-llm-cortiq-router
目录证据
上游声明已找到 dsh.bundle
证据路径
packages/dsh-llm-cortiq-router/package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-21

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/infosave2007/cortiq-router/tree/HEAD/packages/dsh-llm-cortiq-router
插件名:cortiq-router
作者:infosave2007

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器2 个文件
README.md来源说明 · 只读预览

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. 🚀