术语
元数据驱动开发
元数据驱动开发把一个应用的对象、字段、权限、流程、动作和 API 声明为类型化元数据、交由运行时直接执行,而不是去写实现这些东西的代码——当作者变成 AI Agent 之后,这个区别开始起决定作用:声明足够小,人能真正读完并签字,而且真正在执行规则的是运行时,不是生成出来的那堆代码。
又称 元数据驱动的应用开发元数据驱动架构声明式应用开发
在实践中
这个想法并不新,装作它很新是最快被误读的方式。企业级平台从 2000 年代中期就开始用「声明而非代码」来描述应用,今天这套词汇正是从那条脉络来的:用对象而不是表,用权限集而不是鉴权中间件,用流程而不是定时脚本。那一代人立住的东西值得保留——在定义里加一个字段,API、列表视图、详情表单、导出和权限模型会同时出现它,因为这些都是从同一条声明推导出来的,而不是靠人手工保持一致。
真正变了的,是谁在写这份声明。当声明由人在可视化控制台里点出来时,收益是速度和一致性,格式本身可以是一种没人直接阅读的私有 XML 方言。当声明由 AI Agent 编写时,格式本身就变成了决定产出可不可信的约束:一个完整业务应用用元数据表达是几千行而不是几十万行,Agent 可以在一个上下文窗口里装下整个系统,而不是对着一个看不到边界的代码库抽样阅读;而审阅这次改动的人读到的是一份声明的 diff——哪个字段动了、哪条权限变了、哪一步现在需要审批——而不是去审计生成出来的控制器、模板、迁移脚本和测试。
这个词一旦裸着说出来,就会塌回低代码的那种读法,并且直接输掉论证,所以差别值得说清楚。拖拽式搭建器优化的是「不想写代码的人」;这里说的元数据驱动开发优化的是「不是我写的、但要我签字的审阅者」。这两件事会长出不同的格式。前者可以把定义藏在界面背后,因为界面就是入口。后者不行:定义必须是一份可读、进版本库、能 diff 的文件——因为 diff 就是审阅面,而写它的是 Agent,不是一张表单。
它并不适合所有工作,说明这一点不是自谦。本质是算法的问题——定价优化、路径规划、解析器——不会因为被「声明」出来就变小或变安全;它们该被写成代码,然后由定义去调用。这套方法诚实的失败形态是表达力天花板:当声明面表达不了某个需求时,团队就会去找逃生舱口,而逃生舱口的代码一多,系统就退回原点——逻辑落在了运行时管不到、审阅者也看不见的地方。
这个术语用在哪里
真正用到这个术语的页面与文章。
产品页面
文章
- 元数据,不是代码生成:AI 应用为什么可治理 代码生成能让原型变快,但企业应用真正需要的是对象、字段、关系、视图、权限、流程、动作和 agent 工具共同受控的元数据运行时。
- 一个业务应用到底有多少 token?完整 CRM 全应用不到 150k 完整 CRM 的数据模型、流程、权限与界面合计不到 150k token:业务逻辑不到 100k,UI 约 50k;随包参考 CRM 仍约 16k。能整体装进智能体上下文的软件,维护方式完全不同。
- 低代码 vs AI 原生应用平台:复杂业务卡在哪里 低代码解决的是更快搭页面和流程;复杂业务真正卡住的是对象、权限、集成、变更和可维护性。AI 原生平台要把这些变成可审查的运行时元数据。