自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 构建自定义AI客户支持助手——专用工作流(Specialized Workflows)

本文介绍了一种基于多工作流协作的智能助理系统架构。该系统采用主助理与多个专用助理协作的模式,通过意图识别将不同任务路由给专业化的子工作流处理。系统核心特点包括:1) 使用dialog_state栈跟踪当前活动助理;2) 主助理负责意图识别和路由;3) 各专用助理(如航班、酒店、租车等)独立处理特定领域任务;4) 工具分为安全工具(无需确认)和敏感工具(需用户确认);5) 通过interrupt_before机制实现敏感操作的用户确认流程。这种架构相比单一通用模型,能提供更精准、可控的服务体验,特别适合复杂多

2025-11-09 00:33:26 935

原创 构建自定义AI客户支持助手

接下来,定义助手的工具来搜索航空公司的政策手册,以及搜索和管理航班、酒店、汽车租赁和游览的预订。我们将在整个教程中重复使用这些工具。确切的实现并不重要,因此请随意运行下面的代码并跳转到第一部分。查找公司政策助手检索政策信息来回答用户问题。请注意,这些政策的执行仍然必须在工具/API本身中完成,因为LLM总是可以忽略这些。import re# "@" 在Python中只是矩阵乘法return [@tool"""查询公司政策以检查是否允许某些选项。

2025-09-30 16:58:33 889

原创 构建自定义AI客户支持助手——LangGraph 中断机制

我们的图状态和 LLM 调用与上一章几乎相同,但有一个例外:我们添加了一个user_info字段,它将在图开始时就被填充,我们可以直接在助手对象中使用状态,而不是使用可配置参数。# 定义状态user_info: str # 新增:用户信息字段# 定义助手类# 如果 LLM 恰好返回空响应,我们会重新提示它给出实际响应):else:break# 配置 LLM# 定义助手提示词"system",),# 定义工具列表# 绑定工具到 LLM现在创建图。

2025-09-30 16:28:56 613

原创 LLMCompiler:基于LangGraph的并行化Agent架构高效实现

import os: ")# 创建数学计算工具# 创建搜索工具# 测试数学工具",# 输出: '37'系统使用了两个核心工具:Tavily搜索引擎用于信息检索,数学计算工具用于处理数值计算任务。这种工具组合为系统提供了处理复杂查询的基础能力。

2025-09-10 00:34:52 1199

原创 基于视觉的网页浏览Langraph Agent

x: floaty: floattext: strtype: strpage: Page # Playwright 网页对象input: str # 用户请求img: str # base64 编码的截图bboxes: List[BBox] # 浏览器标注功能生成的边界框prediction: Prediction # 智能体的输出scratchpad: List[BaseMessage] # 包含中间步骤的系统消息observation: str # 工具的最新响应点击工具。

2025-08-27 21:33:45 1089

原创 什么是 Vibe Coding(氛围编程)?

它的目标是构建一个由 AI 驱动的开发环境,AI 充当实时助手,提供建议、自动处理琐碎工作,甚至可以帮你搭建基础的项目结构。在软件开发领域,编程方式正在发生重大变化——从以往死板、手动的编码方式,逐步转向更加灵活、由 AI 辅助的编程形式。不过,Vibe Coding 并不是万能的,它仍需要人类在背后把关和引导,才能真正做出高质量、可维护、安全的应用程序。Vibe Coding 不只是一个流行词,许多开发者,甚至是没有编程经验的用户,也开始使用它开发各类应用。提示越清楚,AI 给出的结果就越准确。

2025-07-27 16:38:06 1403 1

原创 【Agentic】通过LangGrah实现RAG评分和重写

本文介绍了如何构建一个基于LangGraph的自主检索代理系统。系统通过大语言模型(LLM)自主决策何时使用文档检索功能,实现了智能化的检索增强生成(RAG)。文章详细展示了三个关键步骤:1)使用WebBaseLoader获取并预处理文档,进行分块处理;2)创建语义检索工具,构建向量存储;3)设计代理节点,包括查询生成、文档评分和结果生成等功能模块。该系统能根据用户问题自动判断是否需要检索,并评估检索结果的相关性,实现了智能化的问答流程。通过代码示例展示了从文档加载到检索工具调用的完整实现过程,为构建自主决

2025-07-27 16:27:24 945

原创 【Agent】构建专家级SQL Agent交互

本文介绍了构建企业SQL问答Agent的完整流程,包括:1)安装依赖项和初始化LLM;2)设置SQLite数据库并获取表结构;3)使用预构建Agent进行SQL查询处理;4)自定义Agent实现更精确的控制。关键技术点包括:通过LangChain工具包获取数据库元数据,系统提示约束查询行为,以及分步执行流程(获取表→确定相关表→提取结构→生成查询→校验→执行→修正)。文章还演示了从预构建Agent到自定义工作流的进阶方法,通过专用节点强制特定工具调用顺序,提升处理可靠性。最终实现了一个能自动修正错误、准确回

2025-07-04 17:55:35 1635 2

原创 Agent的记忆详细实现机制

本文介绍了如何使用InMemoryStore实现跨线程状态共享,特别适用于需保留用户特定信息的场景(如聊天机器人)。文章首先演示了基本操作: 创建InMemoryStore实例并定义命名空间 使用put/store方法存取记忆数据 支持语义检索功能(需配置嵌入模型) 然后说明如何在LangGraph框架中集成InMemoryStore: 与checkpointer协同工作,分别处理线程内持久化和跨线程共享 通过configurable参数传递用户ID实现记忆隔离 在节点中访问存储进行读写操作 最后强调相同u

2025-06-22 13:18:06 769

原创 Agent短期记忆的几种持久化存储方式

本文介绍了Agent长期对话的三种持久化存储方案。针对短期记忆(线程级持久性)和长期记忆(跨线程持久性)的不同需求,重点讲解了PostgreSQL、MongoDB和Redis三种检查点实现方式。PostgreSQL方案需要初始化5张表存储检查点数据;MongoDB采用文档结构存储;Redis则通过键值方式实现。三种方案都能有效保存对话状态,确保Agent重启时不丢失数据。文章提供了每种方案的具体代码实现,包括数据库连接设置、模型初始化和对话流处理,并展示了执行结果和数据存储结构,为开发者提供了实用的持久化解

2025-06-09 00:08:40 786

原创 超详细入门指南,什么是MCP,为什么突然间所有人都在谈论它?

即使是最复杂的模型也受限于其与数据的隔离,特别是当被困在信息孤岛和传统系统之后。所以上下文集成很重要

2025-05-11 23:15:06 938

原创 【Agent的革命之路——LangGraph】工作流中追踪复杂图执行过程中的状态变化

下面我将详细介绍如何在 LangGraph 中为包含子图的图结构添加线程级持久化功能,步骤清晰明了。

2025-04-20 16:52:04 1203

原创 LangGraph——Agent AI的持久化状态

记忆是一种认知功能,允许人们存储、检索和使用信息来理解他们的现在和未来。想象一下,与一个总是忘记你告诉他们事情的同事合作是多么令人沮丧,这需要不断地重复!随着人工智能代理承担涉及众多用户交互的更复杂任务,为它们配备记忆功能对于提高效率和用户满意度同样至关重要。通过记忆功能,代理可以从反馈中学习,并适应用户的偏好。短期记忆(Short-term memory,),或称为线程范围内的记忆,可以在与用户的单个对话线程中的任何时间被回忆起来。LangGraph将短期记忆管理为代理状态的一部分。

2025-04-13 21:00:28 1559

原创 LangGraph 怎么控制递归次数

这一节我们讲讲langgraph图的递归限制 Recursion Limit,递归限制设置了图在单次执行过程中可以执行的最大超级步骤数。一旦达到该限制,LangGraph 将引发 GraphRecursionError 错误。默认情况下,此值设置为 25 步。递归限制可以在运行时为任何图进行设置,并通过配置字典传递给 .invoke 或 .stream 方法。需要注意的是,recursion_limit 是一个独立的配置键,不应像其他用户定义的配置那样放在 configurable 键内部。

2025-03-25 23:25:38 1213

原创 LangGraph 构建的工作流调用数据库的时候怎么添加重试机制

gentState: 定义一个类型化的字典,表示工作流的状态。其中:messages: 是一个 BaseMessage 的序列,表示消息列表。Annotated: 使用 operator.add 注解,表示在状态更新时,messages 会通过追加的方式合并。")query_database: 该节点函数从数据库中查询数据,并将结果封装为 AIMessage 返回。db.run: 执行 SQL 查询,返回查询结果。AIMessage: 将查询结果包装为 AI 消息,以便后续节点处理。

2025-03-13 00:19:36 1474

原创 让 AI 不再只会聊天!Function Calling 让大模型真正“动起来”![特殊字符]

如果我们想要手动管理函数调用,而不是完全交给 OpenAI API。如我们可以自己定义 function_call 逻辑。return f"location } 的天气是晴天 🌞" functions = [ {"name" : "get_weather" , "description" : "获取天气信息" , "parameters" : {

2025-03-11 23:55:58 1130

原创 【Agent的革命之路——LangGraph】如何使用config

得到如下图。

2025-03-09 20:22:57 915

原创 AI生成代码,模仿AlphaCodium引擎,通过 RAG 和 Agent 自我修正来生成代码

大家知道吗, 它提出了一种利用控制流进行代码生成的方法。它的核心思想就是通过迭代的方式逐步构建和改进代码答案。它不仅仅依赖于一次性生成代码,而是通过多次测试和修正来优化生成的代码,确保其正确性和鲁棒性。在公开测试和 AI 生成的测试上迭代测试并改进针对特定问题的答案。再问一个问题大家知道是怎么为我们生成代码的吗?我来为大家梳理一下步骤,首先,会理解用户提出的编程问题,并生成一个初始的代码解决方案。这一步通常基于大型语言模型(LLM)的能力,结合问题描述生成初步代码。其次。

2025-03-02 23:23:49 878

原创 【Agent的革命之路——LangGraph】工作流中的 Command 模式

foo: str定义节点A,# 判断应该跳转到哪个节点else:# Command 允许我们同时更新图状态并路由到下一个节点。# 更新图中的状态# 替换edgegoto=goto,定义好了上面节点之后,现在,我们可以使用上述节点创建 StateGraph。需要注意的是,该图没有定义条件的路由edge!这是因为控制流是用 Command 内部 node_a 定义的。

2025-02-22 23:29:08 947

原创 【Agent的革命之路——LangGraph】工作流中的 map-reduce 模式

这节我们来探索一下工作流设计中常用的 Map-Reduce 模式,在介绍 Map-Reduce 模式之前,我们想来看下 LangGraph 中的Send 对象已经结构化输出。

2025-02-16 15:00:40 1009

原创 使用DeepSeek来构建LangGraph Agent

随着的发布,我们不得不把目光聚焦在这个能赶超多个顶流大模型的模型身上,它主要是其在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力。在数学、代码、自然语言推理等任务上,性能比肩OpenAI o1正式版。为了更好的了解它的性能,我们这篇文章来尝试用它来构建Agent。

2025-02-16 00:46:58 2228 3

原创 LangGraphd的细节大全——如何定义或者更新状态

让我们构建一个包含单个节点的图。我们的节点只是一个 Python 函数,它读取图的状态并对其进行更新。")定义节点只是将消息附加到我们的消息列表中,然后填充一个额外的字段。接下来,接下来我们将定义一个简单的图,其中包含我们之前创建的节点。我们将使用 StateGraph 来定义一个操作该状态的图,并使用 add_node 将我们的节点添加到图中。在这种情况下,我们的图只是执行一个节点。

2025-02-06 23:24:04 1355

原创 震惊世界的DeepSeek-V3技术与其他主流模型的全面评估对比

近年来,大型语言模型(LLM)一直在进行快速迭代和进化,比如Openai,Anthropic,逐渐减少(AGI)的差距。除了封闭式模型,开源模型,比如DeepSeek系列,也正在取得长足的进步,努力与封闭源同行缩小差距。为了进一步推动开源模型功能的边界,deepseek团队扩大了模型并引入DeepSeek-V3,这是具有671B参数的大型专家(MOE)模型,每个 token 都激活了37B。从具有前瞻性的角度来看,他们始终如一地努力争取强大的模型绩效和经济成本。

2025-02-03 00:31:41 3254

原创 在 crag 中用 LangGraph 进行评分知识精炼-下

首先我们还是先定义web搜索工具,这里的web### Search然后定义我们graph"""表示我们图的状态。

2025-02-02 23:57:23 520

原创 在 crag 中用 LangGraph 进行评分

这次给大家展示LangGraph不一样的功能,crag。大家知道crag是什么吗,我给大家提前小科普一下,是一种改进的RAG(Retrieval-Augmented Generation,检索增强生成)策略,它引入了对检索文档的自我反思/自我评分机制。我们需要做些什么呢?最开始实现时,可以跳过知识精炼阶段。如果需要,可以将其作为一个节点添加回来。如果检索到的文档不相关,则选择通过网络搜索补充检索内容。使用 Tavily Search 进行网络搜索。通过查询重写优化搜索查询,以提高检索效果。

2025-01-31 00:25:34 986

原创 【Agent的革命之路——LangGraph】多个agent的多轮对话如此方便

在我们新写的例子中,我们要建立一个旅行助理代理团队,他们可以通过交流相互沟通。下面我们先创建两个agent:可以帮助推荐旅行目的地。可以向hotel_advisor agent寻求帮助。:可以帮助推荐酒店。可以向travel_advisor agent寻求帮助。我们将使用这种方式来构建agent,因为我们的每个agent都将拥有特定于其专业领域的工具以及用于移交到另一个agent 的特殊工具。@tool""" 获得旅游城市推荐 """

2025-01-23 00:51:57 1300

原创 【Agent的革命之路——LangGraph】细节分析Agent里面强大的Tools,你会怎么用?

先问大家一个问题,在很多应用程序中,不管是开发或者使用,其实我们都是用大模型在做响应,但是如果出现了一些场景,需要和其他API平台或者数据库交互,该怎么办呢?这里我们就可以用到工具,使用工具调用来请求和特定架构下匹配的模型的响应。大家看一张图:这张图就充分展示了大模型与工具之间的数据字段是怎么样交互的,当然这只是抽象出来的概念字段,实际参数远远不止这些。

2025-01-15 00:25:04 3071

原创 人脸识别最简单但性能最好的喂饭教程

大家知道人脸识别吗,计算机上的视频(本质也是图⽚)是由数字组成的,因此通过数学计算可以进⾏图像识别。⼈脸识别任务是图像识别的⼦类,图像识别可拆分为图像检测和图像对⽐两个任务:检测图像⾥的⼈脸,实际上是分类问题的⼀种,即图像⾥有没有⼈脸,图像对⽐是指检测出的⼈脸和预先采集的⼈脸的相似程度。

2025-01-12 23:55:15 878

原创 【Agent的革命之路——LangGraph】人机交互中的细节(等待用户的指令)

这节我们探讨下如何使用interrupt等待用户输入,虽然前面都有讲过,但是有部分同学还是一知半解,我决定把这一块详细的逻辑整理出来,从头到尾给大家讲述一下。人机交互 (HIL) 交互对于agentic系统至关重要。等待人工输入是一种常见的HIL交互模式,允许agentic询问用户澄清问题并在继续之前等待输入。我们可以使用函数在LangGraph中实现这一点。interrupt允许我们停止图形执行以收集用户的输入,并使用收集的输入继续执行。

2025-01-12 13:38:11 1357

原创 【Agent的革命之路——LangGraph】人机交互中的interrupt&Command

在LangGraph中,实现人机交互最核心的就是Command和interrupt,就是前面设计4种交互模式所使用的共同方法,简单点说就是中断图,获取人类提供的值,再恢复图。我们这次就来详细分析一下这两个语法。

2025-01-11 15:38:22 3652

原创 CES 2025 引爆科技行业,黄仁勋: AI 正以“惊人速度”发展

AI“正以惊人的速度发展”。NVIDIA及其合作伙伴推出了用于 Agentic AI的AI 蓝图(Blueprints),包括PDF到播客的高效研究工具,以及用于分析大量视频和图像的视频搜索和摘要工具,使开发者能够随时随地构建、测试和运行AI Agentic。“自动驾驶汽车革命已经到来,”黄仁勋说,“构建自动驾驶汽车与所有机器人一样,需要三台计算机:NVIDIA DGX用于训练AI模型,Omniverse用于测试驾驶和生成合成数据,以及DRIVE AGX,这是车内的超级计算机。

2025-01-09 00:33:45 1175

原创 【Agent的革命之路——LangGraph】人机交互中的四种决策设计模式

从上面4中设计模式可以看到,LangGraph 的中断功能为 LLM 应用程序提供了强大的人机交互能力,使得在关键步骤中引入人工审查和干预成为可能。通过合理设计工作流,开发者可以确保LLM生成的输出和工具调用在敏感或关键场景中的准确性和可靠性。无论是批准、编辑还是多轮对话,LangGraph 的设计模式都为构建复杂的人机协同系统提供了灵活且强大的工具。

2025-01-08 00:00:49 1877

原创 【Agent】我们怎样与agent交互,纠错agent。

我们从上面的例子可以看出,我们已经实现了怎么给agent纠错,我们用的就是LangGraph中的时间检查点遍历的方式。这为我们做自主软件工程AI应用提供了强大灵活的处理方法。

2025-01-05 23:10:39 529

原创 【LangGraph】真正的自定义状态,我们提供建议,agent采纳

如果设置了标志,将导向到该节点。否则,它让预构建函数选择下一个节点。这里回忆一下,tools_condition函数只是检查响应消息中是否chatbot有任何响应。如果是,它将导向到该节点。否则,它将结束graph`。"chatbot",最后,我们添加简单的边并编译图形。这些边指示图形每当a执行完成时 a -> b。try:pass可以看到chatbot。

2025-01-04 23:59:39 1670 2

原创 【LangGraph】强大的功能人类和agent的交互(中)

在我们的代码中,这个更新状态和覆盖消息都是基于我们打断agent来的,在上面这些运行日志里也可以看到每一步包括agent在用tools工具搜索之前组装的内容是什么,然后我们覆盖的消息是什么,最后工具出来的结果是什么,很好的实现了我们控制agent的行为。下一节我们将实现人类和agent交互的最后一步,自定义状态。

2025-01-01 23:48:00 1238

原创 Graph RAG的秘密

Graph RAG 通过引入图结构,为传统的 RAG 框架带来了以下优势:更强的关系建模能力:图结构能够显式地表示实体之间的关系,适合处理复杂知识。更高效的检索:图遍历算法能够快速检索到相关信息,提升系统性能。更丰富的生成结果:通过融合图信息,生成的结果更加准确和多样化。未来,随着知识图谱和图神经网络技术的不断发展,Graph RAG 有望在问答系统、推荐系统、知识推理等领域发挥更大的作用。对于 AI 从业者来说,掌握 Graph RAG 技术将为解决复杂问题提供新的思路和工具。

2024-12-31 00:00:29 777

原创 【LangGraph】强大的功能人类和agent的交互(上)

设置环境的引用定义状态包含的消息格式和状态图上面就是我们控制状态图agent的第一步,我们已经使用interrupt为agent添加了人机交互中的断点,以便在需要时进行人工监督和干预。由于我们已经添加了检查点,因此图表可以无限期暂停并随时恢复,就像什么都没发生过一样。下面,我们将探讨如何使用自定义状态更新进一步定制机器人的行为。

2024-12-30 00:05:09 949

原创 分词器和词嵌入那些不为人知的故事

分词器:将文本分解为可处理的最小单元(tokens嵌入:为这些最小单元提供语义信息的数值表示。只有当二者结合才能高效处理自然语言并输入到深度学习模型中,让模型既理解词语的语义,又能建模其上下文关系。

2024-12-29 16:10:01 799

原创 【redisRDB持久化问题】

RDB快照(1)亮点1:RDB快照就像拍合影,记录当时的状态,(2)要点1:RDB快照,将此时内存中的所有的数据写入磁盘,(3)要点2:生成快照有两种方式:sava和bgsava,save是主进程执行,生成时会阻塞redis,只能执行查找。bgsave是由主进程fork出子进程执行,(4)要点3:子进程在被fork处理时,与主进程共享同一份内存,但在生成快照时采取COW机制,确保不会阻塞主进程的数据读写(5)要点4:RDB的执行频率很重要,这会影响到数据的完整性和Redis的性能稳定性。所以4.0

2022-03-14 00:37:06 1210

原创 【Redis采用fork子进程重写AOF文件时,潜在的阻塞风险】

Redis采用fork子进程重写AOF文件时,潜在的阻塞风险包括:fork子进程 和 AOF重写过程中父进程产生写入的场景,下面依次介绍。a、fork子进程,fork这个瞬间一定是会阻塞主线程的(注意,fork时并不会一次性拷贝所有内存数据给子进程,老师文章写的是拷贝所有内存数据给子进程,我个人认为是有歧义的),fork采用操作系统提供的写实复制(Copy On Write)机制,就是为了避免一次性拷贝大量内存数据给子进程造成的长时间阻塞问题,但fork子进程需要拷贝进程必要的数据结构,其中有一项就是拷

2022-03-07 20:13:54 1295 1

golang_mysql_redis面试资料

涵盖golang,mysql,缓存一些面试题知识点

2022-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除