Agent Loop(四):用 Provider Adapter 隔离模型协议
这篇笔记接着上下文压缩往下走:Agent Loop 里还有一类复杂度来自不同模型厂商的工具调用协议,所以我把模型请求、工具调用解析和工具结果消息都收进 Provider Adapter。
共 26 篇 · 按主题筛选
这篇笔记接着上下文压缩往下走:Agent Loop 里还有一类复杂度来自不同模型厂商的工具调用协议,所以我把模型请求、工具调用解析和工具结果消息都收进 Provider Adapter。
这篇笔记接着流式 Agent 往下走:messages 会随着对话和工具调用一直增长,所以我加了一层 context compaction,把早期历史压成任务摘要,只保留 system、摘要和最近几轮消息。
这篇笔记接着最小 Agent Loop 往下走:把一次性响应改成 stream: true,用 for await...of 逐块读取模型输出,并处理工具调用参数在流式返回时被拆成碎片的问题。
这篇笔记从一个最小 TypeScript Agent Loop 开始,记录 messages、tools、toolHandlers 和循环如何把模型的工具请求接到本地函数上。
Vue3中的diff算法是Virtual DOM更新的核心机制,通过同层比较、key值匹配等策略实现高效的DOM更新。本文深入分析diff算法的执行流程、优化策略和实际应用。
Vue2中的diff算法是Virtual DOM更新的核心机制,通过同层比较、key值匹配等策略实现高效的DOM更新。本文深入分析diff算法的执行流程、优化策略和实际应用。
这是我之前在工作中主导或参与开发的一些数据可视化大屏项目。这些项目主要使用 Vue 和 Echarts 技术栈,旨在将复杂数据以直观、美观的方式呈现出来。
使用 Next.js 这样的服务端框架,其最大的优势之一就是对 SEO 的原生支持。这篇笔记将记录 App Router 中管理 SEO 元数据的现代方法。
前端性能优化:代码分割、图片优化与渲染策略。一个加载缓慢、体验卡顿的网站是无法留住用户的。Next.js 提供了一系列开箱即用的工具来解决性能问题,这篇笔记将重点记录其中最关键的几个。
在像 Next.js 这样的组件化框架中,样式方案的选择核心是平衡全局一致性与组件级封装。本项目中主要使用了两种主流方案:Tailwind CSS 作为主要的工具类框架,CSS Modules 作为特定场景下的补充。
在掌握了 App Router 的基础路由和 RSC 的概念后,这篇笔记将深入一些更高级的路由技巧。这些技巧能解决在构建复杂应用时遇到的具体问题,如动态页面的静态化、精细的加载与错误状态,以及实现像“弹窗路由”这样的高级 UI 模式。
在理解了服务端组件(RSC)之后,数据获取和提交的模式也随之发生了根本性的变化。旧的 useEffect + fetch 模式不再是首选,新的模式将数据获取和变更更多地放在服务端处理,以获得更好的性能和更简洁的代码。
React 本身只是一个 UI 库。要构建一个完整的、生产级的 Web 应用,还需要处理路由、数据获取、服务端渲染等一系列问题,这就需要一个框架。Next.js 是 React 官方推荐的生产力框架,App Router 则是它最新的、也是未来标准的开发模式。
App Router 带来的最大变革不是文件结构,而是组件的渲染地点。它将组件分为两种模式:默认在服务端运行的服务端组件(RSC),和在客户端运行的客户端组件(Client Components)。能否清晰地划分这两者,是能否发挥出 Next.js 性能优势的关键。
React 应用的性能优化是一个系统工程,需要从多个层面进行优化。本篇将介绍 React 性能优化的核心概念、工具和实践技巧,帮助你构建高性能的 React 应用。
当应用变得复杂时,组件内部的状态管理已经不够用了。本篇将介绍 React 中的状态管理方案,从 Context API 到专业的状态管理库,以及如何在实际项目中选择合适的状态管理策略。
useState 和 useEffect 是构建组件的基础,但要构建可扩展、可维护且高性能的应用,还需要掌握 React 提供的更专业的 Hooks。本章将深入探讨用于状态共享、复杂逻辑管理、性能优化和逻辑复用的核心 Hooks。
掌握 useState 和 useEffect 不仅要了解其用法,更要理解其背后的规则和潜在陷阱。始终牢记状态的不可变性,并对 useEffect 的依赖项和清理机制保持敬畏之心,这是编写出健壮、可维护的 React 组件的关键。
从 Vue 转向 React,首要任务是理解两者在核心设计哲学上的根本差异。这不仅仅是 API 的不同,更是一种构建用户界面思路的转变。本篇将聚焦于 React 的核心哲学、JSX 的本质以及函数式组件的构成。
JavaScript事件循环是异步编程的核心机制,通过宏任务和微任务的协调工作实现非阻塞执行。本文深入分析事件循环的执行流程、任务分类和实际应用场景。
这份笔记旨在系统性梳理 JavaScript 中的 Promise 对象。内容从 Promise 的基本定义和特性出发,详细介绍了其三种状态(pending、fulfilled、rejected)以及状态一旦改变不可逆的特点。笔记接着阐述了 Promise 的常用方法,包括 Promise.resolve()、Promise.reject()、Promise.all() 和 Promise.race(),并解释了它们各自的参数和用途。此外,笔记还通过代码示例展示了如何中断 Promise 链,并提供了手写实现 Promise 构造函数、then、catch、resolve、all 和 race 等核心功能的代码。最后,内容延伸至 async 函数和 await 表达式,解释了它们的基本用法和注意事项,以帮助理解现代 JavaScript 中的异步流程控制。