oranskyx/dsh-tingxue ↗★ 0

dsh-tingxue

基于向量库、关系图谱和小LLM的QQ虚拟生命系统。 适合希望在QQ中通过聊天或Agent模式与具备长期记忆的虚拟生命交互的用户。

套件
dsh-tingxue
相容性
待驗證
Cordis 依賴範圍
^4.0.1
版本
0.1.0
授權
MIT
最近更新
2026年9月25日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:oranskyx/dsh-tingxue

配置

配置方式

有两种,优先级从高到低:

  1. 图形界面(推荐)——DSH Web GUI 的「设置」:
    • 设置侧边栏 →「听雪」(主入口,独占一页)
    • 设置 → 插件 → 插件配置(次入口,卡片形态)
    • 两处入口共用同一个 settings scope,内容永远同步;写入 settings 用户层($DSH_HOME/settings.yaml)
  2. 配置文件——profile 的 cordis.patch.yml,作为 settings 的 base 层保留

界面里标「已覆盖」的字段表示它覆盖了部署配置,可单点重置回落到部署层。写入用 revision 设栅,表单漂移会被拒绝而不是覆盖并发修改。

Host 与浏览器两个半侧各有一份同构的字段表(src/settings/index.mjs 的 SETTINGS_FIELDS 与 client/client.js 的 FIELDS),当前各 29 项,分组与键一一对应。

配置项

配置项默认说明
人格与记忆
profilePath''听雪档案 txt 路径(人格提示词,由用户自写)
dataDircwd/.dsh-tingxue记忆库数据目录(LanceDB 本地文件即库,state.json 也在这里)
recentRounds10最近 N 轮滑动窗口(仅在打开「重复注入最近对话」时生效)
injectRecentRoundsfalse重复注入最近对话。默认关:DSH 会话历史本身已含最近对话,再注入一遍等于同一段话付两次 token(实测约 1.5K/轮)
memoryBudgetTokens1600向量记忆检索块 token 上限
latestInfoBudgetTokens1000最新信息块 token 上限
模型
modelBackendsta1n模型后端:sta1n / local / custom
embeddingModelgemini-embedding-2向量模型(同库单一模型铁律)。设置页可点「选择模型」从端点列表里挑
embeddingDimensions3072向量维度,须与模型实际输出一致
llmModelgemini-3.1-flash-lite语义推理小 LLM(实体抽取 / 摘要)。设置页可点「选择模型」从端点列表里挑
baseURL''local / custom 时的 OpenAI 兼容 base URL
apiKey''留空则回落到 DSH 凭据服务里的 STA1N_API_KEY
双模式命令
agentStartKeyword/agentstart进入 agent 模式的关键词
agentStopKeyword/agentstop退出 agent 模式的关键词
fileDeleteScopeworkcopy文件删除范围:workcopy 只删工作副本 / keep 一律保留
绑定与推送
channelqq绑定通道(dsh-notifier 的 channel)
userId''绑定用户(dsh-notifier 的 userId)
chatSessionId''自愈回绑用的可信聊天会话 id
notifierStateFile''留空用默认的 dsh-notifier state.json
routeWorkspacedsh被静音的默认 workspace
quietOtherWorkspacetrue只让听雪自己的消息送达 QQ
qqStatusNoticetrueQQ 是否显示任务状态提示(🚀 任务开始 / ✅ 任务完成 / ⏹ 任务已中止 / ⏱ 心跳 / ⚠️ 疑似卡住)。关掉后这些状态行不发,回复正文照常送达(回复本体走 turn/end 通知的正文,见 交接文档.md §16.2);❌ 出错通知保留
approvalAllowlistOnlytrue审批是否只推 QQ 对话会话。打开后只有被显式放行出站的会话(听雪聊天会话 / tingxue-agent-* 隔离会话)的批准询问发到 QQ,其他 DSH 会话的审批只在桌面弹(需配套的 dsh-notifier 补丁,见 交接文档.md §16.3)
面板与服务
graphDashboardEnabletrue是否启用关系图谱面板
graphDashboardHost127.0.0.1图谱面板监听地址(默认仅本机 loopback)
graphDashboardPort8765图谱面板端口
memoryServiceEnabletrue是否启用记忆服务(管家)
memoryServiceHost127.0.0.1记忆服务监听地址
memoryServicePort8766记忆服务端口

还有若干只在配置文件中生效的字段(routeWorkspaceChannels、provider、model、cwd 等),不暴露在界面上。

生效时机

  • 标了 applies: 'restart' 的命名空间:dataDir、模型、端口这类启动期读取的字段,改动需重启 DSH。
  • recentRounds、injectRecentRounds、记忆 / 最新信息预算这类按次读取的字段,保存后立即生效。
  • qqStatusNotice / approvalAllowlistOnly 保存后立即生效:它们被写成 dsh-notifier 的 prefs:tingxue 状态键,由 dsh-notifier 补丁在每次推送 / 审批时实时读取(500ms 读收敛)。
  • graphDashboardEnable / memoryServiceEnable 等开关由插件启动期读取,需重启 DSH。

配置方式

有两种,优先级从高到低:

  1. 图形界面(推荐)——DSH Web GUI 的「设置」:
    • 设置侧边栏 →「听雪」(主入口,独占一页)
    • 设置 → 插件 → 插件配置(次入口,卡片形态)
    • 两处入口共用同一个 settings scope,内容永远同步;写入 settings 用户层($DSH_HOME/settings.yaml)
  2. 配置文件——profile 的 cordis.patch.yml,作为 settings 的 base 层保留

界面里标「已覆盖」的字段表示它覆盖了部署配置,可单点重置回落到部署层。写入用 revision 设栅,表单漂移会被拒绝而不是覆盖并发修改。

Host 与浏览器两个半侧各有一份同构的字段表(src/settings/index.mjs 的 SETTINGS_FIELDS 与 client/client.js 的 FIELDS),当前各 29 项,分组与键一一对应。

配置项

配置项默认说明
人格与记忆
profilePath''听雪档案 txt 路径(人格提示词,由用户自写)
dataDircwd/.dsh-tingxue记忆库数据目录(LanceDB 本地文件即库,state.json 也在这里)
recentRounds10最近 N 轮滑动窗口(仅在打开「重复注入最近对话」时生效)
injectRecentRoundsfalse重复注入最近对话。默认关:DSH 会话历史本身已含最近对话,再注入一遍等于同一段话付两次 token(实测约 1.5K/轮)
memoryBudgetTokens1600向量记忆检索块 token 上限
latestInfoBudgetTokens1000最新信息块 token 上限
模型
modelBackendsta1n模型后端:sta1n / local / custom
embeddingModelgemini-embedding-2向量模型(同库单一模型铁律)。设置页可点「选择模型」从端点列表里挑
embeddingDimensions3072向量维度,须与模型实际输出一致
llmModelgemini-3.1-flash-lite语义推理小 LLM(实体抽取 / 摘要)。设置页可点「选择模型」从端点列表里挑
baseURL''local / custom 时的 OpenAI 兼容 base URL
apiKey''留空则回落到 DSH 凭据服务里的 STA1N_API_KEY
双模式命令
agentStartKeyword/agentstart进入 agent 模式的关键词
agentStopKeyword/agentstop退出 agent 模式的关键词
fileDeleteScopeworkcopy文件删除范围:workcopy 只删工作副本 / keep 一律保留
绑定与推送
channelqq绑定通道(dsh-notifier 的 channel)
userId''绑定用户(dsh-notifier 的 userId)
chatSessionId''自愈回绑用的可信聊天会话 id
notifierStateFile''留空用默认的 dsh-notifier state.json
routeWorkspacedsh被静音的默认 workspace
quietOtherWorkspacetrue只让听雪自己的消息送达 QQ
qqStatusNoticetrueQQ 是否显示任务状态提示(🚀 任务开始 / ✅ 任务完成 / ⏹ 任务已中止 / ⏱ 心跳 / ⚠️ 疑似卡住)。关掉后这些状态行不发,回复正文照常送达(回复本体走 turn/end 通知的正文,见 交接文档.md §16.2);❌ 出错通知保留
approvalAllowlistOnlytrue审批是否只推 QQ 对话会话。打开后只有被显式放行出站的会话(听雪聊天会话 / tingxue-agent-* 隔离会话)的批准询问发到 QQ,其他 DSH 会话的审批只在桌面弹(需配套的 dsh-notifier 补丁,见 交接文档.md §16.3)
面板与服务
graphDashboardEnabletrue是否启用关系图谱面板
graphDashboardHost127.0.0.1图谱面板监听地址(默认仅本机 loopback)
graphDashboardPort8765图谱面板端口
memoryServiceEnabletrue是否启用记忆服务(管家)
memoryServiceHost127.0.0.1记忆服务监听地址
memoryServicePort8766记忆服务端口

还有若干只在配置文件中生效的字段(routeWorkspaceChannels、provider、model、cwd 等),不暴露在界面上。

方式二:逐个运行(推荐在受限沙箱下使用)