Back to home

gqy20

dsh-showrunner

Agent show/game engine for DeepSeek Harness: scenario packs, machine-adjudicated matches (archaeology MVP), replayable event logs

Stars
0
Language
TypeScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-showrunner

Agent 节目与游戏引擎:DeepSeek Harness 负责 Agent 运行时,Showrunner 负责权威比赛状态,Scenario Pack 定义每种节目。

首个节目《消失古城的最后七天》:三名 Agent 考古队(领队/铭文学者/环境考古员)带着各自的私有提示,在有限挖掘点与检测预算下发掘一座虚构遗址,提交带证据的历史假说,由机器揭晓真相。4 个 Agent(1 导播 + 3 玩家)可全自动打完一局,web 界面有地图/证据板/揭晓的游戏卡片。

安装(DeepSeek Harness 插件)

dsh plugin --profile web add github:gqy20/dsh-showrunner
dsh --profile web --dump-config | grep -A2 showrunner   # 应出现插件行
dsh web                                                  # 对 agent 说「开始一局考古比赛」

要求:已配置任意 LLM provider(DeepSeek 官方或 pi-ai 路由均可)。发布细节见 docs/engineering/01-release.md

结构

src/core/     纯 TS 状态机(零 cordis 依赖,可独立单测)
  types.ts      Match / Action / Scenario / GameEvent
  reduce.ts     applyAction:唯一写入口;说话零效力
  projection.ts publicView / playerView:防泄漏的唯一防线
  oracle.ts     假说 vs 隐藏历史的机器对照
  schema.ts     scenario YAML 装载与校验
src/host/     cordis 适配层(待实现,见 src/host/README.md)
scenarios/    Scenario Pack(数据不是代码)
tests/        core 单测
docs/         选题库、平台调研、可行性评审

当前状态

  • core:考古状态机(survey/dig/test/hypothesize/advance)、逐层挖掘、资源扣减、防泄漏投影、oracle 计分
  • scenario:archaeology-lost-city(3 角色、4 区域 × 3 地层、12 证据、2 假说线、隐藏历史)
  • host:玩家 subagent(spawn provider、persona+私有提示、session 身份绑定、advance 时观察分发)+ game_export
  • 端到端验证:4 agent(1 导播 + 3 玩家)完整打完一局(glm-5.3),终局与 game_export 数据零出入
  • 引擎提示:阶段推进时机由状态机判定(LLM 导播会幻觉终局——三局对比见 docs/README 或 session 记录)
  • 自动推进:phaseComplete 级联 advance(core 纯函数,13 测试),一局全程无需导播决策
  • 持久化:~/.dsh/showrunner-match.json 单文件覆写;重启恢复 Match/玩家 childId/导播(第一个 root 接管并唤醒冷恢复玩家)
  • client:GameCard 工具卡(tool.call.toolview 注册 7 个游戏工具,地图网格/证据板/资源条/揭晓区),web 端截图验证渲染
  • 传话第 0 期内容试验(独立小脚本,不经本引擎)
  • client:composer 挂资源条 / conversation.view 独立游戏 tab(按需)

测试与构建:npx vitest run(13 用例)、npx tsc --noEmit../deepseek-harness/node_modules/.bin/tsdown(host lib/ + 浏览器 lib/client.js)。

开发期接入(已持久化到 ~/.dsh/profiles/{web,headless}/cordis.patch.yml,含 GLM-5.3 玩家模型,免 flag):

cd ../deepseek-harness
pnpm dsh web          # 浏览器 http://127.0.0.1:3080,对 agent 说"开始一局考古比赛"
pnpm dsh --profile headless "<导播 prompt>"   # 命令行跑一局

使用

pnpm install
pnpm test        # vitest,13 个用例
npx tsc --noEmit # 类型检查

文档

docs/README.md(文档地图):research/ 产品调研与评审 · product/ 选题与互动策略 · topics/ 19 个选题(按优先级编号)· engineering/ 发布与工程流程。