DSH-galgame-galbookv1.2.4

chet-li/dsh-galgame-galbook

工作流 MIT 最近更新 2026-11-07
1Stars
0Forks
0待解决 Issue
安装命令 dsh plugin --profile web add github:chet-li/dsh-galgame-galbook#a65cf1b0eecf7f52bea846630c99316c8657e0e1

介绍

galbook:让 agent 像人一样玩 galgame 的库——逐句读、自己选并写理由、存档回溯、多周目解锁;HTTP / MCP / CLI 四种接法,纯标准库,带网页观战与剧本导入

标签

ai-agent deepseek-harness dsh dsh-plugin galgame kag llm mcp python qlie renpy text-adventure

概述

galbook

让 agent 像人一样玩 galgame / 视觉小说:一句一句读剧情,遇到选项自己选并写理由,存档、读档、回到上个选项、多周目解锁隐藏线。很多 agent 可以同时玩同一本书,各自的进度互不干扰。

English · 纯 Python 标准库,没有依赖 · MIT

怎么接(任选一种)

方式适合怎么起
纯文本 HTTP任何能发请求的 agent,最省 tokenpython3 -m galbook serve --books books,然后 GET /play/t?agent=名字 读,?do=next / ?do=choose&i=2 推进
JSON API想要结构化字段同上,/play/?format=json
MCPClaude Desktop、Codex 类、DeepSeek Harnessstdio:python3 -m galbook mcp;也支持 Streamable HTTP
命令行只有 shell 的 agentpython3 -m galbook do next n=20,输出最后一行就是下一步该跑的命令

完整字段和协议在 docs/AGENTS.md;OpenAI function-calling 的工具定义用 python3 -m galbook tools 导出。

用 DeepSeek Harness(dsh)? 插件面板 → 安装 → 来源填 github:CHET-LI/DSH-galgame-galbook,重启即可(包在根目录声明了组合包,多出 15 个 galbook_* 工具)。连不上 GitHub 就用本地目录或 galbook-1.2.4.tgz,见 dsh-plugin。
要离线包? Release 有 galbook-1.2.3.zip(源码)、galbook-1.2.3.tar.gz(Linux 免解压乱码)、galbook-1.2.4.tgz(npm 包)。
  • 带网页:看每个 agent 玩到哪、选了什么、为什么选;人也能自己玩
  • 导入器:QLIE、吉里吉里 KAG / TyranoScript、Ren'Py、NScripter、自带的 .gal 手写格式;另外能吃 VNTextPatch 等工具导出的文本(20 多种引擎,只能线性读),还能写插件接新引擎
  • 另外附:Anthropic Skill 格式的技能文件、dsh 适配示例(integrations/deepseek-harness)、verify_claims.py 逐条自检脚本
⚠️ 版权:本仓库只有代码和自己写的演示故事。游戏的剧本、图片、音乐归原作者/厂商所有。请只导入你自己合法拥有的游戏,导出的剧本和图片不要上传或分发。galbook 不带任何解包/解密工具,也不会运行游戏的 exe。

30 秒试玩

git clone <本仓库> galbook && cd galbook
python3 -m galbook demo --books books          # 装两本自带演示:fog-harbor(中文)、fog-harbor-en(英文)
python3 -m galbook serve --books books          # http://127.0.0.1:8765/play/

让一个 agent 去玩——它只需要会发 HTTP GET:

GET http://127.0.0.1:8765/play/t                                   ← 玩法说明(给 agent 看)
GET http://127.0.0.1:8765/play/t/fog-harbor/alice?do=new
GET http://127.0.0.1:8765/play/t/fog-harbor/alice?do=next
GET http://127.0.0.1:8765/play/t/fog-harbor/alice?do=choose&i=2&reason=她看起来很累

返回是纯文本:

【序章】第 4 句
你是来送最后一班信件的邮差。信封上写着:「致灯塔守夜人·汐」。
汐:「这么大的雾还送信?……你胆子不小。」
—— 选项:你会怎么做? ——
 1. 「我陪你去。」
 2. 「我在这儿帮你看着灯。」
 3. 「信送到了,我该走了。」
选:/play/t/fog-harbor/alice?do=choose&i=编号&reason=一句理由   (已自动存档 auto)

一群不同性格的 agent 一起玩(不用模型也能跑,用 --decider llm 接任何 OpenAI 兼容接口):

python3 examples/party.py --book fog-harbor

多元选项(给不同的 agent、不同的玩法)

选项怎么开作用
H 场景new&h=fold(默认)/ full / skip折叠成一行提示 / 全文 / 完全跳过
铁人模式new&mode=ironman这一局不能存档、读档、回溯:选了就认
提示new&hints=1选项后标〔新内容〕〔选过〕,方便刷全结局;默认关(更像第一次玩)
语言new&lang=en 或任意请求加 &lang=en文本接口用英文
人设do=persona&text=胆小,讨厌冒险每次遇到选项都会提醒 agent 自己的人设
随机choose&i=random掷骰子(做对照组、压测)
收集do=gallery结局 / 路线 / CG / 已读进度
像不像人do=profile选前读了几句、理由率、思考时间、是不是总选第一个
跳过已读next&skip=1二周目快进到没读过的地方
图片next&img=1附上当前背景/立绘/CG 的地址,给多模态 agent

接到你的 agent

  • 任何能发 HTTP 的 agent:上面的文本接口。说明页 /play/t(英文 /play/t?lang=en)可以直接塞进 system prompt。
  • MCP(stdio)(Claude Desktop、Cursor、Cline、dsh 等):python3 -m galbook mcp --books books --data play-data --book fog-harbor --agent alice,配置见 examples/mcp_config.example.json
  • MCP(Streamable HTTP):serve 自带 POST /mcp?book=…&agent=…,一个服务给很多 agent,配合令牌用
  • DeepSeek Harness:python dsh-plugin/install.py 一条命令装好(自动找 profile、备份、填路径),细节和另外两种接法见 dsh-plugin 与 integrations/deepseek-harness
  • 技能:.agents/skills/galbook/SKILL.md,复制到 ~/.agents/skills/(dsh)或 .claude/skills/ 即可
  • OpenAI function calling:python3 -m galbook tools --format openai > tools.json,执行时调 galbook.tools.call_tool(...)
  • 命令行:GALBOOK_BOOKS=books GALBOOK_DATA=play-data GALBOOK_BOOK=fog-harbor GALBOOK_AGENT=alice python3 -m galbook do next n=20(输出最后一行就是下一步命令)

详见 docs/AGENTS.md。

公开部署:默认只听 127.0.0.1。要给别人用请开令牌:--token 共享口令,或 --tokens tokens.json({"口令": "alice", "管理员口令": "*"},每个口令只能用自己的名字玩)。

导入你自己的游戏

python3 -m galbook detect 解包目录                      # 认引擎、告诉你缺什么
python3 -m galbook build --src 解包目录 --out books/我的书/story --assets-dir books/我的书
引擎支持程度
QLIE(.s)分支 ✅(选项、路线、通关解锁)
吉里吉里 KAG / TyranoScript(.ks)分支 ✅
Ren'Py(.rpy)分支 ✅(.rpyc 先用 unrpyc 反编译)
NScripter / ONScripter(0.txt / nscript.dat)分支 ✅
.gal(自带的手写格式)分支 ✅,自己写故事或手工移植
AdvHD、Artemis、BGI、CatSystem2、Majiro、RealLive、Softpal、SystemNNN、YU-RIS、Silky's 等线性 📖:先用 VNTextPatch 抽成 JSON 再 --engine textdump(格式按 VNTextPatch 源码实现,还没拿真游戏的导出验证过)
其他写插件(几十行),见 docs/IMPORTERS.md

封包(.xp3、.pack、.rpa…)要先用 GARbro 等工具自己解开。各引擎的细节和已知限制见 docs/ENGINES.md。

文档

测试

python3 -m unittest discover -s tests -v

在 Python 3.9 / 3.12 / 3.13(Linux)和 Python 3.12(小主机)/ 3.14(Windows)上跑过同一套用例。

许可

代码 MIT(见 LICENSE)。galbook/demo/ 里的演示故事和图是 CC0。

星级评价

1.5 按 GitHub Stars 换算的社区热度,非用户打分
Stars1
Forks0
待解决 Issue0
最近更新2026-11-07

基本信息

作者CHET-LI
版本1.2.4
开源许可MIT
默认分支main
入库时间2026-11-07

插件信息来自公开 GitHub 仓库与 SkillHub,版权归原作者所有;安装前请自行审查仓库代码。