<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zl_dfq的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/zl_dfq</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; zl_dfq]]></copyright><item><title><![CDATA[Java学习1 之 【核心机制、程序基础结构、I/O】]]></title><link>https://blog.csdn.net/zl_dfq/article/details/166135691</link><guid>https://blog.csdn.net/zl_dfq/article/details/166135691</guid><author>zl_dfq</author><pubDate>Sun, 20 Sep 2026 19:26:43 +0800</pubDate><description><![CDATA[文本 I/O 是 Java 中最基础的输入输出方式，通过 System.out 进行输出，通过 Scanner 类进行输入。它适用于控制台程序、调试输出和简单的用户交互场景。关闭 System.in 的 Scanner 会影响后续输入。Scanner 是类，通常包装 System.in 读取控制台输入。注意与 nextInt() 等混用时的换行符残留问题。创建绑定标准输入的 Scanner 实例。2.1. 面向过程 vs 面向对象。关闭 Scanner，释放资源。不读取空格，遇到空白即停止。]]></description><category></category></item><item><title><![CDATA[Java学习2 之 【数据运算、流程控制与数组】]]></title><link>https://blog.csdn.net/zl_dfq/article/details/166137330</link><guid>https://blog.csdn.net/zl_dfq/article/details/166137330</guid><author>zl_dfq</author><pubDate>Sun, 20 Sep 2026 19:26:29 +0800</pubDate><description><![CDATA[在Java中，任何一个变量、常量、方法、对象和类都需要有名字，即。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【MCP】（FastMCP、MultiServerMCPClient、json.dumps）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/164032178</link><guid>https://blog.csdn.net/zl_dfq/article/details/164032178</guid><author>zl_dfq</author><pubDate>Sun, 30 Aug 2026 11:18:51 +0800</pubDate><description><![CDATA[每个服务有独立的 API 风格（REST、gRPC、XML…）模型需要硬编码工具定义（函数名、参数 Schema）缺乏动态发现能力，多平台兼容困难MCP 的作用：它并非替代 Tool Calling，而是为 Tool Calling 提供标准化运行时。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【多智能体系统】（Subagents、Handoffs、Skills、Router、Custom Workflow）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/164062819</link><guid>https://blog.csdn.net/zl_dfq/article/details/164062819</guid><author>zl_dfq</author><pubDate>Sun, 30 Aug 2026 11:18:34 +0800</pubDate><description><![CDATA[多智能体系统是由 2 个及以上智能体构成的协作系统。在 LangGraph 框架下，它被具体实现为包含多个 Node 的 StateGraph，每个节点封装为一个独立的 Agent，共同协作完成宏观任务系统的质量取决于每个智能体能否访问到完成任务所需的正确数据。在 LangGraph 中，这体现为对全局 State 和 MessagesState 的精细设计，通过精准的 State 路由来实现信息的隔离与传递，避免 Token 爆炸和模型“走神”设计首要原则是“能用工作流，别用自主性”]]></description><category></category></item><item><title><![CDATA[LangChain 之 【Agents 核心能力】（指定模型、ModelRequest、override、工具、提示词、结构化输出、定义状态、人机协作、Interrupt 、流式传输）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/164001897</link><guid>https://blog.csdn.net/zl_dfq/article/details/164001897</guid><author>zl_dfq</author><pubDate>Sat, 29 Aug 2026 09:49:34 +0800</pubDate><description><![CDATA[Agent 默认只维护消息列表（对话历史）。但复杂场景需要额外状态，如用户偏好、临时标志、中间计算结果。LangChain 通过 自定义状态（继承 AgentState 的 TypedDict）实现短期记忆5.1 原理状态在 Agent 执行期间持续存在（同一线程 ID 下）中间件可通过 request.state 读取或修改（通过 before_model 等钩子）工具可通过 ToolCallRequest.state 访问状态中间件绑定状态# 可在此修改消息或做日志。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【中间件】(钩子、预构建中间件、自定义中间件、ExtendedModel、Command)]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163981092</link><guid>https://blog.csdn.net/zl_dfq/article/details/163981092</guid><author>zl_dfq</author><pubDate>Sat, 29 Aug 2026 09:48:55 +0800</pubDate><description><![CDATA[上下文工程（Context Engineering）是指在 LLM 每次调用之前，动态地、系统性地构建、筛选、组织和注入上下文信息，以优化模型输出的质量和相关性的工程实践包括但不限于提示词、对话与记忆、工具定义、工具结果等上下文在正确的时间，把正确的信息，以正确的结构，注入到模型的上下文中当对话太长时，SummarizationMiddleware 自动将早期内容压缩成摘要，释放上下文窗口空间监控：持续跟踪当前对话历史占用的 Token 数或消息条数判断：将当前状态与预设触发条件比较。]]></description><category></category></item><item><title><![CDATA[LangGraph 之 【运行时上下文、流式输出、子图】（Runtime、custom 模式、幂等实现）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163593129</link><guid>https://blog.csdn.net/zl_dfq/article/details/163593129</guid><author>zl_dfq</author><pubDate>Fri, 28 Aug 2026 10:03:09 +0800</pubDate><description><![CDATA[上下文（Context） 是程序运行时可以访问的数据和环境信息用户身份、配置参数、数据库连接、API 密钥、 会话状态、历史记录等上下文可按两个维度分类维度上下文类型核心定义（工程语义）典型示例可变性静态上下文图运行全过程中恒定不变的只读元数据与基础设施配置用户ID（UserID）、租户ID（TenantID）、数据库连接池对象、API密钥可变性动态上下文随图节点流转而持续演变、累加或修改的业务运行数据。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【Agent 的简介】（ReAct模式简介、Agent vs Graph、create_agent、AgentState、content_blocks、部分类/函数迁移指南）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163980020</link><guid>https://blog.csdn.net/zl_dfq/article/details/163980020</guid><author>zl_dfq</author><pubDate>Fri, 28 Aug 2026 10:02:38 +0800</pubDate><description><![CDATA[目前支持 langchain-anthropic、langchain-openai、langchain-aws、langchain-google-genai、langchain-ollama。Agent（智能体） 是一个将大语言模型（LLM）与工具（Tools）相结合的系统，它能够对任务进行推理，自主决定使用哪些工具，并迭代地朝着最终目标努力。更多内容参考迁移指南：https://docs.langchain.com/oss/python/migrate/langchain-v1。]]></description><category></category></item><item><title><![CDATA[AI 智能租房助手（CLI、配置文件、model_dump、UUID、getenv\load_dotenv、SQLDatabaseToolkit、ToolRuntime、store 注入、虚拟环境）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163875586</link><guid>https://blog.csdn.net/zl_dfq/article/details/163875586</guid><author>zl_dfq</author><pubDate>Wed, 19 Aug 2026 15:52:36 +0800</pubDate><description><![CDATA[目录1. 项目的搭建与结构1.1 五步法搭建项目第一步：安装 LangGraph CLI第五步：核心配置文件 —— langgraph.json1.2 项目结构1.3 详解 pyproject.toml1.4 启动本地开发服务器1.5 通过 REST API 调用图流式模式与事件类型1.6 为存储添加语义搜索2. LangGraph 参数传递的规则3. model_dump()4. UUID：唯一标识生成5. os.getenv() 与 load_dotenv() 的配合6. URI 与 SQLDataba]]></description><category></category></item><item><title><![CDATA[LangGraph 之 【AI 智能租房助手】（附带自托管独立部署姿势）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163826096</link><guid>https://blog.csdn.net/zl_dfq/article/details/163826096</guid><author>zl_dfq</author><pubDate>Wed, 19 Aug 2026 15:49:46 +0800</pubDate><description><![CDATA[房源推荐、房源预定、查询我的、常规问答通过查看状态流转可以发现，房源推荐需要根据对话追问、收集用户需求、生成对应 sql 查询数据库、给出推荐结果房源预定需要强制中断收集关键信息（如房源标题、电话、身份证），给出预定结果查询我的需要跨会话读库，给出查询结果常规问答无状态依赖，直接调用模型即可这四种模式对状态的要求不同，所以我决定采用主图路由 + 子图隔离的架构为什么要用多个图，子图的价值在哪业务模块状态特征是否需中断LangGraph 实现强行塞进主图的后果房源推荐。]]></description><category></category></item><item><title><![CDATA[LangGraph 之 【持久化能力的应用】（记忆、人机交互与时间旅行、interrupt、Command、update_state）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163538961</link><guid>https://blog.csdn.net/zl_dfq/article/details/163538961</guid><author>zl_dfq</author><pubDate>Fri, 07 Aug 2026 11:36:39 +0800</pubDate><description><![CDATA[记忆是智能体与用户建立连续对话体验的核心。当前会话中的上下文信息，由线程级检查点自动维护跨会话保存的用户数据或应用数据，通过 Store 手动存取关于短期记忆和长期记忆如何添加（即持久化部分），这里不再赘述。但在应用层，我们还需掌握面对具体业务场景时，如何动态管理记忆。例如，当消息历史过长时，我们需要进行消息裁剪、摘要总结或选择性删除等操作，以控制上下文长度、节省成本并提升响应质量3.1.1 修剪消息使用 trim_messages 按 token 数或消息条数截断历史，保留最近的、最关键的部分。]]></description><category></category></item><item><title><![CDATA[LangGraph 之 【持久化能力】（线程级\跨会话持久化、重放更新状态、get_state、PostgresSaver、PostgreasStore）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163481463</link><guid>https://blog.csdn.net/zl_dfq/article/details/163481463</guid><author>zl_dfq</author><pubDate>Fri, 07 Aug 2026 11:36:33 +0800</pubDate><description><![CDATA[利用 Pydantic 强制约束 LLM 提取的字段，确保存入 Store 的数据干净整洁。]]></description><category></category></item><item><title><![CDATA[LangGraph 之 【状态及其管理（强制覆盖\输入输出模式\私有状态）、规约函数、StateGraph、添加节点\边、Literal、tools_condition、ToolNode】]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163212037</link><guid>https://blog.csdn.net/zl_dfq/article/details/163212037</guid><author>zl_dfq</author><pubDate>Tue, 04 Aug 2026 16:43:28 +0800</pubDate><description><![CDATA[目录1. State（状态）及其管理1.1 Overwrite：强制覆盖而非合并2.2 独立的输入/输出模式2.3 节点间传递私有状态2. Reducer（规约函数）2.1 operator.add2.2 add_messages ID 的生成与分配2.3 自定义 Reducer3.图即状态机3.1. 初始化3.2. 添加节点（add_node）3.3. 添加固定\条件边Literal 让你的路由函数更健壮tools_condition：智能路由哨兵3.4. 编译（compile）4. ToolNode：工]]></description><category></category></item><item><title><![CDATA[LangGraph 之 【工作流模式】(Send)]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163418729</link><guid>https://blog.csdn.net/zl_dfq/article/details/163418729</guid><author>zl_dfq</author><pubDate>Tue, 04 Aug 2026 16:43:03 +0800</pubDate><description><![CDATA[业务场景推荐模式核心工程准则内容生成、数据 ETL提示链加入interrupt人工断点，做好 checkpoint 备份独立多源数据同时检索并行化必须处理单个任务的异常降级，避免“一颗老鼠屎坏了一锅粥”客服、指令分类路由必须预留Fallback兜底节点，别信 LLM 会 100% 听话长文档拆解、多章节写作协调者-工作者必须在汇总时按Index重排序，并控制并发数代码修复、高质量翻译评估器-优化器必须设置循环上限（max_trials），防止死循环烧钱。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【检索器与 RAG 实战】（@chain、@tool、as_retriever、create_retriever_tool ）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163110958</link><guid>https://blog.csdn.net/zl_dfq/article/details/163110958</guid><author>zl_dfq</author><pubDate>Wed, 22 Jul 2026 19:01:15 +0800</pubDate><description><![CDATA[RunnableParallel（可并行执行容器），它允许将同一个用户输入同时分发到多个独立的分支进行处理，最终再将各分支的输出结果合并成一个新的字典，传递给管道中的下一步。检索器（Retriever） 是检索系统中负责接收查询（Query）并返回相关文档列表的。检索器本质上是同步阻塞操作，因为检索过程（如数据库查询、向量搜索）通常是一次性完成的。现在，我们基于上面的检索器，搭建一个完整的 RAG 问答链。外层列表对应输入查询的顺序，内层列表是每个查询对应的文档结果。LangChain 检索器是一个。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【内存\Redis\Pinecone向量存储原理与实战】]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163040532</link><guid>https://blog.csdn.net/zl_dfq/article/details/163040532</guid><author>zl_dfq</author><pubDate>Wed, 22 Jul 2026 18:09:37 +0800</pubDate><description><![CDATA[、>、<、>=、<= 这些原生运算符来定义单条件，再通过位运算符 &（AND）、|（OR）和 ~（NOT）将多个条件灵活组合成嵌套逻辑表达式，最后直接把该对象传给 similarity_search 的 filter 参数即可。它将所有文档向量化后使用一个 Python 字典（dict）来存储文档及其向量，检索时对全部向量进行暴力相似度计算（默认余弦相似度），没有向量索引。：已有 Redis 基础设施，数据量中等（百万级），希望控制成本，且需要低延迟。，它扩展出了二级索引能力，支持向量相似性搜索。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【RAG简介、文档加载器、文本分割器】]]></title><link>https://blog.csdn.net/zl_dfq/article/details/162929914</link><guid>https://blog.csdn.net/zl_dfq/article/details/162929914</guid><author>zl_dfq</author><pubDate>Mon, 20 Jul 2026 11:05:13 +0800</pubDate><description><![CDATA[核心逻辑：根据指定的字符序列（默认为 "\n\n"）来切分文本，并以字符数来衡量每个块（Chunk）的大小，但如果某个段落实在过长且找不到分隔符，为了不破坏语义完整性，它宁可保留整个长块，并仅打印 Created a chunk of size xxx...2. mode="elements"，unstructured 库会将文档解析为不同的语义元素（如标题、段落、列表项等），每个元素都成为一个独立的 Document 对象。如果你的业务不需要细粒度结构，请用 mode="single" 保持为一个整体。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【嵌入模型、向量与向量数据库】（embed_documents、embed_query、ANN）]]></title><link>https://blog.csdn.net/zl_dfq/article/details/163035514</link><guid>https://blog.csdn.net/zl_dfq/article/details/163035514</guid><author>zl_dfq</author><pubDate>Mon, 20 Jul 2026 11:04:32 +0800</pubDate><description><![CDATA[计算机天生擅长处理数字，但不理解文字、图片的含义。嵌入（Embedding）的核心思想就是将人类世界的符号（单词、句子、产品、图片）转换为计算机能理解的数值形式——向量，并且要求这种转换能够保留原始符号的语义和关系可以把它想象成一个翻译过程：把人类语言“翻译”成计算机的“数学语言”。这里有一个容易混淆的点：生成式模型（如GPT）内部也使用嵌入技术来理解输入，但它的最终目标是“创造”新文本。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【提示词模板、少样本提示】(PromptTemplate系列模板、tool_example_to_messages )]]></title><link>https://blog.csdn.net/zl_dfq/article/details/162785868</link><guid>https://blog.csdn.net/zl_dfq/article/details/162785868</guid><author>zl_dfq</author><pubDate>Thu, 16 Jul 2026 09:51:29 +0800</pubDate><description><![CDATA[它通过模拟“用户提问 → 模型决策（携带精确参数的 tool_calls）→ 工具执行反馈 → 最终自然语言回复”的闭环，不仅精准教会了模型如何按 Data 和 Person 的格式填写结构化参数，更利用“检测到人/未检测到人”的正反例结尾，为模型建立了清晰的决策边界（即什么情况该输出空列表，什么情况该填充数据），从而在保障输出格式绝对正确的同时，极大地抑制了模型在信息缺失时随意编造内容（幻觉）的风险，将少样本提示从“文字描述”升级为了“可执行的交互式范式”（如介绍{xxxx}的历史）。]]></description><category></category></item><item><title><![CDATA[LangChain 之 【示例选择器与输出解析器】(长度\语义相似性\MMR最大边际相关性\N-gram重叠选择、Str\Pydantic\JsonOutputParser)]]></title><link>https://blog.csdn.net/zl_dfq/article/details/162921013</link><guid>https://blog.csdn.net/zl_dfq/article/details/162921013</guid><author>zl_dfq</author><pubDate>Thu, 16 Jul 2026 09:41:35 +0800</pubDate><description><![CDATA[特性维度Length...MMR...NGram...选择依据文本长度按空格/换行分词计数语义相似度向量余弦相似度相关性 + 多样性（MMR 算法）字面 N-gram 重叠BLEU 分数排序逻辑按原始顺序从第一个开始截取，直到长度超限，不重排序按相似度降序，始终返回最相似的 k 个先按相关度，再在候选池中迭代挑选多样性样本按重叠分数降序排列（可设置阈值过滤）动态性每次根据输入长度动态决定示例数量，但顺序不变每次根据输入语义动态重排序并选择 k 个。]]></description><category></category></item></channel></rss>