代码 → 数据 → Agent:系统架构的三个时代
探索 AI 时代下,属于 2027 年的新一代智能体架构范式。
三个不可逆的趋势
我花了三天在 3 台 2GB 的虚拟机上搭了一套东西:PostgREST 当 API 层、Knative 做 Serverless、CopilotKit 对接 LLM、LangGraph 编排业务、全链路跑在离线 K8s 上。
搭完之后我发现:这不像任何一套主流架构。
主流(2025):Next.js + Vercel AI SDK + OpenAI API + Supabase
我的(2025):CopilotKit + PostgREST + LangGraph + llama.cpp + 离线 K8s
但我越琢磨越觉得——我踩中的不是"另一种架构",而是下一代的架构。
第一时代:代码 = 价值(2010–2022)
GitHub 仓库越大 → 公司估值越高
代码行数 = 竞争壁垒
这个时代的标准系统长这样:
┌── 前端(React/Vue)──────────────┐
├── BFF 层(Node.js/SpringBoot)────┤
├── 业务服务(SpringBoot × 20)─────┤
├── 数据访问层(MyBatis/JPA)───────┤
├── 缓存(Redis)───────────────────┤
├── 消息队列(Kafka)───────────────┤
└── 数据库(MySQL/PostgreSQL)──────┘
↓
代码 50 万行
微服务 30 个
团队 50 人
核心信仰:把业务逻辑写成代码,部署成服务,服务越多系统越健壮。
这个时代的成就:SpringBoot、微服务、DDD、Clean Architecture——全是教你怎么把代码组织得更好。
第二时代:数据 = 价值(2023–现在)
转折点不是 AI,是数据库本身的能力跃迁:
PostgreSQL 14 → 17:
- JSONB 性能提升 40%
- SQL/JSON 查询语法标准化
- 逻辑复制支持原生发布/订阅
PostgREST 12:
- SQL 表 → REST API(零代码)
- 自动生成 OpenAPI schema
- 行级安全(RLS)替代应用层鉴权
这意味着什么? 你不再需要写一个 DeviceController + DeviceService + DeviceRepository,加起来 300 行代码,就为了把数据库里的一张表暴露成 REST 接口。
PostgREST 的做法是:SQL 就是 API。建表即上线。
第二时代架构:
┌── 前端 ──────────────────────────┐
├── 复杂业务(LangGraph)───────────┤ ← 只写真正需要编排的
├── PostgREST(SQL → REST)────────┤ ← 替代 80% 的微服务
└── PostgreSQL + TimescaleDB ──────┘
↓
代码 5000 行(原 50 万行的 1%)
服务 3 个(原 30 个的 10%)
团队 5 人(原 50 人的 10%)
但这个时代的局限性:用户仍然需要手动操作 UI——点按钮、填表单、翻页查数据。API 是给前端用的,不是给用户用的。
第三时代:Agent = 价值(2026——∞)
Agent 时代的核心命题变了:
第一时代:用户 → 前端 → API → 数据 (人在操作)
第二时代:用户 → 前端 → SQL → 数据 (数据在简化)
第三时代:用户 → 自然语言 → Agent → 数据 (AI 在操作)
用户不再需要知道"筛选条件怎么写""报表怎么配置"。 用户只需要说一句话:
"上个月锅炉房温度有几天异常?"
Agent 自己知道:
- 调用 PostgREST 查设备表,找到锅炉房传感器的 ID
- 查遥测表,过滤最近 30 天数据
- 计算均值和标准差,标记超过 2σ 的数据点
- 返回结果,附带"建议检查冷却系统"
整个过程:用户没碰过一个按钮,开发者没写过一个 SQL。
第三时代架构(你的架构):
┌── CopilotKit 前端 ─────────────┐
│ 用户: "查异常设备" │
├── CopilotKit Runtime ──────────┤
│ LLM 决策 → 调 Tool │
├── PostgREST ───────────────────┤ ← 简单查询
├── LangGraph ──────────────────┤ ← 复杂编排
├── llama.cpp (Mac M4) ──────────┤ ← 本地推理,离线
└── PostgreSQL ─────────────────┘
↓
代码: 200 行(CopilotKit 配置 + LangGraph)
服务: 2 个(缩零)
用户操作: 1 句自然语言
三代对比
| 第一代:代码 | 第二代:数据 | 第三代:Agent | |
|---|---|---|---|
| 时间 | 2010–2022 | 2023–2025 | 2026– |
| 核心资产 | 代码行数 | SQL 能力 | LLM + Tool 组合 |
| API 层 | SpringBoot 手写 | PostgREST 自动 | Agent 动态调用 |
| 扩缩 | HPA(分钟级) | Knative(秒级) | 缩零(0→N in 300ms) |
| 用户界面 | 按钮+表单 | 可视化仪表盘 | 自然语言对话 |
| 改需求 | 改代码→CI/CD→部署 | 改 SQL→即时生效 | 说句话→Agent 执行 |
| 部署依赖 | K8s + 云服务 | PostgREST + K8s | 离线 K8s + 本地 LLM |
| 代表案例 | Netflix OSS | Supabase | CopilotKit + PostgREST |
为什么现在还不是主流
不是技术问题,是惯性问题:
- 技能栈锁定:SpringBoot 开发者市场上是 PostgREST 用户的 100 倍
- AI SDK 绑定:Vercel AI SDK + OpenAI 形成事实标准,替代有迁移成本
- 认知鸿沟:99% 后端开发者不知道 SQL 能直接变 API(PostgREST 12 年历史,GitHub 才 24k stars)
- 离线推理刚起步:大部分人还在
curl https://api.openai.com
但惯性终将被成本打穿:
传统方案:
30 个微服务 × 512MB × 24h × 30d = 需要 12 台 8GB 云服务器
月成本 ≈ $800+
本方案:
3 台 ARM64 VM × 4GB = Mac 上跑
月成本 ≈ $0(除了电费)
80% CRUD 用 PostgREST = 省掉 24 个微服务
离线 llama.cpp 推理 = 0 API 费用
Knative 缩零 = 闲时 0 资源消耗
你现在站在哪里
2025 ┌─────────────────────────────────────────┐
│ 主流:Next.js + Vercel AI SDK + OpenAI │
│ 少数派:PostgREST + llama.cpp + 离线 K8s│ ← 你在这
├─────────────────────────────────────────┤
2026 │ 主流:Agent 框架混战 │
│ CopilotKit vs Mastra vs CrewAI │
│ PostgREST 开始被注意 │
├─────────────────────────────────────────┤
2027 │ 主流:SQL-驱动 Agent + 离线推理标配 │
│ Apple Silicon 跑 LLM 成为默认 │
│ Knative + PostgREST 成为新 LAMP │
└─────────────────────────────────────────┘
你不是在追赶 2025 年的趋势——你是在定义 2027 年的趋势。
这不是鸡汤。从第一代代码驱动到第二代数据驱动到第三代 Agent 驱动,每次演进都有一个特征:上一代的"最佳实践"恰好是下一代的"技术债务"。
30 个 SpringBoot 微服务是 2020 年的骄傲,是 2027 年的累赘。
这套 200 行代码的 CopilotKit + PostgREST + LangGraph 架构,可能是 2025 年的异类,却是 2027 年的范式。
前篇:本文是 K8s 部署实录 → Serverless 平台 → AI 应用架构 → 架构演进趋势 完整系列第四篇。
代码 → 数据 → Agent:系统架构的三个时代
https://bmap.xyz/archives/evolution-post