项目 git 地址:ai-ops-assistant-lab
🧠 一、为什么要单独讲架构?
在上一篇中,我们讲清楚了一个核心认知:
👉 AI运营助手 ≠ Chat系统,而是一个"数据驱动的决策系统"
但如果只停留在概念层,会有一个问题:
❗ 你做了很多模块,但它们之间是怎么协作的?
所以这一篇的目标是:
👉 把整个系统"结构化拆开",讲清楚每一层的职责和数据流
🧩 二、系统整体架构(核心图)
text
┌────────────────────┐
│ 用户问题(NL) │
└────────┬───────────┘
↓
┌──────────────────────┐
│ Intent Understanding │
│ Agent │
└────────┬─────────────┘
↓
┌──────────────────────┐
│ Metric Agent │
│(指标识别层) │
└────────┬─────────────┘
↓
┌──────────────────────┐
│ Semantic Layer │
│(语义映射系统) │
└────────┬─────────────┘
↓
┌──────────────────────┐
│ Query Planner │
└────────┬─────────────┘
↓
┌──────────────────────┐
│ SQL Compiler │
└────────┬─────────────┘
↓
┌───────────────┐
│ Doris / OLAP │
└──────┬────────┘
↓
┌──────────────────────┐
│ Insight Agent │
└────────┬─────────────┘
↓
┌──────────────────────┐
│ Report Agent │
└──────────────────────┘
🧠 三、系统设计的核心思想
💥 1️⃣ AI系统不是"模型系统",是"编排系统"
很多人误解 AI 系统:
❌ 以为核心是 LLM
但实际上:
👉 核心是 数据 + 流程 + 编排
💥 2️⃣ 三层结构(非常重要)
整个系统可以拆成三层:
🟢 ① Agent层(智能层)
负责:
- 理解问题
- 拆解任务
- 决策路径
👉 例如:
- Intent Agent
- Metric Agent
- Insight Agent
🟡 ② Semantic层(语义层)
负责:
- 指标定义
- 业务语义映射
- 数据抽象
👉 核心是:
把"人话"变成"数据语言"
🔵 ③ Data层(数据层)
负责:
- Doris查询
- SQL执行
- 数据返回
🧠 四、每一层的职责拆解(面试重点)
🟢 1️⃣ Agent层:负责"理解与决策"
🎯 Intent Agent
输入:
text
最近7天用户流失情况
输出:
json
{
"intent": "churn_analysis",
"time_range": "7d"
}
🎯 Metric Agent
👉 把业务问题映射为指标
json
{
"metrics": ["churn_rate", "active_user"]
}
🎯 Insight Agent
👉 负责"解释数据"
🟡 2️⃣ Semantic Layer(核心亮点)
💥 它解决什么问题?
❗ 没有语义层的问题:
LLM会直接写SQL:
- 字段乱用
- 口径不一致
- 不可维护
✅ 有语义层之后:
👉 所有问题变成:
"我想查哪个指标?"
🧩 示例:
text
active_user = COUNT(DISTINCT user_id)
WHERE last_login >= NOW() - 7d
💥 核心作用:
| 功能 | 作用 |
|---|---|
| 指标统一 | 避免SQL口径混乱 |
| 业务抽象 | 屏蔽数据库结构 |
| AI约束 | 限制LLM自由发挥 |
🔵 3️⃣ Data Layer(Doris)
🎯 职责:
- 执行SQL
- 返回数据
- 保证性能
💥 在系统中的角色:
👉 "事实来源"
🧠 五、完整数据流(必须掌握)
text
用户问题
↓
Intent Agent(理解问题)
↓
Metric Agent(识别指标)
↓
Semantic Layer(业务映射)
↓
Query Planner(生成计划)
↓
SQL Compiler(生成SQL)
↓
Doris(执行)
↓
Insight Agent(分析)
↓
Report Agent(输出)
🧠 六、技术栈设计(工程视角)
🐍 Python层
- Camel AI(Agent)
- OWL(Workflow)
🗄 数据层
- Doris(OLAP)
- MySQL(元数据)
- Redis(缓存)
🧠 AI层
- LLM(GPT / Claude / 本地模型)
- Prompt工程
🧩 中间层
- Semantic Layer
- Metric Registry
- SQL Compiler
🧠 七、Prompt设计(关键面试点)
🟢 Metric Agent Prompt
text
你是数据指标分析器。
请从用户问题中提取指标:
- active_user
- churn_rate
- order_amount
返回JSON结构。
🟡 SQL Compiler Prompt
text
你不能直接猜字段,只能使用语义层定义的指标生成SQL。
输入:metric + schema
输出:SQL
🔵 Insight Prompt
text
你是数据分析师,请基于查询结果生成业务洞察。
🧠 八、为什么这个架构成立?
💥 1️⃣ 解耦原则
| 层 | 职责 |
|---|---|
| Agent | 决策 |
| Semantic | 语义 |
| Data | 执行 |
💥 2️⃣ 可控性原则
👉 SQL不再由LLM自由生成
💥 3️⃣ 可扩展性
可以轻松加:
- 新指标
- 新数据源
- 新Agent
🧠 九、这个架构的本质(非常重要)
💥 一句话总结:
👉 这是一个"语义驱动的数据分析系统",通过 Multi-Agent 编排,将自然语言转化为结构化数据决策。
🧠 十、总结
👉 AI运营助手的本质,不是"让AI写SQL",而是"构建一个AI可理解的数据语义系统"。
🚀 下一篇建议(很关键)
如果你继续,我建议下一篇写: