DSH Plugins Marketplace

DSH Plugins

Plugins

/

PL-PRISM

Z

PL-PRISM

Manifest valid

LLM-based Cyber Companion Control Hub, supporting multi-channel memory isolation, PAD emotional dynamics engine, and zero-token GIF classification—ready to use out of the box.

UI (client)hasBundlePatchMachine translated

🎉 PL-PRISM v1.0.0 已通过全链路自检与隐私审计,欢迎使用!

PL-PRISM · 人设 / 记忆 / 进化主处理层

version node platform

一句话:别的插件只出素材,不出结论。这个插件独占四件事——记什么、怎么想、怎么变、怎么说不错。

prism_logo

v1.0.0 新功能亮点:

  • 🎭 角色库多角色管理:一张卡不够?新建多张角色,切换即换人格;卡片上自动标黄角提醒缺失字段。

  • 🌐 联网多源捏人:输入角色名,自动并发抓取百度百科 / 萌娘百科 / 必应,白名单 + DOM 双层清洗,杜绝"萌娘百科欢迎您 / P站id / S级美少女"等网页垃圾。

  • 🎂 动态年龄与纪念日:填 birthdate,后端实时算周岁注入;生日、相识 100 天 / 一周年自动触发情绪飙升指令,不占记忆配额。

  • 💾 草稿防丢:手动表单输入实时存 localStorage,刷新 / 切页 / 误关都不丢;点保存或清空才释放。

  • 🔌 AST 反向握手:DSH 启动时静默探测 AstrBot 6185 端口,装了 year_image 就主动注册端口与 Token,不再让 AST 扫日志;2 秒超时静默放弃,不卡主线程。

  • 🖼️ 表情包双库:角色专属库 + 通用兜底库,批量导入 / 文件夹导入 / AI 视觉自动打标,聊天只注入 [表情包: 分类名] 标签,图片路径永不进上下文。

  • 🩺 右侧诊断面板:保存失败的后端错误实时顶到顶部红卡片,点"点击定位"跳到对应字段;硬错误(配额超 100%、空名、非法字符、birthdate 格式错)拦截保存;软警告黄色提示不强制。

  • 宿主:DSH(Cordis 插件体系),index.js 挂载 + ctx.webServer 注册路由。

  • 前端:ui/prism-panel.js(唯一真源)→ tools/build-panel.mjs 内联成可独立打开的 ui/prism-panel.html。

  • 无框架、无外链、无 node_modules 依赖,纯原生 ES 模块 + Shadow DOM。


一、安装(三步)

  1. 把整个目录放进宿主 userdir 的 plugins/ 下,目录名建议 prism:

    <你的宿主 userdir>/plugins/prism/
      index.js  package.json  config.default.json  cordis.patch.yml
      src/  ui/  lib/  pure_chat_preset/  README.md  LICENSE  参考文献.md
    
  2. 重启宿主(DSH)。

  3. 打开 <你的宿主地址>/prism/ui(或 /prism/panel 独立面板)。 状态区显示「已连接」= 就绪;显示「预览模式」= 后端没挂上,看下面的排查。

目录里不含任何人的机器路径、账号或群号,也没有预置角色数据。


二、首次配置(建议按这个顺序)

步骤在哪里做什么
1第 3 板块「全局与生命周期」填 主人 QQ(identity.ownerQq)。默认为空 = 还没设主人,此时任何人都不被当作主人(安全侧,不会误认)。
2角色档案 → 「手动创建 / 编辑」填名字、性格、口头禅、喜好、背景、核心设定。全新安装自带一个通用空壳:名字「助手」、性格「温和、耐心,说话简洁直接」,其余留空,等你改成自己想要的角色。
3顶部「内容模式」选 极简 / 标准 / 完全体。极简=省上下文(设定按滑块截断),标准=日常推荐,完全体=参数全展开。进度条下面的「三档对照」会同时显示三个数字。
4第 5 板块「上下文预算控制」需要更省就调「极简档设定截断字数」(600–2000,默认 800);超了会在面板底部给一行暗色提示。
5第 11 / 14 板块配静默、午休、说说发布/互动/总结的时间窗(见下节)。
6右上「💾 保存当前配置」只改草稿不生效;点保存才写入本机并同步引擎。想反悔点「↺ 撤销修改」。

数据写在宿主给的 ctx.dataDir;没给就落本插件目录下的 data/live/。不会改宿主的配置文件(只写本插件自己的覆盖层)。


三、时间配置:全部自由,可跨夜

所有与「几点」相关的设置都是成对的时间选择器(开始 + 结束),没有写死的档位:

窗口默认作用
静默 / 低功耗01:00–07:00耗资源的活(生成心情图、深度整理)只在这段时间跑
午休免打扰12:00–14:00(可关)这段时间不打扰你
说说安静22:00–08:00(可关)这段时间绝不发说说
说说发布10:30–11:30在这段里随机挑时刻发,不像闹钟
互动浏览18:00–18:45刷空间 / 看动态
每日总结23:30–23:59当天收尾写心情日记
心情图取样02:00–06:30在静默时段里随机挑一点生图
  • 跨夜自动识别:结束早于开始就是跨夜(如 23:15–07:45),面板会标「跨夜」;开始=结束会判「时段无效」,不会当成 24 小时。
  • 防重复:按日期记录 last_post_date,今天已经发过就绝不重发。
  • 错过补发:只要今天还没发、且不在「说说安静 / 静默」里,机器重新开机后下一轮检查会补发一次。
  • 图片白名单:说说配图只允许 AI 心情图目录(assets/mood_images/,当天主图除外),聊天用的表情包绝不会混进说说配图;视频只认 assets/mood_videos/。
  • 怎么让后端生效:面板改完会自动同步(700ms 防抖),也可以点「⬆️ 立即同步到后端」;生成成功会显示同步到的配置文件路径。这套时间配置与 Python 侧共用同一个 gen_config.json。

想核对后端当前口径(装了 year_image 引擎时):

python <你的引擎目录>/year_image.py schedule

会打印当前生效的 7 个时间窗,以及此刻「今天该不该发」。


四、AST 心情图联动(可选)

面板第 14 板块「AST 心情图联动」可以:

  • 自动检测:扫环境变量 PRISM_AST_FEELINGS / PRISM_QZONE_DIR 与 AstrBot 的标准 plugin_data 目录;
  • 也可以直接填 feelings.md 的绝对路径(默认留空 = 自动检测,开源版不写任何人的盘符);
  • 「测试连通」会在同目录写一个临时文件再读回,不污染真实日记;
  • 落盘格式严格是 第N天:…,与心情图引擎一致。

五、通用大模型接口(可选)

「🧠 诊断大脑接口」支持任意 OpenAI 兼容端点(OpenAI / Ollama / LM Studio / vLLM / 中转网关…):

  • 填 Base URL / API Key / 模型 →「测试」看真实 HTTP 状态码与延迟;
  • 点「💾 保存配置」会同时写浏览器本机配置与后端 brain.json.interface,保存即驱动真实对话;
  • 优先级:请求体覆盖 > 已保存配置 > 环境变量(PRISM_BRAIN_BASE_URL / PRISM_BRAIN_MODEL / PRISM_BRAIN_API_KEY / PRISM_BRAIN_TIMEOUT_MS)> 默认值;
  • 后端没连上时,右侧栏【参数详情】下方的「诊断与建议」区会显示「后端未响应」红色细条:点「▾ 详情」可看逐个基址的探测结果(GET <基址>/api/brain/config),在宿主里重载本插件或重启宿主即可;该区用固定的「显示/隐藏 诊断与建议」按钮展开或折叠,状态会记住,提示不会被关闭后丢失;
  • 想回退到环境变量:把 brain.json 里的 interface 段删掉(或留空串),下一句对话自动回落。

六、目录与数据

index.js              宿主入口(挂 UI + 路由 + Brain API)
src/                  引擎:记忆/检索/情感/安全/预算/PAD/人格卡解析…
  brain/              通用大模型接口层(provider / service / server / config)
  timeBridge.js       时间配置桥(把面板的时间窗写进 gen_config.json,带白名单与原子写)
ui/prism-panel.js     前端唯一真源
ui/prism-panel.html   构建产物(自包含,可直接双击打开)
ui/assets/            静态资源(宿主 /prism/assets 前缀路由直接服务,带目录穿越防护)
  themes/             内置主题壁纸(bg_theme.jpg;水晶/月夜/日光共用底图 + 各自叠加层)
  icons/              Logo 与介绍图(prism_logo.png、intro.png)
tools/build-panel.mjs 构建:prism-panel.js → prism-panel.html

隐私与数据:

  • 默认配置里没有任何人的盘符、QQ 号、Token、API Key;ownerQq 默认为空。
  • 运行期数据(data/live/、brain.json、*.bak、日志)一律不进安装包,打包脚本会直接拒绝。
  • 内置的「第三人称脱离检测」用的是通用词(这个角色 / 本角色是 / 作为AI …),不含任何具体角色名。

七、自测与验收

npm test            # 纯逻辑:算法 / 人格卡解析 / 羁绊日历 / 时间桥 / 主体 / Brain / Lifecycle…
npm run test:tier   # 三档上下文占用对照(真浏览器,空人设 + 重人设两场景)
npm run test:stage2 # 六维断言(预算守恒 / PAD 映射 / 跨年闰年 / 多频道隔离 / 异常兜底 / 时间窗)
npm run test:fold-ui     # 折叠模式 + 导航分组
npm run test:persona-ui  # 人格卡解析端到端
npm run test:brain-diag  # 通用接口诊断器
node tools/build-panel.mjs   # 重建 ui/prism-panel.html
node tools/pack-release.mjs  # 打纯净包(默认输出到当前用户的指定目录,见脚本内 OUT_DIR)

⚠️ 上面这些自测脚本只在源码仓库里;为保持安装包干净,tools/ 与 test/ 不会打进 ZIP。 拿到安装包的使用者只需要 node tools/build-panel.mjs 之外的两步:装目录、重启宿主;面板与引擎都不依赖这两个目录。 需要跑自测就用仓库版(或把这两目录单独拷进去)。

浏览器类用例需要本机有 Edge 或 Chrome;脚本会起临时静态服务 + headless 浏览器,跑完即清理临时 profile。


八、排查

现象原因 / 处理
右侧栏「诊断与建议」出现「后端未响应」红条后端没连上:点「▾ 详情」看逐基址探测结果;重载插件或重启宿主;确认 /prism/health 能返回 200;用「显示/隐藏 诊断与建议」按钮折叠该区(状态记住,不会丢)
显示「预览模式」webServer 没注入成功;检查宿主版本与 cordis.patch.yml
时间改了但没生效看「今日活动安排」下方是否显示「✅ 已同步到后端」;没有就点「立即同步到后端」
说说一直不发可能落在「说说安静」或「静默」窗内;或今天已经发过(防重复,不会重发)
AST 检测不到路径留空让它自动检测,或手动填 feelings.md 绝对路径;也可设 PRISM_AST_FEELINGS

九、边界说明

  • 面板只写本插件自己的覆盖层,绝不写宿主的 config.default.json。
  • 「极简模式」会按滑块截断人设 [设定](默认 800 字),这是省上下文的代价;需要完整设定就切到标准/完全体,或把滑块调大。
  • 历史消息不在本插件控制范围内,占用会随聊天增长。
  • 本插件不做「无人值守的社交动作」:说说/互动默认关闭,需要你自己在面板里打开并配好时间窗。

十、外观调节与自检

  • 顶部「内容模式 / 折叠方式 / 搜索框 / 外观调节」共用一个物理容器(top-control-panel),一张背景卡片、一圈边框,里面不再套分隔框。
  • 透明度:卡片与全局背景用 color-mix 真实变半透明,壁纸透得出来;模糊度:所有毛玻璃面(卡片、顶栏、弹窗、全局背景)都读同一个 --prism-bg-blur 变量,0 = 清晰、拉高 = 变糊;字体颜色:取色后穿透全部文本节点,按钮主色与红/绿/黄语义色保留不变。
  • 工具栏下方有「🧪 外观生效自检」区块:条纹底上的毛玻璃样品 + 字体色样品 + 实时计算样式读数。拖滑块时样品与读数同步变化,用来证明变量真的挂上了,不是假样式。
  • 「诊断与建议」固定在右侧栏【参数详情】下方:后端未响应红条、连接状态条、一键优化建议都收在这里;用固定的「显示/隐藏 诊断与建议」按钮展开或折叠,折叠状态会记住,提示不会关一次就丢。
  • 外观设置只存浏览器本机(localStorage);「恢复默认外观」一键清空回主题默认。
  • 主题资源全部内置:壁纸与图标在 ui/assets/themes/、ui/assets/icons/,面板只按相对路径引用,不依赖桌面或本机任何其它位置的文件;删掉外部原图后,水晶 / 月夜 / 日光三套主题照常切换显示。
  • 外观设置区另有【上传自定义主题】:选一张本地图片,转 Base64 存浏览器本机并立即应用(不上传任何服务器);【恢复默认主题】:清除自定义壁纸、切回内置水晶主题,三套内置主题可继续自由切换。

十一、配置导入 / 导出(人格 + 外观一键搬家)

  • 【导出配置】生成 PRISM_Config_[角色名]_[日期].json,内容是全量状态:所有面板参数、当前角色卡与整个角色库、外观设置(透明度 / 模糊度 / 字体颜色)、自定义壁纸(Base64)、时间调度配置,以及折叠 / 排序 / 档位等本机状态。不含 API Key,不含表情包缓存。
  • 【导入配置】就在导出按钮旁边:选 JSON 后先校验格式,不是合法 PL-PRISM 配置会红色提示拦截,现有设置一个字节都不动。
  • 校验通过即全量覆盖本机状态与角色库,界面瞬间重绘:滑块、开关、输入框、主题与外观同步到位,随后自动保存并绿色提示「✅ 配置导入成功,已应用最新人格与外观!」。
  • 也兼容旧版只含面板参数的导出文件(只还原参数,不动角色卡与外观)。
  • 用途:备份自己的人格、换机迁移、把角色卡分享给别人(对方导入即得完整人格 + 外观)。
  • 注意:外观与自定义壁纸存浏览器本机,换浏览器要重新导入一次;面板参数与角色卡导入时还会同步保存到插件后端。

十二、表情包:批量导入、自动分拣与智能调用

  • 批量导入:表情包工作台提供【🗂 批量导入】与【📁 导入文件夹】(webkitdirectory)。前端按 8 张一批异步读取、批间让出主线程,几百张也不会卡死;单张上限 8MB,单次最多 1000 张。
  • 文件名自动分拣:含「开心 / 笑 / happy…」进 [开心],含「哭 / 难过 / sad…」进 [难过],含「生气 / 怒 / angry…」进 [生气];自定义分类名优先匹配(文件夹名如 考试挂了_1.png 会直接归到该分类);认不出的全部进 [未分类]。
  • 自定义分类:分类标签横排显示张数,末尾【+ 新建分类】可建「傲娇」「无语」「考试挂了」等任意名字(≤16 字);图片可直接拖到分类标签上,或右键弹出菜单移动;右键还能切角色专属 / 通用兜底库、删除。
  • AI 自动打标:接入支持视觉的 OpenAI 兼容接口后,点【🤖 AI 自动打标】让模型看图归类(每次最多 20 张);没接后端或模型不支持视觉时如实报错,不伪造标签。
  • Prompt 只注入分类目录:系统提示里只有「当前可用的分类有:[开心]、[生气]…」和 [表情包: 分类名] 的输出格式;图片文件名、相对路径、URL 一律不进上下文。图库为空时不注入任何表情包指令。
  • 输出拦截与兜底:回复里的 [表情包: X] 由拦截器整段移除;分类有图 ⇒ 随机抽一张(角色专属优先,没有再落通用库);分类没图 ⇒ 自动落 [未分类] 随机抽一张;连 [未分类] 也空 ⇒ 静默去掉标签只留文字。聊天框永远不会出现原始标签乱码。
  • 存储:索引 dataDir/emojis/index.json,图片在 ui/assets/emojis/<scope>/<分类>/;面板里的「🧪 表情包标签测试」可直接输入一段模拟回复,验证真实拦截与兜底。

十三、独立主视图与左侧图标

  • 入口已从「聊天顶部 Tab」迁移到 DSH 左侧图标栏:水晶三棱镜图标(ui/assets/prism-icon.svg,默认 currentColor 跟随亮暗主题,悬浮/选中显示青蓝→紫渐变)。
  • 点击图标后,右侧主工作区(Main Editor Area)渲染 PL-PRISM 控制台;左侧原生导航(对话 / 插件 / 自动化任务 / 工作区)保持原样可点,随时能切回聊天。不使用全屏遮罩,不覆盖任何原生侧边栏。
  • 聊天顶部不再出现「PL-PRISM 面板」Tab;lib/client.js 只注册 main(key=prism)与 sidebar.panellist(id=prism),与宿主的「自动化任务」使用同一套视图契约。
  • 宽屏布局:≥1280 / 1600 / 1900px 三档自动加宽左右栏与内边距,导航、参数区与诊断栏按 IDE 工作区比例展开(仍保留 ≤1100px 的单列响应式)。
  • 左侧导航按四大类分组(🎭 灵魂设定 / 🧠 记忆与算力 / 🛡️ 社交与底线 / 🔌 外设与生态),编号 1–15 连续;拖拽只在当前分类内部排序,跨分类拖拽会被拦截并提示「⚠️ 板块只能在当前分类内部排序」,卡片头部的 ▲▼ 到分类边界也停止。顺序按分类嵌套保存(prism_panel_order_v4.groups),旧的扁平顺序首次加载会自动迁移并按分类矫正。
  • 切换视图时 iframe 会重新挂载,但面板状态保存在本机 localStorage 与插件 data/live/,回来不会丢;聊天输入框随对话视图一起隐藏,主视图不显示它。
  • 更新客户端后需要刷新一次 DSH 窗口;若图标仍未出现,再重启宿主(宿主会缓存客户端 bundle)。

十四、角色库与联网捏人(v1.0.0)

  • 我的角色库:面板「当前角色档案」右上角「📂 打开我的角色库」。多角色并存,点卡片切换为当前编辑;每张卡显示性格 / 喜好 / 背景 / 口头禅的完整度,缺关键项时在标签下方贴黄色角标「⚠ 缺:性格、喜好」。
  • 草稿防丢:手动编辑页所有 <input> / <textarea> 绑 input 事件,实时写入 localStorage(key prism_draft_persona)。刷新页面、切到别的网站再回来、误关面板,草稿都在;点「存为新卡」「保存当前配置」「清空粘贴框」才释放。
  • 联网多源检索:输入角色名(如「水原千鹤」「明日香」)点「🔍 联网多源检索」,后端并发抓百度百科 / 萌娘百科 / 必应,DOM 层物理切除导航栏 / 侧边栏 / 信息框 / 编辑按钮,正文按句过滤,再喂给大模型做白名单提取。不会把"萌娘百科欢迎您"、"P站id"、"S级美少女"、"12.333 个人打分"等网页元数据填进人设。
  • 核心设定兜底:即使网页没写系统提示词,大模型也会结合性格 / 外貌 / 背景生成 200 字左右的 corePrompt 注入系统提示词;后端兜底检测到网页词会自动清空重拼。
  • 抓回来的是碎片,不是终稿:检索结果列在「网页碎片列表」,勾选需要的碎片后点「🌟 合并选中碎片并生成角色」,解析结果只填表,不自动建卡——你确认无误再点「存为新卡」。

十五、动态年龄与纪念日(v1.0.0)

  • birthdate 字段:手动编辑页在「背景与经历」下方多了「出生日期」输入框(YYYY-MM-DD)。后端 computeAge() 实时算周岁(今天已过生日则 +1),在系统提示词里注入:
    [当前年龄] 今天是 2026/11/10,你今年 14 岁(生日:2011-12-04)。
    
    年份限定 1900–2200、月日范围校验;未来生日 / 离谱日期不注入(返回 null,不崩)。
  • 保存角色时自动同步生日日历:profile.birthdate 的月日写入 bond-calendar.json 的 charBirthdays[characterId],与已有的相识 100 天 / 365 天、主人生日、节日共用一个注入器。
  • 纪念日高优先级注入:当天是角色生日 / 相识 100 天 / 一周年时,系统提示词末尾追加一段独立指令(按性格调整语气:傲娇嘴硬、温柔直白、三无短句),PAD 愉悦度飙升,主动表达依赖。这段不占记忆配额。

十六、打包与产物

  • Encrypted 包:PL-PRISM-v{ver}-Release-Encrypted.zip,src/ 与 lib/client.js 的 JS 经过控制流平坦化 + 字符串数组 base64 加密 + 死代码注入;index.js / package.json / config.default.json / cordis.patch.yml 保持明文(宿主契约)。
  • 不含 node_modules/、data/、tools/、test/、*.bak、brain.json、日志。

Comments

Loading…

Similar plugins

dsh-lmmarr

by RaganaBloodedge

DeepSeek Harness 长期记忆插件:分层任务记忆 + 关系图谱 + 索引常驻稳定前缀;零运行时依赖,另附同源的 Agent skill 形态

Manifest valid

★ 0

MIT

TypeScript

Oct 15, 2026

dsh plugin --profile web add dsh-lmmarr

by qmy777

DeepSeek Harness 可插拔推理等级设置分节——为第三方模型逐模型配置思考力度与线格式映射,不动源码、即插即用。

Manifest valid

★ 0

MIT

TypeScript

Aug 18, 2026

dsh plugin --profile web add dsh-ui-models-reasoning

by c-ling

DeepSeek Harness 桌面电子宠物插件:跟随 agent 状态变换心情的内置/自定义/Codex 精灵图伙伴。

Terminal & ClientsManifest valid

★ 4

↓ 53/wk

MIT

JavaScript

Oct 22, 2026

dsh plugin --profile web add dsh-plugin-pet

by HOWILLMAKEIT

DeepSeek Harness 插件:维护 llm-pi-ai 模型的准确上下文窗口,避免长会话被误判为上下文溢出。

Models & ProvidersManifest valid

★ 30

↓ 372/wk

MIT

JavaScript

Nov 10, 2026

dsh plugin --profile web add dsh-model-context-catalog

by sanshanya

Per-model capability declaration for DeepSeek Harness: reasoning-effort levels (wire spellings) + request modalities (vision) for OpenAI-compatible providers. Settings section, zero runtime harness de

Models & ProvidersManifest valid

★ 13

↓ 248/wk

MIT

TypeScript

Oct 9, 2026

dsh plugin --profile web add better-model-provider

by Hu9956

切换供应商、模型与思考强度,每个模型各自记住档位。

UI & ExperienceDevelopment & InfrastructureManifest valid

★ 1

MIT

JavaScript

Oct 28, 2026

dsh plugin --profile web add @kewen/dsh-model-controls