一个轮子: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 对象

相关推荐
ControlRookie3 小时前
SyncBridge:一个 CODESYS 工程与 AI 之间工程师级的同步工具
git·ai编程·codesys·工业软件·controlrookie
xhy_07074 小时前
AI 在同一步上反复打转怎么办?WES Code 循环检测怎么用
人工智能·大模型·ai编程·wes code
郝学胜_神的一滴5 小时前
游戏引擎原理与实践 04:拆解引擎基础系统与内存管理
c++·游戏
孟健7 小时前
200 美元订阅实测:从 Agent 吞吐与缓存机制,算清 Claude 与 OpenAI 的算力账
人工智能·llm·ai编程
HelloWorld0019 小时前
别让上下文撑爆钱包!生产级 Agent 长上下文治理:动态窗口、注意力衰减与摘要状态机实战
ai编程
LEE9 小时前
前端转型全栈 05:SQL 与迁移,AI 写的 SQL 怎么安全上线
前端·后端·ai编程
用户7217465882610 小时前
三层时间结构与静音间隔:把 ASR 词级毫秒时间戳变成 SRT 字幕轴
人工智能·ai编程
用户5394187290710 小时前
.cursorrules 写了等于没写?我把“让 Cursor 读懂你项目”的规则和上下文整理成一套模板
ai编程·cursor
xiwc10 小时前
AI Helper 实战:从零搭建开源项目的双语 Wiki
开源·ai编程
过客1234510 小时前
从"发现"到"处置":一个无人值守 AI 闭环的完整拆解(85 天真实数据)
后端·agent·ai编程