开源 AI TRPG 项目实测报告

实测环境:Windows 11 · Node v26.2.0 · Python 3.11 · RTX 3080 10GB · 无 Ollama/无 Docker/无 PostgreSQL(后补齐便携版) 沙箱限制备注:schannel TLS 不可用(git 用 openssl 后端解决);用户目录不可写(npm 缓存指到工作区);子进程管道受限(npm 安装脚本用 --ignore-scripts 规避;uv 替代 pip)。 最终状态:7 个候选项目中 5 个完整运行、2 个静态分析。当前本机同时运行:SillyTavern(:8000)、KoboldCpp(:5002, GPU+Qwen2.5-3B)、5e-mcp(:8931)、ai-murder-mystery(:10000)、ChatRPG(:5080)、PostgreSQL 16.8(:5432)。

总览

项目 类型 实测结果
SillyTavern LLM 角色扮演/跑团前端 ✅ 完整运行(v1.18.0, :8000)
koboldcpp (KoboldCpp) 本地 LLM 推理后端 ✅ 完整运行(v1.118.1, :5002,CUDA)
5e-mcp D&D 5e 规则引擎(MCP Server) ✅ 完整运行并通过 42 个 DM 工具实测
ai-murder-mystery 多智能体 AI 剧本杀 ✅ 后端 + 三层管线全本地跑通(:10000);前端受沙箱 spawn 限制
ChatRPG 多智能体 ReAct 跑团引擎(.NET/Blazor) ✅ 完整运行(:5080,28 个 EF 迁移已应用,LLM 端点指向本地 KoboldCpp)
loreweaver 自托管 AI GM/Keeper(D&D 5e+CoC 7e) ✅ 完整运行(doctor 全绿、CLI 掷骰/中文技能检定、WS 协议真实 KP 回合端到端)
diceframe 中文自部署 AI 跑团引擎 ✅ 后端完整运行(:18000,22 规则+14 世界+74 世界书;前端构建受沙箱 spawn 限制)
Z.R.I.C DM 在环文字冒险推演引擎 ✅ 完整运行(:8010,本地 7B 结构化推演 3.7 秒,分支+副作用+触发器验证)
calypso DM 辅助 Discord Bot(学术) 📋 静态分析(需 Discord bot token)
risuai Svelte 角色扮演前端(Tauri) 📋 静态分析(依赖极重)

1. SillyTavern ✅ 运行成功

2. 5e-mcp ✅ 运行成功 + 全流程实测

3. ai-murder-mystery(AI 剧本杀)⏳ 后端已跑通,等本地模型联调

4. ChatRPG ✅ 完整运行(本报告最硬核的部分)

5. calypso 📋 静态分析

6. risuai 📋 静态分析

7. 本地模型 + 端到端联调 ✅ 全部跑通

7.1 KoboldCpp + Qwen2.5-3B(全本地 AI DM 核心)

7.2 ai-murder-mystery 三层管线 × 本地模型 ✅

7.3 SillyTavern ↔ KoboldCpp 对接

9. GitHub 全量盘点 + 追加实测(loreweaver / diceframe)

9.0 方法补课:先盘点、后实测

按「先做详尽 GitHub 探索」的原则,用 Search API 跑了 53 组关键词/主题查询 → 1120 个唯一仓库,按 14 类归类去噪后产出 docs/github-inventory.md(GM 引擎 186 / 剧本杀·狼人杀 62 / MCP 81 / 引擎集成 70 / 前端 17 / 后端 10 / 文本冒险 84 / 多智能体模拟 30 / 学术 11 / 世界模拟 10 / 噪声 151 等)。从中选出三个此前遗漏的高价值项目实测。

9.1 loreweaver(1A7432/loreweaver,MIT,35★)✅ 完整运行

9.2 diceframe(diceframe/diceframe,AGPL,15★)✅ 后端运行

9.3 其他盘点发现(未实装,记录备查)

10. 环境攻坚备忘(本机无管理员、沙箱受限下的通用解法)

问题 解法
git 克隆 schannel 凭证错误 git -c http.sslBackend=openssl clone ...
npm 缓存/日志写用户目录被拒 --cache D:\code\AITRPG\.npm-cache
npm install spawn EPERM(安装脚本) --ignore-scripts
CRA dev/build spawn EPERM 沙箱边界,前端改为本机跑;后端 API 已全量验证
python venv 无 pip(ensurepip 失败) uv 单二进制:uv pip install --python <venv>
get-pip.py 临时目录被拒 放弃 pip 引导,直接 uv
PowerShell 脚本内部下载失败(schannel) 用 node fetch 下载
GBK 控制台 emoji 崩溃 PYTHONIOENCODING=utf-8 PYTHONUTF8=1
MCP stdio 管道受限 Streamable HTTP transport wrapper
dotnet 首启写用户目录被拒 HOME/USERPROFILE/LOCALAPPDATA/DOTNET_CLI_HOME 重定向到工作区
dotnet/NuGet schannel TLS 失败(NU1301) Node 抓 .nupkg → 本地文件夹源 --source 迭代 restore(22 轮,共抓 ~250 个包)
NuGet 版本解析冲突/降级(NU1102/NU1605) pin-versions.txt 统一钉版本 + 清 obj/project.nuget.cache + 清全局包缓存
LangChain 0.17.1 无 IChatModel API 降级 0.16.0 家族(含 net8 资产与 IChatModel)
官方 OpenAI SDK 与 tryAGI.OpenAI 程序集同名冲突 PortraitGenerator 打桩禁用(可选功能)
IdentityModel 8.x 移除 IsNullOrEmpty 扩展 string.IsNullOrEmpty(x)
.NET Windows 默认 EventLog 日志崩溃 appsettings 禁用 EventLog provider
pg_ctl 创建受限令牌失败 直接 postgres.exe -D ... 后台运行
koboldcpp 自解压 DLL 被拦 按沙箱流程提权重跑一次(审批后解决)
未知二进制进程写 DLL 被拦 同上;node/python 等解释器写入不受限
PowerShell 发中文 JSON 乱码 [System.Text.Encoding]::UTF8.GetBytes($body)
日志 UTF-16 node 读不到 PowerShell Select-String 解析后输出 id 列表