dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 上的 AIRP 引擎:深 module WorldKernel + 浅 Host adapter。
dsh-plugin一句话:LLM 只提案和叙述;规则把 State 从 T 写成 T+1。
WorldKernel.turn / match:鉴定、叙事事实、GM、检索Pack.load / validate / catalog:YAML 索引 + Markdown 细节;bundled + ~/.dsh/airp-packs + 自定义路径packs/lotm-tingen、packs/jzdh-dingjiang。自己的包写到 ~/.dsh/airp-packs/^[a-zA-Z0-9_-]+$:lore_get / state_read / check_propose / state_propose_fact / check_match / pack_validate / pack_scaffold / pack_open_play / pack_interviewairpStage:/airp-media 把本地图变成同源绝对 http(s) URL,叙述者嵌进对白。不出图引擎,不绑 grok-image。世界包是数据,不是插件代码。引擎只认目录里有没有合法的 pack.yaml。
packs/lotm-tingen/ # 官方 demo,进 git
packs/jzdh-dingjiang/ # 官方 demo,进 git
packs/<your-id>/ # 本地实验;默认被 .gitignore
~/.dsh/airp-packs/<id>/ # 推荐的用户/社区安装位置
任意/含 pack.yaml 的目录 # 开局卡底部粘贴路径
消费者(airp-play)开局选包;创造者(airp-author)用 pack_interview 取 8 问 → ask_user_question → pack_scaffold → 改文件 → pack_validate → pack_open_play。pack_open_play 不会热切本会话:已有产出不能换 preset,交接卡只告诉你新开一条 airp-play 并粘贴路径。
分享一个包:复制 templates/community-pack/,或把目录打成 zip / 开独立 git 仓。别人解压到 ~/.dsh/airp-packs/<id>/ 即可。本地校验:
npm run pack:validate -- ~/.dsh/airp-packs/my-pack
不要把社区包 PR 进本仓 packs/,除非它要成为下一个官方 demo。Issue 用仓库模板(pack / authoring / engine),说明见 CONTRIBUTING.md。
npm install
npm test
npm run typecheck
npm run build
dsh plugin --profile web add /path/to/dsh-airp
# 或
npx @deepseek-ai/dsh plugin --profile web add /path/to/dsh-airp
预设随 bundle 一起装,不需要再手动复制。presets/airp-play.patch.yml 与
presets/airp-author.patch.yml 是 bundle patch 里的 @deepseek-ai/dsh-agent-preset
声明行,dsh plugin add 之后两个 preset 直接出现在预设列表里。
DSH 0.2.0 起
~/.dsh/.agent-presets/<id>/这个旧目录已经没有任何东西在读 (见@deepseek-ai/dsh-agent-presetskillediting-cordis-compositions的 "Migrate a legacy preset")。旧的双目录安装法在 0.2.0 上表现为「preset 列表里 什么都没有」。升级后可以把旧目录删掉。
创造者 preset 的 worldbook-authoring skill 走的是 DSH 的用户 skill root
(dsh-skill-filesystem 默认扫描 ~/.dsh/skills),需要装一次:
mkdir -p ~/.dsh/skills
cp -R skills/worldbook-authoring ~/.dsh/skills/worldbook-authoring
不要带 tool-cordis,也不要在 play preset 里挂 play-mask:
tools.restrict 在挂载时全局工具表还是空的,New Session 会失败。
airp-play)会弹「加载世界」卡:新建或空白会话切到该 preset 都会问一次。airp-author)会弹「编辑世界」卡,并可「从零写一个新世界包」。pack.yaml 的目录;选自定义后不会再静默掉回廷根。sandbox 只能写工作区。用户包推荐写到 ~/.dsh/airp-packs/(host 插件写盘,不经过 agent sandbox)。
/retry 由 HostRuntime 回放事件、把 State 裁到上一 check 之前;若 DSH 上有 sessions.fork 会顺带分叉会话日志。Kernel 自己不做时间旅行。
IC 文本按当前包的 pack.yaml tags 词表打标;命中则 Host 在 agent/pre-step 先 match,再让模型只叙述。