LangChain 是什么

张开发
2026/5/31 17:31:52 15 分钟阅读
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函数注册为ToolAI就可以在需要时自动调用它。fromlangchain.toolsimporttooltooldefread_bmc_sensor(sensor_name:str)-str:读取BMC上指定传感器的当前值# SSH到BMC执行busctl命令返回结果resultssh_execute(fbusctl get-property xyz.openbmc_project.Sensor...)returnresulttooldefcheck_service_status(service_name:str)-str:检查BMC上指定systemd服务的状态resultssh_execute(fsystemctl status{service_name})returnresult注册这些工具后当你问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自动总结历史节省tokenVectorStoreMemory: 把历史存入向量数据库按相关性检索5. Retrieval(检索) - RAG的核心你的文档(PDF/代码/手册) ↓ 切分成小块 ↓ 用Embedding模型转成向量 ↓ 存入向量数据库(Chroma/FAISS/Milvus) ↓ 用户提问 - 转成向量 - 在数据库中找最相似的文档块 - 连同问题一起发给AI比如你把AT625X2的硬件手册、原理图PDF、所有源代码都建立索引AI就能在回答问题时自动检索相关内容而不是凭记忆瞎猜。一个BMC Agent的伪代码示例用LangChain构建你的BMC调试Agent大概长这样:fromlangchain.agentsimportcreate_react_agentfromlangchain_openaiimportChatOpenAIfromlangchain.toolsimporttoolfromlangchain_community.vectorstoresimportChroma# 1. 选择LLMllmChatOpenAI(modelgpt-4)# 2. 定义工具tooldefssh_bmc(command:str)-str:在BMC上执行命令并返回输出returnssh_execute(bmc_ip,Administrator,Hkzy8000,command)tooldefsearch_docs(query:str)-str:搜索硬件文档和代码注释docsvector_db.similarity_search(query,k3)return\n.join([d.page_contentfordindocs])tooldefsearch_fault_cases(symptom:str)-str:搜索历史故障案例库casesfault_db.similarity_search(symptom,k3)return\n.join([c.page_contentforcincases])# 3. 创建Agentagentcreate_react_agent(llmllm,tools[ssh_bmc,search_docs,search_fault_cases],promptsystem_prompt# 包含BMC领域知识的系统提示词)# 4. 运行responseagent.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查日志并分析这个场景。这样你就能直观感受到和现在方式的区别了。

更多文章