Skip to content

40508597/ej-pro

Repository files navigation

易语言编程增强技能

增强 AI 写易语言代码的能力。通过命令库(非嵌入 RAG)提供准确的易语言编程知识,AI 严格基于真实命令生成代码并做双层校验。

License: MIT Python Commands rwgj


📑 目录


🎯 这是什么?

解决的核心问题

在没有这个技能之前,AI 写易语言代码经常会出现:

  • 凭训练记忆写命令名(命令实际不存在)
  • 类方法名杜撰(如 .匹配文本() 实际是 .搜索()
  • 参数顺序错误
  • 语法错误(如字符串中直接换行)

有了这个技能之后

  • ✅ AI 严格从命令库查询真实命令后再写
  • 双层验证保证代码可运行
  • 完整的易语言语法规则指导
  • 4451 条精易模块 + 核心库命令支持

核心定位

  • 非嵌入 RAG:不依赖向量数据库和嵌入模型,零下载、零外部依赖
  • 用户主动维护:命令库由您主动增删改,AI 不会偷偷写库
  • 严格只信库:AI 不会"猜"命令,库中没有就组合实现
  • 双层校验:生成前查类方法 → 生成后两轮严格校验

📊 核心数据

命令库规模

指标 数量 说明
命令总数 4451 全部来自易语言支持库
参数总数 6022 命令参数信息
核心命令 48 永久注入的高频基础命令
索引关键词 9296 倒排索引
命令库大小 7.4 MB commands.json
轻量索引 501 KB commands_index_lite.json

命令类型分布

类型 数量 占比
子程序 2260 50.8%
常量 1350 30.3%
DLL 命令 685 15.4%
数据类型 69 1.6%
68 1.5%
资源 19 0.4%

来源支持库

来源 命令数 说明
易语言核心支持库 669 基础命令
易语言特殊支持库 15 系统底层
精易模块 3700+ 第三方增强
其他 67 数据类型/类/资源

🚀 快速开始

1. 用户命令(4 个)

/易语言 增加 <命令内容>        # 添加命令到库
/易语言 删除 <命令名>          # 从库删除
/易语言 更新 <命令名> <新内容> # 更新命令
/易语言 查询 <关键词>          # 查询命令库

2. AI 自动增强

当您要求 AI 写易语言代码时,AI 会自动:

  1. 必查:从 commands.json 检索相关命令
  2. 必用:严格只用库中真实存在的命令
  3. 必验:生成后双层校验

3. 命令库检索

# 关键词检索
python scripts/enhanced_search.py commands.json "关键词"

# 混合检索(关键词 + 语义,更智能)
python scripts/hybrid_search.py commands.json "HTTP请求" 15

4. 代码校验

# 2a. 验证类方法存在性
python -X utf8 scripts/validate_before_codegen.py commands.json <你的代码.e>

# 2b. 严格禁止杜撰命令
python -X utf8 scripts/strict_check.py commands.json <你的代码.e>

两者都必须 [PASS] 才能输出给用户!


🧪 5 个真实场景示例

示例 行数 用途
访问百度示例 121 网页访问基础
网页抓取与正则解析 138 正则表达式综合应用
多对象综合示例 89 4 个类协作
读取kldai提取登录链接 70 HTTPS 网页 + 正则
线程安全日志系统 168 多线程同步

全部通过 strict_check 验证 ✅

每个示例都遵循项目的硬性规则,是真实可用的代码模板。


⚠️ 硬性规则(必读)

1. 字符串中不能直接换行

这是易语言语法限制,字符串字面量中直接换行会编译报错。

' ❌ 错误:直接换行(编译报错)
信息框 ("第一行
第二行")

' ✅ 正确:用 + #换行符 拼接
信息框 ("第一行" + #换行符 + "第二行")

任何信息框、字符串拼接、文件写入时都必须用 + #换行符 替代直接换行。

2. 不允许凭记忆写命令

所有命令必须从 commands.json 实时查询,AI 不会"猜"。库中没有的命令不能凭空出现,只能用库中已有命令组合实现。

3. 用户主动维护命令库

AI 不会自动增删改命令库,只有您显式使用 /易语言 命令时才会修改。这是项目的基本约定。

4. 命令名唯一

冲突时三选一:保留旧 / 更新 / 改名。命令名是命令库的主键。


🏗️ 技术架构

rwgj 架构切片

项目使用 rwgj 任务架构体系组织,按以下结构组织架构信息:

architecture/
├── index.json           # 总索引
├── features/core.json   # 功能树(5 大功能簇,23 个叶子节点)
├── modules/structure.json  # 模块详情(7 个模块满足底线)
├── data/data.json      # 数据拓扑
├── pages/delivery.json # 交付物列表
└── tasks/state.json   # 任务状态

校验结果: 0 错误,0 警告 ✅

7 大功能模块

模块 功能
M0_skill_entry 技能入口与路由
M1_command_store 命令库存储(增删改查)
M2_parser_engine 9 种格式解析引擎
M3_retrieval 6 层关键词检索 + 混合检索
M4_codegen 代码生成(严格使用库中命令)
M5_validator 4 项合规校验
M6_conflict_resolver 冲突三选一处理

检索引擎架构

用户查询
  ↓
混合检索 (RRF 融合)
  ├── 关键词通道 (40%) - enhanced_search.py
  │   - 精确 / 前缀 / 关键词 / 英文 / 描述 / 拼音
  └── 语义通道 (60%) - semantic_search.py
      - TF-IDF + 同义词扩展
  ↓
Top-15 相关命令
  ↓
注入 AI 上下文

解析引擎

支持 9 种导入格式

  • 格式-1:子程序简洁式
  • 格式-2:文档式命令
  • DLL 命令
  • 常量
  • 数据类型
  • 资源
  • 通用导入器
  • 参数修复器

✅ 代码生成质量保证

三步强制流程

任何代码生成前必须完成这三步,缺一不可:

Step 1: 必查(查类方法)

# 查具体命令的完整签名
python -X utf8 -c "
import json
with open('commands.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
for cmd in data['commands']:
    if cmd['name'] == '命令名或类名':
        print(cmd.get('params', []))
        for m in cmd.get('members', []):
            if isinstance(m, dict) and 'name' in m:
                print(f'.{m[\"name\"]}(...)')
"

Step 2: 必验(生成代码后)

# 2a. 验证类方法存在性
python -X utf8 scripts/validate_before_codegen.py commands.json <代码文件.e>

# 2b. 严格禁止杜撰命令
python -X utf8 scripts/strict_check.py commands.json <代码文件.e>

两者都必须 [PASS] 才能输出给用户!

Step 3: 必读(语法规则)

4 项合规校验

  1. 命令存在性校验:所有调用必须在库中
  2. 控制流首尾配对校验如果 / 如果结束判断循环 / 判断循环尾 等必须配对
  3. 变量声明校验:使用前必须先 变量 声明
  4. 类型与参数个数校验:实参形参个数、类型必须一致

💡 Token 优化历程

优化前后对比

阶段 基础消耗 节省比例
初始(无优化) ~180 万 tokens 0%
SKILL.md 精简 ~7,100 tokens 99.6%
深度瘦身(目录分层 + 核心拆分) ~1,860 tokens 99.9%

当前架构

  • 根目录 5 个轻量文件
  • 子目录按需加载
  • 命令库 0 全量加载

续航能力:200k context 可支持 ~166 轮对话(原来只能 38 轮),提升 4.4 倍


🛠️ 工具脚本清单

核心入口(scripts/ 根目录,5 个)

文件 行数 功能
enhanced_search.py 85 关键词检索入口
hybrid_search.py 74 混合检索入口
search_engine.py 139 检索核心引擎
validate_before_codegen.py 62 代码验证入口
validator_core.py 103 验证核心引擎

导入工具(scripts/importers/,9 个)

  • import_format1.py - 格式-1:子程序简洁式
  • import_core_lib.py - 格式-2:文档式命令
  • import_dll.py - DLL 命令导入
  • import_constant.py - 常量导入
  • import_datatype.py - 数据类型导入
  • import_class.py - 类导入
  • import_resource.py - 资源导入
  • fix_core_lib_params.py - 参数修复
  • universal_importer.py - 通用导入器

辅助工具(scripts/tools/,4 个)

  • code_validator.py - 四项合规校验
  • semantic_search.py - TF-IDF 语义检索
  • optimize_index.py - 索引优化
  • synonyms.py - 同义词词典

工具使用示例

# 检索命令
python scripts/enhanced_search.py commands.json "关键词"

# 混合检索
python scripts/hybrid_search.py commands.json "HTTP请求" 15

# 生成代码后必验
python -X utf8 scripts/validate_before_codegen.py commands.json <你的代码.e>
python -X utf8 scripts/strict_check.py commands.json <你的代码.e>

两个验证都 [PASS] 才能输出!


📚 文档体系

5 个核心文档

文档 行数 内容
docs/grammar-rules.md 110 易语言语法规则完整参考
docs/query-principles.md 63 查询原则(不列具体命令)
docs/import-formats.md 76 9 种导入格式
docs/command-rules.md 89 命令操作和错误速查
SKILL.md 80 技能说明(AI 必读)

文档原则

  • 不列具体命令名/类名(命令库会变化)
  • 全部用 docs/grammar-rules.md 等引用
  • 实时查询是唯一来源

详细文档导航


📁 项目结构

Ej-pro/
├── README.md                 # 项目说明(本文件)
├── SKILL.md                  # 技能说明(AI 必读)
├── LICENSE                   # MIT 许可证
├── .gitignore
├── architecture.json         # 架构元数据
├── commands.json             # 命令库(4451 条,7.4 MB)
├── commands_index_lite.json  # 轻量索引(501 KB)
├── architecture/             # rwgj 架构切片
│   ├── index.json
│   ├── features/
│   ├── modules/
│   ├── data/
│   ├── pages/
│   └── tasks/
├── scripts/                  # 工具脚本
│   ├── enhanced_search.py
│   ├── hybrid_search.py
│   ├── search_engine.py
│   ├── validate_before_codegen.py
│   ├── strict_check.py
│   ├── validator_core.py
│   ├── importers/            # 9 个导入器
│   └── tools/                # 4 个辅助工具
├── examples/                 # 5 个真实场景示例
│   ├── 访问百度示例.e
│   ├── 网页抓取与正则解析.e
│   ├── 多对象综合示例.e
│   ├── 读取kldai提取登录链接.e
│   └── 线程安全日志系统.e
└── docs/                     # 4 个技能文档
    ├── grammar-rules.md
    ├── query-principles.md
    ├── import-formats.md
    └── command-rules.md

🤝 贡献指南

添加新命令

# 方式 1:通过对话命令
/易语言 增加 <命令内容>

# 方式 2:直接编辑 commands.json
# 在 commands.json 中按格式添加新条目

修正错误

/易语言 更新 <命令名> <新内容>

删除无用命令

/易语言 删除 <命令名>

命令数据来源

  • 易语言核心支持库
  • 易语言特殊支持库
  • 精易模块(第三方)
  • 其他易语言支持库

提交规范

  1. 修改后必须跑 strict_check.py 验证
  2. 写明改动原因(修了哪个 bug / 加了什么能力)
  3. 保持 commands.jsoncommands_index_lite.json 同步
  4. 大改动建议先在 architecture/ 切片里登记

🔧 维护方式

本项目永久使用 rwgj 任务架构体系维护:

任何架构级变更必须先过 rwgj 校验,文档规则变更必须先更新 docs/ 下的规则文件。


⏳ 未完成工作

任务 优先级 状态
端到端测试 P0 待用户测试
核心命令调优 P1 基于使用频率
性能监控 P2 按需

📝 版本历史

v1.0(2026-06-05)

  • ✅ 4451 条命令全部入库
  • ✅ 参数信息 100% 完整
  • ✅ 5 个真实场景示例
  • ✅ 双层验证工具
  • ✅ 完整文档体系
  • ✅ rwgj 架构校验通过

生产就绪状态 🎯

关键里程碑

阶段 内容
初始化 易语言编程增强技能创建
命令库填充 核心库 669 + 特殊库 15 + 精易模块 3700+
检索引擎 关键词 6 层 + 语义 TF-IDF + 混合 RRF
验证体系 4 项合规校验 + 严格命令查重
Token 优化 180 万 → 1860 tokens(99.9% 节省)
文档精简 SKILL.md 从 540 行 → 80 行
架构治理 rwgj 校验 0 错误 0 警告

📞 链接


📄 License

本项目使用 MIT License - 详见 LICENSE 文件。

Copyright (c) 2026 40508597


v1.0 | 2026-06-05 | rwgj 任务架构 | Claude Opus 4.7

About

增强AI写易语言代码的能力

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages