Skip to content

Teacher,
I'm on fire to improve.

老师,我太想进步了。

The Record

contributions in the past year

The Toolkit

skills · tools

HTML

CSS

Sass

Less

Tailwind

JavaScript

TypeScript

Vue

Pinia

React

Zustand

React Router

Mini Program

Electron

Element Plus

Naive UI

Ant Design

Vuetify

Bootstrap

Vite

Webpack

HTML

CSS

Sass

Less

Tailwind

JavaScript

TypeScript

Vue

Pinia

React

Zustand

React Router

Mini Program

Electron

Element Plus

Naive UI

Ant Design

Vuetify

Bootstrap

Vite

Webpack

NodeJS

Express

Koa

Java

Spring

Spring AI

MySQL

Netlify

Vercel

Cloudflare

NodeJS

Express

Koa

Java

Spring

Spring AI

MySQL

Netlify

Vercel

Cloudflare

VSCode

OpenCode

Codex

Cursor

Trae

Claude Code

ChatGPT

DeepSeek

WebStorm

Obsidian

VuePress

Git

pnpm

VSCode

OpenCode

Codex

Cursor

Trae

Claude Code

ChatGPT

DeepSeek

WebStorm

Obsidian

VuePress

Git

pnpm

The Writing

my latest posts

上下文工程:决定 Agent 能力上限的不是模型,而是它看到什么

某团队运营一个每日处理约十万次对话的客服 Agent。为了向模型提供实时时间,工程师在系统提示词中插入了一行动态时间戳。结果次日监控显示:所有请求的首 token 延迟从 0.5 秒上升到 3 至 5 秒,月度推理成本接近翻倍。代码本身没有错误,模型也没有更换,问题仅仅出在系统提示词中出现了每次请求都在变化的内容。

这个事故揭示了一条贯穿全章的核心约束:KV Cache 要求上下文前缀保持字节级稳定。理解这一点,才能理解本章其余全部技术方案的设计动机。

Claude Code 上手指南

Obsidian

Claude Code 是 Anthropic 推出的命令行 AI 编程助手,具备强大的自主 Agent 能力,能够直接在终端中协助你完成代码编写、调试、重构等任务。无论你是初次尝试 AI 编程助手,还是希望进一步挖掘 Claude Code 的潜力,这篇指南都将为你梳理从安装到进阶使用的关键环节,帮助你快速上手并高效运用。

Vue3 响应式原理

Vue 3 响应式基于 Proxy 拦截对象的 get/set,在 get 中通过全局 activeEffect 将副作用函数收集到 WeakMap<target, Map<key, Set<effectFn>>> 依赖桶中,在 set 中取出依赖并触发更新;通过 cleanup 机制每次执行前清除旧依赖、重新收集,避免过期依赖。相比 Vue 2 的 Object.defineProperty,Proxy 能直接拦截属性增删与数组操作,支持惰性深层代理。ref 则通过 .value 的 getter/setter 将基本类型也纳入这套体系。

虚拟 DOM 和 DIFF 算法

虚拟 DOM 配合 Diff 算法通过最小化真实 DOM 操作提升视图更新效率。Vue 3 在编译时借助静态提升、PatchFlags、Block Tree 和最长递增子序列等优化,大幅减少运行时无意义的节点对比,相比 Vue 2 的全量递归 Diff 性能更优。

RAG 是什么?

LLM 正成为各类业务的底层能力,但在实际落地中面临知识固化(无法获取新信息)、幻觉(生成无事实依据的内容)以及缺乏私有知识等硬伤。 检索增强生成(RAG)正是解决这些痛点的关键技术——它无需改动模型参数,而是为 LLM 外接一个“专属知识库”, 在回答前先检索相关参考资料,再让模型基于真实信息生成答案,从而实现准确、及时、安全的输出效果。