一个轮子:Luban Skill 制作演示

luban-table 是一个 Agent Skill:让 AI 助手能规范地读写本工程(Luban)的配置表(xlsx 文件),而不会破坏表结构。在我的实际使用中,经常出现 LLM 读写表的时候想当然,没有按照特定的规则来读写表,导致表格错误,而且也不会每次都自动验证。因此这里我的方案就是拒绝 AI 直接读写配置表,而是通过这个 Luban Skill 来实现数据表的读写,外部只会接触表格的 Json 结构化数据。

AI 再怎么折腾,也不会把你的 xlsx 搞坏。

一、问题:为什么不能直接改 xlsx

xlsx 不是一个普通文本文件,它内部是:

  • 多张工作表(sheet)

  • 带格式的单元格(合并、颜色、字体)

  • 多级表头##var / ##type / ##comment / ##group

  • 多行字段(一个主键对应多行数据)

Luban 用这些"格式"表达"表结构"。一旦 AI 误改、漏改、顺序错了,Luban 就读不出这张表------整张配置作废,所有用这张表的代码都报错

而且,Luban 有一些特殊的格式,AI 不是每次都能正确识别,需要一个专业的 "翻译官" 来告诉 AI 正确的表格结构和数据。

二、核心思路:让 AI 改 JSON,CLI 改 xlsx

两大世界,中间翻译

  • AI 只跟 JSON 打交道(写命令用 JSON 参数、读数据看 JSON 对象)

  • CLI (Luban Skill) 负责 JSON 与 xlsx 之间的转换(写、读、刷新)

三、关键设计

3.1 自动表名识别(# 前缀)

Luban 的 __tables__.xlsx 是表注册表。新加一张表本来要在那里登记一行。

我们的简化 :文件名以 # 开头 = 自动注册成表。子目录 = 命名空间(虽然对于编辑配置表的 AI 来说,命名空间并没有什么实际意义)。

好处:

  • 新建表 = 复制一份 xlsx + 改文件名(无需懂 Luban 注册表)

  • 命名空间一目了然(子目录结构 = 命名空间结构)

  • 注册表永远是空的,不会被搞乱

3.2 JSON 面向对象(解决"多行字段"问题)

最棘手的情况:一张表的"一行"在 xlsx 里其实是多行(多行字段,元素是结构体)。

AI 看到的(JSON 视角):

复制代码
{
  "id": 1,
  "rewards": [
    {"ItemID": 1001, "Count": 3},
    {"ItemID": 1002, "Count": 5}
  ]
}

xlsx 里实际长这样

复制代码
行1: ##var     id     *rewards
行2: ##var           ItemID    Count
行3: ##type    int    (array#sep=,),ItemSet
行4: ##comment 主键   道具列表
行5: 数据      1      1001      3
行6: 数据             1002      5    ← 续行

设计原则:AI 永远只看到 JSON 对象,CLI 负责"展开"和"收起"。

判定续行的规则(最简单的一条):

  • 一行里所有非 * 字段都为空 → 续行

  • 否则 → 新记录

3.3 写后自动刷新 JSON

xlsx 改了,JSON 怎么办?

每次 CLI 写完 xlsx,立刻 调一次 gen_json.bat 重新生成 JSON。否则下次读到的还是旧数据,AI 会写出"覆盖式"的修改。然后每次当需要对配置表进行读写调用时,也会比对版本号重新生成 JSON 文件。

完全无感,AI 不需要管这件事。

3.4 表引用关系与拓扑

策划想看"哪张表被谁引用?生成顺序是?有没有环?"

关系数据不放进 xlsx (避免污染 Luban 导入),单独存为 Data/__relations__.json

CLI 暴露三个命令:

  • rel-add / rel-remove:维护关系

  • rel-list:看关系

  • topo:计算依赖图(被引用方在前)

四、硬性规则(红线)

规则 为什么
🚫 禁止直接动 xlsx 会破坏表头,整表作废
✅ 写完必 validate 兜底,防止半成品数据上线
🐍 命名用 snake_case Luban 生成 C# 自动转 PascalCase
# 表名用 # 前缀 触发自动注册
⚠️ 多行表不用 add-field 改表头太复杂,统一用 export/import

五、一图流:完整数据流

写入流Agent 提交 JSON 命令 → CLI 改 xlsx → gen_json.bat 刷新 JSON

读取流Agent 读命令 → CLI 读 output/table_json/*.json → 返 JSON 对象

相关推荐
江畔柳前堤2 小时前
YOLO 目标检测全流程深度剖析
人工智能·yolo·目标检测·计算机视觉·unity·面试·vllm
明月_清风4 小时前
🚀 AI Agent 完全入门指南:从 LLM 到生产落地,新手必懂的 34 个核心概念
前端·后端·ai编程
plainGeekDev4 小时前
Git Hooks + 定时任务:把 Claude Code 嵌入任何自动化流程
aigc·ai编程
9i编程4 小时前
手敲重构学透 Multi-Agent 代码(上):逐行拆解 AgentScope 1.0.8,从「跑通了但没懂」到真懂了
人工智能·openai·ai编程
libokaifa4 小时前
Claude Code 的工程化落地:插件(Plugin)篇
ai编程
吾皇斯巴达4 小时前
一些我开发过程中用到的AI配置
ai·ai编程
Canace4 小时前
Harness Engineering 到底在做什么
前端·人工智能·ai编程
Canace5 小时前
用 AI 写了一天代码,为什么反而更累了?
前端·人工智能·ai编程
极客侃科技5 小时前
游戏本办公两用笔记本推荐,来酷斗战者 战7000P 酷睿版兼顾两种需求
游戏