首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI辅助编程-基于MDA模型驱动思路的程序Skills技能包定义思路和POC验证

AI辅助编程-基于MDA模型驱动思路的程序Skills技能包定义思路和POC验证

作者头像
人月聊IT
发布2026-01-27 16:05:14
发布2026-01-27 16:05:14
1090
举报

大家好,我是人月聊IT。

今天接着聊AI辅助编程方面的内容,在前面我谈AI辅助编程的时候往往都会谈到UI和前端界面设计,而任何一个应用程序,其真正最核心的还是整个业务组件和能力服务层。

当前在Agent Skills越来越被大家接受的情况下,那么对于一个实现特定功能的应用程序,我们是否可以先按照Skills的思路来构建一个可复用的技能库,真正完成核心的对象建模和服务能力抽象。而对于UI应用界面层则应该足够的简化,类似以后就是框计算的思路。自然语言对话+AI大模型进行意图识别,最后再去调用底层技能来实现。

包括我前面在谈本体论的时候也谈到,本体论的核心仍然是对象建模的思路,那么我们完全可以参考对象建模的思路来构建这种程序包技能体。包括我在前面历史文章谈大模型驱动的IT系统构建也谈到该观点。

因此在这里我们以一个简单的合同系统技能构建为例,采用Claude Opus 4.5大模型来简单验证下我上面提到的核心思路。

1. 基于原始需求构建完整的对象模型

在这里,先给出第一次和大模型沟通的完整提示词:

我准备参考Claude Skills技能定义的模式来构建一些软件功能模块的技能包定义。

因为我的理解任何一个软件功能的实现,核心就包括如下三个部分内容

1. 数据模型:即底层数据库,数据表,数据表之间的关联关系等

2. 行为模型:对应具体的业务动作,行为,业务用例,行为模型是完成一个不可分隔的最小化业务动作。类似订单创建,订单查询,订单废弃等。

3. 规则模型:在执行相关的行为的时候,需要遵循的业务规则和逻辑,一个行为动作可能涉及到多个规则的约束。

在上面三点的基础上,还涉及到流程和场景模型。

这个模型你可以理解为多个行为的一种灵活的组合和编排。完成一个复杂的业务场景。

当然在设计这些模型的时候,我们可以采用一些伪代码语义进行更加结构化的描述。

对于这种技能包的定义,我们首先还是需要把具体的底层模型描述清楚,然后再基于模型的定义,基于不同的行为模型来生成一个个可复用的代码片段。

类似我们一个简单的合同管理的原始需求如下:

#合同管理的业务场景,流程和关键业务对象描述

当前的合同系统只对销售合同进行管理,即我公司对外销售所产生的合同签订信息。当前对合同起草,签订和审批流程不进行管理。只是对合同最终签字盖章生效后进行管理。

合同应该包括了合同编号,合同名称,所属产品,所属客户,所属部门,合同签订时间,责任人,合同总金额,合同对外采购金额,合同税率,合同付款条款等信息。

其中所属产品,所属客户,所属部门,责任人应该分别引用独立的产品信息表,客户信息表,部门信息表和人员信息表。具体的各个表信息如下:

产品信息表:包括产品编号,产品类型,产品名称信息。

客户信息表:包括客户编号,客户类型,客户名称信息。

部门信息表:包括部门编号,部门名称信息。

人员信息表:包括人员编号,人员名称,所属部门信息。

由于一个合同可以客户可以分多次进行付款,因此合同付款条款是一个明细表。该表包括了付款阶段编号,付款阶段名称,付款比例几个关键信息。

当客户通知我方付款的时候,我方基于合同付款条款对应的付款阶段进行开票,然后客户根据开票进行付款。因此还有一个独立的开票明细信息表。该表包括了开票编号,对应合同编号,开票金额,开票税率,开票时间,是否收款,收款时间等关键信息。

由于合同的某一个付款阶段也可以分多次进行开票,多个付款阶段又可以一次进行开票。因此我们还需要构建一个开票信息和付款阶段的对应表,具体包括开票编号,合同编号,付款阶段编号三个字段。

#需要实现的业务功能描述

1.合同信息的录入,在录入合同基本信息的时候还需要录入合同条款信息。

2.合同开票信息的录入,录入合同开票信息,包括开票时间,开票金额,税率等关键信息。

3. 合同收款信息的录入,录入合同收款信息,收款需要对应到具体的合同,合同开票

4. 合同信息查询,需要基于合同编号,合同名称,产品线,部门,时间等对合同信息进行模糊查询。查询列表中可以点击查看该合同的详细信息。

现在我需要你基于我上面的思路,帮我在当前项目 Skills 目录夏生成这个技能包。注意先不用生成代码片段,而是先输出完整的模型定义,我需要对模型定义进行检查和确认。

基于上面的提示词,AI帮我们进行了整个Skills技能包的初始化,并分别构建了行为模型,数据模型,规则模型三个独立的元模型定义文件。

我们先来看数据模型定义,给出了完整的数据模型。这个数据模型类似我们传统软件开发里面的数据库表设计。参考如下:

在数据模型的最后,我们还会详细的定义数据对象依赖关系。

接着我们看行为模型,注意这里的行为模型,我们让AI输出了一种类似伪代码的行为模型定义,这样能够更好结构化的体现核心的行为动作,输出输出,关键的完整性验证等,具体如下:

接着是规则模型,规则模型通用对每一个规则都条目化编码,然后通过类似伪代码的方式来构建一个个规则。参考如下:

注意在规则模型的定义中,我们还需要详细的定义行为和规则之间的引用关系,具体参考如下:

最后是流程和场景模型。

注意流程模型的复杂性在于,一个完整的业务流程的完成可能涉及到调用多个行为模型,并对这些行为动作进行组装和组合。这个和我们写代码的思路完全一致。如果行为模型是原子服务的话,那么对于流程模型大家可以理解为组合服务能力。

类似下面的合同录入流程模型,实际已经能够体现出对不同的行为和规则的调用,并在流程模型中完成这些原子服务的组装和组合。

2. 基于模型生成数据库和代码片段

接着,我让AI基于前面已经定义好的模型,来生成相应的数据库,数据库表,代码片段。然后单独存放到src源代码目录。

具体参考提示语如下:

很好,我现在需要你采用sqlite数据库,帮基于数据模型定义,对这个数据库进行初始化。

同时基于行为和规则模型的定义,输出基于该合同管理需要的各个原子服务,原子服务采用python语言输出,不同的数据对象采用不同的python文件组织。

同时形成一个独立的原子服务能力清单的markdown文件。生成的源代码也放在技能目录下,单独一个源代码子目录进行存放。

这样AI输出完整的源代码片段并对数据模型进行初始化。

注意在代码片段生成完成后,我们让AI输出一份完整的原子服务能力清单,并进行自我验证。具体能力清单列表如下:

3. 数据初始化和场景验证

接着我们用自然语言对话的方式进行部门,人员,产品,客户几个基础数据表的基础信息的初始化。

在这里我额外增加了一个关键点。即当我希望对基础数据增加张三这名员工的时候,我采用了如下提示词:

注意,我希望你在处理我任何请求的时候,都需要用技能库中的服务能力中的服务能力,如果没有对应的服务能力,我需要你拒绝处理,并反馈给我。如果有该服务能力,在请求处理完成后需要你告诉我采用的哪个服务能力来完成任务需求的。现在我需要你处理如下请求:对于综合部增加一名人员,姓名:张三。

注意在这里可以看到,我让AI在处理我的需求的时候,必须要在技能库里面找到对应的技能服务才能够处理,同时在处理成功后还需要给出具体调用了哪些原子服务能力。包括上面需求处理成功后返回如下:

接着,我们让AI帮我们录入一条合同信息。

具体的提示词如下:注意,我希望你在处理我任何请求的时候,都需要用技能库中的服务能力中的服务能力,如果没有对应的服务能力,我需要你拒绝处理,并反馈给我。如果有该服务能力,在请求处理完成后需要你告诉我采用的哪个服务能力来完成任务需求的。现在帮我录入一条合同信息。具体信息为:客户云南白药在2026年1月1日签订的主数据平台合同,合同金额100万,付款分三个阶段,第一阶段预付款30%,第二阶段上线款60%,第三阶段验收款10%。

在这里程序技能包会自动调用相关的技能完成合同录入。在合同录入成后最终返回的信息如下:

注意在这里可以看到详细的完成合同信息录入调用了哪些原子服务接口来完成,包括录入完成的总结信息。在这里还有一个AI实现的很好的地方,即关于ContractService的Create方法创建合同,本身就是一个组合服务,同时完成合同基本信息和合同条款信息的录入,自然也很容易将整个录入过程控制在一个完整的事务里面。

接着我们让AI继续录入2条测试合同。参考提示词如下:

好的,按同样方法再帮我录入两条合同信息。第1条:具体信息为:客户华星光电在2026年1月10日签订的DevOps合同,合同金额200万,付款分二个阶段,第一阶段预付款30%,第二阶段验收款70%。第2条:具体信息为:中国移动在2026年1月12日签订的数据中台合同,合同金额500万,付款分三个阶段,第一阶段预付款10%,第二阶段上线款60%,第三阶段验收款30%。

录入完成后,我们让AI返回下当前合同信息列表给我。参考提示:

返回当前的合同信息列表给我。包括合同编号,产品,客户名称,市场跟踪人,合同金额,签订日期,付款条款。注意付款条款我需要你整合为一条合并后的文字信息,不要拆分。同时也给我最终完成该任务调用的原子服务信息列表。

最终返回信息如下:

所有数据完全正确。包括对数据的整合,包括其调用的原子服务能力接口。

接着我们让AI帮我们录入一个合同的开票信息,具体如下:对于客户云南白药在2026年1月1日签订的主数据平台的100万合同,现在开出预付款发票,发票金额为5万。

但是这里发现问题,我前面定义的开票金额要和合同付款阶段付款金额完全一致并一一对应,这个规则并没有执行。接着让AI完成元模型定义和源代码的更新。这里我们有一个关键的要求,就是任何需求没有满足的情况下都应该同时检查和更新元模型和源代码。

最后让AI输出一张可视化对象模型图如下:

这个对象模型即是驱动后续所有代码生成,需求处理的核心对象模型。我一直在强调,如果要让Skills技能库来承担完整的应用功能的时候,这个智对象模型相当重要。这个对象模型核心就是数据+行为+规则。而最终的业务流程或场景,仅仅是这些能力的一种灵活组装和编排。

注意在AI处理我的需求请求的时候大家发现没有一个关键点,即基础原子服务能力必须具备,但是基于不同的需求场景,AI会自动产生动态代码片段并执行,然后产生输出。即我们形成的这种技能库是一种动态的有元模型+基础能力+代码片段组成的动态技能库。

希望今天分享对大家有所启发。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人月聊IT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档