前言¶
在 DeepSeek Harness(DSH)里同时挂多个 agent、换 provider、换 system prompt 并不难,难的是把「谁更像人、谁在装」变成可对照的过程:同一桌、同一批问题、不同模型配置,最后还能留下完整记录供事后 diff。评测流水线偏重分数,日常调试又往往只有零散对话。dsh-turing-table(图灵圆桌)把这件事做成一局社交推理游戏:若干座位由不同模型配置的 agent 扮演,你靠提问与交叉印证找出 AI 座位,每局导出逐席位对话 JSONL 与判定记录。维护者为 dingchenhui0618-arch,在社区目录中归类为趣味换装;仓库当前星标为 0,许可证 MIT(0.1.0)。
下面介绍它是什么、怎么装、一局怎么跑,以及导出与可复现性要注意什么。
这是什么¶
图灵圆桌是给 DSH 的社交推理游戏插件,不是模型评测基准。一张桌上有 N 个座位,其中若干由不同模型配置的 agent 扮演;你要在身份信息未揭晓前,通过向全桌或单个座位提问,并对比同一事实在不同座位上的说法,判断「这是 AI」或「这是人」。每局结束可导出逐席位对话 JSONL与判定记录;同一 seed 与同一份操作脚本可以复现牌桌逻辑、整形与时间戳;真实 LLM 的原文仍可能因调用而不同,记录里用 raw 与 text 分开保存。
- 目录页:https://www.skillhub.cn/plugins/dingchenhui0618-arch/dsh-turing-table
- 源码:https://github.com/dingchenhui0618-arch/dsh-turing-table
一局怎么玩¶
座位与身份¶
- 座位数由配置项
seatCount控制(默认 6);humanSeats(默认 1)为人类座位数,其余为 AI。开局由seed随机分配谁坐哪一席;人类座位中有一个是你(提问者player),你不能判定自己所在的座位。 - 在判定之前,host 的
/state对未判定座位不会暴露kind与modelConfig(均为null);判定之后才揭晓该座位实际使用的模型配置与伪装参数。
模型池与伪装¶
models 是座位模型池,不是固定座位表;seed 洗牌后把配置分给各 AI 座位。每项形如 { id, provider, model, temperature, system, style, voice, disguise }。provider / model 为 null 时表示跟随当前会话模型;填上则 host 用该座位自己的路由发起调用。池子不小于 AI 座位数时,每个 AI 座位可拿到不同配置;另有 6 个内置人格作兜底。
disguise 支持预设 low / medium / high,也可逐项覆盖,主要旋钮包括:
| 旋钮 | 作用 |
|---|---|
verbosity |
回答长度预算(terse / normal / chatty) |
colloquial |
口语化语气 |
proactive |
是否主动反问其他座位 |
pressure |
被同一事实第二次问同一座位时的策略 |
pressure 四种策略是交叉印证的核心:hold 坚持原说法;deflect 换说法并转移话题(易自相矛盾);concede 承认可能记错;escalate 反问提问者或其他座位。
一轮流程¶
- 你提问:
to: 'table'时全桌按座位号依次回答,或点名某一座位。 - AI 回答经该座位的伪装整形;记录中保留
raw(原文)与text(说出口的话)。 - 上一轮若有座位未答完,不能开新一轮(
unanswered)。 - 随时可对某座位下判定;判定会记录发生在第几轮(开局盲猜为第 0 轮,收局后也可补判)。
- 全部可判定座位判完(
all-judged)、你主动收局(player-closed)或达到maxRounds(max-rounds)时结束。
单人默认配置的说明:humanSeats: 1 时,除你以外全是 AI,「谁是 AI」在已知信息下等于全选。要有猜的成分,需要至少 2 个人类座位——多人同桌,或由外部通过 host 的 POST /say 或脚本里的 say 步骤驱动人类座位。仓库中 examples/sample-spec.json 是 6 座 2 人的样例(4 AI、1 个脚本喂台词的人类座位、再加你自己)。
安装与启用¶
安装命令以 README 为准:
dsh plugin --profile <你的 profile> add github:dingchenhui0618-arch/dsh-turing-table
装好后重启 DSH,对话视图会出现「圆桌」Tab。lib/ 为入库的预构建产物,安装时无需跑构建,且 dependencies 与 devDependencies 均为空。
插件在当前 DSH 进程权限下运行;安装前请自行查看源码与 MIT 许可证。社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
配置示例¶
{
"seed": "my-round-0001",
"seatCount": 6,
"humanSeats": 1,
"maxRounds": 8,
"exportDir": "<默认 $DSH_HOME/turing-table>",
"models": [
{ "id": "a", "provider": "deepseek", "model": "<model-id>", "temperature": 0.3,
"system": "你话少、只说结论。", "style": "书面", "voice": "dry",
"disguise": { "level": "low" } },
{ "id": "b", "provider": "deepseek", "model": "<another-model-id>", "temperature": 0.9,
"system": "你爱闲聊。", "style": "口语化、话多", "voice": "warm",
"disguise": { "level": "high", "pressure": "hold" } }
]
}
未给 seed 时用时间戳生成,并显示在面板上;对局仍会被完整记录。默认导出目录为 $DSH_HOME/turing-table/,一般在点击「导出这一局」时写入。
典型用法:CLI 与样例¶
仓库提供无依赖脚本,便于本地复现导出逻辑:
node scripts/make-sample.mjs # 重新生成 examples/(逐字节稳定)
node scripts/export.mjs examples/sample-spec.json # 跑一遍 spec,导出 JSONL + 判定记录
node scripts/export.mjs --replay examples/sample-round.jsonl
node scripts/export.mjs --verify examples/sample-round.jsonl --verdicts examples/sample-verdicts.json
export.mjs 也可接受 table.exportRound() 产出的对局记录({kind:'turing-table-round', spec, events, verdicts})。导出前会先自检(JSONL 可解析、字段齐全、真值与判定一致、分数可对上),自检失败则不写入任何字节。
一局导出两个文件:逐席位对话 JSONL(每行一条自包含消息,LF 结尾、无 BOM)与判定记录(含 truth、seats[]、verdicts[]、score、endReason 等)。examples/ 下的样例由 node scripts/make-sample.mjs 生成,非手写。
可复现性¶
座位分配、模型分配、伪装参数、离线回答、整形与时间戳均来自 src/rng.js 的种子化随机与逻辑时钟;引擎内不使用 Math.random(),也不读真实时间。createTable(spec) 用同一份 spec 重建相同牌桌;runSpec(spec) 用同一 seed 与同一操作脚本可跑出逐字节相同的 JSONL 与判定记录(在使用离线叙述者或罐头回答时,整局可逐字节复现)。
真实模型吐出的文本不可复现——同一 prompt 两次调用本就可能不同。没有 llm 服务或缺路由时会降级到离线叙述者,消息标 degraded: true;离线模式仅照内置话题词表(伞、值班、咖啡、钥匙、午饭、通勤、电梯、宠物等)记忆事实,自由措辞的问题在离线模式下难以做交叉印证,需要真实模型。
适用场景与限制¶
适合谁
- 想在同一张桌上对比不同 provider / model / system / 说话风格与伪装强度,并把过程落成可 diff 的 JSONL。
- 需要可复现的牌桌逻辑与操作脚本,换配置后重跑同一批 seed 做对照。
- 把「社交推理找 AI」当调试或演示用的游戏,而不是单局
score当模型能力证据。
README 中明确写明的限制
- 维护者说明:未在真实 DSH 运行时完整验证;host 路由与 llm 调用对着 stub 测,client 在
node:vm与假 React 下加载,未在真实 Web GUI 里加载过。 - 不是评测基准:
score只反映该局玩家判断,样本量为一局。 - 不碰本机其它配置:测试用临时目录;默认只在导出时写
exportDir。
开发侧:node scripts/build.mjs 将 src/ 构建到 lib/;node --test 为 98 个用例。改 src/ 后须重新 build。
结尾¶
dsh-turing-table 把多模型 agent 放进同一桌社交推理场景,核心价值在对局记录:提问、交叉印证、判定与导出一条龙,同一 seed 与脚本可复现引擎侧行为。若你要安装或改配置,以 GitHub README 为准。
- 社区目录:https://www.skillhub.cn/plugins/dingchenhui0618-arch/dsh-turing-table
- GitHub:https://github.com/dingchenhui0618-arch/dsh-turing-table