dsh-structured-output

DSH PLUGIN模型与账号接入

仓库 dd2003-460/dsh-structured-output

模型与账号接入 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

DSH/Claude Code 插件:用强制工具调用把 subagent 输出焊死成固定结构(choice/open_choice/json),模型只有一个,每个 agent 配不同 schema。

一句话选型结论

按资料字段整理

dsh-structured-output 是模型与账号接入类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-25 创建于 2026-10-25
README 9.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:dd2003-460/dsh-structured-output
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

智能体编排

上游标签

agentclaude-codedsh-pluginguided-decodingstructured-outputvllm

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-structured-output当前 L4 · 沙盒安装通过 低风险 0 未标注 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方dd2003-460仓库 dsh-structured-output · 默认分支 main
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-25 · 2026-10-25最后推送 2026-10-25
本站收录2026-10-30首次进入本站目录的时间

README 全文

9.2 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-structured-output

DSH / Claude Code 插件:把 subagent 的输出焊死成固定结构,模型只有一个,每个 agent 在注册表里配不同 schema。

  • 固定枚举 choice(router):只能从给定候选选一个。
  • 开放选项 + 置信度 open_choice(advisor):形状固定,但 label/理由/汇总内容自由生成,每条带 confidence(0~1)。
  • 固定 json(ticket):填一个固定结构,字段取值受 enum 约束。
  • 极简开放选项 + 置信度(brief):advisor 的精简版,最多 3 条、理由一句话、summary 一句——subagent 快速给结论用。
  • 非结构化 free:不带标记的请求完全不受影响(默认行为)。

> 你的两个需求都覆盖:
> 1. 形状固定、choice 自由填、按情景输出"可能的选项 + 置信度" → open_choice。
> 2. 不同 agent 配不同 schema → 注册表里每个 agent 一个条目,按来源识别。


为什么用"强制工具调用"而不是 response_format

实测(1Cat vLLM 1.5.0 / Qwen3-27B-W8A16,2026-10-25):

机制 Anthropic /v1/messages 端点 OpenAI /v1/chat/completions 端点
response_format(json_schema) ❌ 静默忽略(吐自由文本) ✅ 强制生效
guided_json / guided_choice ❌ 静默忽略 guided_choice 无效;guided_regex ✅
extra_body 透传 ❌ 静默忽略 —
强制工具调用(tool_choice 锁单个 function) ✅ 生效 ✅ 生效

DSH / Claude Code 的 subagent 走的是代理的 Anthropic /v1/messages 端点,而该端点不认 response_format。本插件因此改用 强制工具调用:把"输出形状"定义成一个 function 的 input_schema,用 tool_choice 把它锁死,模型只会吐这个 tool 的参数(= 焊死的结构化输出);代理再把返回的 tool_use 块剥壳还原成纯文本 JSON,调用方(subagent)当普通文本读,无需它自己理解工具。


安装

方式一(推荐):DSH 市场安装

本仓库已打 dsh-plugin topic,DSH Community Market 的 CI 每 2 小时自动收录。

  • 在 DSH 里打开 Community Market(或 1024Store / dshfind),搜索 dsh-structured-output 安装;
  • 或命令行:dsh plugin add dsh-structured-output。

装完后,skill(adapters/dsh/skills/structured-dispatch)会被 DSH 自动发现并加载,主 agent 即可按 SKILL.md 的触发条件派发 subagent——这一步不需要你手动做任何事。

方式二:本地代理补丁(让硬约束真正"焊死"输出)

skill 本身只是提示词级软约束;要让输出被强制锁死(不走样),还需把代理补丁打到你已有的 claude-vllm-proxy(DSH / Claude Code 的 vLLM 翻译代理)。本插件不改变 vLLM 模型,只在代理里注入补丁:

cd dsh-structured-output
node install.mjs            # 装到默认 ~/.claude-vllm-proxy/proxy.mjs(自动备份)
# 或指定代理位置:
PROXY_TARGET=/path/to/proxy.mjs node install.mjs
  • 会把 lib/structured.mjs 与 agents.json 复制到代理目录旁的 structured/,代理重启后不依赖本仓库位置。
  • 重启代理后生效:launchctl kickstart -k gui/$UID/com.a1-6.claude-vllm-proxy(或重启 DSH)。
  • 卸载(恢复原代理):node install.mjs --uninstall。幂等,重复安装会提示已安装。

怎么让一个 agent 走结构化输出

两种识别方式,按优先级:

  1. model 后缀(推荐,Claude Code subagent 可用):在 subagent 的 model 字段后加 __schema=。
# .claude/agents/router.md 的 frontmatter
model: qwen3.8-27b-w8a16__schema=router

客户端/代理会自动把 __schema=router 从 model 字段剥掉再发给 vLLM,避免 404。

  1. HTTP 头:请求带 X-Agent-Name:(自研 harness / 客户端用)。

不带的请求 = 自由输出,完全不进插件逻辑。


加 / 改 agent

编辑仓库根(或代理目录旁的)agents.json:每个 key 一个 agent,input_schema 就是它的输出形状(Anthropic 原生 tool schema)。

{
"router": {
"description": "二/多分类路由动作",
"input_schema": {
"type": "object",
"properties": { "action": { "type": "string", "enum": ["search","calculator","translate","refund"] } },
"required": ["action"]
}
}
}

open_choice(开放选项 + 置信度)的形状示例:

{
"advisor": {
"description": "给出若干方案,每条带置信度与理由",
"input_schema": {
"type": "object",
"properties": {
"options": { "type": "array", "items": {
"type": "object",
"properties": {
"label": { "type": "string" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"reason": { "type": "string" }
},
"required": ["label", "confidence", "reason"]
}},
"summary": { "type": "string" }
},
"required": ["options", "summary"]
}
}
}

极简版 brief(subagent 快速给结论,最多 3 条、理由一句):

{
"brief": {
"description": "极简开放选项:最多 3 个方案,每条带置信度(0~1)与一句话理由;summary 一句话。",
"input_schema": {
"type": "object",
"properties": {
"options": { "type": "array", "minItems": 1, "maxItems": 3, "items": {
"type": "object",
"properties": {
"label": { "type": "string" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"reason": { "type": "string", "maxLength": 80 }
},
"required": ["label", "confidence", "reason"]
}},
"summary": { "type": "string", "maxLength": 120 }
},
"required": ["options", "summary"]
}
}
}

> 开放内容用 type:string 不写 enum(模型临场生成);固定候选才用 enum。confidence 的
> minimum/maximum 是软约束(xgrammar 不一定夹值),插件额外 clamp 到 [0,1]。


Skill:让 main 派发 subagent 拿回"简洁的开放字段和选择"

仓库内含一个 DSH skill adapters/dsh/skills/structured-dispatch/SKILL.md。它是本插件的
"可设置 / 可选择的派发接口":

  • 选择:skill 的 description frontmatter 让主 agent 在合适场景自动决定启用(分类路由、从候选里选一个、带置信度给方案、把调研结论压成 JSON …)。
  • 设置:skill 正文列出可选的输出形状(router / brief / advisor / ticket),并说明如何编辑 agents.json 加新形状——这就是"每个 agent 配不同 schema"的用户入口。
  • 派发:主 agent 给 subagent 配 model: <基座>__schema=(或 X-Agent-Name 头),subagent 返回的就是剥壳后的干净 JSON。

通过市场安装(dsh plugin add dsh-structured-output)后,skill 会被 DSH 自动发现并加载;
未装代理补丁(方式二)时,skill 退化成提示词级软约束,照样能引导 subagent 返回结构。

> 派发原则(goal-template):当子任务只需要"决策 / 分类 / 选择 / 抽取"这类确定性输出时,
> 强烈推荐派发一个结构化 subagent,而不是在主 agent 里自由生成长文——这能极大减少 decode 负担
> (少产约一个数量级的输出 token,对 4×V100 这种 KV-bound 机器直接等于更低的延迟与显存占用)。
> 详见 SKILL.md 的「派发原则」章节。


改完 agents.json 后要让改动生效

agents.json 在装插件时被复制到代理目录旁的 structured/。改完仓库里的 agents.json 后,重跑一次 node install.mjs(幂等,marker 已存在时会跳过重复打补丁、但会刷新复制的 agents.json/lib),再重启代理即可。无需 --uninstall。


测试

# 先装补丁到一个代理(或真实代理),再:
BASE_URL=http://localhost:8787 node test-structured.mjs

校验:advisor 返回合法 JSON 且含 options[]+confidence;router 返回落在 enum 的 action;普通请求仍自由文本。


已知限制

  • 调研型 two-phase(工具自由调研 + 结构化汇报):本插件在 Anthropic /v1/messages 上强制单个输出工具,无法同时跑"多个真实工具 + 强制汇报"。需要该模式的,请用仓库里同思路的 Python harness(在 OpenAI /v1/chat/completions 上 tools + response_format 两段式,已验证)。
  • 强制工具模式下会关掉 thinking(避免思考文本混进工具参数)。
  • 本插件只动代理转发逻辑,不动模型权重;并发/吞吐行为与原代理一致。

文件

  • lib/structured.mjs —— 注入 / 还原核心(ESM,被代理 import)
  • agents.json —— agent 输出形状注册表(可编辑)
  • install.mjs —— 代理补丁安装器(备份 / 幂等 / 卸载 / 重跑刷新文件)
  • adapters/dsh/skills/structured-dispatch/SKILL.md —— DSH skill(让 main 派发 subagent 的"可设置/可选择的派发接口")
  • cordis.patch.yml / plugin-manifest.v1.json —— DSH 市场元数据
  • test-structured.mjs —— 端到端测试

License: MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-structured-output 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:dd2003-460/dsh-structured-output` 即可。

dsh-structured-output 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-structured-output 安全吗?

低风险。

dsh-structured-output 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-structured-output 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。