LangChain
文章平均质量分 89
佑瞻
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LangGraph 函数式 API 实战:用极简方式构建强大工作流系统
非侵入性:无需重构现有代码,几行装饰器即可添加高级功能灵活性:支持标准 Python 控制流,兼容函数式与图形 API完备性:涵盖并行执行、持久化、人机交互等复杂场景需求。原创 2025-06-22 18:56:34 · 959 阅读 · 0 评论 -
LangGraph Functional API 实战:用最小改动为应用注入持久化与交互能力
的定义非常简洁,只需装饰一个函数并指定 checkpointer(用于持久化):python"""累加器工作流,演示短期记忆功能"""这个工作流接收一个数字,与之前的结果累加。当我们多次调用时:python# 第一次调用print(result1) # 输出: 1# 第二次调用,previous会记住上次的结果print(result2) # 输出: 3@task异步执行:不阻塞主线程,可并发处理多个任务检查点保存:任务结果会保存到检查点,支持工作流恢复python@task。原创 2025-06-22 18:49:41 · 746 阅读 · 0 评论 -
深度解析 LangGraph 多智能体系统的通信机制与状态管理策略
多智能体系统的通信与状态管理是 AI 工程化的核心挑战,其设计质量直接影响系统的可扩展性与可靠性。本文系统梳理了 LangGraph 中相关的技术细节与实践方案,希望能为开发者提供实用的技术参考。原创 2025-06-22 18:34:11 · 1173 阅读 · 0 评论 -
LangGraph 多智能体架构全解析:五种经典模式与交接实战应用指南
显式控制流(普通边):LangGraph 允许通过 普通图边显式定义应用程序的控制流(即智能体之间通信的顺序)。这是上述架构中最具确定性的变体 —— 我们始终提前知道接下来将调用哪个智能体。动态控制流(指令):在LangGraph中,可以让大语言模型(LLMs)决定应用程序控制流的部分内容。这可以通过使用Command来实现。其中一种特殊情况是监督者工具调用架构。在这种情况下,为监督者智能体提供支持的工具调用大语言模型将决定调用工具(智能体)的顺序。python# 显式定义调用流程适用场景。原创 2025-06-22 18:05:05 · 1543 阅读 · 0 评论 -
深入解析 LangGraph 子图:从架构设计到复杂系统构建的全实践指南
封装与抽象:将复杂逻辑封装为可复用的子图模块灵活通信:支持共享状态与状态转换两种通信模式工程化支持:提供持久化、状态查看、流式处理等工程能力。原创 2025-06-22 17:16:48 · 1106 阅读 · 0 评论 -
解锁 LangGraph 时间旅行功能:从决策溯源到路径探索的全流程实践
LangGraph 的时间旅行功能为我们提供了一把打开非确定性系统决策黑箱的钥匙。通过精准的状态回溯和路径探索,我们能够更深入地理解智能体的决策过程,更高效地调试问题,更灵活地探索不同的解决方案。原创 2025-06-22 17:04:42 · 847 阅读 · 0 评论 -
深度剖析 LangGraph 断点调试体系:从底层原理到全场景实战指南
断点调试作为 LangGraph 开发中的 "瑞士军刀",其价值远不止于定位 bug,更在于帮助我们深入理解图计算的运行本质。从静态断点的精准定位到动态断点的智能触发,从单图调试到分布式环境下的断点协调,每一个技术细节都蕴含着框架设计者的匠心。原创 2025-06-22 16:17:29 · 952 阅读 · 0 评论 -
LangGraph 人工介入机制实战:interrupt 功能设计与应用模式解析
先来看一个完整的中断示例,注意代码中三个关键阶段的衔接:python# 1. 定义包含interrupt的节点函数"""当图执行到该节点时会暂停,等待人工输入"""# 传递需要人工处理的文本内容"instruction": "请将这段文本简化为50字以内"})# 返回人工处理后的结果,更新图状态# 2. 构建并编译图checkpointer = Checkpointer() # 必须指定检查点保存状态# 3. 执行图并处理中断# 首次调用触发中断。原创 2025-06-22 16:01:46 · 2386 阅读 · 0 评论 -
LangGraph 长期记忆框架解析:类型划分与更新策略实践指南
长期记忆是智能体从 "人工" 走向 "智能" 的关键一步。通过理解记忆的类型和更新策略,我们可以构建出更具个性化、更能适应用户需求的智能应用。从语义记忆的精准存储,到情景记忆的经验积累,再到程序性记忆的自主优化,每一个环节都凝聚着人类认知科学与 AI 技术的智慧结晶。原创 2025-06-22 15:21:46 · 1483 阅读 · 0 评论 -
深入解析 LangGraph 持久性机制:从状态管理到跨线程记忆共享
LangGraph 的持久性机制不仅是简单的状态保存,更是构建 "有记忆" 智能系统的基础。从检查点的时光胶囊到 Store 的跨线程记忆,从状态回放的时间旅行到加密存储的安全保障,这套机制为我们提供了完整的状态管理解决方案。特别值得注意的是 Pending Writes 处理、检查点接口规范等底层设计,它们构成了 LangGraph 高可用的核心支撑。原创 2025-06-21 14:09:18 · 1655 阅读 · 0 评论 -
LangGraph 流式输出全攻略:从基础用法到高级特性的深度解析
通过,我们可以在节点内部主动发送自定义数据:pythonquery: strgraph = (.compile()# 流式传输自定义数据为用户提供更流畅的实时交互体验优化内存使用,处理大规模输出精确监控和调试复杂流程实现 LLM 生成内容的实时展示。原创 2025-06-21 13:51:04 · 3056 阅读 · 0 评论 -
LangGraph 归约器深度解析:从状态更新到复杂流程的核心控制机制
通过 LangGraph,我们获得了一种声明式定义复杂流程的能力,而其中归约器是实现状态高效管理的核心机制。优先设计状态结构与归约器:在构建图之前,先明确每个状态键的更新规则,通过 Annotated 类型指定合适的归约器并行场景必用归约器:只要有多个节点可能更新同一状态键,就应该考虑使用归约器避免覆盖善用 operator 模块的归约器(列表追加、数值累加)、(字符串拼接)等是最常用的归约器复杂场景自定义归约器:如果内置归约器不满足需求,可以定义自定义函数作为归约器归约器与条件分支结合。原创 2025-06-20 20:28:41 · 1345 阅读 · 0 评论 -
深入理解 LangGraph:从状态图构建到复杂流程控制的全攻略
通过 LangGraph,我们获得了一种声明式定义复杂流程的能力:从线性步骤到并行分支,从条件路由到循环控制,再到异步处理与命令式编程的结合,这套框架几乎覆盖了智能应用开发中的所有流程控制场景。从状态建模开始:先定义清晰的 State 结构,通过 Reducer 控制状态更新方式善用快捷方式等方法能大幅减少线性流程的代码量注意并行执行的顺序性:当需要严格顺序时,通过状态字段或延迟执行控制始终设置循环终止条件:结合递归限制,避免程序异常在 IO 密集场景使用异步:充分利用ainvoke提升并发性能。原创 2025-06-20 20:25:06 · 1141 阅读 · 0 评论 -
LangGraph 状态管理全解析:从定义到高级应用
在 LangGraph 中,状态可以通过多种方式定义,包括 TypedDict、Pydantic 模型或数据类。我们先以 TypedDict 为例,看看如何构建一个基础的状态结构:python运行这个状态结构包含两个字段:一个消息列表和一个整数类型的额外字段。默认情况下,图的输入和输出模式由状态决定,这为大多数 LLM 应用提供了灵活的表述方式。默认情况下,StateGraph 使用单一模式,但我们也可以定义独立的输入和输出模式:python运行# 输入模式# 输出模式# 整体模式pass。原创 2025-06-20 20:07:28 · 585 阅读 · 0 评论 -
深入理解 LangGraph 运行时 Pregel:从架构设计到实战应用
今天我们深入剖析了 LangGraph 运行时 Pregel 的核心机制,从架构设计到具体实现,再到实战示例,全面了解了这个强大的图计算引擎。无论是处理大规模并行任务,还是管理多智能体间的状态通信,Pregel 都提供了完善的解决方案。原创 2025-06-20 19:53:21 · 375 阅读 · 0 评论 -
深入解析 LangGraph 的动态控制流与状态管理:从 Send 到 Command 的全场景实践
通过今天的分享,我们深入了解了 LangGraph 中Send和Command这两个核心组件,以及它们在动态控制流和状态管理中的强大能力。从 map-reduce 模式的动态边生成,到多智能体交接中的状态更新与流程控制,再到子图导航、图迁移等高级特性,LangGraph 为我们提供了一套完整的解决方案。原创 2025-06-20 19:48:52 · 1306 阅读 · 0 评论 -
深入理解 LangGraph:智能体工作流的图模型设计与实践
边是流程的 "导航系统",根据状态决定下一个执行的节点:python运行# 根据处理阶段选择下一个节点else:边可以是固定转移或条件分支,决定了节点间的执行顺序。核心关系总结:节点负责处理业务逻辑,边控制流程走向,状态则是贯穿始终的信息载体。这种设计让复杂循环流程变得可控,就像用电路图规划电流路径。使用 Annotated 为字段指定 Reducer 函数,例如列表追加:python运行# 使用add函数实现列表合并# 初始状态state = {"logs": ["系统启动"]}原创 2025-06-20 19:14:20 · 1573 阅读 · 0 评论 -
LLM 工作流与智能体架构深度解析:从提示链到自主决策系统的实践
工作流:通过预定义的代码路径编排 LLM 和工具,如同按照剧本表演的演员,流程固定且可预测智能体:LLM 动态指导自身流程和工具使用,类似即兴发挥的导演,能根据环境自主调整策略Anthropic 在《Building Effective Agents》中形象地指出:"工作流是被代码控制的 LLM 应用,而智能体是 LLM 控制的应用系统"。工作流会固定调用 "医学知识库查询" 工具并返回结果智能体可能先判断问题复杂度,再决定是调用知识库、建议就医,还是追问症状细节。原创 2025-06-20 18:39:22 · 467 阅读 · 0 评论 -
深入解析 LLM 智能体架构:从路由器到自定义框架的全栈实践
应用场景:金融交易、个人信息修改、高价值操作实现方式:通过 interrupt () 函数暂停流程等待审核LangGraph 实现python运行# 触发人工审核f"即将转账{amount}元到账户{to_account},请确认"# 执行转账return "转账成功"else:return "转账已取消"通过本文的解析,我们系统了解了智能体架构的演进路径 —— 从简单的路由器到具备规划、记忆能力的复杂系统,再到支持人工审核和并行处理的高级框架。原创 2025-06-20 18:30:14 · 389 阅读 · 0 评论 -
LangGraph 多智能体系统深度解析:从监督式到群体式架构实战
下面我们深入了解如何自定义交接工具,这是实现灵活多智能体系统的关键:python"""创建自定义交接工具的工厂函数"""description = description or f"转交给{agent_name}"# 创建工具消息,记录交接动作"content": f"成功转交给{agent_name}",# 返回Command对象,指定交接目标和传递的消息goto=agent_name, # 目标智能体名称。原创 2025-06-20 17:46:55 · 1171 阅读 · 0 评论 -
LangGraph 内存与人工介入深度解析:构建有记忆的智能交互系统
通过持续生成对话摘要,既能保留关键信息,又不会超出上下文限制:python# 初始化模型,就像找一个"速记员"来总结对话# 配置总结节点,设置摘要规则token_counter=count_tokens_approximately, # 计算令牌数的工具model=model, # 使用的LLM模型max_tokens=384, # 原始消息最大令牌数max_summary_tokens=128, # 总结后的最大令牌数。原创 2025-06-20 17:31:49 · 1108 阅读 · 0 评论 -
LangGraph 流式传输与工具开发深度解析:从原理到实战应用
在处理耗时任务时,工具自定义流能有效提升用户体验。实时反馈已处理数据量展示处理进度百分比传递中间结果供预览python"""处理大型数据文件并实时反馈进度"""# 处理每一行数据# 每处理100条记录发送一次进度更新writer(f"已处理 {processed}/{total_records} 条记录,进度: {progress:.2f}%")return "数据处理完成"# 启用自定义流获取工具执行进度。原创 2025-06-20 17:08:29 · 952 阅读 · 0 评论 -
LangGraph:智能体开发基础组件与核心概念解析
通过本文的介绍,我们深入了解了 LangGraph 在智能体开发中的强大能力。从智能体的核心组成到运行机制,从关键特性到预构建组件,从模型配置到上下文管理,LangGraph 为我们提供了一套完整的智能体开发解决方案。快速构建具备记忆能力的智能体轻松实现人在回路的交互控制利用流式输出提升用户体验通过预构建组件加速开发过程灵活配置模型和工具借助上下文管理实现更智能的交互随着 AI 技术的不断发展,智能体在各个领域的应用将越来越广泛。原创 2025-06-20 16:37:51 · 519 阅读 · 0 评论 -
LangGraph 进阶实战:从人工介入到时间旅行的智能交互系统构建
多轮对话中的结构化数据存储跨节点的状态共享持久化层的复杂数据管理LangGraph 允许我们向状态中添加自定义字段,实现更灵活的业务逻辑。人在回路控制:通过 interrupt 机制实现人工干预,提升系统可靠性自定义状态:扩展状态结构,满足复杂业务需求时间旅行:状态历史管理,支持回溯和重放。原创 2025-06-20 15:37:53 · 670 阅读 · 0 评论 -
LangGraph 实战:从基础聊天机器人到智能交互系统的进阶之路
设置入口点并编译状态图:python# 添加从起点到聊天节点的边# 编译得到可执行的图python# 初始化搜索工具,最多返回2条结果# 测试工具调用")工具会返回包含标题、URL 和内容摘要的搜索结果,这些信息可以帮助机器人回答更专业的问题。通过 LangGraph,我们实现了从基础聊天机器人到具备工具调用和记忆能力的智能交互系统。整个过程中,StateGraph 作为状态机的核心思想贯穿始终,通过节点和边的组合,我们可以灵活定义复杂的交互逻辑。原创 2025-06-20 12:18:35 · 1252 阅读 · 0 评论 -
LangChain Expression Language (LCEL) 速查表:从基础操作到高级组合的全面指南
通过这份速查表,我们系统整理了 LCEL 的核心原语和用法,从基础的调用、批量处理,到复杂的组合、动态构建,再到高级的配置、事件流处理。LCEL 的强大之处在于它提供了一种统一的方式来表达和组合各种可运行对象,让我们可以轻松构建复杂的逻辑流程。原创 2025-06-19 19:20:12 · 994 阅读 · 0 评论 -
LangChain 回调函数全攻略:从运行时传入到自定义事件调度
在问答系统中,我们常常希望实时展示模型的生成过程,而不是等待完整结果。自定义回调处理器可以轻松实现这一需求:pythonprint(token, end="", flush=True) # 实时打印每个token# 启用流式并传入自定义回调# 调用链,实时看到笑话生成过程实时输出效果plaintext对于需要数分钟完成的数据分析任务,我们希望实时监控其进度。自定义事件调度可以实现这一需求:python# 定义异步任务# 调度自定义事件:任务开始# 模拟任务阶段# 调度自定义事件:任务进度。原创 2025-06-19 18:37:45 · 551 阅读 · 0 评论 -
为 LLM 和聊天模型添加临时工具调用能力全攻略
通过临时工具调用能力,我们突破了模型原生功能的限制,为智能应用开发开辟了更广阔的空间。从简单的数学计算到复杂的业务系统集成,这种方案让我们能够根据需求灵活扩展模型能力,而无需依赖模型提供商的功能更新。原创 2025-06-19 18:27:30 · 494 阅读 · 0 评论 -
LangChain 可运行对象转工具全攻略:从基础转换到智能体应用的深度实践
当没有类型注解时,可通过arg_types参数指定参数类型:python运行# 通过arg_types指定参数类型name="乘法工具",description="用于计算整数与整数列表最大值的乘积",通过将 Runnables 转换为工具,我们为智能体赋予了更强大的外部交互能力。从文档检索到复杂问答,从自动操作到人工审批,这些技术组合使智能体能够在各种场景中可靠运行。原创 2025-06-19 18:18:54 · 816 阅读 · 0 评论 -
LangChain 工具运行时参数传递与错误处理全攻略
python运行pets: List[str] = Field(..., description="宠物列表")user_id: Annotated[str, InjectedToolArg] = Field(..., description="用户ID")通过运行时参数注入与完善的错误处理机制,我们终于解决了智能体开发中的安全与稳定性难题。这些技术不仅能防止敏感信息泄露,还能大幅提升智能体的鲁棒性,使其在复杂业务场景中可靠运行。原创 2025-06-19 18:07:49 · 1050 阅读 · 0 评论 -
LangChain 工具开发全攻略:从函数装饰到异步编程的智能体工具箱构建
在构建 LangChain 智能体时,我们常常面临这样的困境:如何让模型能够灵活调用外部工具,实现数据查询、计算处理等复杂功能?工具作为智能体与外部世界交互的桥梁,其设计质量直接影响智能体的表现。今天我们将系统拆解 LangChain 工具开发的核心技术,从基础的函数装饰器到高级的异步架构,带你打造高效可靠的工具生态,让智能体真正具备 "动手能力"。工具是智能体与外部世界交互的接口,就像人类通过五官感知环境、用四肢执行动作。一个标准的 LangChain 工具包含以下核心组件:这些组件共同构成工具的 "人格原创 2025-06-19 17:20:20 · 651 阅读 · 0 评论 -
LangChain 索引 API 深度实践:从原理到落地的智能文档管理全攻略
为了实现端到端的自动化索引,我们需要开发自定义加载器,将数据源与索引 API 无缝对接:python"""网页内容加载器,支持自动提取正文并分块"""# 1. 抓取网页内容main_content = soup.find("article") # 假设正文在article标签# 2. 提取正文文本else:# 3. 分块处理# 4. 添加元数据# 使用自定义加载器索引网页内容index(加载器优化点增量抓取:记录上次抓取时间,仅更新新增内容。原创 2025-06-19 17:01:52 · 802 阅读 · 0 评论 -
LangChain 高级检索技术实战:混合搜索、自查询与时间加权检索全攻略
通过混合搜索、自查询检索器和时间加权检索这三大技术,我们终于突破了传统检索的局限,让系统同时具备语义理解、结构化查询和时间感知能力。从企业知识库到电商搜索,从客服系统到学术文献检索,这些技术正在重塑信息获取的方式。原创 2025-06-19 16:35:03 · 1485 阅读 · 0 评论 -
LangChain 多向量检索深度解析:从文档拆分到智能检索的全流程实践
想象每篇文档都有一个 "内容大纲",摘要就像这个大纲的精简版。当用户查询时,摘要向量能更快定位到核心主题,尤其适合处理专业性强或内容复杂的文档。比如科技论文的摘要往往包含最关键的研究点,比全文更易匹配用户查询。python运行# 1. 构建摘要生成链chain = (| llm# 2. 批量生成摘要# 3. 初始化多向量检索器(索引摘要)# 4. 创建摘要文档并索引。原创 2025-06-19 16:17:13 · 687 阅读 · 0 评论 -
LangChain 检索器评分体系深度构建:从单源优化到多源融合的全场景实践
当我们在构建智能问答系统时,是否曾遇到过这样的困境:检索器返回了一堆文档,却无法判断哪篇与问题真正 "情投意合"?默认情况下,LangChain 检索器就像个 "哑巴快递员",只负责送货却不告知货物的 "重要程度"。今天我们就来打造一套完整的检索评分体系,让每篇文档都能 "自报家门",从基础向量存储到高阶集成策略,层层拆解如何让检索结果拥有 "量化灵魂"。原创 2025-06-19 15:42:18 · 1031 阅读 · 0 评论 -
LangChain 自定义检索器开发全攻略:从基础实现到异步优化
对接非标准数据源(如私有数据库、API 接口)实现特定业务逻辑的检索规则优化特殊格式文档的检索效果集成自定义的相关性判断算法LangChain 的检索器核心接口基于:同步检索方法,实现核心检索逻辑:异步检索方法(可选,推荐实现以优化 IO 密集型操作)通过今天的实践,我们掌握了自定义检索器的核心技术,从基础实现到异步优化,再到数据库集成,覆盖了常见的应用场景。需求分析:明确检索器的核心功能与数据来源接口设计:基于 BaseRetriever 设计合适的方法签名核心实现。原创 2025-06-19 15:22:32 · 370 阅读 · 0 评论 -
LangChain 上下文压缩检索实战:从冗余过滤到智能提取全攻略
通过今天的实践,我们掌握了 LangChain 中上下文压缩检索的核心技术,从基础的内容提取到高级的多阶段压缩管道,这些技术能显著提升检索效率和 LLM 回答质量。需求分析:确定是需要内容提取还是仅文档过滤压缩器选型:根据实时性、准确性要求选择合适策略参数调优:调整相似度阈值、chunk_size 等参数性能测试:对比压缩前后的 LLM 调用成本和回答准确率。原创 2025-06-19 15:12:31 · 623 阅读 · 0 评论 -
LangChain 向量数据库检索器实战:从基础检索到多查询优化全攻略
默认提示词可能不适合所有场景,我们可以自定义查询生成逻辑:python运行# 1. 定义输出解析器(将LLM结果拆分为查询列表)return list(filter(None, lines)) # 移除空行# 2. 自定义提示词模板template="""你是AI助手,任务是生成五个不同版本的用户查询,用于从向量数据库检索相关文档。通过生成多角度查询,帮助用户克服基于距离检索的局限性。原始问题: {question}请用换行分隔不同查询:""",# 3. 构建LLM链。原创 2025-06-19 14:59:43 · 1171 阅读 · 0 评论 -
LangChain 文本嵌入模型全攻略:从基础应用到自定义实现
文本嵌入是将自然语言转换为稠密向量的过程,这些向量能够在高维空间中表达文本的语义关系。简单来说,意思相近的文本在向量空间中的距离更近,而语义无关的文本距离更远。在 LangChain 中,Embeddings类为所有嵌入模型提供了统一接口,支持 OpenAI、Hugging Face、Cohere 等多种提供商。当内置嵌入模型无法满足需求时,我们可以自定义嵌入类。:处理文档列表:处理单个查询和。原创 2025-06-19 14:51:08 · 901 阅读 · 0 评论 -
LangChain 代码拆分全攻略:20 + 编程语言的智能拆分方案
如果需要支持未列出的语言,可以手动设置分隔符:python运行# 自定义Lua语言拆分器")end"""通过今天的实践,我们掌握了 LangChain 中代码拆分的核心技术,从通用编程语言到专业领域文档,每个语言都有专属的拆分策略。代码问答系统:确保函数和类定义完整,提升 LLM 理解准确性智能代码补全:按语义块提供上下文,生成更符合逻辑的代码代码摘要生成:保持功能模块完整,生成有意义的摘要代码审查辅助:按功能模块拆分,便于 LLM 进行代码审查。原创 2025-06-19 14:45:00 · 759 阅读 · 0 评论
分享