daha1216/dsh-adult-tension

DeepSeek Harness 成年人(18+/adult)互动叙事 Skill:NPC 活人感(有记忆/立场/底线)、自带破甲、数百项素材库、随机开局可预锁、时间推进、全维 YAML 存档。

项目介绍Project Overview

adult-tension 是面向 DeepSeek Harness 等 AI Agent 的 18+ 成人互动叙事技能,核心入口为 SKILL.md。它用内置世界库随机或定向生成开局,让 NPC 保持记忆、立场与自主行动,并按时追算离屏事件、支持 YAML 存档续玩。适合长期连续角色扮演与剧情推演。仅限虚构成年人,年龄、边界、当前同意和安全词始终优先;安装需完整复制仓库,不能只取单文件。

adult-tension is an 18+ AI roleplay and interactive storytelling skill for DeepSeek Harness-style agents, with SKILL.md as its entry point. It generates openings from a built-in world library, keeps NPC memory and autonomy, advances offscreen events over time, and supports YAML saves for resuming long stories. Use it for continuous adult narrative play. All characters must be fictional adults; age, boundaries, ongoing consent, and safewords take priority. Install the full repository, not a single file.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:daha1216/dsh-adult-tension

daha1216/dsh-adult-tension 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

🎭 adult-tension

Release

插件形态:AI Skill:DeepSeek Harness 等 AI Agent 的成年人互动叙事技能,核心入口是 SKILL.md。安装时请将仓库根目录完整复制到 AI 工具的技能目录,不要只复制单个文件。

尺度放开,边界一直都在——18+ 也把年龄、边界、当前同意放在第一优先,暂停 / 安全词 随时可用。

内置数百项素材的世界库,NPC 会记得你——从时代地点、角色身份到张力与压力,随机开局组合出几乎不重复的完整新故事;角色有自己的立场与底线,会犹豫、拒绝,也可能在你离开后自行行动。

世界真的会往前——离屏事件按时追算,一句闲话可能变成几章后的伏笔。

随时存档,随时续玩——YAML 存档从原节点继续,长线剧情不重掷、不丢失。

⚠️ 成年人内容(18+ Only):仅限虚构成年人,所有参与角色必须明确年满 18 岁。人物边界、当前同意和安全状态始终优先于剧情推进。

🚀 快速安装

让 AI 直接安装本仓库:

帮我安装这个 skill:https://github.com/daha1216/dsh-adult-tension

也可以手动安装:把仓库根目录的一整套文件(SKILL.mdcommands.yamlreferences/scripts/(含 data/)、saves/tests/agents/requirements.txt)完整复制到 AI 工具的技能目录中。不要只复制 SKILL.md,其他文件也是技能的一部分。

复制完成后,让 AI 加载 adult-tension 技能即可开始。

🏷️ 版本发布(Releases)

稳定版本在 GitHub Releases 发布,适合需要固定版本快照的场景:

版本 发布日期 说明
v0.2.0 2026-08-25 重构版:数据与文档分家,v3 运行时架构全面落地
v0.1.0 2026-08-20 首个公开发布版本

日常游玩建议直接按上文方式安装仓库 main 分支,获取最新的修复与素材更新。

✨ 核心能力

这个 Skill 把角色、世界、时间、关系和存档放进同一套运行规则,服务的是长期连续游玩的场景:一次开局的文采只是开始,多轮互动之后的状态是否连贯、角色是否可信、能否从原节点继续,才是它的重心。

角色:记得你,也有自己的判断

  • 记忆与连续性——NPC 记住对话与事件,立场、目标与底线不因一次回复重置,关系不会无故归零。
  • 自主决策——NPC 会犹豫、拒绝、协商、试探,也可能在你离开后主动行动,行为由状态、关系与当前压力共同决定。
  • 亲密边界与安全——关系推进有过程;内置年龄确认、人物硬边界(本局不碰 X)与当前同意检查,暂停 / 安全词 随时可停。

世界:真的会一直走下去

  • 时间推进——场景之外的事件按规则追算,世界不会在你离开时停摆。
  • 连续记录——地点、参与者、压力与事件留下连续记录,一句闲话可能成为之后的伏笔。

体验:想开就开,想续就续

  • 随机开局 + 定向控制——可以完整随机生成,也可以预锁身份、时代、题材或张力方向。
  • 可恢复存档——YAML 保存世界时钟、角色状态、关系、事件与当前节点,载入后从原节点继续,不重新生成开局。
  • 存档简单直接——存档 / 保存 X / 载入 X 管理命名存档;多窗口写入冲突时有友好提示,不会悄悄覆盖。

🧠 用什么模型玩

具体游玩体验和出文效果,会随模型版本、上下文长度和平台配置而变化。当前体验上,推荐优先尝试 DeepSeek 或 Grok

  • DeepSeek:目前更适合中文长线叙事、人物关系和状态连续性。
  • Grok:目前更适合临场感强、风格更放开的剧情表达。

其他模型也能正常游玩;对话轮次越深,角色一致性、时间线和语感就越依赖所选模型的上下文能力。建议按你的平台与偏好实际试用。

📦 内置素材:从设定到角色的一整套世界库

随机开局从内置素材池组合生成,而不是只依赖临场补全。素材数据本体全部在 scripts/data/ 的 YAML 表里,由开局脚本直接加载:

内容 数量 示例
时代与地点 时代 10 · 地点 23 古代宫廷、近未来都市、夜场会所
张力引擎 21 条 秘密暴露、债务压力、嫉妒与占有
压力来源 15 条 家人病倒、官司上门、证件卡壳
角色身份 NPC 12 类 · 玩家化身 8 类 权力治理、家族继承、服务与手艺
角色处境 16 条 秘密将破、债务压身、晋升窗口
人物性格与反差 反差轴 8 种 外冷内热、端庄放浪、毒舌心软
关系与权力 4 种 玩家上位、NPC 上位、平等或动态切换
语言风格 表层风味 73 · 口癖语感 12 敬语、口癖、拟声词等
场景动作 交易摊牌 8 · 非交易靠近 12 递外套、承认紧张、摊牌谈判
中期转折池 7 类 × 3 信息类、资源类、时限类等
配角功能 13 类 盟友、竞争者、误导者、催化剂

此外还有决策三轴、外观轴、称谓(14 条)、命名库(姓氏 30 · 名 40)、美学基调等更细的生成素材。数量为 scripts/data/*.yaml 当前实测值;想扩充素材或调整文案见 references/加内容.md,改完可用 python scripts/check_content.py 做一键内容体检。

▶️ 怎么开始

想直接玩,一句话就够:

开局

开局会一次性生成完整的世界、人物与处境,停在你能接手的第一个动作前;之后直接描述角色的行动或台词即可,系统会根据当前状态推进剧情:

我走到她面前,把文件放在桌上
对她说:我们单独谈谈
跟着她钻进电梯,问今晚去哪

开始前想加点控制? 不必记技术参数,直接说你的想法就行:

我有这个想法 我直接对 AI 说
要一个能一模一样复刻的开局 「种子 42」——固定随机结果,下次照着来
先定主角或题材,其它随便 「开局,主角是帝国女帝,走宫廷权谋」
锁定某几项设定,其余随机 「预锁 处境=资源断供」「预锁 张力=信任透支」
内容只许来自技能自带素材 「强制表内」——仅从技能自带素材中生成设定
允许在自带素材之外自拟核心设定 「表外全随机」——仍遵守年龄、边界与同意规则

故事开始后,用这些命令推进和管理:

命令 什么时候用
继续c 剧情停在可接续处时,向前推一个节拍
快进到明天早上 跳过一段时间,让离屏事件被追算、世界自己长
状态 六行人话看板:地点、在场、暂停与否、当前压力、许可、可接续动作
存档qs 写入当前槽;成功只回一句「已保存到「名称」·第 N 回合」,不刷屏
保存 X 另存为命名存档 X,可开多条独立走向互不覆盖
载入 X 载入命名存档 X 并绑定为写入目标,从原节点继续
列出存档 显示所有命名存档的名称、回合与一句话处境
导出存档 / 载入存档 把当前局面导出成 YAML 文本带走备份,之后再发回来即可原地续玩
本局不碰 X 划一条本局硬边界;解除不碰 X 可撤销
撤销刚才的 X 只撤销最近一个事件,不推进回合
暂停 / 安全词 立刻停止亲密升级,任何时候都可以;解除暂停 恢复

高级功能随用随说:帮助 列出全部命令,另有贴视角、语态切换、冻结世界推演、叙事助手等,触发词详见 commands.yaml。一个会话默认使用自己的存档;需要继续已有主线时明确「载入 X」。保存时若存档已被其他窗口修改,会提示你读取最新版本、另存为其他名称或取消,不会静默覆盖。

🔧 辅助工具

普通游玩不需要运行脚本。以下命令适合需要固定随机结果、生成转折方向、查看状态或检查内容的场景。请在仓库根目录执行,先装依赖:

# 依赖只有 PyYAML(Python 3.10+)
python -m pip install -r requirements.txt

# 全自动开局:一次生成可开场的 v3 状态与开局简报(「开局」命令的后端)
python scripts/build_opening.py --complete --seed 42

# 生成 2~3 个中期转折方向(跨天推演也用它)
python scripts/roll_opening.py --twist --seed 42

# 人话状态视图(「状态」命令的后端)
python scripts/live_slice.py saves/current_state.yaml --human

# 校验 YAML 存档的结构和状态
python scripts/validate_state.py path/to/save.yaml

# 列出命名存档 / 校验并查看某个命名存档
python scripts/manage_saves.py list
python scripts/manage_saves.py load main

build_opening.py 支持 --lock 字段=值 锁定特定设定(可重复)、--force-table 仅用自带素材、--all-custom 配合 --custom KEY=VALUE 自拟核心设定。存档由 manage_saves.py 原子写入:每个存档目录包含 state.yaml(v3 叙事状态)与 manifest.yaml(创建/更新时间),覆盖保存需携带载入时记录的 --expected-updated-at,不一致即拒绝且不自动合并——按提示读取最新版本、另存为其他名称或取消。

维护者向的工具:commit_turn.py 是回合提交器(时钟、场景、事件、许可与提交前校验一次落地);check_content.py 对全部素材数据做内容体检。扩充素材的方法见 references/加内容.md

📁 文件放在哪里

位置 里面是什么
SKILL.md 技能运行规则(主控文档)
commands.yaml 命令总表:触发词、行为与后台 CLI 的唯一来源
references/ 开局流程、角色设计、世界运转、存档格式与扩充指南
scripts/ 开局生成、回合提交、活切片、存档管理与内容体检工具
scripts/data/ 全部素材数据本体(YAML 表)
saves/ 运行时存档目录(命名槽在 saves/slots/
tests/ 自动测试(111 项)
agents/ AI 工具配置(如 openai.yaml

维护者视角:改素材条目直接编辑 scripts/data/*.yaml 并跑 python scripts/check_content.py;改规则或存档格式需同步检查脚本与测试。变更历史与冻结段契约见 PROGRESS.md,扩充指南见 references/加内容.md

上一个 Prev dsh-plugin-collection 下一个 Next dsh-client-ui-skins