@adaptiqai/deepseek-harness

中文文档
0.2.19发布于 2026/11/07UNLICENSEDTypeScriptES Module零依赖近 30 天下载 2312

AdaptiqAI for DeepSeek Harness: models with 5M-token native memory and Knowledge. Sign up, get a model and work without leaving the harness

原始使用文档
文档目录8 节
  1. Install
  2. What you get
  3. How it works
  4. Privacy and security
  5. Headless and CI
  6. Configuration
  7. Troubleshooting
  8. Development

AdaptiqAI for DeepSeek Harness

Use your AdaptiqAI workspace in DeepSeek Harness: every model in your workspace, with native memory that keeps the whole conversation — up to 5 million tokens — and your Knowledge collections in any conversation. You sign in once, or create your account, in the browser; then pick a model and start, all from inside the harness. There are no keys to copy.

Welcome

Install

Needs DeepSeek Harness 0.2.0-rc.2 or a later 0.2 release.

  1. Open Plugins in the sidebar and choose Add plugin.
  2. Enter the package — @adaptiqai/deepseek-harness, or the full path to a downloaded adaptiqai-deepseek-harness-<version>.tgz — and install it.
  3. A welcome card asks you to Connect AdaptiqAI. Your browser opens; you sign in (or create an account with GitHub, Google or email) and approve, and the harness picks it up by itself.
  4. A new account has no model yet: the same card shows the models on offer, with price, speed and memory. Choose one and how many conversations can run at once, then Get access and confirm in the browser. The model appears in the picker as soon as it is active.

In the DeepSeek Harness desktop app, use the Plugins page; it keeps its own profile, which the dsh command can't change. If you run dsh web from a terminal, the same install is:

dsh plugin --profile web add @adaptiqai/deepseek-harness

What you get

Your models, set up correctly. The model picker gets an AdaptiqAI group with exactly the models in your workspace. Each one comes with its real context window, its output limit and its own thinking levels, all read from the server — nothing in the plugin names a model.

Model picker Thinking levels

Memory you can see. A small pill next to the send button shows what the model sees now: the conversation's memory against the model's window (Memory · 25k / 5M). It never adds up over a turn. After each answer it shows how much came straight from memory (24.6k from memory). Click it to switch the conversation between Remember and Private, add or remove knowledge, and see Processed: new input, read from memory, saved to memory and output, with the cost, for the last turn and the whole conversation. Every agent step reads the whole memory again, so these grow far past the memory's size; they are the same four numbers DeepSeek Harness's own usage panel counts (its uncached input, cached input, cache write and output). The plugin counts them on this computer from each answer's usage and keeps them across restarts.

Composer Memory popover

Settings → AdaptiqAI. Your workspace, the models with live running/waiting counts, memory use split into conversations and knowledge, whether new conversations are saved, and links to the console.

Settings

Knowledge. The Knowledge panel in the sidebar lists your collections. Use one in the open conversation with one click, or drop files to create a new collection; it is attached automatically when it is ready.

Knowledge New collection

One model per memory. AdaptiqAI builds a conversation's memory and each collection for one model, and they only work with that model. The Knowledge panel lists the collections that work with the model you are using first. Collections built for other models appear below, greyed out, each with Make available for . A collection can never be added to a conversation on the wrong model. If you switch the model in a conversation whose memory is on another model, a short note above the composer offers Switch back or Start fresh on .

Other models' collections Model notice

Notices that say what to do. If a model is busy, the harness waits and retries by itself and tells you so. If a model isn't in the workspace yet, you get a Get access button. If the balance runs out, you get an Add funds button. If memory is nearly full, you are told before it fills, with a way to clean up or continue privately. Where AdaptiqAI puts idle conversations to sleep to make room, one quiet line says so instead: nothing is deleted, and they wake when you use them. Then you are only told when nothing idle could sleep or your library is full, with a button to the console. If your sign-in expires, you are asked to sign in again.

Notices

Updates in one click. When a new AdaptiqAI release is out, a notice offers Update: the plugin installs it through the Plugins page's own installer and switches to it, without a restart where the harness allows. pnpm normally waits a day before it installs a new version; so that the update installs at once, the plugin first lists exactly that version of @adaptiqai/deepseek-harness under minimumReleaseAgeExclude in the profile's pnpm-workspace.yaml, replacing the version it listed before. Other packages keep pnpm's wait. If that file is laid out in a way the plugin can't edit safely, it is left alone and the update is offered a day after release, as before.

/adaptiq in the composer: status, signin, private, remember, knowledge, open, diagnostics, signout.

Get a model without leaving the harness. Settings → AdaptiqAI → Get a model (or Get access on any notice that offers it) lists what is on offer. You pay per token from your balance, and reads from memory are free. You confirm in the browser; the plugin follows the request and shows the model when it is ready.

Get a model Ready

Conversations as knowledge. Type @ in a message and pick another conversation: if it is on the same model, it is added to this conversation from memory (the model does not read it again as text), and it stays added for later messages. The memory pill says what was added. Or open the memory pill and choose Add: two tabs, Knowledge (your collections, newest first, the ones made in the last days marked New, the ones made for another model greyed with Make available here) and Conversations (recent ones on this model, named as in the sidebar); everything shows without typing, one click adds or removes. What a conversation uses shows as chips above the message box, × to stop using one, also before the first message. A private conversation adds nothing; a conversation you mention there is read as text.

Conversations

Agent tools. Agents can find and attach knowledge, and find words, ids or names in the text of the collections a conversation uses, with the exact lines as document:line (adaptiq_knowledge). The first step of a turn is told which ready collections its conversation reads, once and again when they change, as a context row in the conversation, so the agent looks things up there. Agents can also check shared memory and offer clean-up options (adaptiq_memory), and save what they learned as a new collection (adaptiq_create_knowledge). After reading a sizeable set of files, or when you say remember, save, collection or NCM, the agent searches your knowledge and offers to save the material as a collection; on your yes it creates it and confirms in one sentence, in your language. Its chip shows a quiet progress line while it compiles and a short notice says when it is ready. The agent never shows ids or technical status. If it saved something with a mistake, saving again corrects the same collection instead of making a second one, and it can take back a collection it made in this conversation in the last 15 minutes; it never deletes anything else. The whole journey, with what still needs the server, is in docs/CONTEXT_MANAGEMENT.md.

How it works

  • Requests go to the AdaptiqAI OpenAI-compatible API. Each request carries the harness conversation id (X-Adaptiq-Session-Id), so the server keeps one memory per conversation. Title requests carry no id, so they never fork a saved conversation.
  • Subagents and teammates also name the conversation that started them (X-Adaptiq-Parent-Session-Id), so the console shows them under it. A subagent is a helper of its parent; an Agent Teams teammate is a track, a line of work of its own (X-Adaptiq-Session-Role). A conversation you fork yourself names no parent.
  • No compaction. AdaptiqAI keeps the full conversation, so the plugin reports the model's true context window and declines the harness's compaction requests — in Remember and in Private — with a plain explanation, said once rather than at every step. Nothing is ever summarised away, and nothing is sent to the server for it.
  • Thinking levels come from each model's capability card (adaptiq-model-capabilities-v1): the levels, the value that turns thinking off, the default and the request field. Models without a card fall back to Low/High/Extra high/Max only when their id names a reasoning model.
  • Images reach a model whose capability card lists image in input: each one goes inline (image_url with a data: URL) where you put it in the message, after a short note naming it. The bytes come from the harness's own stored copy (content-addressed when you attached it), never from the original file, so a later turn resends exactly the same image even if the file changed. Images larger than 16 MP are scaled down first; the format is checked from the bytes (PNG, JPEG, WebP, GIF), and an image over 20 MB is refused with a plain message. Above 8 images in one request, the harness turns the oldest into notes. A model that reads text only gets a note in place of each image, and a notice says the images were not sent. Images a tool returns follow its result in the next message.
  • Usage is reported the harness's way: tokens read from memory count as cache reads, so the harness's own counters (cost, cache hit) are right.
  • Busy and preparing answers are retried by the harness, honouring the server's Retry-After.

Privacy and security

  • Sign-in uses the device flow: the plugin shows a short code, you approve in the browser, and the plugin receives a workspace credential. It is stored in the harness credential store ($DSH_HOME/.credentials.yaml, readable only by you) and renews itself. Tokens never reach the browser page.
  • The connection appears in the AdaptiqAI console under API keys as "DeepSeek Harness on "; revoking it there disconnects this computer only.
  • Private conversations can still read memory and knowledge, but nothing new is saved.
  • /adaptiq diagnostics produces a report without any secrets that you can send to support.

Headless and CI

Without a browser, store an API key from the console under the credential reference ADAPTIQAI_API_KEY (for example as an environment variable). The plugin uses it whenever no one is signed in.

Configuration

Everything has a production default. To change something, add a row to your profile's cordis.patch.yml:

- id: adaptiq
  name: '@adaptiqai/deepseek-harness'
  config:
    route: adaptiqai              # provider id in the model picker
    apiBase: https://api.adaptiqai.com
    consoleUrl: https://memory.adaptiqai.com/memory
    apiKeyEnv: ADAPTIQAI_API_KEY  # headless credential reference
    tools: true                   # agent tools
    progressEvents: true          # streamed "preparing" progress
    streamIdleTimeoutSeconds: 900

Troubleshooting

  • "AdaptiqAI models are hidden — another provider already uses the route". An older hand-made adaptiqai provider exists in your profile (usually an llm-pi-ai entry in cordis.patch.yml). Remove that entry and restart the harness.
  • Models missing. Open Settings → AdaptiqAI and press refresh; the list shows exactly the models in the workspace.
  • Anything else: run /adaptiq diagnostics and send the report to support.

Development

pnpm install
npm install -g @deepseek-ai/[email protected]   # the harness release the plugin targets (as CI does)
npm run link-dsh      # link the installed DeepSeek Harness packages for types and tests
npm run build         # lib/index.js (Host), lib/client.js (browser), Typert artifacts
npm test              # unit tests
ADAPTIQ_LIVE=1 ADAPTIQAI_API_KEY=ak_live_… npx vitest run test/live.test.ts   # one short live request
npm run pack:local    # dist/adaptiqai-deepseek-harness-<version>.tgz

Layout: src/host (adapter, sign-in, workspace service, Remote controller, command, tools), src/client (React UI in the AdaptiqAI design), scripts/remote-spec.mjs (the Remote namespace; scripts/gen-typert.mjs turns it into the Typert artifacts the harness loads).

The UI uses PP Frama when it is installed on the computer. The package does not ship PP Frama (its licence does not allow it); otherwise it falls back to Manrope, an SIL Open Font License grotesk embedded in the browser bundle (licence in assets/fonts/Manrope-OFL.txt).

版本与发布记录

@adaptiqai/deepseek-harness 共发布 15 个版本,首次发布于 2026/10/10;过去 12 个月发布了 15 个版本。

版本发布日期距今
0.2.19latest2026/11/07今天
0.2.182026/11/034 天前
0.2.162026/11/035 天前
0.2.152026/10/318 天前
0.2.142026/10/299 天前
0.2.132026/10/299 天前

关于 @adaptiqai/deepseek-harness 的常见问题

@adaptiqai/deepseek-harness 是什么?

AdaptiqAI for DeepSeek Harness: models with 5M-token native memory and Knowledge. Sign up, get a model and work without leaving the harness

如何安装 @adaptiqai/deepseek-harness?

在项目目录运行 npm install @adaptiqai/deepseek-harness,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/cordis(~4.0.4)、@deepseek-ai/dsh-llm(>=0.2.0-rc.2 <0.3.0)、@deepseek-ai/dsh-tools(>=0.2.0-rc.2 <0.3.0)、@deepseek-ai/schemastery(*)、@deepseek-ai/dsh-home-paths(>=0.2.0-rc.2 <0.3.0)、@deepseek-ai/dsh-credentials(>=0.2.0-rc.2 <0.3.0)、@deepseek-ai/dsh-typert-protocol(>=0.2.0-rc.2 <0.3.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@adaptiqai/deepseek-harness 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adaptiqai/deepseek-harness 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adaptiqai/deepseek-harness 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@adaptiqai/deepseek-harness 可以商用吗?

@adaptiqai/deepseek-harness 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@adaptiqai/deepseek-harness 的下载量有多少?

根据 npm 官方下载统计,@adaptiqai/deepseek-harness 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,312 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adaptiqai/deepseek-harness 还在维护吗?

最新版本 0.2.19 发布于 2026/11/07(今天);至今共发布 15 个版本,其中过去 12 个月发布了 15 个;首次发布于 2026/10/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。