🤖 ai生成

配置目录结构

举例如下目录

config/
│   config.cfg
|   config.jte
|   init.md
│
├───ai_行为
│       ai.cfg
|       ai.md
|       ai_action.md
│       ai行为.xlsx
|       $mod.md        
│
├───equip
│       ability.csv
│       equip.cfg
|       equip.md
│       equipconfig.csv
│       rank.csv
|       $mod.md        
├───task
│       completeconditiontype任务完成条件类型.csv
│       task.cfg
│       taskextraexp.csv
│       task_任务.csv
|       task2.md
│
└───_task_task2
        1.json
        2.json
        3.json
  • config.jte是生成每个配置都会使用的提示词模板

  • init.md 则是初始的assistant回答

  • 每个目录可以有$mod.md,表示是此模块下通用的提示词补充,一般是一些模块规则

  • 目录下的每个table,可以有单独的提示词补充比如ai.md,ai_action.md等,写入table的一些规则。可以包含frontmatter,比如

      ---
      refTables: equip.rank,equip.ability
      exampleId: 123
      exampleDescription: 要根据此描述生成配置
      ---
    
      一些规则
    

以上目录中的md和jte文件,都可以不存在

默认config.jte

public record PromptModel(String table,
                          String structInfo,
                          String rule, // 关于此表的一些补充信息,规则,从$mod.md + [tableName].md中读到
                          List<Example> examples) {

    public record Example(String id,
                          String description,
                          String json) {
    }
}

默认的模板如下,你可以复制它在config.jte里,然后修改为自己的提示词。

@import configgen.genbyai.PromptModel
@import configgen.genbyai.PromptModel.Example

@param PromptModel model

# Role: 专业游戏设计师

## Profile
- Description: 经验丰富、逻辑严密,大师级,擅长把需求描述转变为符合结构的json数据
- OutputFormat: json

## Rules
### ${model.table()}结构定义

```typescript
${model.structInfo()}
```

@if (!model.rule().isEmpty())
    ${model.rule()}
@endif

## Constrains
生成的json数据必须严格遵守[${model.table()}结构定义],确保数据的一致性和有效性。遵守以下规则
- 对象要加入$type字段,来表明此对象的类型
- 如果对象里字段为默认值,则可以忽略此字段
- 字段类型为number,默认为0
- 字段类型为array,默认为[]
- 字段类型为str,默认为空字符串

- 对象可以加入$note字段,作为注释,不用全部都加,最好这些注释合起来组成了描述
- json中不要包含```//```开头的注释

## Workflow

针对用户描述输出json格式的配置(若描述中不含ID,则自动选择)

@if(!model.examples().isEmpty())
    ## Examples
    ---
    @for(Example ex : model.examples())
        输入:${ex.id()},${ex.description()}

        输出:
        ```json
        ${ex.json()}
        ```
        ---
    @endfor
@endif

## Initialization
作为角色 [Role], 严格遵守 [Rules],告诉用户 [Workflow]

默认init.md

请提供描述,我将根据这些信息生成符合结构的JSON配置

MCP服务器中的使用

上述文档文件($mod.md[table].md)在MCP服务器中也有重要作用:

与MCP工具的配合

  • listModule 工具:读取 $mod.md 中的 description 字段显示模块描述
  • listTable 工具:读取 $mod.md 的content部分作为模块规则
  • readTableSchema 工具:读取 [table].md 提供额外信息和规则

文档作用

  1. $mod.md
    • description:显示在模块列表中
    • content:作为模块规则,帮助AI理解模块的整体设计
  2. [table].md
    • refTables:指定额外的引用表,这些表的记录会完整显示
    • exampleIdexampleDescription:提供示例记录
    • content:作为表规则,帮助AI理解表的业务含义和使用规范

详细使用方法请参考 MCP服务器文档


Table of contents