dsh-roleplay-presetDeepSeek Harness plugin

DeepSeek 深度调校的沉浸式角色扮演 Agent 预设(dsh)——零工具纯对话、酒馆式演出格式、文件记忆库

Stars
19
Forks
0
License
MIT
Last commit
Sep 1, 2026

Overview

DeepSeek 深度调校的沉浸式角色扮演 Agent 预设(dsh)——零工具纯对话、酒馆式演出格式、文件记忆库

Original README

Cached from the project repository on Sep 3, 2026. This is source content, separate from the Agents.md review above.

View source

角色扮演模式(DeepSeek 深度适配版)

English README

一套为 DeepSeek 模型专门调校的沉浸式角色扮演 Agent 预设:零工具、纯对话,系统提示词内置 DeepSeek 官方角色扮演适配指令与酒馆(SillyTavern)社区验证过的演出规则。

💬 社区交流

想一起交流角色扮演玩法、调教预设的小伙伴,欢迎加入我们的飞书交流群~(。•̀ᴗ-)✧

  • 角色卡怎么写才带感、OOC 怎么调
  • 各种预设/插件的使用心得和踩坑记录
  • DeepSeek 角色扮演的实测技巧(温度、注入指令、记忆库用法)

点击链接即可加入,无需审批 (*≧ω≦):

https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=781sa5d9-64c7-416f-b44f-9d19cd7a3656

安装(dsh)

dsh 的 Agent 预设是文件系统型的:把本仓库放进 ~/.dsh/.agent-presets/roleplay/ 即可,dsh 即时识别、无需重启服务:

bash
git clone https://github.com/oliblue-evan/dsh-roleplay-preset.git ~/.dsh/.agent-presets/roleplay

然后在会话预设列表中选择「角色扮演模式」,开一个新会话。

设计依据

  1. DeepSeek 官方角色扮演适配:DeepSeek V4 系列(deepseek-v4-flash / deepseek-v4-pro 及官方 APP/网页专家模式)专门训练了角色扮演思考模式切换。官方给出的「角色沉浸要求」指令已原文内置于本预设的 system prompt(见 agent.cordis.yml 第二节)。
  2. 酒馆社区惯例:台词/动作/内心独白的排版约定、OOC 场外指令机制、角色卡(character card)驱动、AI 腔规避清单,均取自中文酒馆社区通行做法。
  3. DeepSeek 官方提示词库Prompt Library 中的创作类提示词思路(具体化、示例驱动、分步约束)已融入本预设的文风规则。

使用方法

  1. 在会话中切换到「角色扮演模式」预设,开一个新会话。

  2. 第一条消息只需发「开始」(或随便说一句),角色会进入新手引导,分步带你填写设定,填完立刻开演。

  3. 想跳过引导?第一条消息直接发角色卡,例如:

    【角色卡】
    姓名:林晚
    外貌:黑发及腰,左眼下方有一颗泪痣,常年穿着白色风衣
    性格:外冷内热,毒舌但心软;对陌生人戒备,对认定的人毫无保留
    背景:夜班书店老板,曾经是考古系学生
    说话方式:简短、冷淡,偶尔带一点嘲讽;对熟人话会多起来
    口头禅:"关你什么事。"

    也可以直接给一个开场场景,让角色在场景中自然登场,跳过引导直接开演。

  4. 正常对话即可。角色会按官方「角色沉浸」模式思考(内心独白 → 规划回复),输出符合酒馆排版(台词"……"、动作「……」、内心独白(……))。

新手引导(零门槛开演)

新会话第一条消息没有角色卡、也不是开演场景时,角色自动进入引导流程:

  1. 开场自我介绍,说明会带你完成设定后立刻开演;
  2. 分步提问,每步一个问题、附示例选项:扮演谁 → 你是谁 → 世界观/场景 → 剧情基调 → 其他偏好(称呼、口癖、回复长度等);
  3. 任何一步说「你定/随机」即跳过,由角色现场设计;
  4. 收集完成后,角色会用【角色卡】格式逐项复述确认(姓名、外貌、性格、世界观、基调、称呼等),随后直接开演;想改设定随时说(OOC 或新角色卡)。

也就是说:你第一次真的只需要发「开始」两个字,剩下的照着角色的问题填空即可。

边界行为(已实测验证)

  • 引导进行中突然发了完整【角色卡】→ 立即停止提问、直接入戏;
  • 第一条消息说「直接开始/你安排/随便」→ 跳过引导,角色现场设计一个角色并开演;
  • 群像/酒馆场景 → 角色可以同时扮演多个 NPC,切换时以角色名或动作标注(实测:老板+老板娘+常客老王三人分饰无误,且不替你操控角色)。

记忆系统(.roleplay-memory/ 自动存档)

角色扮演模式不依赖上下文压缩,而是用文件记忆库对抗遗忘——剧情推进到一定规模时,角色会把故事整理成小说式章节写进工作目录的 .roleplay-memory/

文件内容
story.md剧情正文:每完成一个剧情段落(约 10~15 轮或你说【存档】),追加「章节标题 + 大纲 + 具体内容」
characters.md角色档案集(姓名/外貌/性格/关系/口头禅/状态/秘密)
world.md世界观档案(地点/势力/时间线/重要物品/未解伏笔)
index.md索引 + 最近剧情进展 + 当前时间地点
  • 自动触发:每完成一个剧情段落自动存档;手动触发:随时说【存档】立即写;
  • 调取:回复涉及早期剧情时角色先查记忆库再演;你说【读取记忆】可查看摘要,【记忆库】可看文件清单;
  • 跨会话恢复:新会话若检测到记忆库,角色会主动说"记忆已恢复",问你是继续旧故事还是开新故事;
  • 可控可编辑:记忆文件就是普通 md,你可以随时打开修改(相当于自己编辑世界书),角色以修改后的内容为准;删掉 .roleplay-memory/ 即清除全部记忆;
  • 防膨胀:story.md 超过约 600 行时,最早的章节自动压缩为一行大纲(伏笔移入 world.md)。

注意:超长单会话仍会逼近模型上下文窗口(记忆库解决"压缩后失忆",不解决单次窗口上限);接近上限时建议开新会话,用记忆恢复继续——这才是记忆库的完整用法。

场外指令(OOC)

输入效果
OOC: 解释一下刚才的设定跳出角色,以助手身份回答,之后自动回戏
(OOC)重写上一条回复同上,按指令重写
【导演】三小时后,雨停了导演指令:直接推进剧情/场景切换

双保险:官方 Marker 注入(推荐)

官方 FAQ 指出:指令放在第一轮 user 消息末尾(而非 system prompt)是训练时的注入位置,效果最稳定。所以追求最强效果时,可以在你的第一条消息末尾(空一行后)粘贴以下原文:

【角色沉浸要求】在你的思考过程(<think>标签内)中,请遵守以下规则:
1. 请以角色第一人称进行内心独白,用括号包裹内心活动,例如"(心想:……)"或"(内心OS:……)"
2. 用第一人称描写角色的内心感受,例如"我心想""我觉得""我暗自"等
3. 思考内容应沉浸在角色中,通过内心独白分析剧情和规划回复

之后所有轮次无需重复——模型每轮都能看到完整历史,指令全程生效。官方说明此模式非 100% 触发,未生效多试几次即可。

其他模式

  • 纯分析模式(导演/GM 模式):把下面这段贴到第一条消息末尾,角色思考会变为纯逻辑规划(适合跑团主持人、剧情规划):

    【思维模式要求】在你的思考过程(<think>标签内)中,请遵守以下规则:
    1. 禁止使用圆括号包裹内心独白,例如"(心想:……)"或"(内心OS:……)",所有分析内容直接陈述即可
    2. 禁止以角色第一人称描写内心活动,例如"我心想""我觉得""我暗自"等,请用分析性语言替代
    3. 思考内容应聚焦于剧情走向分析和回复内容规划,不要在思考中进行角色扮演式的内心戏表演

推荐模型参数(DeepSeek)

本部署的模型路由(温度、采样参数)由宿主配置管理,预设无法自行修改;以下为社区与官方验证的推荐值,可在部署的模型配置中参考设置:

模型temperaturetop_prepetition/frequency penalty备注
deepseek-chat(V3.x 非推理)1.0 ~ 1.30.9 ~ 0.951.05 ~ 1.15创意角色扮演用高温度,保持角色一致靠提示词而非降温度
deepseek-reasoner / R1 系0.6(官方推荐)0.95无需设置(被忽略)R1 不支持 system prompt,需将角色设定并入 user 消息;本预设的 system prompt 在其上会部分失效,建议改用 deepseek-chat
deepseek-v4-flash / deepseek-v4-pro(当前默认)0.8 ~ 1.20.9 ~ 0.95低或 0已训练角色扮演思考切换,本预设即按此调校;官方推荐 R1 系温度 0.6 见 DeepSeek 官方部署设置

文件说明

  • agent.cordis.yml:一行 persona 插件(complete: true,persona 即完整 system prompt;includeRuntimeContext: false,隐藏运行时上下文)+ 两行文件工具(read/write/glob/grep,支撑记忆系统;无 shell、无 web)。
  • preset.yml:预设展示名与描述。