Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
模型与提供方 #agents#ai#deepseek#deepseek-harness#deepseek-harness-plugin#fork

dsh-subagent-fork-lite

In-process DeepSeek Harness subagent provider that seeds a child with only the last N completed parent turns (fork-lite), leaving official fork untouched.

aleskxyz @aleskxyz ⬇ 2 ★ 0 main

安装

dsh plugin --profile web add github:aleskxyz/dsh-subagent-fork-lite
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

In-process DeepSeek Harness subagent provider that seeds a child with only the last N completed parent turns (fork-lite), leaving official fork untouched.

该插件未提供要点说明,请参考仓库 README。

agentsaideepseekdeepseek-harnessdeepseek-harness-pluginfork
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/aleskxyz/dsh-subagent-fork-lite
许可证Apache-2.0
主要语言main
下载量2
GitHub 星标0
最近推送2026-09-16
收录日期2026-09-19
分类模型与提供方

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-subagent-fork-lite

In-process DeepSeek Harness subagent provider that seeds each child with a **bounded window** of the parent’s completed conversation — the last N finished turns — instead of the entire transcript.

Registered by default as `fork-lite` on `ctx.subagents`.

## Support matrix

| Harness tag | npm package line | Typecheck | Unit tests | Notes |
|---|---|---|---|---|
| `dsh-v0.1.2-rc.1` | `0.1.2-rc.1` | pass | pass | `sourceEventSeqs` remapping uses a version-safe read |
| `dsh-v0.1.5-rc.2` | `0.1.5-rc.2` | pass | pass | Primary dev/CI pin |
| `dsh-v0.1.6-alpha.1` | `0.1.6-alpha.1` | pass | pass | `session.snapshotEvents()` deprecated but still used (same as stock `fork`) |

No native harness seed-window API exists on these lines — this plugin remains the bounded-seed provider.

## Features

- **Turn-window seed** — configure how many completed parent turns the child inherits (`maxCompletedTurns`)
- **Stable mid-session cuts** — the open (in-flight) parent turn is never seeded; only balanced history through the last `turn/end`
- **Valid session seeds** — window events are renumbered so `seq` is contiguous from `0` (including remapped `sourceEventSeqs`)
- **In-process child** — depth limit, tool filter, persona, structured output, and per-start `agentOptions`
- **Context inheritance flag** — advertises `inheritsParentContext: true` when a seed is used
- **Named presets** — mount multiple instances with different `providerName` / `maxCompletedTurns` values

## Quick start

```sh
# git channel (latest main)
dsh plugin --profile web add "github:aleskxyz/dsh-subagent-fork-lite#main"

# or from npm (when published)
dsh plugin --profile web add dsh-subagent-fork-lite

# restart the profile, then verify the row
dsh --profile web --dump-config | grep -A6 'id: subagent-fork-lite'
```

Start a child with provider name `fork-lite` (see [Usage](#usage)).

## Install & uninstall

- **git channel** (latest `main`): `dsh plugin --profile web add "github:aleskxyz/dsh-subagent-fork-lite#main"` — the package `prepare` script builds with production dependencies; approve `esbuild` (and any other keys the CLI prints) if install stops on `ERR_PNPM_IGNORED_BUILDS`.
- **npm channel** (published releases): `dsh plugin --profile web add dsh-subagent-fork-lite`.
- **tarball channel**: `pnpm pack` in this repo, then `dsh plugin --profile web add ./dsh-subagent-fork-lite-.tgz`.
- **uninstall**: `dsh plugin --profile web remove dsh-subagent-fork-lite` (or remove the row from the profile patch).

Or insert the package into your profile patch (see [`cordis.patch.yml`](cordis.patch.yml)).

## Configuration

All tunables are Schemastery `Config` fields (changeable from cordis.yml). An **id-targeted override replaces the whole config row** — restate every key you need.

| Field | Default | Meaning |
|---|---|---|
| `providerName` | `fork-lite` | Name registered on `ctx.subagents` |
| `maxCompletedTurns` | `2` | Number of completed parent turns to seed; `0` seeds nothing |

```yaml
- insert:
    - id: subagent-fork-lite
      name: dsh-subagent-fork-lite
      config:
        providerName: fork-lite
        maxCompletedTurns: 2
```

### Multiple budgets

Seed size is fixed per mounted instance. For different windows, mount more than one row:

```yaml
- insert:
    - id: subagent-fork-lite-2
      name: dsh-subagent-fork-lite
      config:
        providerName: fork-lite-2
        maxCompletedTurns: 2
    - id: subagent-fork-lite-5
      name: dsh-subagent-fork-lite
      config:
        providerName: fork-lite-5
        maxCompletedTurns: 5
```

Then start with the provider name you need.

## Usage

```ts
const run = await ctx.subagents.start('fork-lite', {
  parent,
  prompt: [{ type: 'text', text: 'Your task for the child…' }],
  signal,
  // optional per-start route overrides:
  agentOptions: { provider: 'deepseek-official', model: '…' },
  // optional: toolFilter, persona, outputSchema, maxDepth, label
})

const result = await run.result
await run.dispose()
```

Omit `agentOptions` to inherit the parent’s LLM provider and model.

## Tools & surfaces

| Surface | Kind | Notes |
|---|---|---|
| `fork-lite` (configurable) | subagent provider | Registered on `ctx.subagents`; used via `subagents.start(providerName, …)` |
| `cordis.patch.yml` | bundle patch | Default insert row for profile install |

No commands, session projections, or client UI.

## How seeding works

1. Read the parent session log through the last `turn/end` (completed-turn prefix).
2. Keep only the last `maxCompletedTurns` of those turns.
3. Renumber event `seq` values to `0…k` so the child session accepts the seed.
4. Hand the seed to the in-process run driver; the child’s first user message is your `prompt`.

The child then runs in its own session. Later parent turns are not shared live — the seed is a one-time snapshot at start.

### What the seed contains

Within the kept turns, the child receives the parent’s logged events (user/assistant messages, tool calls/results, turn markers, and other events in that window). Surface history derived from those events is what the model sees.

### What it does not contain

- Parent turns older than the window
- The parent’s current open turn
- Custom or synthetic messages defined outside the parent log

## Capabilities

| Capability | Supported |
|---|---|
| `agentOptions` | yes |
| `outputSchema` | yes |
| `depthLimit` | yes |
| `toolFilter` | yes |
| `persona` | yes |
| Continuable prep (`prepareContinuable`) | yes (seed captured once at creation) |

## Known limitations

- Seed policy is Cordis config only — not a field on each `start()` call. Use multiple mounted provider names for discrete budgets.
- Window size is measured in **completed turns**, not characters or tokens.
- A window that includes surface replaces whose `sourceEventSeqs` point outside the window cannot be renumbered and will fail seed construction.
- On `0.1.6-alpha.1+`, synchronous `session.snapshotEvents()` is deprecated; this provider still uses it (same deferred migration as stock `fork`).
- Fresh AGENTS.md / runtime injects after start are separate from the seed (`agent/pre-step`); callers that need isolation must filter those themselves.

## License

Apache-2.0

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。