DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-decisions-classifiers

Decisions Classifiers

适用于 DeepSeek Harness 的 OpenAI Decisions API:将谓词/选项/评分分类器作为代理工具和可注入服务,内置分类器库,可选择启用的执行前门控、Settings 页面,以及位于 ask_user_question 多选提示旁的“让分类器决定”卡片。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:erkinalp/dsh-decisions-classifiers#3858e1533f8fef9c4db19b2308445f2bc682ef8a
README兼容性版本

兼容性与来源证明

Decisions Classifiers 以 dsh-decisions-classifiers 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.1.1stable
2026/10/7

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

README

dsh-decisions-classifiers

OpenAI Decisions API classifiers for DeepSeek Harness.

The Decisions API (POST /v1/decisions, model gpt-6-luna) answers typed questions about text and images instead of generating prose: a predicate returns the probability that a condition holds, a choice returns one of your options with the full probability distribution, and a score returns a probability-weighted average over ordered levels. This plugin puts that capability in four places.

SurfaceWhat it gives you
Agent toolsdecisions_classify (one built-in classifier), decisions_ask (arbitrary typed questions, up to ~10 per request), decisions_status
Cordis servicedecisionsClassifiers — listPresets(), classify(), ask(), status() for other plugins
Opt-in call gateClassify every run_code/bash/write/edit call before it executes and deny the flagged ones
Advice cardA "classifier opinion" card beside ask_user_question multiple-choice prompts, with one click to adopt

Classifier library

idtypeanswers
moderationpredicateDoes this content violate a standard acceptable-use policy?
prompt-injectionpredicateDoes this text try to manipulate an AI system rather than inform a reader?
dangerous-commandpredicateDoes this command irreversibly destroy data or change machine-wide state?
piipredicateDoes this text identify a real individual?
relevancepredicateIs this passage relevant to the stated query? (pass context)
severityscoreCosmetic / workaround available / fully blocked
intentchoicebilling / technical / shipping / other

Anything else goes through decisions_ask, which takes the wire question types directly.

Setup

  1. Install the bundle (see below).
  2. Open Settings → Decisions Classifiers, paste an OpenAI API key, and press Store key. The key is written through the DSH credential seam as OPENAI_API_KEY (or the env name you set) and is never read back by the page. OPENAI_API_KEY in the process environment or a .env file works too.
  3. Press Test connection.

The call gate is off by default: installing this plugin changes no agent behaviour until you turn it on.

Install

dsh plugin --profile <profile> add /absolute/path/to/dsh-decisions-classifiers

or through the Harness plugin manager with the package directory as the target.

Configuration

Every field is settable from the Settings page (persisted to ~/.dsh/decisions-classifiers/config.json) and overridable from the bundle row; live edits win. Pin a deployment in cordis.patch.yml.

keydefaultmeaning
enabledtruemaster switch
baseUrlhttps://api.openai.com/v1endpoint base; /decisions is appended
modelgpt-6-lunathe only model the Decisions API serves today
apiKeyEnvOPENAI_API_KEYcredential-seam reference name
timeoutMs60000per-request budget
defaultThreshold0.5predicate cut-off when a preset does not fix one
advisorEnabledtruethe advice card
gateEnabledfalsethe pre-execution gate
gatePresetdangerous-commandclassifier the gate runs
gateThreshold0.5gate cut-off
gateDecisiondenydeny or escalate
systemPromptSectiontruetell the agent the classifiers exist

What the numbers mean

The endpoint returns a probability distribution over a support, then projects it: choice takes the argmax, score takes the expectation of the zero-based level index, and predicate has nothing to project. Those projections are where the interpretation lives, and they are not equally portable.

typesupport comes fromscalar you getportable?
predicatethe world (true/false)probabilityyes — the one number that travels
choiceyour options listchoice (argmax)no — menu-dependent
scoreyour ordered levelsscore = E[index]no — level-dependent, and metric-imposing

predicate is the only portable scalar. It is a Bernoulli parameter, so it is calibratable against realized outcomes (reliability diagrams, Brier score) and thresholdable against a cost rule. One caveat matters more than it looks: the endpoint accepts any input, so many predicates are subjective ("is this code maintainable?"). There, probability is not a property of the world — it is a marginal over a rule set nobody wrote. Calibration still works, but its referent becomes your raters instead of reality: it licenses "consistent with our standard", never "true".

choice distributions are menu-dependent. The support is your options list, so relabeling the menu moves the numbers while the world stays put. Measured on one fixed top category, with only the tail split ever more finely:

menumax psum p²top-2 gap
2-way [0.80, 0.20]0.80000.68000.6000
4-way [0.80, 0.09, 0.06, 0.05]0.80000.65420.7100

Two candidate concentration measures move in opposite directions under that relabeling. So a 4-option and a 2-option question in the same batch are not comparable on any confidence number, and the interpretable signal is the top-2 margin — how close the routing is to a coin flip.

score is an ordinal position presented as an interval. Levels carry only label and description; the API assigns indices 0..n-1 by position, with no client-supplied weight or value. E[index] is meaningful only if your levels are equally spaced in the quantity you care about — usually false for severity, where cosmetic→workaround is a far smaller real jump than workaround→blocked. Prefer thresholding on P(level >= k) over the returned probabilities: that needs no metric assumption.

confidence is a concentration index, not a probability. The guide calls it a separate field and never defines it, and it cannot be recovered from the published examples: sum p² and the top-2 gap both fit them to within ~0.01 while disagreeing in sign under relabeling. It is also not comparable across questions with different option counts. Read probabilities directly and compute your own statistic with weights you know.

Where the rubric actually lives

No answer type removes the standard you were supposed to specify; they relocate it.

typewhere the standard livesfailure modedetectable?
predicate (observable)the worldestimation erroryes — reliability
predicate (subjective)model prior + promptdefinition ambiguitymostly invisible
choiceyour options listmenu sensitivityyes — measurable
scoreyour levels listimposed equidistancevisible, magnitude unmeasurable

A choice externalizes the standard — readable, diffable, and its sensitivity is measurable. A subjective predicate internalizes it, which makes it less auditable, not more objective. And a subjective probability is a mixture over provenance channels with unknown weights: the model's prior over "maintainable" is built from scraped text, paid annotation, users' own chat inputs and corrections, and automatic outcome signals such as test pass/fail — each with different epistemic standing. That is the practical reason "does the test pass" is trustworthy and "is this maintainable" is not: only the first has a rubric in the loop.

Auditability

Every decisions_classify verdict carries the exact question that was sent — type, name, instructions, and the choices or levels — and decisions_ask returns the questions as normalized and sent. For a subjective predicate that instruction text is the only part of the decision with a knowable provenance, so a verdict without it cannot be reviewed after the fact. The full wire request is deliberately not echoed: it can carry inlined base64 images.

Known limitations

  • Images must be inline base64. The endpoint rejects hosted HTTP(S) URLs and file_id inputs, so decisions_ask reads local paths and inlines them. DSH attachments cannot be passed through by reference.
  • One model. gpt-6-luna is the only available model while the API is in public beta.
  • The advice card sends the questions only, not the surrounding conversation transcript; decisions that depend on earlier chat turns may be less well informed.
  • The gate fails open on a network or credential error, and logs the failure: a classification outage must not block every tool call.
  • confidence is surfaced but should not be thresholded. It is undocumented and menu-dependent; see What the numbers mean.
  • score assumes equally spaced levels, which the API imposes and you cannot override.
  • Pricing is input-token only ($0.10 per 1M tokens for gpt-6-luna), but this plugin does not meter spend.

License

MIT.

相关插件

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

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Ds 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 提供编码协作、记忆、浏览器工作流和任务管理功能。