DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-jev-loop

Jev Loop

Jev (TypeSafe System One) 在 DeepSeek Harness agent-loop 的各个关卡执行判定:步骤前、执行前、执行后和回合停止时。无 UI 依赖;可挂载到任意 Harness 组合中。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:JWE24-code/dsh-jev-loop#5779d920c6fedc24024075a338a50f63e76be9e2
README兼容性版本

兼容性与来源证明

Jev Loop 以 dsh-jev-loop 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/1

版本

0.1.2stable
2026/10/1
0.1.1stable
2026/9/30

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Skills Manager@michengai/dsh-skills-managerDSH Skills Manager — 在 DeepSeek Harness 中统一加载并安全管理本机 Agent Skills · 在 DSH 中加载并安全管理本地 Agent SkillsDs Botds-botDS Bot:DeepSeek Harness 的一组长期运行的 Bot,支持主 Bot、Bot 间消息和群聊Agency Agents@michengai/dsh-agency-agentsDSH Agency Agents — 为 DeepSeek Harness 提供 331 名可召唤的领域专家DSCODE Desktop@toddzheng024/dscode-desktop为 Harness Desktop 提供编码协作、记忆、浏览器工作流和任务管理功能。

README

dsh-jev-loop

Jev (TypeSafe System One) judgments at the DeepSeek Harness agent-loop gates. No UI dependency: mount it in any Harness composition, headless or otherwise.

This is the core of the Jev loop for moqi. The optional /JevLoop control panel ships separately as moqi-jev-loop, and depends only on the jevLoop service this package provides.

Published to npm as dsh-jev-loop. This repository carries the dsh-plugin topic — the whole of the dshfind listing mechanism: the marketplace indexes public repositories by that topic and syncs daily, so there is no listing step per release.

Install

dsh plugin --profile <profile> add dsh-jev-loop

Then give it a key: set TYPESAFE_API_KEY (or TYPESAFE_APIKEY) in the environment, or store one in the Harness credential store under TYPESAFE_API_KEY. The gates fail open — no key, timeout, 429, or bad JSON never blocks the loop.

The gates

GateEventWhat Jev judgesDecision
Pre-stepagent/pre-stepis the request underspecified?inject an "ask before guessing" instruction
Pre-executetools/pre-executedestructive · exfiltration · off-tasklog / ask / deny
Post-executetools/post-executedid a successful call silently miss?log / block with corrective feedback
Turn-stoppingagent/turn-stopping"is the request actually done?"nudge the turn onward, or pass

All four are automatic. Jev supplies a calibrated probability; this package owns the thresholds and decisions, and every failure — no key, timeout, 429, bad JSON — fails open, so a judgment service that is down never blocks the loop.

Configure them on the dsh-jev-loop row in a profile's cordis.patch.yml (see this package's cordis.patch.yml), or in a profile's own patch layer. The *Enabled defaults can also be overridden at runtime from moqi's /JevLoop panel, which persists to $DSH_HOME/jev-loop.json.

Cost envelope

  • One POST /v1/systemone per judgment; pre-execute asks its three hazards in a single call.
  • State is capped (maxStateChars); the transcript gates only send the last turnStoppingMaxMessages messages.
  • Answers are cached by a SHA-256 of the exact request body, so an unchanged judgment is free.
  • Every judgment is appended to $DSH_HOME/jev-loop.jsonl with probabilities, cache hit/miss, latency, and token usage.

Config

Set on the dsh-jev-loop row in a bundle patch, or in a profile's own patch layer.

FieldDefaultMeaning
apiKey—literal key; prefer apiKeyEnv so no secret is in a config file
apiKeyEnvTYPESAFE_API_KEYenv var read for the key; TYPESAFE_APIKEY is also read
modeljev-latestTypeSafe model alias
baseUrlhttps://api.typesafe.ai/v1/systemoneevaluation endpoint
timeoutMs3000per-request timeout
maxRetries2retries on 429/529, network errors, timeouts
maxStateChars24000hard cap on state sent to Jev
cacheEntries500in-memory cache entries
auditPath$DSH_HOME/jev-loop.jsonlJSONL audit trail
statePath$DSH_HOME/jev-loop.jsonpersisted gate toggles
preStepEnabledfalsejudge the request before the first step
preStepThreshold0.7clarification probability that injects a question
preExecuteEnabledtruejudge tool calls before dispatch
preExecuteModeloglog observes, ask requests approval, deny refuses
preExecuteThreshold0.7hazard probability that flags a call
preExecuteSkip[]tool names to ignore
postExecuteEnabledtruecheck a successful tool result

Test it

npm install            # typescript + @types/node
npm run link-harness   # symlink the installed harness's @deepseek-ai packages
npm run build
npm test               # gates, keyring, loop — no Harness, no network
npm run install-profile -- jev-core   # throwaway profile with just this bundle
TYPESAFE_APIKEY=… dsh --profile jev-core

~/.dsh/jev-loop.jsonl records every judgment.

To exercise the Harness-only build inside your own profile, list just the core bundle:

bundles: ['@deepseek-ai/dsh-base', 'dsh-jev-loop']

Layout

src/gates.ts   the four judgments and their copy, as pure functions
src/keyring.ts key resolution order, storing, probing, clearing
src/loop.ts    JevLoop: state assembly, per-turn budgets, audit, one method per gate
src/jev.ts     the TypeSafe client: a Judger port and its live adapter
src/render.ts  derived session messages -> plain text
src/index.ts   the Cordis adapter: config, event wiring, effects
tests/         the modules above, driven directly
scripts/       harness linking and the throwaway profile installer

Docs

The module boundaries, the seams, and the generated whiteboard are documented in docs/ARCHITECTURE.md.

SonarQube Cloud

postExecuteModeloglog observes, block turns feedback into an error
postExecuteThreshold0.7miss probability that blocks a result
turnStoppingEnabledtruecheck the turn before it closes
turnStoppingThreshold0.5completion probability below which to nudge
turnStoppingMaxSteers2nudges per turn, so a wrong judgment cannot loop
turnStoppingMaxMessages14transcript messages fed to the completion judgment