5.1 主流框架:LangChain、LlamaIndex、Semantic Kernel

你已经理解了 RAG、Agent、Function Calling 的原理------但真要写代码的时候,从零实现太累了。开发框架就是把这些能力封装成好用的 API,让你「搭积木」而不是「烧砖头」来构建 AI 应用。选对框架,开发效率提升 10 倍;选错框架,重构代码累到怀疑人生。

📑 目录


为什么需要 AI 开发框架

复制代码
不用框架(纯 OpenAI SDK):

你需要自己写:
├── Prompt 模板管理
├── 对话历史维护(滑动窗口/摘要)
├── 文档加载器(PDF/Markdown/HTML/...)
├── 文本分块策略
├── Embedding + 向量存储
├── 检索逻辑(向量/混合/Rerank)
├── Function Calling 循环
├── Agent 记忆系统
├── 工具定义与注册
├── 输出解析器(JSON/XML/结构化)
└── 追踪/日志/监控...

用框架:
这些大部分都已经封装好了!
你只需要:组装 → 配置 → 调试 → 上线

LangChain:生态最大,争议也最多

一句话定义

目前最流行的 AI 应用开发框架,提供从 LLM 调用到 Agent 编排的全链路抽象和工具集成。社区最活跃、集成最多,但也被批评「过度抽象」。

LangChain 核心概念

概念 说明 类比
Model LLM 的统一接口 统一了不同模型厂商的调用方式
Chain 多步骤的处理链 流水线,上一步输出是下一步输入
Agent 自主决策的智能体 带工具调用的循环决策系统
Memory 对话记忆 管理历史消息的各种策略
Retriever 检索器 从各种数据源获取相关文档
Tool/Toolkit 工具集 可被 Agent 调用的外部能力
Callback 回调钩子 日志、追踪、监控的拦截点
python 复制代码
# LangChain 快速示例:一个带 RAG 的 Chain
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_chroma import Chroma
from langchain.chains import create_retrieval_chain
from langchain_core.prompts import ChatPromptTemplate

# 1. 初始化模型和向量库
llm = ChatOpenAI(model="gpt-4o", temperature=0)
embeddings = OpenAIEmbeddings()
vectorstore = Chroma("my_docs", embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 5})

# 2. 定义 Prompt 和 Chain
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个有帮助的助手。基于以下上下文回答:"),
    ("user", "{input}\n\n上下文:{context}"),
])

chain = create_retrieval_chain(retriever, prompt.combine() | llm)

# 3. 一行调用
result = chain.invoke({"input": "公司年假政策是什么?"})
print(result["answer"])

LangChain 的优点 & 争议

✅ 优点 ❌ 争议
生态最全,集成几百种工具 抽象层过多,调试困难
社区活跃,问题容易搜到答案 版本迭代快,API 经常 breaking change
LangGraph 补强了编排能力 学习曲线陡峭
LangSmith 追踪平台好用 性能开销不可忽视

LlamaIndex:RAG 的最佳拍档

一句话定义

专注于数据处理和 RAG 的框架。如果你主要做知识库问答类应用,LlamaIndex 可能比 LangChain 更顺手。

python 复制代码
# LlamaIndex RAG 示例
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI

# 1. 加载文档
 documents = SimpleDirectoryReader("./data").load_data()

# 2. 构建索引(自动完成:分块→Embedding→存储)
index = VectorStoreIndex.from_documents(
    documents,
    embed_model=OpenAIEmbedding(),
    llm=OpenAI(model="gpt-4o")
)

# 3. 查询
response = index.as_query_engine().query(
    "公司的报销流程是怎样的?"
)
print(response)

LlamaIndex vs LangChain 的定位差异

LangChain LlamaIndex
定位 通用 AI 应用框架 数据连接 + RAG 专家
核心优势 Agent / 工具链 / 多步骤编排 文档处理 / 索引构建 / 检索质量
数据处理 需要配合 Unstructured 等 内置强大(100+ 数据加载器)
适合场景 复杂 Agent 应用、多工具协作 知识库、文档问答、数据分析
上手难度 中等偏高 相对平滑

Semantic Kernel:微软的答案

一句话定义

微软出品的 AI 开发 SDK,主打企业级场景和 .NET 生态集成。如果你的技术栈在 Azure/.NET 上,这是不二选择。

特点一览

  • 原生支持 C#/Python/Java
  • 深度集成 Azure OpenAI Service
  • Planner 概念类似 Agent 的规划能力
  • 插件(Plugin)体系对标 MCP/Skill
  • 企业级特性:遥测、日志、认证

三大框架对比

维度 LangChain LlamaIndex Semantic Kernel
语言 Python/JS Python/TS C#/Python/Java
定位 通用框架 RAG/数据专家 企业级/Azure
学习曲线 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
社区规模 最大 中等(微软生态)
RAG 能力 好(需组合) 最好(原生) 一般
Agent 能力 最好(LangGraph) 一般 好(Planner)
数据处理 依赖第三方 最强 一般
生产就绪度 需要 LangCloud 需要自行部署 Azure 直接用
适合谁 全栈 AI 开发者 RAG/知识库开发者 .NET/Azure 团队

怎么选?

复制代码
你的场景是什么?
│
├─ 主要做知识库/QA 系统?
│   └─→ **LlamaIndex** (RAG 天然优势)
│
├─ 做复杂 Agent / 多工具协作?
│   └─→ **LangChain + LangGraph** (编排能力强)
│
├─ 微软技术栈 / Azure 环境?
│   └─→ **Semantic Kernel** (原生集成)
│
├─ 只是简单调用 LLM API?
│   └─→ **都别用** (直接 SDK 就够了!)
│
└─ 不确定 / 想快速验证想法?
    └─→ **LangChain** (资料最多,遇到问题好搜)

❌ 常见误区

  • ❌ 必须用一个框架 --- 很多项目最终会「去框架化」,只保留需要的部分
  • ❌ 框架能解决所有问题 --- 框架帮你省的是胶水代码时间,业务逻辑还是要自己写
  • ❌ LangChain 过时了不好用了 --- 它依然是最流行的选择,只是不要过度依赖其高级抽象
相关推荐
海盗12346 小时前
微软技术日报 2026-09-07:Win11 默认开启内存完整性、统一版 Copilot 桌面端在即、明日 Patch Tuesday
microsoft·copilot
ToTensor7 小时前
DataGen——合成数据生成器:把一句任务描述变成可校验的训练数据
langchain·agent
ever_up97313 小时前
LangChain基础知识概述1
人工智能·python·langchain
编码者卢布14 小时前
【Azure Function】NodeJS Function大批量写入到Redis遇见丢失数据情况的分析
redis·microsoft·azure
Java后端的Ai之路14 小时前
LangChain Deep Agents 从入门到企业实战
开发语言·人工智能·python·langchain·deepagents
海盗123414 小时前
微软技术周报 2026-08-31~09-07:GPT-6 Astra 登陆 Foundry、M365 全球认证故障复盘、C# 15 封闭层级
gpt·microsoft·c#
靠谱者也16 小时前
AI Agent 从入门到实战:核心架构、工程挑战与落地实践
langchain·ai编程
智搜广告17 小时前
GEO优化公司怎么选?智搜广告从三个维度帮你判断
大数据·人工智能·python·elasticsearch·microsoft·geo
2601_9679355618 小时前
PCB制造检测机器视觉系统哪个牌子好?五大品牌能力解析
人工智能·microsoft
JavaPub-rodert1 天前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain