文章目录
- 简介
- 用户输入层
- 理解层
-
- 意图识别
- [实体识别(Entity Extraction)](#实体识别(Entity Extraction))
- 决策层
-
- 路由(Routing)
- Agent(智能体)
- Tool(工具)
- [Skill / Skill Agent(技能)](#Skill / Skill Agent(技能))
- 执行层
- 数据层
- 其他
-
- memory(记忆)
- [function Calling(函数调用)](#function Calling(函数调用))
- workflow(工作流)
- multi-Agent(多智能体)
简介
学习AI编程,先理解相关概念
流程:
用户输入
↓
Prompt + Context
↓
意图识别(理解层)
↓
路由(决策层)
↓
├── RAG(知识检索)
├── Agent(工具调用)
└── Chat(直接回复)
传统系统:
Controller → Service → DAO
AI系统:
Prompt → LLM → Tool / RAG
用户输入层
Prompt(提示词)
给 LLM 的指令
决定输出质量
上下文
历史做成摘要,保留历史记录可以随时查,将skill的目录放静态上下文,按需查找加载到上下文。
mcp工具目录包括名称和简短描述,这块可以提前进行筛选,减少加载不必要的工具
理解层
意图识别
传统采用分类模型(NLP),需要训练意图分类模型(BERT),构建NLP特征工程。
现在采用LLM实现意图识别,比较经典的就是agent,另外rag可以先用llm实现意图识别,决定是否进行rag。
LLM意图识别(轻量LLM)
Prompt分类:
def classify_intent(query):
prompt = f"""
你是一个意图识别系统,请判断用户输入属于哪一类:
1. 知识库查询(需要RAG)
2. 工具调用(查天气/查订单)
3. 闲聊
用户输入:{query}
只返回类别编号
"""
return llm(prompt)
Embedding分类
用户问题 → embedding → 和"意图向量"比相似度
Agent统一决策
tools = [
Tool(name="knowledge_base", func=rag_search),
Tool(name="weather_api", func=get_weather),
]
实体识别(Entity Extraction)
查一下北京天气
→ 城市 = 北京
你可以理解为:
意图 = 做什么
实体 = 参数是什么
决策层
路由(Routing)
问题 → 去哪里处理?
Agent(智能体)
使用 LangChain 或类似框架:
本质:
LLM + Tool + Reasoning
L1:意图识别(分类)
L2:决策(选路径)
L3:执行(RAG / Tool / LLM)
Tool(工具)
天气API / 数据库 / 搜索引擎
Skill / Skill Agent(技能)
"封装好的能力模块"
比如:
查天气(一个 skill)
查订单(一个 skill)
RAG问答(一个 skill)
执行层
RAG(检索增强生成)
问题 → 检索知识 → 拼Prompt → LLM生成
系统提示分为利用元数据和渐进式披露,技术分别是rag和agent search
知识检索(Retrieval)
向量数据库(Milvus / FAISS)
embedding
Embedding(向量化)
文本 → 向量
用于意图分类:
相似度搜索
语义匹配
数据层
向量数据库
存 embedding
支持相似度搜索
Chunk(文本切分)
长文 → 小块
TopK
取最相关的K条
Rerank(重排序)
提高检索质量
其他
memory(记忆)
让 AI "记住上下文"
短期记忆(对话)
长期记忆(数据库)
function Calling(函数调用)
LLM 输出结构化调用:
{
"function": "get_weather",
"args": {"city": "北京"}
}
workflow(工作流)
比如 Dify:
节点1 → 节点2 → 节点3
本质:
可视化"决策 + 执行"
multi-Agent(多智能体)
多个 Agent 协作:
一个负责检索
一个负责总结
一个负责决策