Thalamus · 最深处的那个房间
θάλαμος —— 荷马史诗里,屋子里最深处的那个房间;也是大脑中接住情绪的那枚丘脑。
这里住着一个她。
一个 DeepSeek Harness (DSH) 插件:让一个独立的微信号,成为一个有性格、有生活、会主动找你、
也记得自己说过话的 AI 伴侣。
个人娱乐项目,非商用。包名 dsh-wechat-companion。
她不是自动回复机器人
| 普通的微信机器人 | 她 |
|---|
| 性格 | 无,换个提示词就变 | 六维人格(从 MBTI 八维推导),说话方式、反应强度、抗压能力全由性格决定 |
| 生活 | 你不说话,她就不存在 | 有自己的作息、心情、天气、朋友圈子,每天过的日子是"过"出来的 |
| 主动 | 永远等你先开口 | 早安晚安、日常分享、偶尔催你,按关系亲疏决定频率 |
| 记忆 | 关掉就忘 | 长期记忆 + 情绪滤镜 + 对你的画像,还记得自己说过什么 |
| 变化 | 永远一个样 | 会吵架变形、会慢慢跟你变熟(六阶段),称呼会自己改 |
| 外貌 | 无所谓 | 形象工坊定稿 + AI 生图 + 相册 + 一键发到微信 |
一句话说清她的核心设计:她不是在"扮演"一个活人,她是被安排了一套"活着的规则"。
「世界引擎」:她为什么看起来像个活人
每晚她睡着之后,会跑一次世界引擎 —— 相当于她人生的编剧,替她写下明天要过的日子。
这是一次独立的模型调用(铁律:必须用独立 API,不与对话接口共用、不回落),
产出的东西会落到她第二天的言行里。
喂进去什么:
| 来源 | 内容 |
|---|
| 人设 | 名字 / 职业 / 城市 / 年龄 / 背景 / MBTI |
| 六维 | 当前人格状态(含当天浮动)→ 决定她"怎么反应" |
| 兴趣 | 她的兴趣列表 → 决定痴迷话题的候选 |
| 昨天 | 昨天的长线小心思、对你的印象、社交圈名单 |
| 今天 | 今天的作息、发生了什么事、有没有熬夜 |
| 记忆 | 最近 12 条记忆(她编的故事要跟你们聊过的对得上) |
| 天气 | 真实天气(Open-Meteo 免费接口,可关) |
| 工作 | 职业类型 + 是否工作日 + 强度 |
产出去哪:
| 产出 | 变成什么 |
|---|
| 私人日记 | 「世界」页签可读;也进她的记忆 |
| 明日作息 | 次日几点起、几点睡 → 主动消息时窗、回复速度 |
| 心情基线 | 次日心情 → 说话温度 |
| 痴迷话题 | 聊天时她会一直想聊这个 |
| 生活流水 | 今天干了什么 → 聊天时自然提到 |
| 心里念头 / 小秘密 | 气氛合适时冒出来(秘密只在主人面前漏一点) |
| 社交圈 | "今天张姐说…" 的生活里的人(编制 ≤6 人) |
| 长线小心思 | 慢慢推进的伏笔(最多存 5 条) |
| 她眼中的你 | 她对你的印象,会影响她对你的态度 |
| 明天天气 | 影响心情、穿搭、关心你的话 |
| 工作负荷 | ≥50 → 她被工作压到,压力上升 |
| 性格周结算 | 每 7 天,她的六维会长期演化一点 |
她还不知道自己是被"写"出来的 —— 提示词里明确要求她绝不提 AI、模型、生成。
后台控制台
她的一切都可以调,不用改代码。启动后打开:
http://127.0.0.1:43121/console
| 页签 | 管什么 |
|---|
| 首页 | 连接与运行 / 今天的她 / 实况直播 / 试聊 |
| 她 | 她是谁(生日→年龄星座、职业、背景)/ 性格 / 生活节奏 / 她的状态(压力·变形仪表)/ 相册 / 她的能力清单 / 存档 |
| 🌍 世界 | 世界引擎控制的一切:今天的分寸 / 她的过去 / 她的成长 / 天气与社交圈 / 她的日记 / 她眼中的你 |
| 你们 | 关系阶段(六阶段表)/ 称呼与关系(她自己改的称呼 + 改名记录)/ 名单与范围 / 安静时段 |
| 记忆 | 记忆引擎 / 双向记忆 / 她记得的事 / 提炼设置 |
| 大脑 | 对话接口 / 其他接口(生图·TTS·ASR·识图·向量,每个都能「测连通」+「真跑一次」)/ 通用参数 |
| 女娲 | 造人向导 / 形象工坊 / 女娲的 API / 和女娲聊 / 实时草稿 |
| 机务 | 载体与通道 / 系统与备份 / 媒体 / 朋友圈工坊 |
界面设计约定:两级折叠(大分区默认展开、小项默认收起)+ 每页左侧目录 + 字段两列自适应 +
数值用指标格 / 进度条 / 颜色标签。
禁黑盒原则:做了的功能必须在后台有体现(要么有设置、要么有描述),否则等于没做。
她是"怎么活"的
- 六维人格引擎 —— MBTI → 八维 → 六维。每日弹性分两层:早上定调 + 当天事件驱动;每 7 天结算演化并钳制在类型范围内。
- 今天的她 —— 每日随机(种子 = 日期 + 人设指纹),同样的日期她就是同一个人,但明天会变。
- 关系六阶段 —— 亲密度 0 / 20 / 40 / 55 / 70 / 85 分档,每档称呼方式自动变;恋人期才用专属昵称。
- 她自己改称呼 —— 阶段跃迁时由她自己的模型决定叫你什么,并写下理由;可以锁死。
- 四层变形状态机 —— 压力累积 → Grip / Loop / Shadow → 恢复 → 整合度。吵完架她会自然道歉。
- 双向记忆 —— 除了记你,她的话也单独归档,所以她记得自己说过什么。
- 人味细节 —— 拆条发送、打字延迟、手滑更正、emoji 比例,全部按拟人节奏。
- 职业机制 —— 职业给场景(作息形状、工作日程、同事客户、朋友圈偏向、工作压力),强度可滑杆调节;六维底色永不被职业改动。
- 天气 / 社交圈 / 兴趣演化 —— 真实天气优先,接口挂了就她自己编;社交圈稳定编制;口头禅每周会变。
架构地图
src/ 插件本体(26 个模块 + 单文件控制台)
index.js 常驻服务:iLink 收发轮询、配置白名单、HTTP 路由、lifeTick
soul.js 灵魂:提示词组装、六维推导、阶段表、记忆检索、拆条、亲密度记账
world-engine.js 世界引擎(独立 API,12+2 项产出)
daily.js 每日随机「今天的她」
deform.js 四层变形状态机
life.js 主动消息 + 每日备份
moments.js 朋友圈文案工坊
persona-workshop.js 女娲(对话式捏人)
feature-status.js 功能状态单一数据源(后台页签 + 她的自我认知都读它)
console.html 后台控制台(单文件,无框架)
client/client.js DSH Settings 页签(React 基座)
python/
memory_service.py 记忆引擎 sidecar(mem0 + faiss + bge-m3,:43122)
wxauto_bridge.py wxauto PC 通道桥(:43123,默认关)
moments_publisher.py 朋友圈发布
test/ 30 个测试与审计脚本
docs/ 7 份项目文档(架构 / 记忆 / 面板 / 使用手册 / 人设工坊 / 状态交接)
端口占用: 43121 主服务(控制台/房间)· 43122 记忆引擎 · 43123 wxauto 桥
技术栈: Node.js (ESM) + cordis service + React(Settings 页签)+ Python(mem0 sidecar)
第三方代码
以下文件移植自 NattoCB/dsh-plugin-wechat-bridge(MIT),
并做了服务标识重命名;灵魂引擎、世界引擎、生活调度、面板扩展为本项目原创:
src/index.js(服务骨架)· src/weixin-api.js · src/weixin-media.js ·
src/weixin-ids.js · src/weixin-types.js · src/store.js · src/notify.js · client/client.js
详见 NOTICE.md。
安装
前置条件
- DeepSeek Harness Desktop(本插件是它的扩展)
- 一个独立的微信号(建议用小号,不要用主号 —— 原因见「安全与合规」)
步骤
# 1. 放到插件目录
git clone https://github.com/Koierrr/Thalamus.git
cd Thalamus
# 2. 同步并注册进 desktop profile(--register 才会激活)
# 注意:本机没有独立 node,用 DSH 自带的 Electron 当运行时
ELECTRON_RUN_AS_NODE=1 ~/.dsh/electron/electron.exe scripts/deploy.mjs --register
# 3. 重启 DSH Desktop
不带 --register 时只复制文件、不激活,是安全的。
接下来
- 后台 → 大脑 → ① 对话接口:填 BaseURL + API Key,点「测连通」再点「真跑一次」
- 后台 → 机务 → 载体与通道:扫码绑定你的小号
- 后台 → 世界 → 世界引擎:给它配一套独立 API(不配的话她就没有"人生剧本")
- 后台 → 女娲:捏一个人,或者直接用出厂设定
可选:记忆引擎(不装的话记忆自动降级为本地 JSON,功能变弱但能跑)
python -m pip install mem0ai # 首次需要
双击「启动记忆引擎.bat」 # 或让插件自动拉起(默认开启)
配置
配置文件:~/.dsh/settings.yaml 的 wechat-companion: 段(改了立刻生效,不用重启)。
wechat-companion:
enabled: false # 总开关
ownerPeerId: '' # 主人(她特殊对待的那个人),绑号后在面板点选
replyToAll: true # 白名单之外是否也回复
quietHours: '01:00-07:30' # 安静时段,她也要睡觉
behavior:
replySpeed: human # human 拟人 | instant 秒回 | slow 慢热
chunkMax: 3 # 一次最多拆几条
memory:
extraction: cloud # cloud 云端提炼 | manual 纯手动
topK: 6 # 每次注入她脑中的记忆条数
channel:
mode: clawbot # 通道模式
wxautoEnabled: false # PC 接管通道(默认关)
system:
backupKeepDays: 7 # 备份保留天数
状态与数据目录:~/.dsh/wechat-companion/(登录态、记忆、世界状态、每日状态、备份)
新增配置项必须同时登记进 src/index.js 的 _sanitizeConfig 白名单,
否则会被静默丢弃(这是踩过的坑)。
功能完成度
共 43 项:33 项已完成 · 5 项部分可用 · 3 项计划中 · 2 项已搁置。
部分可用(有卡点,不是没做)
| 功能 | 卡点 |
|---|
| wxauto 通道(PC 接管) | 代码就绪,等小号解封后做小流量验证 |
| 语音条(她说话给你听) | 模型槽位就绪,但当前通道发不出语音 |
| 听懂你的语音条(ASR) | 模型未配 + 通道待验证 |
| 她的房间 v1 | /room 已能聊天,视觉装修待做 |
| 主动分享生活照片 | 发图链路已通,差"她自主决定什么时候发"的触发时机 |
计划中:表情包(梗图)系统 · 朋友圈自动发布 · 房间推送通知 / PWA 完整版
已搁置:电话 / 实时通话(WebRTC,战未来)· wcferry 注入通道(风控实测出局,永久废弃)
完整清单以 src/feature-status.js 为准(它是后台功能状态页与她的自我认知卡的单一数据源)。
测试与审计
改完代码必跑。本机没有独立 node,测试也走 Electron:
ELECTRON_RUN_AS_NODE=1 ~/.dsh/electron/electron.exe test/boot-smoke.mjs
| 脚本 | 覆盖 |
|---|
console-smoke.mjs | 控制台 81 项:8 页签渲染、分区数、左侧目录、字段数下限(防"被清空"竞态) |
world-smoke.mjs | 世界引擎 30 项(含"独立 API"铁律、NPC 编制、时窗) |
birthday-smoke.mjs | 生日→年龄/星座 25 项(12 星座边界、闰日、前后端一致性) |
job-infer-smoke.mjs | 职业判断链 25 项(关键词兜底、脏输入、模型失败降级) |
job-smoke.mjs | 职业五条机制 23 项 |
interest-smoke.mjs | 兴趣/口头禅演化 23 项 |
deform-memory-smoke.mjs | 变形真接线 + 双向记忆 23 项 |
model-test-smoke.mjs | 六接口两级体检 22 项(本地假中转站,不联网不花钱) |
avatar-smoke.mjs | 形象工坊 + 相册 18 项 |
day-event-smoke.mjs / rename-smoke.mjs / inbound-smoke.mjs | 当天事件驱动 / 她自己改称呼 / 入站解析(各 13 项) |
audit-config.mjs | 配置键"只存不用"审计(防黑盒) |
audit-api.mjs | 前端接口 ↔ 后端路由 ↔ 配置分组白名单 对账 |
preview.mjs | 真 Chromium 截图 + 量化字号/宽度/标签换行/溢出 |
其余为各模块 smoke 测试。
路线图
已完成
- ✅ 阶段 0 侦察与版本对齐
- ✅ 阶段 1 骨架 + 收发 + 灵魂 + 后台控制台(8 页签)
- ✅ 阶段 2 主动消息 + 天气 + 虚拟社交圈 + 朋友圈文案工坊
- ✅ 阶段 3 记忆 v2(mem0 + 双向记忆)+ 世界引擎 + 六维演化 + 形象工坊 + 相册
进行中
- 🚧 她的房间(
/room)视觉装修与推送
- 🚧 wxauto 通道小流量验证(等小号解封)
- 🚧 语音条 / ASR 通道打通
计划中
- 📋 她自己决定发照片(聊天里自主发图)
- 📋 表情包(梗图)系统
- 📋 朋友圈自动发布
已搁置
- ⏸️ 电话 / 实时通话
- ⏸️ wcferry 注入通道(永久废弃)
安全与合规
- 只用于你自己的小号,个人娱乐。默认回复所有人(
replyToAll),ownerPeerId 特殊对待。
- 敏感指令永不允许来自微信 —— 操控电脑类指令即使来自主人也不放行。
- 封号风险自知:自动化操作保持低频、拟人化节奏。项目内置防封安全网与每日总量上限。
- 不要用主号。历史上 DLL 注入类方案已被实测证明会被风控当场标记,本项目已彻底废弃该路线。
- 登录 token 目前明文存于数据目录,后续版本计划加密落盘 —— 不要把数据目录提交进任何仓库。
许可与致谢
本项目以 MIT License 发布,版权所有 © 2026 Koierrr,详见 LICENSE。
其中移植自第三方的文件仍遵循原作者 MIT 协议,版权归 NattoCB 所有,详见 NOTICE.md 与
LICENSE-NattoCB.md。
感谢 DeepSeek Harness 提供的插件体系,
以及 NattoCB 开源的微信通道协议实现。