LangChain 是什么

LangChain 是什么

LangChain 是一个开源的Python/JS框架,专门用来开发基于大语言模型(LLM)的应用程序。它的核心价值是: 把"调用AI API"这件事,从简单的一问一答,变成可以使用工具、读取数据、多步推理的复杂应用。

简单说,如果没有LangChain,你调用GPT/Claude的API就是发一个prompt、收一个回复。有了LangChain,你可以让AI自动查数据库、调接口、读文件、执行代码,然后综合这些信息给出答案。

核心概念

1. Chain(链)

最基础的概念。把多个步骤串起来,前一步的输出是后一步的输入。

比如一个"BMC故障诊断链":

复制代码
用户描述问题 -> AI提取关键词 -> 搜索故障知识库 -> AI生成诊断方案 -> 格式化输出

每一步都是链中的一个节点,LangChain帮你管理数据在节点间的流转。

2. Tool(工具)

让AI能"动手"。你把一个Python函数注册为Tool,AI就可以在需要时自动调用它。

python 复制代码
from langchain.tools import tool

@tool
def read_bmc_sensor(sensor_name: str) -> str:
    """读取BMC上指定传感器的当前值"""
    # SSH到BMC,执行busctl命令,返回结果
    result = ssh_execute(f"busctl get-property xyz.openbmc_project.Sensor...")
    return result

@tool
def check_service_status(service_name: str) -> str:
    """检查BMC上指定systemd服务的状态"""
    result = ssh_execute(f"systemctl status {service_name}")
    return result

注册这些工具后,当你问AI"风扇传感器怎么读不到值了",AI会自己决定: 先调用check_service_status检查phosphor-pid-control状态,再调用read_bmc_sensor查看传感器数据,然后综合分析。

3. Agent(代理)

Agent = LLM + Tools + 推理循环。

Agent的运行逻辑是一个循环:

复制代码
1. 收到用户问题
2. AI思考: 我需要什么信息?
3. AI选择一个Tool执行
4. 拿到Tool的返回结果
5. AI思考: 信息够了吗?
   - 不够 -> 回到步骤2,选择下一个Tool
   - 够了 -> 生成最终回答

这就是ReAct(Reasoning + Acting)模式,也是目前Agent的主流范式。本质上我现在的工作方式就是这个模式 - 我会思考、调用工具、观察结果、再决定下一步。

4. Memory(记忆)

管理对话历史和长期知识。

  • ConversationBufferMemory: 保留完整对话历史
  • ConversationSummaryMemory: AI自动总结历史,节省token
  • VectorStoreMemory: 把历史存入向量数据库,按相关性检索

5. Retrieval(检索) - RAG的核心

复制代码
你的文档(PDF/代码/手册)
    ↓ 切分成小块
    ↓ 用Embedding模型转成向量
    ↓ 存入向量数据库(Chroma/FAISS/Milvus)
    ↓
用户提问 -> 转成向量 -> 在数据库中找最相似的文档块 -> 连同问题一起发给AI

比如你把AT625X2的硬件手册、原理图PDF、所有源代码都建立索引,AI就能在回答问题时自动检索相关内容,而不是凭记忆瞎猜。

一个BMC Agent的伪代码示例

用LangChain构建你的BMC调试Agent大概长这样:

python 复制代码
from langchain.agents import create_react_agent
from langchain_openai import ChatOpenAI
from langchain.tools import tool
from langchain_community.vectorstores import Chroma

# 1. 选择LLM
llm = ChatOpenAI(model="gpt-4")

# 2. 定义工具
@tool
def ssh_bmc(command: str) -> str:
    """在BMC上执行命令并返回输出"""
    return ssh_execute(bmc_ip, "Administrator", "Hkzy@8000", command)

@tool
def search_docs(query: str) -> str:
    """搜索硬件文档和代码注释"""
    docs = vector_db.similarity_search(query, k=3)
    return "\n".join([d.page_content for d in docs])

@tool
def search_fault_cases(symptom: str) -> str:
    """搜索历史故障案例库"""
    cases = fault_db.similarity_search(symptom, k=3)
    return "\n".join([c.page_content for c in cases])

# 3. 创建Agent
agent = create_react_agent(
    llm=llm,
    tools=[ssh_bmc, search_docs, search_fault_cases],
    prompt=system_prompt  # 包含BMC领域知识的系统提示词
)

# 4. 运行
response = agent.invoke("phosphor-pid-control启动失败了,帮我排查")
# Agent会自动:
#   1. 调用ssh_bmc("systemctl status phosphor-pid-control")
#   2. 调用ssh_bmc("journalctl -u phosphor-pid-control -n 50")
#   3. 调用search_fault_cases("pid control启动失败")
#   4. 根据日志和历史案例给出诊断

LangChain的生态位

  • LangChain: 最早最成熟的框架,生态最大,但被批评过度抽象
  • LlamaIndex: 更专注于RAG(数据检索)场景,如果你的Agent主要是"查文档回答问题",它更合适
  • CrewAI: 专注多Agent协作
  • AutoGen(微软): 多Agent对话框架
  • Dify/FastGPT: 低代码Agent平台,拖拽式构建,适合快速验证想法

和你现在的方式对比

你现在用Gemini + skill/workflow的方式:

  • 优点: 零开发成本,AI能力强(Gemini本身就很强)
  • 缺点: 依赖平台,无法定制推理流程,无法接入自己的知识库

用LangChain自建Agent:

  • 优点: 完全可控,可以接入任意数据源和工具,可部署为团队服务
  • 缺点: 需要开发和维护,LLM调用有成本,需要自己处理各种边界情况

如果你想试水,建议从一个最小的LangChain Agent开始: 就两三个tool + 一个简单的RAG,跑通"自动SSH到BMC查日志并分析"这个场景。这样你就能直观感受到和现在方式的区别了。

相关推荐
Tbisnic5 小时前
LangChain的 六大核心组件与 RAG 知识库构建
人工智能·python·ai·langchain·rag·langgraph
gb42152878 小时前
python中pypdf库和langchain-unstructured库在解析pdf文件的时候的区别?
python·langchain·pdf
badhope9 小时前
用RAG做了个智能客服,上线第一天就被用户骂了——我的7天实战复盘
人工智能·langchain
Wang's Blog15 小时前
AI Agent白手起家44: LangChain 文档切分实战 — 长度、文本架构与语义切片
人工智能·langchain
jaboo1215 小时前
postgresql从入门到精通
数据库·postgresql·langchain
闲猫1 天前
LangChain / Integrations / Integrations by component / Tool
java·数据库·langchain
程序员AI工坊1 天前
Agent 开发:ReAct 循环与工具调用实战——从单次调用到自主 Agent
人工智能·后端·python·langchain·agent·react
Wang's Blog1 天前
AI Agent白手起家41: LangChain 链的高级应用:函数、记忆、路由与容错
langchain
Wang's Blog2 天前
AI Agent白手起家37: LangChain 输出解析器实战:文本、JSON、XML 与 Pydantic
xml·langchain·json
梦想三三2 天前
Qwen Function Calling实战:重构电商客服AI Agent
人工智能·python·langchain·大模型·rag