要使用 LangChain,开发人员首先要导入必要的组件和工具,例如 LLMs, chat models, agents, chains, 内存功能。这些组件组合起来创建一个可以理解、处理和响应用户输入的应用程序。
LangChain 为特定用例提供了多种组件,例如个人助理、文档问答、聊天机器人、查询表格数据、与 API 交互、提取、评估和汇总。
二、 主要包含组件:

Model I/O:管理大语言模型(Models),及其输入(Prompts)和格式化输出(Output Parsers)
Data connection:管理主要用于建设私域知识(库)的向量数据存储(Vector Stores)、内容数据获取(Document Loaders)和转化(Transformers),以及向量数据查询(Retrievers)
Memory:用于存储和获取 对话历史记录 的功能模块
Chains:用于串联 Memory ↔️ Model I/O ↔️ Data Connection,以实现 串行化 的连续对话、推测流程
Agents:基于 Chains 进一步串联工具(Tools),从而将大语言模型的能力和本地、云服务能力结合
Callbacks:提供了一个回调系统,可连接到 LLM 申请的各个阶段,便于进行日志记录、追踪等数据导流
Langchain核心模块架构图:
三、核心模块
3.1 Model I/O
模型接入 LLM 的交互组件,用于和不同类型模型完成业务交互,LangChain 将模型分为 LLMS、Chat Model两种模型方式,分别通过不同template操作完成三种模型的业务交互。
3.2 LLMs
是指具备语言理解和生成能力的商用大型语言模型,以文本字符串作为输入,并返回文本字符串作为输出。LangChain 中设计 LLM 类用于与大语言模型进行接口交互,该类旨在为 LLM 提供商提供标准接口,如 OpenAI、Cohere、Hugging Face。
3.3 Chat
聊天模型是语言模型的一个变体,聊天模型以语言模型为基础,其内部使用语言模型,不再以文本字符串为输入和输出,而是将聊天信息列表为输入和输出,他们提供更加结构化的 API。通过聊天模型可以传递一个或多个消息。LangChain 目前支持四类消息类型:分别是 AIMessage、HumanMessage、SystemMessage 和 ChatMessage 。
SystemMessage:系统消息是用来设定模型的一种工具,可以用于指定模型具体所处的环境和背景,如角色扮演等;
HumanMessage:人类消息就是用户信息,由人给出的信息,如提问;使用 Chat Model 模型就得把系统消息和人类消息放在一个列表里,然后作为 Chat Model 模型的输入
AIMessage:就是 AI 输出的消息,可以是针对问题的回答
ChatMessage:Chat 消息可以接受任意角色的参数
3.4 Prompts
提示(Prompt)指的是模型的输入,这个输入一般很少是硬编码的,而是从使用特定的模板组件构建而成的,这个模板组件就是 PromptTemplate 提示模板,可以提供提示模板作为输入,模板指的是我们希望获得答案的具体格式和蓝图。LangChain 提供了预先设计好的提示模板,可以用于生成不同类型任务的提示。当预设的模板无法满足要求时,也可以使用自定义的提示模板。
在 LangChain 中,我们可以根据需要设置提示模板,并将其与主链相连接以进行输出预测。此外,LangChain 还提供了输出解析器的功能,用于进一步精炼结果。输出解析器的作用是指导模型输出的格式化方式,以及将输出解析为所需的格式。
3.5 Data connection
打通外部数据的管道,包含文档加载,文档转换,文本嵌入,向量存储几个环节,此模块包含用于处理文档的实用工具函数、不同类型的索引,以及可以在链中使用这些索引
LangChain 可以将外部数据和 LLM 进行结合来理解和生成自然语言,其中外部数据可以是本地文档、数据库等资源,将这些数据进行分片向量化存储于向量存储数据库中,再通过用户的 Prompt 检索向量数据库中的相似信息传递给大语言模型进行生成和执行 Action。

3.5.1 Document loaders 文档加载器
重点包括了 txt(TextLoader)、csv(CSVLoader),html(UnstructuredHTMLLoader),json(JSONLoader),markdown(UnstructuredMarkdownLoader)以及 pdf(因为 pdf 的格式比较复杂,提供了 PyPDFLoader、MathpixPDFLoader、UnstructuredPDFLoader,PyMuPDF 等多种形式的加载引擎)几种常用格式的内容解析。
3.5.2 Document transformers 文档转换器
LangChain 有许多内置的文档转换器,可以轻松地拆分、组合、过滤和以其他方式操作文档,重点关注按照字符递归拆分的方式 RecursiveCharacterTextSplitter 。
3.5.3 Text embedding models 文本嵌入
LangChain 中的 Embeddings 基类公开了两种方法:一种用于嵌入文档,另一种用于嵌入查询。前者采用多个文本作为输入,而后者采用单个文本。将它们作为两种单独方法的原因是,某些嵌入提供程序对文档(要搜索的)与查询(搜索查询本身)有不同的嵌入方法。
文本嵌入模型 text-embedding-model 是将文本进行向量表示,从而可以在向量空间中对文本进行诸如语义搜索之类的操作,即在向量空间中寻找最相似的文本片段。而这些在 LangChain 中是通过 Embedding 类来实现的。
Embedding 类是一个用于与文本嵌入进行交互的类。这个类旨在为提供商(有许多嵌入提供商,如 OpenAI、Cohere、Hugging Face 等)提供一个标准接口
3.5.4 VectorStores 向量存储

存储和搜索非结构化数据的最常见方法之一是嵌入它并存储生成的嵌入向量,然后在查询时嵌入非结构化查询并检索与嵌入查询“最相似”的嵌入向量。
矢量存储负责存储嵌入数据并为您执行矢量搜索。。处理向量存储的关键部分是创建要放入其中的向量,这通常是通过 embedding 来创建的。这个就是对常用矢量数据库(Chroma、FAISS,Milvus,Pinecone,PGVector 等)封装接口的说明,大概流程:初始化数据库连接信息——>建立索引——>存储矢量——>相似性查询。
3.5.5 Retrievers 查询
检索器是一个接口,它根据非结构化查询返回文档。它比矢量存储更通用。检索器不需要能够存储文档,只需返回(或检索)它。矢量存储可以用作检索器的骨干,但也有其他类型的检索器。
检索器接口是一种通用接口,使文档和语言模型易于组合。LangChain 中公开了一个 get_relevant_documents 方法,该方法接受查询(字符串)并返回文档列表。
重点关注数据压缩,目的是获得相关性最高的文本带入 prompt 上下文,这样既可以减少 token 消耗,也可以保证 LLM 的输出质量。
3.5.6 Caching Embeddings 缓存嵌入
嵌入可以被存储或临时缓存以避免需要重新计算它们。缓存嵌入可以使用CacheBackedEmbeddings。
3.5.7 Memory

Memory 是在用户与语言模型的交互过程中始终保持状态的概念。体现在用户与语言模型的交互聊天消息过程,这就涉及为从一系列聊天消息中摄取、捕获、转换和提取知识。Memory 在 Chains/Agents 调用之间维持状态,默认情况下,Chains 和 Agents 是无状态的,这意味着它们独立地处理每个传入的查询,但在某些应用程序中,如:聊天机器人,记住以前的交互非常重要,无论是在短期的还是长期的。“Memory”这个概念就是为了实现这一点。
LangChain 提供了两种方式使用记忆存储 Memory 组件,一种是提供了管理和操作以前的聊天消息的辅助工具来从消息序列中提取信息;另一种是在 Chains 中进行关联使用。Memory 可以返回多条信息,如最近的 N 条消息或所有以前消息的摘要等。返回的信息可以是字符串,也可以是消息列表。
LangChain 提供了从聊天记录、缓冲记忆、Chains 中提取记忆信息的方法类以及接口,如 ChatMessageHistory 类,一个超轻量级的包装器,提供了一些方便的方法来保存人类消息、AI 消息,然后从中获取它们;再如 ConversationBufferMemory 类,它是 ChatMessageHistory 的一个包装器,用于提取变量中的消息等等。
3.5.8 Chains
通常我们使用单独的 LLM 也可以解决问题,但是对于更加复杂的应用程序需要在 LLM 之间或与其他系统进行链接来完成任务,这个通常称为链接 LLM。
链允许将模型或系统间的多个组件组合起来,创建一个单一的、一致的应用程序。举例来说,我们创建一个链,该链接受用户的输入,通过 PromptTemplate 模板对输入进行格式化并传递到 LLM 语言模型。还可以将多个链组合起来,或者将链与其他系统组件组合起来,来构建更复杂的链,实现更强大的功能。LangChain 为链提供了标准接口以及常见实现,与其他工具进行了大量集成,并为常见应用程序提供了端到端链。
3.5.9 Agents
通常用户的一个问题可能需要应用程序的多个逻辑处理才能完成相关任务,而且往往可能是动态的,会随着用户的输入不同而需要不同的 Action,或者 LLM 输出的不同而执行不同的 Action。因此应用程序不仅需要预先确定 LLM 以及其他工具调用链,而且可能还需要根据用户输入的不同而产生不同的链条。使用代理可以让 LLM 访问工具变的更加直接和高效,工具提供了无限的可能性,LLM 可以搜索网络、进行数学计算、运行代码等等相关功能。
LangChain 中代理使用 LLM 来确定采取哪些行动及顺序,查看观察结果,并重复直到完成任务。LangChain 库提供了大量预置的工具,也允许修改现有工具 或创建新工具。当代理被正确使用时,它们可以非常强大。在 LangChain 中,通过“代理人”的概念在这些类型链条中访问一系列的工具完成任务。根据用户的输入,代理人可以决定是否调用其中任何一个工具。
3.5.10 Callbacks
LangChain 提供了一个回调系统,允许您连接到 LLM 申请的各个阶段。这对于日志记录、监控、流传输和其他任务非常有用。
可以使用整个 API 中可用的参数来订阅这些事件。该参数是处理程序对象的列表,这些对象预计将实现下面更详细描述的一个或多个方法。

2 个月前
Xiaomi-Robotics-0 预训练了大量跨身体机器人轨迹和视觉语言数据,使其能够获得广泛且可推广的动作生成知识,同时保持强大的VLM能力。

2 个月前
AI Agent 的真正智能,来自于知识获取(RAG) + 协作协议(MCP) + 执行能力(SKILLS)的统一协同,而不是单一大模型孤立输出。

2 个月前
Agent是具备自主决策、工具调用与状态感知的智能体概念,LangGraph则是LangChain生态下的图驱动有状态Agent编排框架,专门解决复杂Agent的状态管理、循环分支与持久执行问题,是构建生产级Agent的核心基础设施。二者是“概念-实现”的强绑定关系,LangGraph为Agent提供图建模、状态持久化、人机协作等关键能力,适配ReAct、多智能体协作等复杂场景。 核心关联逻辑:概念与实现的分层 层级 定位 核心内容 概念层(Agent) 自主决策执行单元 LLM+Tools+自主循环(Thought→Action→Observation),解决非预定义复杂任务 实现层(LangGraph) 图驱动Agent框架 以有向图建模Agent流程,通过State/Nodes/Edges/Checkpointing支撑复杂逻辑 生态层 LangChain全家桶 LangGraph无缝集成LangChain的LLM/Tools/Prompt与LangSmith调试能力,降低开发门槛 LangGraph为Agent解决的核心痛点 有状态执行:用State统一管理对话历史、工具输出、中间结果,支持跨轮次上下文与长期记忆,避免“失忆”。 复杂流程编排:将Agent步骤拆为Nodes(LLM调用、工具执行、决策判断),用Edges(含条件分支)定义路径,原生支持循环(如ReAct迭代)与并行执行。 持久化与容错:Checkpointing自动保存每步状态,任务中断后可恢复,适配长时间运行场景(如多轮调研、项目管理)。 人机协作可控:支持执行中人工干预状态、审批工具调用,解决Agent“黑盒操作”风险。 多Agent协同:将不同功能Agent作为节点,通过图结构实现任务拆分与结果聚合,适配复杂团队协作流程。 典型实现范式:ReAct Agent的图建模 定义State:封装消息、工具结果、思考记录等,用TypedDict/Pydantic统一管理。 配置Nodes:LLM节点(推理决策)、工具节点(执行调用)、路由节点(判断是否继续)。 连接Edges:按条件分支(如“有工具调用则执行工具,否则结束”)构建循环路径。 启用Checkpointing:保存每步状态,支持断点恢复与调试追踪。 部署与监控:用LangSmith可视化执行路径,快速定位逻辑问题。 与传统Agent实现的差异 对比项 LangGraph驱动Agent LangChain基础Pipe 普通云端Agent 状态管理 原生持久化,跨轮次记忆 无内置状态,需手动维护 依赖会话缓存,易丢失 复杂逻辑 支持循环、条件分支、并行 线性流程,扩展有限 多为单步/固定链,灵活度低 容错能力 Checkpointing断点恢复 无容错,中断需重跑 云端依赖,故障难恢复 可控性 执行中人工干预 固定流程,干预困难 操作透明性差 关键使用场景 单Agent复杂任务:市场调研(搜索→数据清洗→报告生成)、财务对账(多系统数据拉取→交叉校验→异常告警)。 多Agent协作:产品开发(需求Agent→设计Agent→开发Agent→测试Agent)、跨境电商(选品→翻译→投放→售后)。 长期运行任务:客户成功跟进(多轮问题诊断→方案生成→效果复盘)、内容系列创作(选题→素材→撰写→发布)。 快速上手建议 用create_react_agent快速搭建基础Agent,绑定LLM与Tools,验证核心流程。 自定义State结构,覆盖任务类型、工具结果、历史对话等关键字段。 拆分Nodes与Edges,添加条件判断(如“金额>1000需审批”),提升流程可控性。 启用Checkpointing并接入LangSmith,监控执行路径与状态变化。

3 个月前
命令优先,而非图形界面。

3 个月前
这正是当前 AI 视频生成领域最前沿的突破方向。你提出的这个问题,本质上是在问如何让 AI 从“画皮”进阶到“画骨”——即不仅画面好看,运动逻辑也要符合现实世界的物理法则。 结合最新的技术进展(如 2025 年的相关研究),要让 AI 生成符合真实规律的视频,我们可以通过以下几种“高级语言描述法”来与模型沟通: 1. 使用“力提示”技术:像导演一样指挥物理力 🎬 这是谷歌 DeepMind 等团队提出的一种非常直观的方法。你不需要懂复杂的物理公式,只需要在提示词中描述“力”的存在。 描述力的方向与强度: 你可以直接告诉 AI 视频中存在某种力。例如,不只是写“旗帜飘动”,而是写“旗帜在强风中剧烈飘动”或“气球被轻轻向上吹起”。 区分全局力与局部力: 全局力(风、重力): 影响整个画面。例如:“Global wind force blowing from left to right”(从左到右的全局风力)。 局部力(碰撞、推力): 影响特定点。例如:“A ball rolling after being kicked”(球被踢后滚动)。 效果: AI 模型(如 CogVideoX 结合特定模块)能理解这些力的矢量场,从而生成符合动力学的运动,比如轻的物体被吹得更远,重的物体移动缓慢。 2. 调用“思维链”与物理常识:让 LLM 当质检员 🧠 有时候直接描述很难精准,我们可以借助大型语言模型(LLM)作为“中间人”来审核物理逻辑。这种方法(如匹兹堡大学的 PhyT2V)利用 LLM 的推理能力。 分步描述(Chain-of-Thought): 你可以在提示词中要求 AI “思考过程”。例如,不只是生成“水倒入杯子”,而是引导它:“首先,水从壶嘴流出,形成抛物线;然后,水撞击杯底,产生涟漪;最后,水位上升,流速减慢。” 明确物理规则: 在提示词中直接嵌入物理常识。例如:“根据重力加速度,球下落的速度应该越来越快”或“流体具有粘性,流动时会有拉丝效果”。 回溯修正: 如果第一版视频不符合物理规律(比如球浮在空中),你可以通过反馈指令让系统进行“回溯推理”,识别出视频与物理规则的语义不匹配,并自动修正提示词重新生成。 3. 参数化控制:像物理老师一样给定数值 📏 如果你需要极其精确的物理运动(例如做科学实验模拟或电影特效),可以使用类似普渡大学 NewtonGen 框架的思路,直接给定物理参数。 设定初始状态: 在语言描述中包含具体的物理量。 位置与速度: “一个小球从坐标 (0, 10) 以初速度 5m/s 水平抛出”。 角度与旋转: “一个陀螺以角速度 10rad/s 旋转”。 质量与材质: “一个轻质的泡沫块”与“一个沉重的铁球”在相同力作用下的反应是不同的。 指定运动类型: 明确指出是“匀速直线运动”、“抛物线运动”还是“圆周运动”。AI 会根据这些语义,调用内置的“神经物理引擎”来计算轨迹,确保视频中的物体运动轨迹符合牛顿定律。 4. 结合物理引擎的混合描述:虚实结合 🧩 更高级的方法是让语言描述直接驱动物理模拟器(如 Blender, Genesis),然后将结果渲染成视频。 描述物理属性: 在提示词中指定物体的密度、弹性系数、摩擦力等。 事件驱动描述: 描述物体间的相互作用。例如:“一个刚性的小球撞击一个柔软的布料,布料发生形变并包裹住小球”。 通用物理引擎: 像 Genesis 这样的新模型,允许你用自然语言描述复杂的物理场景(如“一滴水滑落”),它能直接生成符合流体动力学的模拟数据,而不仅仅是看起来像视频的图像帧。 📝 总结:如何写出“物理级”提示词? 为了更直观地掌握这种描述方式,这里总结了一个对比表: 一句话总结: 要用语言描述物理运动,关键在于将“视觉结果”转化为“物理过程”。多用描述力(风、推力)、属性(重力、粘性)、参数(速度、角度)的词汇,甚至直接告诉 AI 要遵循某种物理规律,这样生成的视频才会有真实的“重量感”和“真实感”。

3 个月前
利用大语言模型(LLM)构建虚拟的“世界模型”(World Models),以此作为 KI 智能体(AI Agents)积累经验和训练的场所。 核心概念:让 LLM 成为 AI 的“模拟练习场” 目前,开发能在现实世界执行复杂任务的 AI 智能体(如机器人、自动化软件助手)面临一个巨大挑战:获取实际操作经验的成本极高且充满风险。 如果让机器人在物理世界中通过“试错”来学习,不仅效率低下,还可能造成硬件损毁。 研究人员提出的新思路是:利用已经掌握了海量人类知识的大语言模型(LLM),由它们通过文字或代码生成一个模拟的“世界模型”。 1. 什么是“世界模型”? 世界模型是一种模拟器,它能预测特定行为可能产生的结果。 传统方式: 需要开发者手动编写复杂的代码来定义物理法则和环境规则。 LLM 驱动方式: 预训练的大模型(如 GPT-4 或 Claude)已经具备了关于世界运行逻辑的知识(例如:知道“推倒杯子水会洒”)。研究人员可以利用 LLM 自动生成这些模拟环境的逻辑。 2. 研究的具体内容 来自上海交通大学、微软研究院、普林斯顿大学和爱丁堡大学的国际研究团队对此进行了深入研究。他们测试了 LLM 在不同环境下充当模拟器的能力: 家庭模拟(Household Simulations): 模拟洗碗、整理房间等日常任务。 电子商务网站(E-Commerce): 模拟购物行为、库存管理等逻辑。 3. 关键发现: 强结构化环境表现更佳: 在规则清晰、逻辑严密的场景(如简单的文本游戏或特定流程)中,LLM 驱动的模拟效果非常好。 开放世界的局限性: 对于像社交媒体或复杂的购物网站这类高度开放的环境,LLM 仍需要更多的训练数据和更大的模型参数才能实现高质量的模拟。 真实观察的修正: 实验显示,如果在 LLM 模拟器中加入少量来自现实世界的真实观察数据,模拟的质量会显著提升。 对 AI 行业的意义 加速 AI 智能体进化: 这种方法让 AI 智能体可以在几秒钟内完成数千次的虚拟实验,极大加快了学习速度。 降低训练门槛: 开发者不再需要搭建昂贵的物理实验室,只需要调用 LLM 接口就能创建一个“训练场”。 2026 年的趋势: 这预示着 2026 年及以后,“自主智能体”将成为 AI 发展的核心,而这种“基于模拟的学习”将是通往通用人工智能(AGI)的关键一步。 总结 该研究证明,LLM 不仅仅是聊天机器人,它们可以演变成复杂的“数字世界创造者”。在这个虚拟世界里,新一代的 AI 智能体可以安全、低成本地反复磨练技能,最终再将学到的能力应用到现实生活和工作中。 ( 根据海外媒体编译 )

4 个月前
Nova 2是亚马逊于2025年12月在re:Invent 全球大会上推出的新一代基础模型家族,共包含4款模型,均需通过Amazon Bedrock平台使用,兼顾行业领先的性价比与多场景适配性,具体介绍如下 : 1. Nova 2 Lite: 主打快速、高性价比的日常推理任务,可处理文本、图像和视频输入并生成文本。能通过调节“思考”深度平衡智能、速度与成本,适合客服聊天机器人、文档处理等场景。在基准测试中,它对标Claude Haiku 4.5、GPT - 5 Mini等模型,多数项目表现持平或更优。 2. Nova 2 Pro(预览版): 是该家族中智能度最高的推理模型,可处理文本、图像、视频和语音输入并生成文本。适配代理编码、长期规划等复杂任务,还能作为“教师模型”向小型模型传递能力,在与Claude Sonnet 4.5、Gemini 2.5 Pro等主流模型的对比中,多项基准测试表现出色。 3. Nova 2 Sonic: 专注端到端语音交互的模型,能实现类人化实时对话。它支持多语言与丰富音色,拥有100万token上下文窗口,可支撑长时交互,还能与Amazon Connect等语音服务、对话框架无缝集成,适配客服、AI助手等语音场景。 4. Nova 2 Omni: 业内首款统一多模态推理与生成模型,可处理文本、图像等多种输入,还能同时生成文本和图像。它能一次性处理海量多格式内容,比如数百页文档、数小时音频等,适合营销素材一站式制作等需要整合多类信息的场景。 这4款模型均具备100万token上下文窗口,且内置网页查找和代码执行能力,能保障回答的时效性与实用性 。

5 个月前
LoRA(Low-Rank Adaptation)是一种对大模型进行“轻量级微调”的技术。
Minimax(海螺AI)已由大模型名Minimax替换原海螺AI。现海螺AI为Minimax视频生成产品名。
海螺AI