- 博客(102)
- 收藏
- 关注
原创 MCP 实践篇:用 FastMCP 快速构建工具服务器与 Agent
承接上一篇《MCP 的前世今生:从 “为每个工具写 Schema” 到统一协议》,本文从理论落地实践,以目前 Python 生态最主流的 FastMCP 框架为核心,讲解其架构组成与开发流程。FastMCP 是一套Python 的 MCP 开发框架,它对底层 MCP(Model Context Protocol)协议做了高度封装,让开发者无需关心 JSON-RPC 消息格式、握手协商、传输层细节,只需专注业务逻辑即可快速构建标准的 MCP 服务。
2026-06-16 16:09:51
330
原创 FastAPI + SQLAlchemy PythonWeb体系梳理
FastAPI 是当下 Python 生态中高性能异步 Web 接口框架,凭借原生异步支持、自动类型校验、交互式接口文档等特性,广泛应用于后端接口、微服务、爬虫服务等场景。而 SQLAlchemy 作为 Python 生态最成熟的 ORM 框架,其异步版本完美适配 FastAPI 异步架构,是企业级项目的主流技术组合。Uvicorn 是一款纯异步ASGI 协议服务器。
2026-06-12 21:06:43
182
原创 Redis&Python 梳理
数据结构形式示例说明String(字符串)Redis最基本的数据类型,二进制安全,可以存储字符串、整数或浮点数,一个key对应一个valueHash(哈希)键值对集合,适合存储对象信息。每个Hash可以存储大量的字段和值List(列表)有序的字符串列表,按照插入顺序排序。支持从头部或尾部添加/移除元素,底层是双向链表实现Set(集合){A, B, C}无序的、唯一元素的字符串集合。通过哈希表实现,支持高效的添加、删除和查找操作,以及交集、并集等集合运算Sorted Set(有序集合)
2026-06-08 15:44:44
218
原创 智能体记忆概述
智能体记忆是指 AI 系统存储、检索和利用历史信息的能力。一个具备记忆能力的智能体,能够在多轮对话中保持连贯性,记住用户的偏好和习惯,积累经验并持续改进。这篇博客主要将深入总结短期记忆和长期记忆的机制、架构设计,以及如何构建一个带记忆功能的智能体系统。短期记忆是指在当前会话内保持对话连贯性的机制。它的核心是直接传递对话历史,让模型能够看到之前说了什么。短期记忆本质上就是维护一个 Message 列表,每次调用 LLM 时,将这个列表作为上下文传入。系统提示词(System Prompt)
2026-06-04 22:48:17
334
1
原创 Python @dataclass 总结(原理+源码+用法+避坑)
专注纯数据存储、无复杂业务逻辑的场景:接口 DTO、参数配置类、结构化日志实体、简易数据库映射实体、数据中转模型。功能:浅拷贝原实例,支持批量修改指定字段,兼容 frozen 不可变类,不会修改原实例。方法,用于处理字段二次计算、数据校验、数据格式化等后置逻辑,是开发高频钩子。功能:将数据类实例按字段顺序转为元组,用于有序数据比对、解包赋值。功能:获取数据类所有字段的配置信息,用于反射、动态解析数据类结构。功能:将数据类实例递归转为字典,常用于接口序列化、数据存储。,双层搭配实现精细化数据类定义。
2026-06-01 11:59:45
412
原创 Python 属性访问与操作全解析:内置函数、魔法方法与描述符深度指南
属性操作是 Python 面向对象编程的核心基础。本文系统性梳理 Python 属性读写删三大内置函数、底层魔法方法、描述符协议的完整工作机制。
2026-05-30 09:37:58
305
原创 深入浅出 Pydantic:BaseModel 核心原理与实战指南
在 Python 开发中,数据校验和数据解析是绕不开的核心环节 —— 无论是接口入参校验、配置文件解析,还是业务数据结构化,手动编写校验逻辑不仅繁琐易错,还会大幅降低开发效率。Pydantic 正是解决这一问题的神器,它凭借类型提示实现自动化数据校验与转换,是 FastAPI、LangChain 等主流框架的底层依赖。Pydantic 是一个基于 Python 类型提示的数据验证和设置自动数据校验:基于类型注解校验数据合法性,抛出清晰的异常信息;自动数据转换。
2026-05-25 22:50:01
383
原创 Agent理论体系梳理
Agent智能体(简称Agent)是基于大语言模型(LLM)构建,具备「感知-推理/决策-行动-反馈(给外界用户)」闭环工作机制的智能实体。通过明确目标,能自主分解任务、调用工具、调整策略,最终达成目标。阶段实现方式稳定性标准化工具定义适用场景原始手工提示词模拟极低无写在提示词中历史遗留,已不推荐进阶极高各厂商不统一通过API参数传入当前主流,适用于绝大多数场景高级MCP极高统一标准服务器端一次定义,客户端动态获取复杂多服务、生态共享场景多级智能体是一种通过。
2026-05-19 13:53:18
382
原创 RAG 知识体系梳理
在大模型时代,RAG(Retrieval-Augmented Generation,检索增强生成)早已不是小众技术,而是解决大模型“知识过期、幻觉严重、专业度不足”的核心方案这篇博客梳理一下RAG相关的知识体系RAG直译是“检索增强生成”,核心思想是:在模型生成答案之前,先从外部知识库中检索出最相关的文档片段,然后将这些片段作为上下文提供给模型,让模型基于这些“参考资料”生成回答。
2026-05-17 18:53:37
458
原创 大模型提示词工程
掌握大模型提示词核心知识点,能有效引导模型输出符合预期的结果,最大化发挥其辅助价值。这篇博客主要总结大模型提示词工程的核心知识点。提示词(Prompt)是人与大模型沟通的核心媒介,本质是“引导模型完成任务的指令集合”,分为系统提示词和用户提示词,其中系统提示词是核心引导,优先级高于用户提示词。系统提示词:由开发者或使用者预设,用于定义模型的角色、行为边界、任务标准和输出规范,核心作用是“给模型定身份、立规则”,确保模型输出贴合需求,避免跑偏。
2026-05-16 20:59:36
346
原创 大模型理论基础
随着AI技术的飞速发展,“大模型”早已不再是行业内的专业术语,而是频繁出现在我们的生活中——从聊天机器人、文案生成,到图像创作、代码编写,这篇博客主要总结大模型的基础知识,用于构建我的知识体系。大模型,全称是“大规模语言模型(Large Language Model,LLM)”,本质上是一种基于深度学习的人工智能模型,核心是通过学习海量文本数据,掌握语言的规律、逻辑和知识,从而实现理解、生成、推理等类人语言能力。参数规模大。
2026-05-13 19:01:55
333
原创 Python 类型注解核心指南
在 Python 开发中,类型注解是提升代码可读性、降低维护成本的低成本手段——它不影响程序运行,却能让 IDE 实现智能补全、让同事快速理解代码逻辑,更是 dataclass、Pydantic 等常用框架的核心依赖。Python 作为动态类型语言,变量、函数参数的类型全靠“猜测”,这会带来三个核心问题:阅读成本高:需反复追溯变量用途,才能理解代码逻辑;调试成本高:传参类型错误仅在运行时暴露,排查耗时;开发效率低:IDE 无法提供精准补全,写代码全靠记忆。
2026-05-08 17:06:06
391
原创 Python 多任务编程:进程、线程、协程全解
在 Python 开发中,多任务编程是提升程序执行效率、充分利用 CPU 资源的核心手段,而进程和线程是实现多任务的两种核心方式。这篇博客主要讲python多线程和多进程的原理和常用操作,python多任务编程和java的内容和用法都是相似的。
2026-04-23 19:49:16
531
原创 Claude Code Skill 完全使用指南
之前有两篇博客主要讲述了skill架构思想agent的原理、解决了什么样的问题,以及我们通过langchain框架开发了一个基于skill架构的简单的agent实战项目,主要是讲明白skill架构思想,以及我们如何开发一个基于skill的智能体;这篇博客,主要讲明白ClaudeCode的skill开放标准和开发规范,它从最初为Claude设计的专属功能,逐步演变成了一个跨平台的 开放标准,其他流行的agent架构,比如Cursor、Codex都沿用了ClaudeCode的这一标准。
2026-04-23 10:31:18
591
原创 前端三基石:从后端视角理解 HTML、CSS 与 JavaScript
作为一个从后端视角切入前端的开发者,我们其实拥有一个很好的起点——理解数据流转、请求响应。前端不过是把这些逻辑在用户的浏览器里“可视化”和“交互化”的过程。这篇博客我主要汇总提炼一下web后端开发人员需要掌握前端基础,重点放在 HTML 和 CSS 上,JS 部分只做串联性讲解,后续会出一篇博客单独讲解js。
2026-03-29 17:43:25
2630
1
原创 MCP 的前世今生:从“为每个工具写 Schema”到统一协议
这篇博客讲mcp,拆成两篇进行讲述,这一篇聊聊mcp的前世今生,mcp是什么,解决了什么问题。下一篇博客主要讲一下langchain框架中如何整合mcp以及如何基于mcp协议调用工具。如果你曾尝试让大模型(LLM)调用外部工具,一定对这样的场景不陌生:你为 OpenAI 写了一套工具描述,后来想换成 Claude,却发现所有工具的描述都要重写;或者你用 LangChain 写了一个工具,想放到另一个框架里复用,却只能“复制粘贴”再改一遍。
2026-03-27 14:06:26
406
原创 大模型开发手记(十三):langchain skills(下):构建skills架构agent实战
在上一篇博客中,我们深入理解了Agent Skill的核心概念——它是一种通过渐进式披露来扩展Agent专业能力的模块化方式。理论说完了,今天我们就来真刀真枪地实现一个。酒店预订Skill:包含酒店预订的业务规则、政策、操作流程。景点推荐Skill:包含热门景点的介绍、推荐逻辑、注意事项。Agent启动时只知道这两个Skill的名字和一句话描述,只有当你问及具体问题时,它才会动态加载对应Skill的详细内容。每个Skill都是一个独立的目录,元数据和内容分离。
2026-03-22 18:15:31
1078
原创 LangChain content_blocks:统一处理多模态与跨模型厂商消息内容
在开发基于大语言模型的应用时,我们经常需要处理来自不同提供商(OpenAI、阿里云百炼、本地模型等)的消息内容。这些模型在消息格式上各有差异:有的将推理步骤放在专用字段,有的以不同结构表示多模态数据。如果直接使用原始的 content 字段,我们得写大量针对特定模型的适配代码。说白了就是每个模型厂商都有自己的一套消息规范(content),我们调用模型厂商时需要按照每个厂商的规范定义content,接收模型消息后,也得根据这个规范解析内容。
2026-03-22 18:03:21
444
原创 大模型开发手记(十二):langchain skills(上):讲清楚什么是skills,优势是什么
最近这半年,skills这个名词非常火——无论是Claude Code Skills的爆火,还是skills.sh平台的快速迭代,都在说明这个东西貌似在agent领域是一个比较好用的东西我打算用两篇博客讲清楚什么是skills,以及实际开发中我们如何开发一个基于skills范式的智能体这篇博客主要讲明白什么是skills,让大家对skills有一个深刻的了解,下一篇博客我们上实战Agent Skill 是一种将专业能力封装为可被Agent按需“调用”的模块化单元。它本质上是一套基于提示词。
2026-03-21 21:45:50
664
2
原创 大模型开发手记(十一):LangChain 上下文 精讲(下):Agent 上下文控制与工程化
本文是“上下文精讲”系列的第二篇。在上一篇中,我们厘清了上下文的分类与三种管理方式。本篇将基于LangChain官方文档,深入探讨如何在实际开发中精准控制上下文,让你的Agent更加可靠。在实际的Agent开发中,我们常遇到这样的问题:为什么模型有时会“忘记”之前的对话?为什么工具调用总是不准确?问题的根源往往不在于模型本身,而在于我们没有给模型提供正确的上下文。模型上下文(Model Context)、工具上下文(Tool Context)和生命周期上下文(Life-cycle Context)
2026-03-21 13:02:53
425
原创 大模型开发手记(十):LangChain 上下文 精讲(上):讲明白什么是agent上下文
这篇博客和下篇博客主要讲明白什么是agent的上下文,上下文说白了就是agent系统中,除了大模型以外的所有信息当AI应用处理任务时,它需要的不仅是模型本身,更依赖上下文——即“完成任务所需的信息、工具和环境就像人工作时需要知道“我是谁”、“手头有哪些资源”、“之前说过什么”,AI的上下文也分为三类:静态的配置信息(如用户ID、工具)、单次会话中动态变化的状态(如对话历史)、以及跨会话的长期记忆(如用户偏好)。合理管理上下文,能让AI变得更聪明、更懂你。langchain官方文档将上下文按照。
2026-03-20 20:03:00
544
原创 LangChain 动态系统提示词(@dynamic_prompt)深入解析
在构建基于 LangChain 的智能 Agent 时,系统提示词(System Prompt)是塑造模型行为和角色定位的关键。通常,我们在创建 Agent 时通过 system_prompt 参数设置一个静态的提示词。但实际应用中,我们往往需要根据不同的用户、上下文或对话阶段动态调整提示词。LangChain 提供的 @dynamic_prompt 中间件正是为此而生。本文将结合 LangChain 官方文档,详细讲解 @dynamic_prompt 的用法、工作机制。
2026-03-20 13:16:00
630
原创 大模型开发手记(九):LangChain Agent 中间件-提升Agent的可靠性与可控性
在构建复杂的LangChain Agent时,我们常常面临上下文超限、成本失控、工具调用失败、敏感信息泄露等问题。LangChain提供了一套生产就绪的预构建中间件,像乐高积木一样,让我们轻松为Agent添加对话总结、人工审核、调用限流、自动重试等能力。这篇博客主要讲述中间件的作用、有哪些内置的中间件、怎么自己定义中间等场景:长对话易超Token限制,自动总结旧消息,保留最新上下文。配置:trigger:触发总结的条件(如token数≥4000或消息数≥6)
2026-03-19 14:01:22
899
原创 大模型开发手记(八):LangChain Agent格式化输出
在构建智能体应用、大模型应用时,一个常见的痛点是如何从模型的自然语言回复中可靠地提取关键信息。比如,你希望模型返回一个包含姓名、邮箱、电话的JSON对象,但它可能回复“好的,这是你要的信息:张三,邮箱是zhangsan@example.com,电话是123456”。为了在程序中使用这些数据,你不得不编写复杂的正则表达式或提示工程来解析。这不仅低效,而且容易出错。
2026-03-19 08:53:03
558
原创 大模型开发手记(七):LangChain Agent 流式输出:实时交互体验
什么是流式传输,就是不会等任务完成后直接返回结果,而是把任务进行中的进展实时返回,主要用途就是让用户实时看到进展,避免等待太长时间影响用户体验。LangChain 的 流式输出 (Streaming),就是来解决这个问题的。它能将 Agent 的思考过程、中间步骤、甚至生成的每一个字,像直播一样实时推送到你面前。这篇博客主要讲述langchain agent的流式输出怎么用,显示效果是怎样的。
2026-03-18 20:56:46
722
原创 大模型开发手记(六):LangChain Agent 记忆系统:短期记忆和长期记忆
这一篇博客主要总结agent的短期记忆这块内容,什么是记忆,我们可以狭义的理解为human、ai、tool等agent的对话上下文的存储、管理和获取。大模型本身是无状态的,每一次调用都是独立的,无法记住上一轮对话的内容,此时就需要记忆系统,把我们与大模型之前的聊天记录存储起来,等下轮对话的时候再通过记忆系统给他,这就是记忆系统的作用。
2026-03-18 15:11:41
1138
原创 大模型开发手记(五):LangChain Tools 精讲:Agent 智能体行动能力
这篇博客主要讲langchain agent的tool工具的定义与使用,大模型只是文本推理的模型,不能直接与外部世界进行交互,工具tool就是大模型的手脚,通过tool,大模型就能够与外部交互,本质上就是大模型输出调用工具的json数据,然后框架捕获解析,调用而已,只是这个过程框架帮我们做好了而已,我们唯一需要关心的就是如何定义tool,如何使用tool,以及如何在tool内部访问agent运行的上下文信息。Tools 是 LangChain 定义的、可被大模型调用的标准化执行组件。
2026-03-17 16:01:32
549
原创 大模型开发手记(四):LangChain Messages 精讲:大模型对话交互的核心载体
在上一篇 Agent 核心要素讲解中,我们提到智能体的对话记忆、工具调用、推理闭环,底层全部依赖 LangChain Messages 体系承载——无论是单轮对话生成,还是多轮对话管理、工具调用智能体开发,所有和大模型的交互,最终都会落地为 Messages 的传递与处理。Messages 是 LangChain 定义的大模型上下文交互标准数据协议,是模型输入与输出的基本单位。
2026-03-15 19:05:23
487
原创 大模型开发手记(三):LangChain Agent 核心要素全解析:构建要素齐全的智能体
这篇博客是大模型开发手记第三篇,这篇博客我主要想的是讲明白构建一个langchain的agent的基本架构组成,从基础概念到执行闭环,从每个组件的作用、用法到代码实现全覆盖,最终输出一个要素齐全、可直接运行的完整智能代理示例,主要是目的就是帮助各位新手快速理解什么是智能体,包含哪些基本组成,agent执行流程是怎样的,能够快速理解agent的本质,后续的博客会深入讲解其中的每个要素,进阶用法等等。
2026-03-15 09:22:30
641
原创 从文件到屏幕:Python/java 字符编码、解码、文本处理的底层逻辑解析
在python开发中,我们频繁使用 open() 读取文件、用 [] 索引字符串、通过 print() 输出内容,但很少深究这些操作背后的编码转换、内存存储与渲染机制。这篇博客结合 Python ,从编码本质、内存存储、文件操作到终端渲染,拆解文本处理的完整链路,主要是理清 Unicode、UTF-8 与字节流的关系。码点是核心:内存中字符串的本质是 Unicode 码点集合,Python 封装了底层变长存储,实现高效索引。
2026-02-23 21:13:16
994
原创 python格式化字符串
这是 Python 早期的格式化方式,灵感来源于 C 语言的 printf,支持所有 Python 版本,但功能相对有限。使用 % 作为占位符,搭配元组 / 字典传递参数,常见占位符有 %s(字符串)、%d(整数)、%f(浮点数)等。
2026-02-23 16:18:43
114
原创 Python logging 模块深度解析
在 程序开发中,日志是调试、监控、问题排查的核心工具,而在python程序开发中,内置的 logging 模块是处理日志的首选方案。这篇博客主要汇总和总结logging模块的原理和常用配置。核心层级:日志器(Logger)是入口,处理器(Handler)决定输出目标,格式化器(Formatter)定义输出格式,日志级别控制日志过滤规则;关键规则:日志器级别是全局过滤,处理器级别是局部过滤,只有日志级别同时≥两者才会输出;
2026-02-23 15:20:38
811
原创 深入理解 Python 内存模型:模块、类、对象的存储与运行机制
这篇博客从内存布局、对象存储、属性管理三个核心维度,总结汇总 Python 的底层内存模型和运行机制两区域:栈帧区存引用,堆区存所有对象;三对象:模块对象管理文件级内容,类对象管理方法和类属性,实例对象管理独有属性;一核心:所有对象的属性都基于__dict__字典(或优化数组)存储,核心逻辑是 “引用 + 分层查找”。
2026-02-21 16:41:30
734
原创 builder方式构建对象
这篇博客主要讲述,为什么在 Java 中很多对象会通过builder.build()这种构建者模式的方式来创建,而不是直接用构造方法核心目的:构建者模式解决了传统构造方法 “参数多、可读性差、可选参数难处理” 的痛点,让对象创建过程更清晰、更灵活。关键特点:通过静态内部 Builder 类封装构建逻辑,链式调用设置参数,最终通过build()方法创建对象,还能集中做参数校验。适用场景:当对象有多个参数(尤其是可选参数)、需要保证可读性或不可变性时,优先使用构建者模式。
2026-02-08 10:32:24
608
原创 大模型开发手记(二):基于 LangChain 的 RAG 架构全面解析与落地实践
这个系列博客主要打算汇总一下python大模型开发的所有知识体系,大模型知识点太多,包括langchain、langgraph、deepagent、RAG应用等等,时间长了脑子就乱子,这篇博客主要汇总一下基于langchain的RAG开发的相关知识点,重点在整个流程和原理,只要弄懂了原理,不一定是基于langchain,用java调用各个组件,也是可以实现rag的大部分流程。
2026-01-28 10:13:43
849
原创 大模型开发手记(一):大模型调用、Chain 构建与基础实践
这个系列博客主要打算汇总一下python大模型开发的所有知识体系,大模型知识点太多,包括langchain、langgraph、deepagent、RAG应用等等,时间长了脑子就乱子,这篇博客主要汇总一下langchain的核心组件、基础使用等相关知识点。大模型(Large Language Model, LLM)是基于海量文本数据训练而成的深度学习模型,具备自然语言理解、生成、推理等核心能力,典型代表有GPT系列(OpenAI)、DeepSeek系列、Llama系列(Meta)等。
2026-01-26 15:17:37
1171
原创 解决:pycharm运行程序时出现Run ‘python tests for XXX.py‘的问题
在pycharm,python项目中,有一个目录内有文件A和文件B,在脚本A中,from B import B1,我右键文件A运行,但是却报错找不到文件B,按理说不应该,,按理说不能出现找不到包的情况,多说一句,人为约定的概念,不是 Python 的内置概念。
2026-01-19 10:45:44
415
原创 Python 类与实例对象的内存存储
这篇博客主要总结一下python中类、实例化对象是如何内存存储的,理解了这块内容会帮助我们理解python的运行机制,有效避免在开发python程序时踩坑。
2026-01-03 20:23:48
258
原创 Jackson 反序列化首字母大写字段映射失败的底层原因与解决方案
这篇博客主要记录一下最近boot项目的Jackson反序列化遇到的问题,Java 属性名 和 JSON 字段名 相同,知识因为属性名大写,导致反序列失败的原因以及解决方案。
2025-12-23 21:09:24
448
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅