DeepSeek Harness 插件

dsh-llm-aimux

DeepSeek Harness (dsh) LLM adapter backed by aimux — one Rust engine, 325+ providers as dsh model routes.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
arcships/dsh-llm-aimux
最近更新
2026年8月17日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

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

安装

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

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

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

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

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

GitHub:https://github.com/arcships/dsh-llm-aimux
插件名:dsh-llm-aimux
作者:arcships

检查来源文件

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

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

dsh-llm-aimux

![CI](https://github.com/arcships/dsh-llm-aimux/actions/workflows/ci.yml) ![License: MIT](LICENSE)

DeepSeek Harness (dsh) LLM adapter backed by aimux — one Rust engine exposing 325+ AI providers as dsh model routes.

> 中文简介:本插件把 aimux(Rust 统一 LLM 访问层,325+ 提供商)接入 DeepSeek Harness——每个 aimux provider 都可以配置成一条 dsh 模型路由。

Install

dsh plugin --profile web add @arcships/dsh-llm-aimux

Then store a credential (or export the environment variable) and pick the model:

dsh --profile web
# Models page → provider "deepseek" → paste your DEEPSEEK_API_KEY

Headless without the credentials store works too — aimux reads the provider's conventional env var (DEEPSEEK_API_KEY, GROQ_API_KEY, …) directly.

Configuration

Routes are keyed by dsh provider id; each maps to one aimux provider. The composition entry below is only the base layer — users add or edit routes through their settings (web Models page → provider card, or the llm-aimux: section in settings.yaml) and changes apply without a restart:

- insert:
    - id: llm-aimux
      name: '@arcships/dsh-llm-aimux'
      config:
        providers:
          deepseek:                    # dsh route id
            provider: deepseek         # aimux provider name (default: the route id)
            apiKeyEnv: DEEPSEEK_API_KEY # credential ref (default: <PROVIDER>_API_KEY)
          kimi:
            provider: moonshot         # credential ref derives as MOONSHOT_API_KEY
          groq:
            displayName: Groq

The same shape works in the user settings layer:

llm-aimux:
  streamIdleTimeoutMs: 300000     # chunk-idle watchdog relayed to aimux
  providers:
    groq: {}
    relay:                        # endpoint override through a gateway/relay
      provider: deepseek
      baseUrl: https://relay.example/v1
      headers:
        X-Org: acme
  • provider — an aimux provider name. aimux ships 325+ (251 of them

OpenAI-compatible registry entries); see the aimux provider docs.

  • Every route appears as a configurable provider on the Models page

(ctx.llm.registerConfigurableProviders, addressed at llm-aimux.providers.<route>); added or removed routes swap atomically.

  • Credentials resolve through the harness ctx.credentials seam when mounted;

otherwise aimux falls back to the provider's own env var. Resolution is per-request, so a rotated key reaches the next call.

Status & scope

This is a young experiment tracking a developer-preview harness — expect breaking changes on both sides (dsh rc bumps, aimux pre-1.0).

Currently supported:

  • Streaming chat with tool calls (raw JSON tool arguments, per the adapter contract)
  • Reasoning blocks in and out
  • Disjoint token usage accounting (cache read/write split out)
  • Attribution headers on every outbound provider request
  • Settings integration: llm-aimux user-settings section, per-route Models

page cards, and hot route swaps (registration.replace) on section changes

  • Model metadata merging (aimux RFC-0027 host role): runtime /models

discovery + the community catalogue (getModelSpecs), feeding Models-page cards, resolveModel context windows / output caps / reasoning efforts, and endpoint interrogation for stored routes

  • Per-route endpoint overrides (baseUrl, headers) for relays and gateways
  • Streaming chunk-idle watchdog (streamIdleTimeoutMs, default 300 s)

Retry policy: aimux always sends exactly one attempt (max_retries: 0) — the dsh agent layer owns the retry budget, matching llm-pi-ai's treatment.

Not yet supported:

  • Image input (dsh attachment references are not resolved to bytes yet) — fails

closed with UNSUPPORTED

  • Subscription/OAuth channels (aimux RFC-0018 keeps those integrator-side)
  • Endpoint interrogation for draft (not-yet-stored) routes — arbitrary

baseURL drafts cannot go through the aimux registry and answer with nothing

Route conflicts: routes owned here cannot overlap with the built-in llm-pi-ai routes (dsh rejects duplicate adapters). If you configure both, give the aimux entry a distinct route id.

Development

npm install
npm run typecheck
npm test

The adapter is a thin shell over src/translate.ts (pure, synchronous, fully unit-tested without the native binding). @arcships/aimux ships prebuilt platform binaries via npm optional dependencies — no build scripts, so dsh plugin add works without pnpm allowBuilds flags.

License

[MIT](LICENSE)