LangChain agent 开发框架学习笔记

发布时间:2026/7/23 8:40:22

LangChain agent 开发框架学习笔记
1. 简介LLM 大模型应用开发框架, 用来构建 agent.LangChain 提供统一接口可连接大模型、Prompt、向量数据库、工具调用、记忆系统以及 Agent 工作流.它是 python 语言, 虽然也有 js 版本叫 LangChain.js, 但生态和更新速度都不如 Python.2. 核心组件LLM连接 OpenAI、Claude、Gemini 等大模型PromptTemplate管理 Prompt 模板Chains构建多步骤 AI 工作流Memory实现多轮对话记忆Tools调用搜索、数据库、API 等工具Agents让 AI 自动决策与执行任务Vector Store连接向量数据库实现 RAG3. 极简 demo最简单的 LangChain 阿里云大模型 Demoimportsys sys.stdout.reconfigure(encodingutf-8)fromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimportChatPromptTemplatefromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.prompt_valuesimportChatPromptValuefromlangchain_core.messagesimportAIMessage load_dotenv()llmChatOpenAI(modelqwen-plus)defdemo_lcel():写法一LCEL 管道风格推荐chain(ChatPromptTemplate.from_messages([(human,{question})])|llm|StrOutputParser())resultchain.invoke({question:你好请用一句话介绍你自己})print(result)defdemo_step_by_step()-None:写法二普通逐步调用prompt:ChatPromptTemplateChatPromptTemplate.from_messages([(human,{question})])parser:StrOutputParserStrOutputParser()# 第一步模板填充变量生成提示词prompt_value:ChatPromptValueprompt.invoke({question:你好请用一句话介绍你自己})# 第二步调用 LLM返回 AIMessage 对象ai_message:AIMessagellm.invoke(prompt_value)# 第三步解析器提取纯文本result:strparser.invoke(ai_message)print(result)# demo_lcel()demo_step_by_step()4. llm.invoke() 调用链4.1 http 请求背后是 httpx 框架的 http post 请求.ChatOpenAI.invoke() ← langchain-core 入口 └→ _generate() ← langchain_openai/chat_models/base.py:1695 └→ self.client.with_raw_response.create(**payload) ← 进入 openai SDK └→ SyncAPIClient.request() ← openai/_base_client.py:995 └→ _send_request() ← openai/_base_client.py:957 └→ self._client.send(request) ← httpx.Client.send() 真正的 HTTP 请求4.2 LLM 传参调用 LLM 的相关参数见下.# 位于 site-packages/openai/resources/chat/completions/completions.pyclassCompletions(SyncAPIResource):required_args([messages,model],[messages,model,stream])defcreate(...):returnself._post(/chat/completions,bodymaybe_transform({messages:messages,model:model,audio:audio,frequency_penalty:frequency_penalty,function_call:function_call,functions:functions,logit_bias:logit_bias,logprobs:logprobs,max_completion_tokens:max_completion_tokens,max_tokens:max_tokens,metadata:metadata,modalities:modalities,moderation:moderation,n:n,parallel_tool_calls:parallel_tool_calls,prediction:prediction,presence_penalty:presence_penalty,prompt_cache_key:prompt_cache_key,prompt_cache_options:prompt_cache_options,prompt_cache_retention:prompt_cache_retention,reasoning_effort:reasoning_effort,response_format:response_format,safety_identifier:safety_identifier,seed:seed,service_tier:service_tier,stop:stop,store:store,stream:stream,stream_options:stream_options,temperature:temperature,tool_choice:tool_choice,tools:tools,top_logprobs:top_logprobs,top_p:top_p,user:user,verbosity:verbosity,web_search_options:web_search_options,},completion_create_params.CompletionCreateParamsStreamingifstreamelsecompletion_create_params.CompletionCreateParamsNonStreaming,),optionsmake_request_options(extra_headersextra_headers,extra_queryextra_query,extra_bodyextra_body,timeouttimeout,security{bearer_auth:True},),cast_toChatCompletion,streamstreamorFalse,stream_clsStream[ChatCompletionChunk],)附录LangChain 官网

相关新闻

Linux命令-seq(生成数字序列)

Linux命令-seq(生成数字序列)

2026/7/23 8:30:22

Linux命令-seq(生成数字序列)快速参考基本语法常用选项实际应用场景高级用法在脚本中使用 seqseq 与 {..} 扩展对比性能对比故障排查总结快速参考 seq(sequence)是用于生成数字序列的命令行工具。它按指定步长生成从起始值到结束…

React+Express+AI构建实时热点追踪系统

React+Express+AI构建实时热点追踪系统

2026/7/23 8:30:22

1. 项目概述:AI驱动的全网热点追踪系统 这个名为"又一个新项目开源,让AI帮你盯全网热点!"的项目,本质上是一个基于现代Web技术栈构建的智能信息聚合平台。它通过AI算法自动抓取、分析和归类全网热点内容,帮助…

AcWing算法提高课思路速查:基础算法

AcWing算法提高课思路速查:基础算法

2026/7/23 8:30:22

题目模板思路90. 64位整数乘法位运算龟速乘95. 费解的开关递推与递归枚举起点状态97. 约数之和递推与递归公式/递归分治98. 分形之城递推与递归化归大型建系模拟99. 激光炸弹前缀和与差分二维前缀和枚举100. 增减序列前缀和与差分构造贪心(反证法)102. 最…

阿里Qwen3-Coder开源、OpenAI模型失控:GEO进入“开源Agent+安全审计”双轨时代

阿里Qwen3-Coder开源、OpenAI模型失控:GEO进入“开源Agent+安全审计”双轨时代

2026/7/23 9:20:24

引言:2026年7月23日,AI产业的“开源与失控”双重奏 2026年7月23日,AI产业在同一天上演了两场截然不同却又深度关联的戏码。 开源一侧,阿里正式开源Qwen3-Coder——480亿参数MoE架构编程模型,在Agent调用能力上超越GP…

第29讲:实战——GPIO输入输出极速配置与防抖代码

第29讲:实战——GPIO输入输出极速配置与防抖代码

2026/7/23 9:20:24

CSDN专栏: 嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料 第29讲:实战——GPIO输入输出极速配置与防抖代码 一、GPIO基础 GPIO(通用输入输出)是嵌入式开发最基础的外设,掌握GPIO的…

第28讲:避坑——AI堆栈分配错误、栈溢出BUG

第28讲:避坑——AI堆栈分配错误、栈溢出BUG

2026/7/23 9:20:24

CSDN专栏: 嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料 第28讲:避坑——AI堆栈分配错误、栈溢出BUG 一、堆栈的重要性 堆栈是程序运行的基础,堆栈溢出会导致系统崩溃、数据损坏、难以定位的BUG。AI生成…

我写了一个清理 C 盘的小工具,因为 C 盘爆红真的太烦了

我写了一个清理 C 盘的小工具,因为 C 盘爆红真的太烦了

2026/7/23 9:20:24

不知道你有没有遇到过这种情况:电脑刚买的时候,C 盘还挺宽敞;用着用着,突然某一天它就红了。 你打开资源管理器一看,C 盘剩余空间个位数 GB。然后开始怀疑人生:我也没往 C 盘放什么东西啊? 后…

短视频创作:暴躁姐姐人设与SW过膝靴视觉营销

短视频创作:暴躁姐姐人设与SW过膝靴视觉营销

2026/7/23 9:20:24

1. 项目背景与核心价值解析 "暴躁姐姐蹂躏枕头日常 sw过膝靴"这个标题看似简单,实则蕴含了当前短视频内容创作的三个核心要素:人物设定(暴躁姐姐)、行为特征(蹂躏枕头)、视觉符号(SW过…

C/C++动态规划入门:从路径问题掌握DP四步心法与代码实现

C/C++动态规划入门:从路径问题掌握DP四步心法与代码实现

2026/7/23 9:10:24

1. 项目概述:为什么从路径问题切入动态规划? 如果你刚开始接触C/C算法,看到“动态规划”四个字,可能觉得它高深莫测,是面试大厂时才需要面对的“拦路虎”。但我想告诉你,动态规划(Dynamic Progr…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/23 3:40:08

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/23 4:40:05

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

2026/7/23 0:09:56

更多请点击: https://kaifayun.com 第一章:企业级AI搜索落地选型实战手册(含LLMRAGHybrid架构对比矩阵与ROI测算模板) 企业级AI搜索系统落地成败,核心在于技术选型与业务价值的精准对齐。盲目堆砌大模型能力或过度依赖…

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

2026/7/23 0:09:56

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M内核的微控制器项目中,深入理解并熟练配置芯片的片上外设,是从“点亮LED”迈向“实现复杂系统功能”的关键一步。Tiva™ TM4C129LNCZAD作为TI公司Cortex-M4F家族中的高性能成员…

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

2026/7/23 0:09:56

一、快速声明与争议背景本文是对 AtomCode 终端 spinner 时长显示 fmt_dur 相关说法的事实性核验。2026 年 7 月 CSDN 上出现两篇互相矛盾的博文,近期又有 AI 在对话中输出格式描述 XhYm / YmZs / Zs。本文基于 AtomCode 仓库 main4677ddfa 及全分支 Git 历史给出可…