/install junqi-dark-layout
军棋暗棋摆阵 V2
本技能采用 大模型生成阵型 + Python 严格校验 + Python 渲染图片 的流程。
目标不是让 Python 负责“想阵”,而是:
- 让大模型负责策略感、迷惑性、风格差异和具体摆阵
- 让 Python 负责硬规则裁判和图片输出
- 为避免代理误判主路径,仓库中不再保留 Python 自动摆阵脚本
核心原则
- 阵型优先由大模型生成,不由 Python 随机生成器主导。
- Python 只负责两件事:校验合法性、渲染图片。
- 任何未通过 Python 校验的阵型,一律禁止返回给用户。
- 如果第一次生成不合法,应根据校验错误让大模型重试,而不是硬着头皮输出。
工作流
第一步:大模型生成阵型
这是唯一推荐的主生成路径。不要再调用 Python 生成器代替大模型摆阵。
根据用户要求的风格(如稳健、激进、阴阵、均衡)直接生成一个完整 30 格布局数组。
要求:
- 使用 30 个位置表示棋盘
- 其中 5 个固定禁摆位必须写成
禁 - 其余 25 个位置填入实际棋子名称
- 输出应尽量为 JSON,不要输出松散自然语言
第二步:Python 校验
用 scripts/validate_layout.py 校验大模型输出的阵型。
如果校验失败:
- 不要返回给用户
- 把错误点反馈给大模型
- 让大模型在保持原风格目标的前提下修正后重试
第三步:Python 渲染图片
校验通过后,再用 scripts/render_layout.py 生成最终图片卡片。
推荐输出格式
优先让大模型按下面结构输出,且除了 JSON 之外不要附加解释性文本:
{
"style": "阴阵",
"focus": "迷惑",
"layout": ["连长", "师长", "排长", "团长", "司令", "炸弹", "禁", "工兵", "禁", "旅长", "连长", "工兵", "禁", "军长", "营长", "师长", "禁", "炸弹", "禁", "旅长", "地雷", "地雷", "团长", "营长", "排长", "工兵", "军旗", "连长", "排长", "地雷"],
"notes": ["左侧示弱", "中后场藏核心大子", "保留一个较活工兵"]
}
如果无法输出完整对象,至少要输出 layout 数组。
推荐字段约束:
style:字符串,可选,例如稳健/激进/阴阵/均衡focus:字符串,可选,例如均衡/保旗/中攻/侧攻/迷惑layout:长度必须为 30 的字符串数组notes:可选,0 到 3 条简短说明
标准 25 格棋盘模型
己方区域按 6 行 × 5 列表示,共 30 个位置,其中 25 个可摆棋,5 个固定禁摆位。
可摆位置:
- 第 1 排:第 1、2、3、4、5 列
- 第 2 排:第 1、3、5 列
- 第 3 排:第 1、2、4、5 列
- 第 4 排:第 1、3、5 列
- 第 5 排:第 1、2、3、4、5 列
- 第 6 排:第 1、2、3、4、5 列
固定禁摆位:
- 第 2 排第 2 列
- 第 2 排第 4 列
- 第 3 排第 3 列
- 第 4 排第 2 列
- 第 4 排第 4 列
大本营位置:
- 第 6 排第 2 列
- 第 6 排第 4 列
地雷合法位置:
- 第 5 排第 1、2、3、4、5 列
- 第 6 排第 1、3、5 列
棋子集合
除非用户明确要求其他变体,否则使用以下标准 25 子:
- 司令 ×1
- 军长 ×1
- 师长 ×2
- 旅长 ×2
- 团长 ×2
- 营长 ×2
- 连长 ×3
- 排长 ×3
- 工兵 ×3
- 炸弹 ×2
- 地雷 ×3
- 军旗 ×1
硬规则(必须由 Python 校验)
违反任意一条即为非法阵型:
- 布局长度必须为 30。
- 5 个固定禁摆位必须为
禁。 - 25 个合法格必须全部填满,不得留空。
- 军旗必须且只能放在大本营(第 6 排第 2 列或第 4 列)。 4.1 两个大本营必须且只能分别放:军旗、排长。因为大本营棋子不能动,排长是最小牺牲。
- 地雷只能放在后两排合法雷区。
- 地雷不得进入大本营。
- 炸弹不得出现在第一排。
- 每种棋子的数量必须完全正确。
- 重要的子(至少司令、军长、师长、旅长、团长、营长、工兵)不能被封死,尤其不能夹在地雷和大本营棋子之间。因为地雷不能动,大本营棋子也不能动;而工兵一旦被封死,后续排雷能力会被直接废掉。
- 由于另一个大本营固定放排长,所以不要再把“连长也可放大本营”当成可接受方案。此规则已废止,统一改为“军旗 + 排长”。
给大模型的生成要求
在生成阵型时,优先追求这些目标:
- 阵型风格明显,不要四种风格长得都差不多
- 阴阵要有一定迷惑感
- 激进要有更强前压感
- 稳健要更注重平衡与护旗
- 均衡要避免明显偏科
- 重要的子(包括工兵)要有行动空间,不能被地雷、大本营棋子或其他不能动/不应动的结构封死
- 两个大本营固定为“军旗 + 排长”,不要再把别的子塞进大本营
- 尤其避免把重要子摆在“地雷 + 大本营棋子”之间
- 工兵不能被当成后排死子随便锁住;一旦工兵被封死或兑光,后续排雷会非常被动,甚至无法取胜
- 允许有创意,但不要违反硬规则
失败处理
如果 validate_layout.py 返回不合法:
- 不要把非法阵型返回给用户
- 不要嘴上说“已修正”却不重新校验
- 应把错误信息喂回模型,要求重生成
推荐重试规则:
- 第一次生成后立即校验。
- 如果失败,把
errors原样反馈给大模型。 - 要求大模型保留原风格目标,只修正违规点和必要位置。
- 最多重试 2 到 3 次。
- 如果仍不合法,明确告诉用户本次生成失败,不要输出非法阵型。
例如校验结果可能是:
{
"valid": false,
"errors": [
"炸弹不能放在第一排",
"军旗必须且只能位于大本营(第6排第2列或第4列)"
]
}
输出要求
- 校验通过前,不要给用户最终阵型
- 校验通过后,再输出阵型或图片
- 如用户要求图片,使用
scripts/render_layout.py - 解释应简短,不要大段空话
工具文件
scripts/validate_layout.py:校验阵型是否合法scripts/render_layout.py:把阵型渲染成图片卡片
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install junqi-dark-layout - 安装完成后,直接呼叫该 Skill 的名称或使用
/junqi-dark-layout触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Junqi Dark Layout 是什么?
使用大模型生成中国军棋双人 25 格暗棋阵型,再用 Python 做硬规则校验与图片渲染。用于用户想要军棋暗棋摆阵、想按风格生成更有策略感的布局、想输出图片卡片、或需要先生成再严格验合法性的场景。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 93 次。
如何安装 Junqi Dark Layout?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install junqi-dark-layout」即可一键安装,无需额外配置。
Junqi Dark Layout 是免费的吗?
是的,Junqi Dark Layout 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Junqi Dark Layout 支持哪些平台?
Junqi Dark Layout 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Junqi Dark Layout?
由 imcaptor(@imcaptor)开发并维护,当前版本 v1.1.0。