Skip to content

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Detective Game

一个可以直接安装到 Coding Agent 中游玩的对话式侦探游戏 Skill。

你将作为主侦探,用自然语言审问案件相关人物、核对证词、出示线索,并在证据充分后提交最终推理。无需记忆命令、选择编号菜单,也不需要操作地图或物品栏。

它不是即兴故事

游戏由 Coding Agent 与确定性案件引擎共同运行:

  • Coding Agent 理解玩家的自然语言,并负责人物对白与叙事表现。
  • 案件引擎保存固定真相,裁决证词、线索、人物状态和最终结论。
  • 角色可以说谎、隐瞒或拒绝回答,但不能编造案件设定之外的事实。
  • 调查结果只会在满足预设条件后出现,猜中答案不等于完成调查。

因此,同一个案件始终拥有可验证的真相和完整证据链,同时保留自由对话带来的审讯体验。

收录案件

《雾港钟楼》

台风封港前夜,雾港航海博物馆馆长沈衡死在海图室。他的妻子、文物修复师林岚被发现绑在椅子上,并声称一名蒙面人杀害了沈衡、带走一册珍贵的潮汐日志。

封港后没有外人能够离岛。三名证词互相冲突的相关人物将依次接受审问,而每个人似乎都隐瞒了某些事情。

  • 单局约 20–30 分钟
  • 3 名受审人物与 1 名调查助手
  • 自由文字审问、出示证据与选择性复审
  • 话题示例辅助自由问法理解,人物语域规则保持回答风格
  • 确定性的线索触发、结论判定和案件复盘
  • 支持中断后从当前工作区继续游戏

《无声返场》

岚津广播剧场纪念直播中,听众在 21:32 听见导演顾临舟从上锁的拟音室说出返场提示, 走廊里的人也看见了玻璃后的剪影;十五分钟后,工作人员却发现他早已死在旧磁带架旁。 一盘涉及剧场往事的母带同时失踪。

  • 单局约 30–45 分钟
  • 5 名受审人物与 1 名调查助手
  • 围绕声音、剪影和门锁构成的假死亡时间诡计
  • 独立的母带藏匿事件与身份嫁祸,形成多层误导和反转

安装

最简单的方式是把仓库地址交给支持 Agent Skills 的 Coding Agent:

请安装 https://github.com/zation/detective-game 中的 detective-game skill,然后开始一个侦探游戏。

仓库采用通用的 skills/<name>/SKILL.md 布局,安装器可以直接发现 detective-game

仍然需要:

  • 支持本地 Skill 和命令执行的 Coding Agent
  • Python 3.10 或更高版本

如果 Coding Agent 没有 Skill 安装能力,可以手动克隆:

git clone https://github.com/zation/detective-game.git

再将仓库中的 skills/detective-game 整个目录复制到 Coding Agent 的 Skill 目录:

<skills-directory>/
└── detective-game/
    ├── SKILL.md
    ├── scripts/
    ├── references/
    └── cases/

开始游戏

安装后,在任意工作区用自然语言提出请求即可,例如:

开始一个侦探游戏

Skill 会先发现已安装的案件。只有一个案件时会直接开始;安装多个案件后,可以用案件标题 或稳定 ID 选择,各案件的存档彼此隔离。

之后直接像侦探一样交谈:

你最后一次见到沈衡是什么时候?
这份记录和你刚才说的时间对不上,你怎么解释?
让助手整理一下目前的线索和矛盾。

你可以随时结束当前审问、重新传唤已经见过的人,或在准备好后提交完整结论。内部动作、话题和证据编号不会作为菜单展示。

存档

游戏会按当前工作区自动保存进度。默认存档位于系统临时目录下:

<system-temp>/detective-game/<workspace-hash>/<case-id>/<session>.json

系统清理临时目录后,存档可能消失。可以通过 DETECTIVE_GAME_STATE_DIR 环境变量指定持久化目录。

诊断日志

游戏会在存档旁保存本地诊断日志,包括版本、结构化动作、状态迁移、错误以及玩家与角色的 实际对话。日志不会自动上传;只有玩家明确要求导出时才会生成可分享的 ZIP。

  • “导出本局诊断日志”生成包含对话的完整诊断包,适合提交试玩问题。
  • “导出本局隐私诊断日志”剔除玩家原话和角色回复,只保留版本与结构化事件。
  • 完整包可能包含玩家在游戏中输入的个人信息,分享前应先检查内容。
  • 玩家可以要求删除本局诊断日志;这不会删除游戏存档。

诊断包记录游戏版本、Git commit 与工作树状态(可取得时)、构建内容摘要、日志 schema、 存档格式、案件 schema、Python 和操作系统版本,方便开发者确认问题出现在哪一个构建和 运行环境。

剧透与本地运行边界

正常游玩时,Skill 会阻止对案件文件、隐藏规则和未发现线索的直接读取请求。案件仍作为本地资源随 Skill 安装,因此拥有本地文件读取权限的玩家始终可以主动查看它们;本项目不把本地运行宣传为无法作弊。

建议在第一次通关前不要浏览 cases/ 目录。

创作案件

作者模式会暴露案件真相和解答。创建新案件时,先生成一个已经通过格式与可结案校验的最小 骨架:

python3 skills/detective-game/scripts/create_case.py my-case --title "案件标题"

脚本会创建 cases/my-case/,且不会覆盖同名目录。模板包含一名示例证人、八条占位线索 和一条完整结案路径;它用于承载原创内容,不代表完成的案件。字段说明与迭代校验方法见 case-format.md

许可

本项目以 PolyForm Noncommercial License 1.0.0 提供:

  • 非商业用途可以按许可证使用、修改和分发,但必须保留许可证及 署名声明
  • 商业用途需要事先获得 Zation 的单独书面许可;请通过 GitHub 联系。
  • 这是 source-available(源码可见)许可,不是 OSI 定义的开源许可证。
  • 随包提供的 PyYAML 保留其独立的 MIT 许可证

项目结构

skills/detective-game/
├── SKILL.md                 # 游戏协调规则
├── scripts/                 # 确定性案件引擎
├── references/              # 玩法与案件格式说明
├── templates/case-v0.1/     # 可验证的作者起始模板
└── cases/                   # 可发现的独立案件包
    ├── fog-harbor/          # 《雾港钟楼》
    └── silent-encore/       # 《无声返场》

开发设计、版本记录和后续计划位于 docs/

About

一个可以直接安装到 Coding Agent 中游玩的对话式侦探游戏 Skill。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages