EU4 Mod Workbench:在 DSH 里做欧陆风云 4 Mod 的查证、校验与可视化编辑

前言

做 EU4 Mod 时,常见痛点是:脚本 effect、trigger 容易混用作用域;事件 ID 写成裸数字会导致游戏闪退;本地化键、BOM、namespace 等细节一旦漏掉,游戏里只会静默失败。单靠模型记忆猜语法,很难与游戏文件和索引对齐。

EU4 Mod Workbench 是 DeepSeek Harness(DSH)上的客户端插件,配套可选 Agent 预设,把文档查证、脚本校验、地图与事件/任务视图、以及面向 AI 的编辑指令生成收进侧栏工作台。它不替你在后台启动外部程序,也不直接覆盖 Mod 文件;导出与写入路径显式且拒绝 .. 逃逸。下文介绍其定位、能力、安装与典型用法。

这是什么

插件仓库:shihuadexiaoyugan/eu4-mod-workbench,维护者 shihuadexiaoyugan,分类为 DSH 客户端插件。package.json 中版本为 0.3.0,许可证 MIT,要求 Node >= 20。

一句话定位:基于 DSH 的 EU4 Mod 可视化开发工作台——Host 工具 + 仅回环 HTTP API + 浏览器 React 侧栏;内置约 1901 条脚本文档与 28 个作用域索引(lib/docs-data.json),并声明不凭记忆生成 EU4 语法,query_script_doc 只返回随包索引或游戏文件中的真实条目。

配套的 Agent 预设目录 eu4-mod-preset/ 为独立 bundle(cordis.patch.yml 为现代安装入口,prompt.md 为 Persona 与纪律),可与插件分装。

它不做什么(边界)

安装前应理解 README 中的明确边界:

  • 不画像素地图;地图为简化省份网格,点击返回真实省份 ID。
  • 不在后台启动外部程序;Clausewitz MCP、Eu4-Mod-Editing-Tool 等桥接需用户点击探测/启动。
  • UI 不再直接写任何 .txt;原 /api/file/save、/api/missions/save 返回 410。编辑流程改为生成 AI 指令,由 Agent 的编辑工具真正落盘,且 Prompt 要求写入前后各跑 validate_script。

核心功能

Host 工具(Agent 可调用)

README 列出的主要工具包括:

工具 用途
query_script_doc trigger/effect/scope/modifier 签名与作用域
find_definition 定义位置与引用位置
search_script_docs 模糊检索候选名称
validate_script 作用域、trigger/effect 混用、localisation
check_loc_keys 提取并检查 localisation 键
eu4_map_query 省份/核心省份查询(ownerTag、coresOnly)
eu4_batch_history 生成 history 片段与省份 ID 列表
eu4_mission_export 任务节点图 → missions 脚本(写入前校验)
eu4_event_graph 事件因果图,缺失引用标 missing: true
query_events_by_category 按 all \| regular \| special 查询;activeTagOnly 用面板当前 Tag
eu4_probe_tools 外部工具状态
eu4_workspace_status 工作区与索引状态(含 activeTag)

另有 eu4_pending_edit(clear=true 读取并清除待办编辑),与面板「保存为待办」联动。

侧栏面板与 Tag 全局联动

顶部「国家 Tag」维护全局 activeTag,地图、事件树、任务树联动过滤(按 1444 开局省份归属等规则);activeTag 持久化到工作区 JSON(POST /api/tag),只影响渲染,不改游戏/Mod 文件。

事件/任务编辑:表单填完后点「生成 AI 指令」→ POST /api/ai/build 拼出带【文件路径】【目标定位】【修改内容】【校验要求】的 Prompt;可复制到对话或写入 workspace.json 的 pendingEdit。

其他 UI 能力(均以 README 为准):可搜索事件下拉(禁止裸数字事件 ID)、自定义词典补词、国家修正 add_country_modifier 的年天换算与现场建修正、事件本地化契约(zz_eu4_workbench_l_simp_chinese.yml、BOM、namespace 校验)、条件构建器里 owns/controls 与 ProvincePicker 等。

安装与启用

从 GitHub 安装插件 bundle

在 DSH 的 plugin_manager 中选择 install_bundle,target 填(把 <用户名> 换成仓库所属账号):

github:<用户名>/eu4-mod-workbench

本仓库已提交 index.js、client.js、lib/*.js,安装时不需要构建。仓库说明中也提到可将 clone 后的目录绝对路径作为 target;若你使用本地路径安装,请自行承担源码审阅责任。

插件 bundle 的 patch 只插入一个 Host 行 eu4-mod-workbench。不要重复挂载 workbench,否则会产生重复工具与路由;index.ts 内用全局活动标记防重。

预设与其它 bundle

  • 预设 bundle 插入 preset-eu4-mod,勿与 workbench 重复挂载。
  • MCP 适配器 @auggieteo/dsh-mcp-adapter 为 Host 级,安装一次即可,不应被预设再次挂载。

配置项

插件 Config 支持(摘自 README):

键 说明
eu4Root EU4 游戏根目录;留空自动探测 Steam/环境变量
modDir 用户 Mod 目录
statePath 工作区 JSON;默认 DSH_HOME/eu4-mod-workbench/workspace.json
clausewitzMcpUrl clausewitz-mcp Streamable HTTP 端点
clausewitzMcpCommand 可执行名或路径(默认 clausewitz-mcp)
eu4ModEditingToolPath Eu4-Mod-Editing-Tool 路径
emtPath EMT 路径
paradoxCodePath ParadoxCode 路径
maxIndexFiles 索引上限,默认 30000

本地开发修改 TypeScript 后,用 node scripts/build.mjs 重新生成运行文件;部分测试脚本需要本机安装 EU4(默认 Steam 路径,可用环境变量 EU4_ROOT 覆盖)。

典型用法

1. 装插件并指向 Mod 工作区

完成 install_bundle 后,在插件配置中设置 modDir(及必要时 eu4Root)。用 eu4_workspace_status 或侧栏查看索引与 activeTag 是否正常。

2. 写脚本前先查证、写完再校验

在对话中让 Agent 调用:

  • search_script_docs / query_script_doc 查 trigger、effect 名称与作用域;
  • validate_script 检查作用域混用与本地化引用;
  • check_loc_keys 对照 yml 键是否齐全。

这与插件「不凭记忆生成语法」的设计一致。

3. 在面板改事件/任务,把指令交给 Agent 落盘

  1. 在侧栏选全局 Tag,按需在地图/事件/任务视图过滤。
  2. 用表单编辑事件或任务,使用事件选择器绑定带点的事件 ID(如 flavor_boh.1),避免裸数字。
  3. 点「生成 AI 指令」或「保存为待办」,再让 Agent 执行 eu4_pending_edit 或按 Prompt 要求 read → 写入 → 再次 validate_script,并补齐 localisation。

4. 地图与 history 片段

需要省份 ID 或批量 history 时,可用 eu4_map_query、eu4_batch_history;面板省份选择器支持中文名、英文名与 ID 检索。

适用场景与注意

适合谁:在本机用 DSH 做 EU4 Mod、希望脚本校验与文档索引跟游戏/Mod 文件对齐,并愿意通过 Agent 工具链完成最终写文件的 Mod 作者。

权限与安全:插件以当前 DSH 进程权限运行,可读写你配置的 modDir、statePath 及探测到的 EU4 目录。安装前请阅读仓库源码与 MIT 许可证,确认路径与外部工具调用符合你的环境策略。

生态说明:DSH 奉行「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护的客户端插件,非官方应用商店条目。

结尾

EU4 Mod Workbench 把查证、校验、可视化浏览和结构化 AI 编辑指令收到 DSH 侧栏与 Host 工具里,并划清「面板不直接写 txt、Agent 负责落盘与再校验」的边界。需要目录信息与源码时,可访问插件目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/shihuadexiaoyugan/eu4-mod-workbench
  • GitHub:https://github.com/shihuadexiaoyugan/eu4-mod-workbench
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜