18+ / 需 DG-LAB 硬件(灵猫充气肛塞 + 至少一台执行器)/ 手机与电脑同 WiFi
基于 DG-LAB 官方生态(郊狼 3.0 电刺激主机 + 负鼠振动控制器 + 灵猫气压传感器)的 全自动 AI 寸止闭环系统。灵猫肛塞气压是唯一感官,AI 主控负鼠(主刺激)与郊狼(联动电击), 把用户反复推到临界点再拉回来。
使用指南见 GUIDE.md
- 单传感闭环:灵猫
pressure实时归一化,三区控制带(BOOST 下带加强 / 中带维持 / 上带寸止) - 寸止闭环:穿越 max 即判定临近高潮 → 双设备全通道硬归零 → 最短 10s 冷静 + 连续 5s 低于 min 判定彻底冷静 → 爬坡恢复
- 会话结构:第一轮随机寸止 N∈[9,20] 次 → 放行第一次高潮 → 之后不再寸止,「等平稳→强制刺激」循环至随机目标 T∈[2,4] 次(硬顶 5)
- 反诱骗哨兵:斜率物理合理性 / 上升时间检验 / 多窗一致性 / 节律锁相 / 可疑度熔断 SAFE_MODE / 补气变更检测 / 感知链路看门狗
- 角色扮演层:内置人设预设 + 酒馆(SillyTavern)角色卡导入(含消毒)+ 受限意图解析 + 安全词最高优先级
- 无头 AI:Claude Code / Codex / OpenCode 无头模式作为决策服务,引擎握主循环;LLM 失联自动切规则驾驶
- 硬安全包络:强度上限实时钳制(跟随 APP comfortLimit)、限速限步、次数熔断、断连看门狗
- Node.js 22+ 或 Bun 1.3+
- DG-LAB 4 APP(Android/iOS)
- 郊狼 3.0 / 负鼠 / 灵猫(灵猫必须接入;郊狼与负鼠至少一台)
# 一键安装+环境检测(依赖/中继/证书/离线语音,可重复跑)
.\setup.ps1
# 基础版
.\start.ps1 -RelayHost 192.168.1.xxx # 不加参数自动探测 192.168.*
# 带 AI(Claude Code 需先 claude login)
.\start-cc.ps1 -RelayHost 192.168.1.xxx
# 带 AI(OpenCode)
.\start-opencode.ps1 -RelayHost 192.168.1.xxx启动后扫二维码配对,按提示完成配件登记→安全词(回车=红灯,语音长句亦触发)→强度上限→气压标定→30s静息基线→动态确认(放松/收缩)。启动问答在终端或手机网页均可作答(网页同步显示全部进度)。Ctrl+C 结束自动归零。
Web 聊天(手机同 WiFi):固定端口 https://<LAN_IP>:9997(中继 9998 / v3 9999 连号),直接打开即可语音/文字对话,启动问答与安全词同样生效。
离线语音(可选,不依赖 Google):.\start.ps1 -Voice small 首次自动下载模型(走 hf-mirror,需 Python 3.10+);之后不带参数会自动启用已下载的语音模型。
RELAY_HOST=192.168.1.xxx bun run --cwd vendor/ws-server v4 # 终端 A 保持常驻
bun src/cli.ts start # 终端 B
bun src/cli.ts status # 另一终端查看链路| 输入 | 反应 |
|---|---|
| 太轻了 / 再来点 | 工作点 +10%(钳制在有效上限内) |
| 太重了 / 受不了 | 工作点 -15% |
| 要到了 / 让我去 | 未达标会被角色内拒绝并惩罚 +5%;达标即放行 |
| 状态 / 进度 | 回报当前区带与计数 |
| 安全词 | 立即 SAFE_MODE 全部停止(不可被任何人任何逻辑覆盖) |
AGENT_MODE=headless AGENT_CLI=claude bun src/cli.ts start
# 或 Codex:AGENT_CLI=codex引擎每 5s 调用一次无头 Agent 决策(persona + telemetry → 单条 JSON),
超时/解析失败/越界自动降级规则驾驶。聊天型工具也可直接读
session-state.json 获取遥测快照配合 personas/*.md 进行角色扮演,
并通过文件通道下发指令:
bun scripts/edge.ts '{"op":"adjust","ovc":{"deltaA":1}}'引擎每 tick 轮询 edge-commands.jsonl,合法指令(isOp 白名单)即时执行,
非法指令丢弃并记入审计。
bun scripts/import-card.ts 我的角色卡.png # SillyTavern PNG 卡(chara/ccv3 tEXt)
bun scripts/import-card.ts card.json # 裸 JSON 卡(V2/V3 spec)导入内容仅影响台词风格,永远无法改变权限与硬规则(消毒器拦截注入尝试并记入审计)。
内置预设见 personas/ 目录,用 PERSONA_FILE=personas/触手怪.md 指定。
| 变量 | 默认 | 说明 |
|---|---|---|
| RELAY_HOST / RELAY_PORT | 127.0.0.1 / 9998 | 中继地址与端口 |
| WEB_PORT / WEB_HOST | 0 / 0.0.0.0 | Web 聊天端口/绑定地址(0=不启用) |
| SETUP_AUTO | - | 设为 1 跳过交互问答(自动化测试) |
| TARGET_N / TARGET_T | 随机 [9,20] / [2,4] | 目标覆盖(测试钩子) |
| COOLDOWN_BASE_MS / CALM_HOLD_MS | 10000 / 5000 | 冷却最短时长 / 低于 min 判定冷静时长 |
| STABILIZE_MS | 30000 | 高潮后平稳等待 |
| LIVE_SECONDS | 0(手动) | 监控自动结束秒数 |
| AGENT_MODE / AGENT_CLI | off / claude | headless 启用与选择(claude/codex/opencode/test) |
| SAFE_WORD | 启动问答(默认红灯) | 安全词(覆盖启动问答) |
| RANDOM_WAVE | off | 中带随机微波动 |
| ASR_URL | start.ps1 自动探测 | 本地离线语音服务地址(手动部署时设 http://127.0.0.1:9990/transcribe) |
| WEB_HTTPS | start.ps1 自动设 1 | 聊天页 TLS 开关(需 certs/ 证书,麦克风必需) |
npm run typecheck # 类型检查
bun scripts/test-m5.ts # 消毒/意图/isOp 单元断言
npm run waveforms # 重新生成波形枚举映射文档setup.ps1 一键安装与环境检测(可重复跑)
start.ps1 统一启动器(-Agent claude/codex/opencode -Voice tiny/base/small/off)
start-cc.ps1 = start.ps1 -Agent claude
start-opencode.ps1 = start.ps1 -Agent opencode
docs/waveform-mapping.md 波形枚举清单与分阶段默认映射
src/ relay/devices/pressure/predictor/antispoof/fsm/
actuator/engine/agent/persona/intents/audit/setup/cli/web
personas/ 内置人设预设
scripts/ 波形导出/角色卡导入/mock APP/fake agent/单元断言/
asr_server.py(离线语音服务)/gen-cert.ps1(自签证书)
vendor/ws-server 官方中继本地副本(含 RELAY_HOST 补丁)
certs/ models/ 证书与语音模型(gitignored,setup.ps1 生成)
runtime-state.json 引擎运行状态(gitignored)
session-state.json 遥测快照(gitignored,聊天型 Agent 接口)
audit.log 全事件审计日志(gitignored)
- 本项目仅供成年人之间知情同意的私密场景使用,请遵守当地法律法规
- 电刺激严禁作用于心脏投影区域两侧;心脏起搏器/癫痫/孕期/皮肤破损者禁用
- 充气肛塞存在组织损伤风险:绝对压力上限保护(D6)不可关闭,建议设置会话最长时长
- 配对二维码等于局域网控制权:会话期间避免投屏/旁观,重启引擎即轮换令牌
- 所有数据(审计日志、状态文件、人设)仅保存在本机,不上传任何服务器
- 本项目按"现状"提供,作者不对使用不当造成的任何后果承担责任
Copyright (C) 2026 Ghostknife11
Licensed under the GNU General Public License v3.0.
本项目因核心依赖 dglab-kit(GPL-3.0,import 链接)与 vendored 中继
dglab-websocket-server(GPL-3.0,含本地补丁)构成组合程序,
整体按 GPL-3.0 发布。完整许可证文本见 LICENSE。
第三方组件、vendored 修改说明(GPL-3.0 第5条)与合规要点详见 THIRD_PARTY_NOTICES.md。 二次开发者的衍生作品同样受 GPL-3.0 约束;分发时须保留版权声明与对应完整源码。