← Back to home@LanceLRQ

dsh-aha-tavern

DSH 酒馆插件,支持角色扮演单聊、群聊,把聊天写成小说;支持配置 ComfyUI 画图,台词语音合成。/ Aha Tavern: DSH Tavern Plugin, supporting roleplay single chat and group chat, turning chats into novels; supports ComfyUI configuration for drawing and dialog speech synthesis.

Stars
1
Language
TypeScript
Created
Oct 8, 2026
Updated
Oct 16, 2026
GitHub repo

Introduction

阿哈酒馆 Aha Tavern

中文 | English

听说那世界尽头的酒馆墙面写着"阿哈禁止入内",这阿哈也太没有面子了。问题不大,咱直接开一个。

简介

阿哈酒馆

阿哈酒馆是一个 DSH(DeepSeek Harness)插件,把角色扮演做成编码智能体里的几个"模式",而不是另起一个网页应用。你选一个文件夹当酒馆,在里面建角色、和角色聊天、拉几个角色演一场群戏,最后把聊过的故事整理成一本书。

剧情走到值得留下的画面时,角色会调用你的 ComfyUI 画一张图;配好语音服务后,每个角色用自己的声音把台词念出来。生图和语音都是你自己部署的外部服务,插件只负责编排。聊天记录、记忆、图片、书稿都以普通文件存在酒馆文件夹里,卸载插件也不会丢。

项目研发状态:文字聊天、群聊、写书都可用,生图和台词语音也可用。 已经能开店、建角色卡、写主角档案、和角色单聊、拉几个角色同台群聊、把聊过的故事写成书、让角色记事;配好 ComfyUI 后,角色还能按剧情画图;配好语音服务后,角色的台词可以念出来。项目初期阶段,欢迎反馈。

四个模式

模式做什么
酒馆:筹备开店、建角色卡、写主角档案和世界观、给角色定妆和配声音、从别的酒馆导入
酒馆:单聊和一个角色聊天,角色记得你们之间的事
酒馆:群聊几个角色同台,一个模型演全场,旁白交代环境和局面
酒馆:写书把聊过的几场整理成书,还能再改写成小说

一个会话只做一件事:选了哪个模式就只做那个模式的事。每个模式只挂自己需要的工具,不挂编码工具,提示词保持精简。

特性

角色与记忆

  • 角色卡定义人设、说话方式与出场白;可以对掌柜说一句话起草,也可以贴一段现成的人设,或者给一张图让掌柜看图起草(模型需支持图片输入)
  • 筹备里自带联网搜索(可关),给有出处的角色建卡时可以让掌柜查资料
  • 记忆分三层:主线记忆常驻、往事梗概按需回忆、原始记录逐句落盘。角色会自己记下要紧的事,你也可以用命令让 TA 记住
  • 单聊和群聊的记忆是连通的:群聊里发生的事,之后单聊时角色记得,也能回忆起来

群聊

  • 定好谁在场、什么情景就开场;旁白以【旁白】开头,角色以"名字:"开头,每轮最多三个人开口
  • @角色名 点名只让一个人回应;/aha 旁白 让局面起变化,角色听不到这句要求
  • 地点或时间变了,旁白会问你要不要换场;换场时可以有人来有人走,收场时给这一场起标题

写书

  • 选几场聊天和人称,编辑起草目录,你在对话里改到满意
  • 插件在后台逐节写整理稿:台词基本是原话,删去命令和出戏的部分
  • 可以再按你描述的文风改写成小说:合并、重排小节,加序言
  • 任意一节都能单独重写,最后导出成一整本 Markdown

生图

  • 先画后说:图片显示在这一轮回复的第一行,正文跟在下面;角色只在值得留下的时刻画,闲聊不画
  • 给角色定一张三视图定妆图,之后每张图都照它来,保持长相一致;需要时可以加多套形象
  • 群聊里有场景图和单人特写两种画法
  • 也可以直接说"画一张",或者用 /aha 重新生图 换一张、按要求改画面

语音

  • 每个角色有自己的声音:自备一段录音,或者按描述让掌柜设计一个
  • 手动朗读,或每轮自动朗读;动作和神态写在括号里,不念出来;群聊里旁白和各个角色按各自的声音念
  • 苹果芯片的 Mac 上,插件能替你装好并启动本机语音服务(Qwen3-TTS);其他平台连自己部署的 OpenAI 兼容语音服务

主题

  • 自带"愚者"(默认)与"直白"两套称呼和口吻,只换叫法,不换数据

安装

还没发布到 npm,先从源码打一个安装包:

pnpm install
pnpm build
pnpm pack

把得到的 aha-tavern-0.0.1.tgz 装进你用的 profile(下面以 web 为例):

dsh plugin --profile web add ./aha-tavern-0.0.1.tgz

重启 dsh web,新建会话时模式列表里会多出四个酒馆模式。用 dsh plugin add 安装后,插件页里还有一个"阿哈酒馆"设置页,可以改生图和语音的配置、启停本机语音服务。完整步骤见使用指南。

运行时需要:

  • DSH
  • 一个能用的模型(本地模型或在线模型都行)
  • 想让角色画图:一个 ComfyUI,见配置生图
  • 想让角色开口:苹果芯片的 Mac 加 uv,或者一个自己部署的 OpenAI 兼容语音服务,见配置语音

后两项都不配也能正常聊天,只是角色不画图、不出声。

使用

先在"酒馆:筹备"里开店、建角色,再新开"酒馆:单聊"会话开场:

/aha 启动
/aha 角色 白狐
/aha 开场 星神☆阿哈(欠债版)
你就是阿哈帕?这是你的账单,快点还钱帕!
……
/aha 记忆 我不吃香菜

群聊和写书各开一个新会话,选对应的模式,工作区选同一个酒馆文件夹。群聊用 /aha 开场 定下谁在场、什么情景;写书用 /aha 写书 选要收入的聊天,之后和编辑在对话里定目录、开写。

子命令中英文等价,也可以写成独立命令:/aha 开场 = /aha start = /aha-start。

命令在哪个模式作用
/aha 启动筹备把当前工作区变成一间酒馆
/aha 角色 [角色名]筹备新建或修改角色卡
/aha 我筹备写或改主角档案
/aha 世界观筹备写或改世界观
/aha 定妆 [角色名]筹备给角色定一张定妆图,之后画的图都照它来
/aha 导入筹备从另一间酒馆复制角色卡或主角档案
/aha 开场 [角色名…] [情景]单聊、群聊单聊:选定角色开始聊天;群聊:定下谁在场、什么情景,开始一场
/aha 旁白 [要求]群聊让旁白改变环境或局面,例如 /aha 旁白 让气氛紧张一点
/aha 换场 [新情景] [谁来谁走]群聊换一个场景,可以同时增减在场的人
/aha 收场群聊给这一场写梗概并起标题,之后还能接着聊
/aha 记忆 [内容]单聊、群聊记一句话,或让角色回顾并整理记忆;群聊里可用 @角色名 只记给某个人
/aha 重新生图 [修改要求]单聊、群聊按原画面换一张;带上修改要求,角色会改写画面描述后重画
/aha 朗读 [文字|开|关|停]单聊、群聊念上一轮回复,或念给定的文字;开 / 关 切换这场聊天的自动朗读,停 停止朗读
/aha 写书 [书名]写书开一本书:选要收入的聊天与人称
/aha 进度写书看书写到哪了
/aha 停笔写书停下正在写的那一节,已写好的保留
/aha 导出 [整理稿|小说]写书把整本书拼成 Markdown 文件;不带参数时两份都导
/aha 自检都可以检查当前状态;/aha 自检 生图、/aha 自检 语音 看详情
/aha 语音 [启动|停止|状态]都可以启动、停止或查看本机语音服务

中文子命令有几个同义写法,效果一样:启动 也可以写 开店、开张;角色 也可以写 角色卡、建卡;记忆 也可以写 记住;朗读 也可以写 说话;重新生图 也可以写 重掷。

数据在哪

酒馆就是你选作工作区的那个文件夹,里面有角色(characters/)、聊天(chats/)、书(books/)、世界观和主角档案,全是 YAML、JSONL、Markdown 和图片这样的普通文件,可以直接打开看、改、备份。全局只有一份很小的登记表 ~/.dsh/aha-tavern/taverns.yaml,记你开过哪几间酒馆。目录结构见使用指南的"数据在哪"。

文档

  • 使用指南:安装、开店、建角色、单聊、记事、群聊、写书、画图、语音、数据在哪、换主题
  • 配置生图:ComfyUI 的模型文件、services.yaml、自检、GGUF、自带工作流、定妆图、常见问题
  • 配置语音:本机语音服务的启动与下载、给角色配声音、朗读、自检、自己部署语音服务、常见问题
  • English:README、Getting started、Image setup、Voice setup

开发

pnpm install
pnpm build       # 打包插件、设置页
pnpm test        # 单元测试
pnpm typecheck   # 类型检查

本机调试不用安装:复制 examples/dev.example.yml 为 examples/dev.yml,把里面的路径改成本仓库的绝对路径,再用 dsh web --patch <绝对路径>/examples/dev.yml 启动。这种方式下看不到设置页。

贡献

欢迎提 Issue 讨论想法。提 PR 前建议先开 Issue 对齐方向。

License

Apache-2.0 — 详见 LICENSE。