<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[old brother stable]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AXBNMD</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AXBNMD]]></copyright><item><title><![CDATA[手写 MCP Server 和 MCP Client：Node.js 实现 AI Agent 自动调用本地工具（附完整源码）]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/163109968</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/163109968</guid><author>AXBNMD</author><pubDate>Thu, 30 Jul 2026 16:00:00 +0800</pubDate><description><![CDATA[从零实现一个可运行的 MCP + Agent 项目：用 @modelcontextprotocol/sdk 编写 MCP Server 暴露工具、编写 MCP Client 发现并连接工具、Agent 通过 Tool Calling 循环（LLM 决策 → Agent 执行 → 结果回传）让 AI 真正操作本地项目，最后封装成 Express 网关 + 网页交互。附完整源码。]]></description><category></category></item><item><title><![CDATA[一文讲清 LLM、Tool Calling、Agent、Workflow、MCP 的区别与联系（AI Agent 架构入门）]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/163083863</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/163083863</guid><author>AXBNMD</author><pubDate>Thu, 30 Jul 2026 15:45:00 +0800</pubDate><description><![CDATA[LLM 负责推理，Tool Calling 负责连接工具，Agent 负责动态决策，Workflow 负责流程编排，MCP 负责标准化连接外部能力。这五个概念到底怎么区分？MCP 和 Tool Calling 是什么关系？一文看懂当前主流 AI Agent 应用的基本架构。]]></description><category></category></item><item><title><![CDATA[Claude Code 使用指南：常用命令、配置与技巧速查表]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/159172645</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/159172645</guid><author>AXBNMD</author><pubDate>Mon, 23 Mar 2026 09:00:00 +0800</pubDate><description><![CDATA[Claude Code 从入门到进阶的命令速查：安装配置、常用 CLI 命令、权限管理、CLAUDE.md 项目配置、MCP 接入、Hooks 与自定义命令等高频操作一表收齐，当手册用。]]></description><category></category></item><item><title><![CDATA[LangGraph 实战教程：从 ReAct Agent 到 StateGraph 状态机，构建复杂决策链]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/159113859</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/159113859</guid><author>AXBNMD</author><pubDate>Mon, 16 Mar 2026 20:54:27 +0800</pubDate><description><![CDATA[简单 Agent 遇到多步骤复杂任务就失控？本文用 LangGraph 把 Agent 从"自由发挥"升级为"状态机编排"：StateGraph 定义节点与边、条件路由控制执行路径、循环与人工介入节点，构建可控可调试的复杂决策链。]]></description><category></category></item><item><title><![CDATA[LangChain 接入 Tavily 实时搜索：让 AI 告别幻觉、获取实时数据（DeepSeek 实战）]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/158970311</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/158970311</guid><author>AXBNMD</author><pubDate>Thu, 12 Mar 2026 16:40:59 +0800</pubDate><description><![CDATA[AI 只会用训练数据回答"北京春季平均气温"？接入 TavilySearch 实时搜索 + 动态上下文注入 + 三重反幻觉校验（日期偏差过滤、System Prompt 强约束、数据合理性验证），构建"感知 → 检索 → 校验 → 展现"的完整闭环。]]></description><category></category></item><item><title><![CDATA[AI 同时调用多个工具时组件互相覆盖？tool_call_id 隔离 + 并发渲染方案（DeepSeek 实战）]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/158968492</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/158968492</guid><author>AXBNMD</author><pubDate>Thu, 12 Mar 2026 15:52:21 +0800</pubDate><description><![CDATA[用户一句话触发"查天气 + 画地图"两个工具，组件却互相覆盖？深度解构 DeepSeek 流式返回的 chunk 结构：第 1 包携带 id 和 name、后续包只有 arguments。用 useRef 累加 + Map 深度合并 + tool_call_id 隔离，实现多工具并发流式渲染互不干扰。]]></description><category></category></item><item><title><![CDATA[AI 流式输出不完整 JSON 怎么解析？partial-json + 插件化架构实现丝滑渲染（React 实战）]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/158967106</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/158967106</guid><author>AXBNMD</author><pubDate>Thu, 12 Mar 2026 15:20:58 +0800</pubDate><description><![CDATA[AI 生成的 JSON 只吐了一半，组件就卡住不动？用 partial-js 解析破碎 JSON 实现流式渲染：插件注册表解耦渲染逻辑（对标 Lobe Chat 架构）、Zod Schema 校验防幻觉、错误信息回传实现自愈型 Agentic Loop。从 Demo 到生产级的完整工程化方案。]]></description><category></category></item><item><title><![CDATA[Function Call 实战：让 AI 对话动态渲染地图组件，React + Tool Calling 完整实现（附源码）]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/158966444</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/158966444</guid><author>AXBNMD</author><pubDate>Thu, 12 Mar 2026 14:27:38 +0800</pubDate><description><![CDATA[用 300 行代码打通大模型 Function Call 与前端状态管理：AI 回复不再只有文字流，而是直接在对话中弹出可交互的地图组件、天气卡片。完整讲解 Tool Calling 的决策链路、React 动态组件渲染、结构化 JSON 输出与校验，附全部可运行源码。]]></description><category></category></item><item><title><![CDATA[100 行代码 我用LangGraph+Tavily打造一个会“自主思考”的 Agent]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/152117154</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/152117154</guid><author>AXBNMD</author><pubDate>Thu, 11 Dec 2025 17:36:12 +0800</pubDate><description><![CDATA[摘要 本文详细介绍了如何从零构建一个具备智能判断能力的AI助手Agent。通过使用langGraph框架和Tavily搜索引擎，实现了以下核心功能：1) 自动识别问题类型（如天气查询）；2) 按需获取实时数据；3) 结合知识库生成回答。文章包含完整的开发流程：从环境配置（安装依赖、API密钥设置）、问题分析（设计决策流程），到具体实现四个关键节点（智能决策器、数据搜集器、报告生成器、通用回答器）。最终构建的Agent能智能判断何时需要联网搜索，并给出专业回答，大幅提升了AI助手的实用性和效率。]]></description><category></category></item><item><title><![CDATA[Gemini3 生成的基于手势控制3D粒子圣诞树]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/155820408</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/155820408</guid><author>AXBNMD</author><pubDate>Thu, 11 Dec 2025 15:48:01 +0800</pubDate><description><![CDATA[Gemini3 生成的基于手势控制3D粒子圣诞树 ]]></description><category></category></item><item><title><![CDATA[从Prompt到Answer：详解AI Agent架构中的ReAct模式与工具调用]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/152031053</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/152031053</guid><author>AXBNMD</author><pubDate>Wed, 24 Sep 2025 15:36:45 +0800</pubDate><description><![CDATA[现代AI Agent系统通过ReAct（Reasoning-Acting）模式实现了从简单问答到复杂问题求解的跨越。该系统由大模型（推理引擎）、Agent协调器（流程控制器）和MCP Server（工具执行层）三大组件协作完成。ReAct模式通过&quot;思考-行动-观察&quot;循环，让AI能主动获取外部信息进行渐进式分析。Agent在其中扮演关键角色，负责工具发现、提示词工程、调用路由和状态管理。这一架构使AI系统具备数据驱动决策、高透明度和强适应性等特点，实现了从静态知识库到动态问题求解的进化。]]></description><category></category></item><item><title><![CDATA[修复vite中使用react提示Fast refresh only works when a file only exports components.]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/137468854</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/137468854</guid><author>AXBNMD</author><pubDate>Wed, 17 Apr 2024 09:30:51 +0800</pubDate><description><![CDATA[我通过 `vite` 构建了一个 `react` 应用并使用 `react.lazy` 来懒加载组件，但是在使用过程中 一直提示 `Fast refresh only works when a file only exports components. Move your component(s) to a separate file.eslint(react-refresh/only-export-components)`。这里简单的记录下问题的修复方式。]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（7）— diff 算法源码的实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/137770431</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/137770431</guid><author>AXBNMD</author><pubDate>Wed, 17 Apr 2024 09:29:06 +0800</pubDate><description><![CDATA[vue3 采用的 `diff` 算法名为快速 diff 算法，整个 `diff` 的过程分为以下5个阶段完成。

 1. 处理前置节点
 2. 处理后置节点
 3. 处理仅有新增节点
 4. 处理仅有删除节点
 5. 处理其他情况（新增 / 卸载 / 移动）]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（6）— lifecycle 生命周期的实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/134728046</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/134728046</guid><author>AXBNMD</author><pubDate>Thu, 01 Feb 2024 14:43:24 +0800</pubDate><description><![CDATA[对于 vue3 的生命周期，我们经常性会去疑问，生命周期有哪些呢，它是怎么去实现的， 又是什么时候调用的。]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（5）— patch 函数源码的实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/135739982</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/135739982</guid><author>AXBNMD</author><pubDate>Thu, 01 Feb 2024 14:41:57 +0800</pubDate><description><![CDATA[在 vue 中 patch 函数的作用是在渲染的过程中，比较新旧节点的变化，通过打补丁的形式，进行新增、删除、移动或替换操作，此过程避免了大量的 dom 操作，提升了运行的性能。]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（4）— createApp 源码的实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/133919652</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/133919652</guid><author>AXBNMD</author><pubDate>Fri, 12 Jan 2024 15:08:26 +0800</pubDate><description><![CDATA[我们通过阅读源码了解到，createApp 函数是 vue3 的入口函数，通过 createApp 函数我们可以创建一个应用。createApp 的实现是借助了 createRenderer 函数，createRenderer 的实现内部包装了createAppAPI。createApp 函数接收一个组件，然后返回一个应用，这个应用中有一个 mount 方法，这个 mount 方法就是用来将应用挂载到容器中的。]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（3）— computed 计算属性的实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/133919593</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/133919593</guid><author>AXBNMD</author><pubDate>Wed, 10 Jan 2024 15:46:07 +0800</pubDate><description><![CDATA[通过对computed的源码分析，我们可以看到 vue3 如何实现计算属性的。当我们创建一个计算属性时，vue 会收集这个计算属性的所有依赖项。然后，当这些依赖项发生变化时，vue 会重新计算这个计算属性的值。并通过_dirty这个标志位来判断是否需要执行副作用函数并更新_value的值。这种机制使得我们可以方便地创建基于其他响应式依赖项的计算属性。]]></description><category></category></item><item><title><![CDATA[vite 深入浅出]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/134291898</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/134291898</guid><author>AXBNMD</author><pubDate>Mon, 13 Nov 2023 16:32:21 +0800</pubDate><description><![CDATA[vite(轻量，轻快的意思) 是一个由原生ES Module驱动的 Web 开发前端构建工具。浏览器原生 ESM：浏览器支持的 JavaScript 模块化标准，可以直接使用标签加载模块，无需打包或转译。在开发环境下基于浏览器原生ES Module的支持实现了no-bundle服务。另一方面借助esbuild超快的编译速度来做第三方库构建和ts/jsx语法编译，从而能够有效提高开发效率。在生产环境下基于rollup打包来构建代码。]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（2）— ref、toRef、toRefs、shallowRef 响应式的实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/133919417</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/133919417</guid><author>AXBNMD</author><pubDate>Wed, 25 Oct 2023 16:11:38 +0800</pubDate><description><![CDATA[这篇文章主要介绍了 vue 3 的响应式原理，其中涉及到了reftoReftoRefsshallowRef等函数的实现。ref：ref 函数用于创建一个包含响应式数据的引用对象，它接受一个基本类型或对象类型的参数，并返回一个具有 value 属性的对象。当访问或修改 value 属性时，会触发响应式更新。ref 函数会对对象类型的参数进行深度响应式转换，即递归地将对象的所有属性都转换为响应式的。]]></description><category></category></item><item><title><![CDATA[vue3 源码解析（1）— reactive 响应式实现]]></title><link>https://blog.youkuaiyun.com/AXBNMD/article/details/133919403</link><guid>https://blog.youkuaiyun.com/AXBNMD/article/details/133919403</guid><author>AXBNMD</author><pubDate>Tue, 24 Oct 2023 15:04:41 +0800</pubDate><description><![CDATA[reactive：函数返回一个对象的响应式代理。reactive 函数会调用createReactiveObject函数，根据对象的类型，创建不同的代理处理器。reactive函数的参数必须是一个对象，否则会报错。：函数根据对象的类型，创建不同的代理处理器。如果对象是一个数组，会创建一个 collectionHandlers 对象；如果对象是一个普通对象，会创建一个 baseHandlers对象。代理处理器是一个包含 get、set、deleteProperty 等方法的对象，用于拦截对象的属性访问和修改。]]></description><category></category></item></channel></rss>