中台蜕变:从代码供应商到 AI 积木供应商

把中台改造成 AI Agent 的积木库,做三件事:积木说明书(Tool Description)+ 拼装规则(约束声明化)+ 参考图纸(样板间),让搭积木这个十年愿景第一次真正成立

开篇:为什么中台需要蜕变?

上篇聊了”何去何从”,本篇聊”明天就能开干”。

核心结论三句话:

结论内容
第一句AI 把”造积木”的成本压低一个数量级,中台靠”帮你省造积木的钱”撑不住了
第二句10 个团队用 AI 造出 10 套用户系统,比没有中台更糟——不一致的扩散速度也被 AI 放大
第三句中台不是该拆,是该蜕皮——从”代码供应商”进化为”积木工厂 + 拼装规则”

本篇回答的问题:怎么把你的中台改造成 AI 能用的积木库


第一层:新定位——中台 = AI 的积木供应商

天猫在 AI Coding 实践中构建了一套四层物料体系,代码采纳率从 50% 提升到 97.9%。

四层物料体系

物料层AI Agent 视角中台视角加载方式
任务规格”这次做什么”业务方提供动态生成
积木库”用什么搭”原子能力 + CLI/Tool Description静态注入
拼装规则”怎么搭不塌”约束契约(声明式)静态注入
参考图纸”照着谁搭”样板代码 + 领域知识动态检索

新定位:不再是”帮你写代码”的乙方,而是”给 AI 供积木和图纸”的物料供应商


第二层:积木说明书——用 CLI 哲学改造原子能力

为什么是 CLI 哲学?

MCP、Function Calling、A2A——协议在快速演进,今天的标准半年后可能过时。

但有一个设计哲学已经经过 50 年验证:Unix CLI 哲学

每个命令做一件事,可组合,自描述

把原子能力改造成”CLI 风格的命令”,底层传输层用 MCP 还是 Function Calling 都行——设计原则不变。

API 文档 vs CLI 命令:本质区别

维度传统 API 文档(给人看)CLI 命令(给 AI 看)
核心信息接口地址、参数类型功能语义:什么时候该用、什么时候绝不能用
示例请求/响应 JSON前置条件 + 副作用声明
错误处理错误码表补偿命令:出错了怎么回滚
缺失约束引用 + 组合建议

给 AI 看的文档,重点是”什么时候该调”和”什么时候绝不能调”

Tool Description 模板(可直接 copy)

tool:
  name: "create_order"
  description: "创建交易订单,含商品明细、价格计算和库存预扣"

  # CLI 哲学:when_to_use / when_not_to_use 比参数说明重要 10 倍
  when_to_use: "用户确认购买意图,且已完成风控审核"
  when_not_to_use: "仅浏览或加购场景不应调用"

  parameters:
    - {name: user_id, type: string, required: true, desc: "已实名认证的用户 ID"}
    - {name: items, type: array, required: true, desc: "商品明细(sku_id + quantity)"}
    - {name: promotion_id, type: string, required: false, desc: "营销活动 ID"}

  preconditions:
    - "用户状态 = active"
    - "所有 SKU 库存 >= 请求数量"
    - "已通过 risk_check(顺序约束)"

  side_effects:
    - "库存预扣(30min 未支付自动释放)"
    - "生成订单,状态 = pending_payment"

  constraints:
    - {ref: "rule://payment_sequence", desc: "创建后 30min 内必须调用 initiate_payment"}
    - {ref: "rule://promo_conflict", desc: "不可叠加其他折扣类活动"}

  error_handling:
    - {error: "E_STOCK_LOW", compensate: "调用 release_inventory,回滚预扣"}
    - {error: "E_RISK_FAIL", compensate: "返回风控原因,不创建订单"}

第三层:拼装规则——约束声明化

为什么约束不能留在代码里?

传统约束散落在:

  • API 里的 if-else 判断
  • 数据库触发器
  • 文档里的”注意事项”段落

AI 读不到这些隐形知识,会踩同样的坑。

约束声明化格式

rule://payment_sequence:
  domain: "交易"
  name: "支付时序"
  declaration: "订单创建 30min 内必须发起支付"
  rationale: "库存预扣 30min 自动释放,超时未支付将导致库存回滚"
  enforcement:
    - {tool: create_order, trigger: "on_complete", action: "timer_start(30min)"}
    - {tool: initiate_payment, trigger: "on_call", action: "timer_cancel()"}
  violation:
    - {event: timeout, consequence: "订单状态 = cancelled, 库存释放"}

约束分类

类型示例AI 处理
硬约束支付时序、资金合规强制校验,违规禁止执行
软约束性能建议、最佳实践提示但不阻断
上下文约束营销互斥动态计算后注入

第四层:参考图纸——样板间与知识库

样板间(Reference)

reference/
├── order-service/          # 订单域标准实现
│   ├── src/
│   ├── tests/
│   └── AGENTS.md           # 注入 Tool Description + 约束
├── payment-service/
└── inventory-service/

AGENTS.md 结构:

# Order Service

## Tools
- create_order: 创建订单
- cancel_order: 取消订单

## Constraints
- rule://payment_sequence: 支付时序约束
- rule://promo_conflict: 营销互斥约束

## Patterns
- 标准下单流程: risk_check → create_order → initiate_payment

第五层:三种 Agent 搭法

5.1 CLI Agent:运营的”自然语言 CLI”

适用场景:运营等非技术人员

运营输入: "创建一个满 200 减 30 的活动,618 当天有效"

Agent 执行:
1. 读取 rule://promo_conflict → 确认互斥关系
2. 调用 create_promotion(...)
3. 调用 set_schedule(...)
4. 返回确认 → 等待人工审核

效果:中台 API 调用量放大一个数量级

5.2 Spec 驱动模式:多 Agent 协作循环

适用场景:有开发团队的业务线

开发者写 Spec → Code Agent 生成 → CR Agent 校验 → Test Agent 测试 → 循环直到通过

关键比例:90% 抄物料,10% 写差异

5.3 Multi-Agent:新业务线冷启动

适用场景:全新业务线从零搭建

Input:  "我要做一个拼团业务"

Output: 完整应用脚手架
        ├── src/services/
        ├── src/rules/
        ├── tests/
        └── deploy/

代码覆盖率从 30% 提升到 80%+


第六层:落地路线图——4 个里程碑

阶段目标验收标准
M0体检+瘦身代码量 -40%
M1建物料P0 域 100% 覆盖
M2首个 Agent约束违规率 < 5%
M3乘法效应冷启动月级→天级

三条铁律

  1. M0 不依赖 AI:先整理原子能力和约束
  2. M1 是卡点:Tool Description 质量决定 Agent 上限
  3. M3 要建反馈闭环:失败→分析→补充约束→持续提升

总结

把中台从”被调用的代码库”改造成”AI Agent 的积木供应商”,做三件事:

物料作用
积木说明书让 AI 知道”用什么搭”
拼装规则让 AI 知道”怎么搭不塌”
参考图纸让 AI 知道”照着谁搭”

公式:

原子中台(积木 + 规则 + 图纸) × AI Agent(Spec 驱动循环) = 搭积木十年愿景第一次真正成立

立即行动:先把最核心的 5 个原子能力写上 Tool Description