用蓝灯常驻与绿灯关键词给模型注入背景设定
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add libolunm/dsh-worldbook该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · skill
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-worldbook(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/8 09:42:33
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 14 处,展示前 14 条)
- 读取本地文件worldbook/index.js:43
export async function readWorldbook(path) { return decode(await readFile(path, 'utf8')) } - 读取本地文件worldbook/index.js:52
try { return Date.now() - (await stat(lockPath)).mtimeMs > LOCK_STALE_MS } catch { return false } - 删除本地文件worldbook/index.js:67
if (attempt === 0 && await lockIsStale(lockPath)) { await unlink(lockPath).catch(() => {}); continue } - 写入本地文件worldbook/index.js:91
await rename(temp, path) - 删除本地文件worldbook/index.js:94
await unlink(temp).catch(error => { if (error.code !== 'ENOENT') throw error }) - 删除本地文件worldbook/index.js:96
await unlink(lockPath) - 读取本地文件worldbook/index.js:121
snapshot = decode(readFileSync(path, 'utf8')) - 读取本地文件worldbook-editor/index.mjs:42
const raw = await readFile(BOOK, 'utf8') - 读取本地文件worldbook-editor/index.mjs:72
const html = await readFile(HTML, 'utf8') - 写入本地文件worldbook-editor/index.mjs:104
await writeFile(BOOK + '.bak', lockedCurrent.raw, 'utf8') - 写入本地文件worldbook-editor/index.mjs:105
await writeFile(temp, raw, {encoding:'utf8',flag:'wx'}) - 写入本地文件worldbook-editor/index.mjs:108
await rename(temp, BOOK) - 删除本地文件worldbook-editor/index.mjs:111
await unlink(temp).catch(() => {}) - 删除本地文件worldbook-editor/index.mjs:113
await unlink(lockPath).catch(() => {})
扫描于 2026/11/1(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 蓝灯常驻条目
- 绿灯关键词注入
- 可视化编辑器
README
由 DeepSeek 最新模型翻译生成dsh-worldbook
给 DeepSeek Harness(dsh) 用的酒馆式世界书。两类条目:
- 蓝灯(constant):每次模型调用都作为常驻背景出现在系统提示里。
- 绿灯(关键词):用户消息命中触发词时,在那一轮对话里插入一条背景资料消息。
附带一个装进 dsh web 设置面板的可视化编辑器,以及一个让 Agent 自己读写世界书的 worldbook 工具(说一句「记住…」就能存成条目)。
目录结构
| 目录 | 装到哪 | 作用 |
| worldbook/ | /plugins/worldbook/ | 引擎(agent 侧):注册常驻提示段、worldbook 工具、agent/pre-step 关键词注入 |
| worldbook-editor/ | ~/.dsh/profiles//plugins/worldbook-editor/ | 编辑器(web 侧):提供 /worldbook 页面与 /worldbook/api,并在设置面板挂一个分区 |
| examples/worldbook.example.json | 复制成你的 worldbook.json | 示例数据,含蓝灯/绿灯/停用三种形态 |
展开完整文档(README 剩余 1 节)
dsh-worldbook
给 DeepSeek Harness(dsh) 用的酒馆式世界书。两类条目:
- 蓝灯(constant):每次模型调用都作为常驻背景出现在系统提示里。
- 绿灯(关键词):用户消息命中触发词时,在那一轮对话里插入一条背景资料消息。
附带一个装进 dsh web 设置面板的可视化编辑器,以及一个让 Agent 自己读写世界书的 worldbook 工具(说一句「记住…」就能存成条目)。
目录结构
| 目录 | 装到哪 | 作用 |
| worldbook/ | /plugins/worldbook/ | 引擎(agent 侧):注册常驻提示段、worldbook 工具、agent/pre-step 关键词注入 |
| worldbook-editor/ | ~/.dsh/profiles//plugins/worldbook-editor/ | 编辑器(web 侧):提供 /worldbook 页面与 /worldbook/api,并在设置面板挂一个分区 |
| examples/worldbook.example.json | 复制成你的 worldbook.json | 示例数据,含蓝灯/绿灯/停用三种形态 |
两个插件共用同一个 worldbook.json,彼此独立:只装引擎也能用(靠 Agent 工具维护),只装编辑器等于一个顺手的世界书文件编辑器。
安装
1. 引擎(agent 侧)
把 worldbook/ 整个目录拷进你的 preset,例如 ~/.dsh/.agent-presets/tavern/plugins/worldbook/,然后在 preset 的 agent.cordis.yml 里加一行:
- id: worldbook
name: './plugins/worldbook/index.js'
config:
path: './worldbook.json'
sectionOrder: 420
- name 以 ./ 开头 → 相对 preset 目录解析,插件跟着 preset 走,不用额外装 npm 包。
- config.path 同样相对 preset 目录;省略则默认 ./worldbook.json。
- sectionOrder 决定常驻段在系统提示里的排序,默认 420(数值越小越靠前)。
- 这条 row 不发布任何服务、不需要 isolate realm:它只消费宿主的 systemPrompt 与 tools 注册表,并监听 agent/pre-step 瀑布。
preset 里的内联插件在进程启动时加载,装完需要重启 dsh。
2. 编辑器(web 侧)
把 worldbook-editor/ 拷进 profile 的 plugins/ 目录,例如 ~/.dsh/profiles/web/plugins/worldbook-editor/,然后在同一个 profile 的 cordis.patch.yml 里加:
- insert:
- id: worldbook-editor
name: './plugins/worldbook-editor/index.mjs'
重启 dsh(或该 profile 配了 patchReload: live 时热载),打开 http://127.0.0.1:3080/worldbook,或在 设置 → 世界书 里看到它。
世界书文件的路径解析
引擎与编辑器顺序一致,取第一个命中的:
1. config.path(引擎在 preset row 里给,编辑器在 patch entry 里给)
2. 环境变量 DSH_WORLDBOOK_PATH
3. 默认 ~/.dsh/.agent-presets/tavern/worldbook.json
编辑器吃的是绝对路径最稳;相对路径按进程工作目录解析。
数据格式
worldbook.json 就是一个对象包一个 entries 数组:
{
"entries": [
{
"id": "entry-machine-setup",
"title": "本机环境", "content": "ComfyUI 在 E:\\woyao,端口 8188。", "constant": true, "enabled": true,
"keys": [],
"repeat": "once",
"caseSensitive": false
}
]
}
| 字段 | 类型 | 说明 |
| id | string | 必填,非空、全局唯一 |
| title | string | 必填,非空 |
| content | string | 必填,非空;注入时的正文 |
| constant | boolean | true = 蓝灯常驻;否则为绿灯 |
| keys | string[] | 绿灯的触发词;constant !== true 时至少一个非空 |
| caseSensitive | boolean | 默认 false |
| repeat | "once" \| "always" | 默认 once |
| enabled | boolean | 默认 true;false 表示停用 |
校验是严格的:非法结构直接抛错,不会静默修复或丢弃未知字段。手写文件时给 worldbook.json 配上编辑器里的 JSON 校验,比事后猜错在哪快得多。
Agent 工具:worldbook
引擎注册的工具,模型可直接调用:
| op | 必填参数 | 行为 |
| list | — | 列出全部条目(含 modes、关键词) |
| get | id | 读取单条全文与当前 revision |
| add | 视条目而定 | 追加条目;id 省略时自动生成 |
| update | id + expectedRevision | 按 id 改字段(省略的字段保持原样) |
| remove | id + expectedRevision | 删除条目 |
| reload | — | 立即重读文件并刷新内存快照 |
改/删之前先 get 拿 revision,再把它当 expectedRevision 传回;版本不一致会明确报「版本冲突」而不是覆盖别人的修改。
编辑器
- 左侧条目列表:搜索框过滤(标题/正文/关键词),四个筛选页签(全部/蓝灯/绿灯/停用)。
- 右侧表单:标题、激活方式(蓝灯·常驻/绿灯·关键词)、关键词、区分大小写、触发频率(每会话首次命中/每次新消息命中)、启用开关、删除。
- 顶部:重新读取(放弃本页草稿)与保存更改(Ctrl+S 同效)。有未保存修改时关闭页面会拦一下。
- 保存走乐观锁:文件被别人(或 Agent)改过就返回 409,页面上给提示并保留你的草稿,让你重新读取后再合并。
- 备注:修改在保存后才落盘;蓝灯段在下次模型调用时读到新内容,已经进入历史对话的背景资料不会从历史里抹掉。
并发与安全语义
- 修订号:文件内容的 SHA-256。引擎、编辑器、以及所有协作写入者共用同一个修订号做乐观锁。
- 写锁:每次写盘前用 open(path, 'wx') 抢一个 worldbook.json.lock。抢不到就明确失败,绝不偷锁、绝不静默覆盖。
- 原子替换:写临时文件 → fsync → rename 覆盖,读到的永远是完整文件。
- 二次校验:持锁后以及替换前各再读一次修订号,能抓到不守规矩的外部改动。
- 编辑器 HTTP 面:PUT /worldbook/api 要求同源(校验 Origin 与 sec-fetch-site)、Content-Type: application/json、请求体 ≤ 1 MiB;写盘前先备份 worldbook.json.bak;响应带 no-store 与 nosniff,编辑器页面带 CSP。
- 编辑器只监听本机 dsh web 服务器,不额外开端口。
触发语义细节
- 命中判定基于本轮进入的 user 消息文本;插件自己插入的合成消息不参与匹配(不会自我触发)。
- 关键词是纯子串包含,不做分词、不支持正则;caseSensitive: false 时两侧都转小写再比。
- repeat: once:同一个 agent 内,同一版本的条目只注入一次。「版本」是该条目对象的 JSON 哈希 —— 条目内容被改动后,哈希变了,可以再次注入。
- repeat: always:只要命中就注入。
- 合成消息紧跟触发它的那条用户消息之后插入,source.kind 为 plugin,视觉上与用户消息区分开。
- 蓝灯段与绿灯匹配都会在每次模型调用前重读文件,所以手改 worldbook.json 立即生效(除非你改的是插件配置里的路径)。
常见问题
编辑器 404 / 设置里没有「世界书」:确认 worldbook-editor/ 放进了 profile 的 plugins/、patch 里的相对路径对得上、profile 名没错(~/.dsh/profiles//),然后重启 dsh。
改了文件不生效:蓝灯与绿灯都会重读文件;只有改插件配置(config.path、sectionOrder)才需要重启。
保存报 409:文件被其他页面或 Agent 改过,点「重新读取」合并后重存。
提示世界书被锁定:有写入者没释放 worldbook.json.lock。确认没有正在写的进程后删掉这个残留文件即可。
条目明明命中却不注入:检查 enabled 是否为 false、keys 是否写成了别的分词、repeat: once 是否在本会话已经触发过;get 一下看看到底存的是什么。
License
MIT © 2026 libolunm
English summary
A tavern-style world book for DeepSeek Harness (dsh). Two halves:
- worldbook/ — the engine, mounted inside an agent preset via agent.cordis.yml. It renders constant entries as a standing system-prompt section, injects keyword-matched entries as a synthetic message on agent/pre-step, and registers a worldbook read/write tool.
- worldbook-editor/ — a same-origin web editor served by the dsh web server at /worldbook, mounted as a settings section through the profile's cordis.patch.yml.
Both halves share one worldbook.json (SHA-256 revision for optimistic locking, exclusive .lock file, atomic temp-write + rename). Path resolution: config.path → DSH_WORLDBOOK_PATH → ~/.dsh/.agent-presets/tavern/worldbook.json. MIT licensed.预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
libolunm/dsh-worldbook
用蓝灯常驻与绿灯关键词给模型注入背景设定
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7