DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Longloop Console — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
L

@alex-spacemit/dsh-longloop-console

Longloop Console

LongLoop Console:面向 DeepSeek Harness(web)的契约冻结长时域运行——运行循环、任务看板、工作区记忆、技能、多智能体名册、验证门和 §12 指标。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:alex-spacemit/longloop#b34b756d8e495476400a271dd1ad0670a003c069
README兼容性版本

兼容性与来源证明

Longloop Console 以 @alex-spacemit/dsh-longloop-console 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/19

版本

0.1.0stable
2026/9/19

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/19
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Agent Teams@nanmicoder/dsh-agent-teamsAgentTeams for DeepSeek Harness:通过自然语言驱动多智能体团队协作(队长、成员、具有依赖关系的任务、消息传递),并在 Web GUI 中提供树状监视器

README

LongLoop Console

A DeepSeek Harness (dsh) plugin for long-horizon agent work that has to prove it finished.

The harness already runs an agent loop. LongLoop adds the part that a long task needs and a short one does not: a contract that is frozen before work starts, a verification gate that runs the contract instead of asking the model whether it is done, a governance loop that notices drift while there is still budget left, and a ledger that survives the process.

Everything lives under <workspace>/.longloop/, so a workspace carries its own run.

  • Design document: docs/longloop-framework-design.md
  • Package manifest: package.json (dsh.bundle.patch, dsh.client)
  • Source: src/ — runtime artifacts: lib/ (identical files, see Build below)

What it does

PieceWhat it buys
Run + contractOne objective, a deliverable, acceptance criteria, hard constraints, frozen test files. The contract is written once and cannot be edited afterwards — by the model or by the run.
Verification gateEvery criterion becomes a shell check (退出码 0 / stdout /re/ / 文件 path). A verdict is executable (checks ran) or independent (a fresh-context evaluator that shares nothing with the executor). A self verdict is recorded as a claim, never counted as evidence.
Contract freezetools.guard denies any write to a frozen path for as long as the run is live (armed/running/paused/suspended). An executor that can rewrite its own acceptance test converges on editing the test.
Contamination controlA check command may not read the answer: git history, .git, .env, keys and credential stores are refused before execution, and a tree that escapes itself through a symlink refuses to verify at all.
Governance loopStall scoring over eight signals (workspace unchanged, board unchanged, repeated blocker, read-only round, …) drives a ladder: nudge → replan → switch mode (fresh-context round) → diagnosis → report; plus a budget ladder that narrows scope as the ceiling approaches.
Context governanceMeasures the same pressure the harness compacts on, and compacts proactively at an idle boundary before a round's prompt is assembled.
Process verificationEvery K rounds the cheapest frozen checks run even without a completion claim, and a check that stopped passing becomes a stall signal — so a wrong assumption is caught in round 3 instead of at the ceiling.
RecoveryEvery round carries a durable id; a dispatch without a completion is recorded as an unknown outcome, the run suspends instead of resuming by itself, and the next round is told to reconcile state before redoing side effects.
Ledger + session eventsOne append-only fact per line (<workspace>/.longloop/ledger.jsonl) and the same facts mirrored into the session log as longloop/* events, with three projections so the console can read them back.
ConsoleA drawer over the workspace: run page (contract, budget, stall, context, verdict, handoff, metrics), task board, long-term memory, workspace skills, multi-agent roster.
Metrics (§12)Completion rate, distinct-round counts, verification coverage and executable pass rate, contract quality, drift, dead ends, unknown outcomes — plus an explicit list of what the ledger cannot prove.

Install

Into a dsh profile, from GitHub:

dsh plugin --profile web add github:alex-spacemit/longloop

That is the same path any other plugin takes: it adds the package to the profile's package.json dependencies and to dsh.profile.bundles. If you are installing from a local checkout instead:

dsh plugin --profile web add link:/path/to/longloop

Then start the profile and look for 任务台 in the sidebar (or the same button in the session header). Nothing else is needed: the host half arrives through the patch layer the plugin ships (cordis.patch.yml), and the browser half is declared in package.json under dsh.client.

Use

From the console, or from the composer:

/longloop start 修好登录接口 --accept "测试全绿 | npm test | 退出码 0" --freeze tests/auth.test.ts
/longloop status | pause | resume | stop [原因] | verify | handoff | metrics

/longloop start takes a whole contract on one line:

  • --accept "陈述 | 命令 | 期望", repeatable. The expectation is 退出码 0, stdout /正则/, or 文件 path; omitting it means exit code 0. A line with no command is accepted and reported as not machine-decidable, because a criterion nobody can decide is the failure this plugin exists to prevent.
  • --freeze 路径, repeatable: the files the checks live in. Without it the run can edit its own judge, and the console says so.
  • --rounds N, --deliverable 文字.

The model drives the same lifecycle through the design's nine tools: run_start, run_plan, run_note, run_evidence, run_status, run_verify, run_finish, run_block, run_handoff.

Two of them are worth knowing about:

  • run_plan(tasks[]) replaces the plan, and every task must name the criterion it addresses (addresses: ["C1"]). A task that addresses nothing is rejected, ids the contract does not have are rejected, and the reply names the criteria no task covers — a plan is graded by the contract, not by itself.
  • run_evidence(kind, pointer, addresses) registers what a claim rests on — a file, a command, a URL, a commit, an observation — with the criteria it speaks to. The framework hashes the artifact (a file by content, anything else by pointer, and the record says which), and the reply names the criteria that still have no evidence. run_finish then cites evidence by id, and an id that was never registered is reported rather than counted.
  • run_verify(criteria?) runs the gate on demand. Without arguments it is the real gate: if every required criterion passes, the run completes. With criteria it validates only those and cannot complete the run, which is the point — a subset answer is not a completion.

Configuration

The plugin has exactly one row, with one meaningful option:

- id: longloop-console
  config:
    driver: false              # true = the loop queues its own rounds; false = a human clicks
    processVerifyEveryRounds: 10

driver: false is the shipped default on purpose: a restart must not resume work nobody re-authorised.

Build

src/ is the source; lib/ is what dsh loads, committed so a git install works without a build step.

npm run build      # src/ → lib/ (byte for byte)
npm run check      # verify lib/ is in sync, then run the test suite
npm test           # 263 tests, no dependencies beyond Node's test runner

The plugin is dependency-free ESM JavaScript: it uses only Node built-ins and the capabilities the host hands it through ctx (tools, guards, routes, prompt contexts, session projections, commands, subagents). That is also why there are no dependencies or peerDependencies — nothing is imported from the harness packages at runtime.

Status

Implemented and exercised against a live dsh web on macOS: run/contract, verification gate (including the independent evaluator), contract freeze at the tool gate, quarantine, the governance and budget ladders, context governance, process verification, ledger + session events + projections, the console, and metrics.

Known gaps, kept visible rather than implied by the absence of a note:

  • The verification sandbox is in-place with quarantine rules, not a copied workspace.
  • No control group. The metrics describe the system as it is; they do not measure what the governance adds (§12 says so in the report itself).
  • The verification sandbox is in-place with quarantine rules, not a copied workspace.
  • The design's multi-package/multi-plane split is delivered as one package (design §11.7 records this as the deliberate M0 convergence).

License

MIT — see LICENSE.