<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Blog</title><description>A personal blog</description><link>https://kisslua.vercel.app/</link><item><title>模型的上下文到底由什么决定：从自注意力、KV Cache 到 1M 窗口</title><link>https://kisslua.vercel.app/posts/model-context-explained/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/model-context-explained/</guid><description>面试里被问「上下文是什么」，答「对话历史」只能算及格。这篇从「为什么旗舰模型停在 1M」倒推：上下文由谁敲定、自注意力怎么读它、KV cache 怎么复用、prefill/decode 为什么又慢又贵，最后给一套初级 Agent 面试能直接用的答法。</description><pubDate>Wed, 11 Nov 2026 00:00:00 GMT</pubDate></item><item><title>从一团噪声到一张图：文生图到底是怎么工作的？</title><link>https://kisslua.vercel.app/posts/text-to-image-principles/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/text-to-image-principles/</guid><description>文生图不是搜索，也不是模型照着画。它把提示词编码成条件，从随机噪声出发，在几十步里去噪，最后用 VAE 解码成图片。本文用尽量少的公式讲清扩散、CLIP、Latent Diffusion、CFG、DiT 和 Flow Matching，以及为什么模型仍然会数错手指。</description><pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate></item><item><title>机器人怎么从客厅走到卧室？一个纯 Python 家庭导航仿真</title><link>https://kisslua.vercel.app/posts/home-nav-sim-intro/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/home-nav-sim-intro/</guid><description>在一个 14×10 米的 2D 家里，让机器人从客厅走到卧室：占据栅格、粒子滤波、A*、DWA、PID，每一层都在回答一个问题。本文不堆公式，按一条完整的导航链路讲清家庭机器人是怎么「认路、看人、躲开、走到」的，也诚实说明它和真机、完整 SLAM 的距离。</description><pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate></item><item><title>PostgreSQL 入门：AI 时代它为什么又火了，以及和 MySQL 的关键差异</title><link>https://kisslua.vercel.app/posts/postgresql-intro-ai-era/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/postgresql-intro-ai-era/</guid><description>AI 应用把 PostgreSQL 重新推回选型中心：pgvector 让向量和业务数据同库同事务，JSONB、全文检索、地理和扩展让一个库承担更多角色。本文不写操作手册，重点讲清 PG 的设计取向、和 MySQL 在 MVCC、存储、索引、复制上的关键差异，以及什么时候该选 PG、什么时候 MySQL 仍然更合适。</description><pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（参考篇）：Claude Code、pi、Codex、Gemini CLI 是怎么 compact 的</title><link>https://kisslua.vercel.app/posts/agent-compaction-reference/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-compaction-reference/</guid><description>同一件事——上下文快满了——五套实现给出了五种答案：Claude Code 贴近上限才压、还会在缓存冷了之后清理旧工具结果；pi 保留最近 20k token，把摘要做成可迭代的检查点；Codex 保留用户原话、重写其余历史；Gemini CLI 在 50% 就压缩，还做二次校验；OpenCode 把摘要提前到后台算。本文按「触发、切点、摘要、注入、失败恢复」五个决策逐份对照源码，所有引用都带 commit 和文件路径。</description><pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate></item><item><title>分布式锁选型：一个扣库存场景，五种方案，以及那个不需要锁的做法</title><link>https://kisslua.vercel.app/posts/distributed-lock-selection/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/distributed-lock-selection/</guid><description>分布式锁的选型问题，第一问不是「Redis 还是 ZooKeeper」，而是「锁失效了，后果是什么」。这篇用一个「扣库存」场景走完五种方案——Redis、Redlock、ZooKeeper、etcd、数据库——沿途把 Redlock 那场著名争论的双方论点都摆出来，最后会发现：有一条 SQL 根本不需要锁。</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate></item><item><title>向量数据库选型：先弄懂 HNSW 在算什么，再决定要不要上专用库</title><link>https://kisslua.vercel.app/posts/vector-db-selection/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/vector-db-selection/</guid><description>做 RAG 的第一个选型题，通常是「用哪个向量数据库」。这篇文章不列产品对比表——那类表最容易过时。它只做一件事：把向量检索的原理讲到你能自己估出「我的数据量下内存够不够、延迟什么量级、建索引要多久」，然后你会发现，在量过之前，默认答案就是 PG。</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate></item><item><title>大模型训练笔记（三）：LoRA、蒸馏与强化学习，以及你自己怎么上手</title><link>https://kisslua.vercel.app/posts/llm-train-03-post-training-and-getting-started/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/llm-train-03-post-training-and-getting-started/</guid><description>SFT 教会模型「怎么答」，但没教它「哪个答法更好」——因为 SFT 的 labels 里只有唯一那句标准回复。后训练要解决的就是这件事：LoRA 让它便宜、蒸馏让它抄得更多、DPO 和 PPO/GRPO/CISPO 让它从「比较」里学会偏好。这篇把这条链走完，最后给一条你真能上手的最短路径。</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate></item><item><title>大模型训练笔记（二）：预训练与 SFT，从词语接龙到听指令</title><link>https://kisslua.vercel.app/posts/llm-train-02-pretrain-and-sft/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/llm-train-02-pretrain-and-sft/</guid><description>「训练」在代码上是一段 22 行的循环，而「预训练」和「SFT」共用同一段循环、同一个 forward、同一行交叉熵——区别只在喂进去的 labels 长什么样。这篇把这两件事在代码层面剖开：loss 是个什么数字、为什么猜下一个词就能学会知识、以及 SFT 到底多做了什么。</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate></item><item><title>大模型训练笔记（一）：模型下载下来到底是什么，以及为什么它得靠显卡</title><link>https://kisslua.vercel.app/posts/llm-train-01-what-is-a-model/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/llm-train-01-what-is-a-model/</guid><description>你写 client.chat.completions.create(model=&quot;xxx&quot;) 的时候，那个字符串背后是一台机器上的一个文件夹。这篇把它拆开：里面四个文件各是什么、为什么叫「权重」、PyTorch 到底提供了什么、以及为什么这件事非得用显卡。用一个 64M、292 行代码就能读完的开源模型当参照物，标称参数量可以自己算出来验证。</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate></item><item><title>摄像头怎么数人：实时区域人数统计入门，以及数字为什么会跳</title><link>https://kisslua.vercel.app/posts/realtime-people-counting-intro/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/realtime-people-counting-intro/</guid><description>需求很简单——摄像头对着会议室，实时告诉你有几个人。但从一帧画面到屏幕上那个数字，中间隔着六步。这篇不堆术语，就顺着这条链路走一遍：每一步为什么必须存在、它产出什么、下一步为什么需要它。读完了你会知道每个环节在干嘛，也知道数字跳的时候是哪里出了问题。</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Kafka、RabbitMQ、RocketMQ：场景、原理、选型与实战</title><link>https://kisslua.vercel.app/posts/kafka-rabbitmq-rocketmq/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/kafka-rabbitmq-rocketmq/</guid><description>三个消息队列的对比表到处都是，但表格回答不了&quot;我该用哪个&quot;。这篇按四层来讲：它们各自被用来干什么、底层是&quot;队列&quot;还是&quot;日志&quot;这两种世界观、六个问题决定选型、以及 Java 里三者写法的关键差异。顺带纠正三个被传抄多年的错误数字。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>什么技术用什么通信：TCP、HTTPS、gRPC、MCP 的选型原理</title><link>https://kisslua.vercel.app/posts/what-tech-uses-what-protocol/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/what-tech-uses-what-protocol/</guid><description>同样是两个程序说话，为什么后端之间用 gRPC、浏览器与后端用 HTTP、Agent 调本地工具用 stdio、调远程工具又换回 HTTP？这篇文章不列协议清单，只回答一个问题：每种技术之所以用某种通信方式，是被什么问题逼出来的。从域名解析一路讲到 MCP，每一节都给可复现的验证方法。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>微服务该怎么拆：边界、时机与落地路径</title><link>https://kisslua.vercel.app/posts/microservice-decomposition/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/microservice-decomposition/</guid><description>拆分微服务最容易踩的坑，是把「拆服务」当成「把代码拆小」。本文给出三个可操作的边界判据（按可靠性排序）、五条收益各自的前置条件、六种典型拆错方式，以及从模块化单体到物理拆分的完整落地路径；再讲清拆完之后两件最难的事——服务间怎么通信与共享数据（含 Outbox 与幂等这两个绕不开的环节），以及服务治理的四个层次。最后拆解 Prime Video「省下 90% 成本」这个被反复误读的案例，说明它到底证明了什么。</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>AI 是如何识别一只猫的：最好懂的神经网络解释</title><link>https://kisslua.vercel.app/posts/how-ai-ids-a-cat/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/how-ai-ids-a-cat/</guid><description>神经网络支撑着今天这轮 AI 热潮。要理解它，只需要一张地图、一只猫，以及几千个维度。本文翻译 Quanta Magazine 的图解长文——原文的插图大部分是 Lottie 动画，这里按原位置还原。</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>电梯调度：LOOK、RSR 与目的楼层派梯</title><link>https://kisslua.vercel.app/posts/elevator-algorithms/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/elevator-algorithms/</guid><description>「我按了按钮，它为什么还不来？」电梯算法比看起来复杂。本文翻译 john.fun/elevators 全文，并把它的可交互演示移植成可以在页面里直接跑的版本——引擎与原站逐帧一致。</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Git Worktree：同一份仓库，同时签出多个分支</title><link>https://kisslua.vercel.app/posts/git-worktree/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/git-worktree/</guid><description>改到一半被人叫去修线上 bug，你是不是先 stash 再切分支？worktree 让你在同一个仓库上同时签出多个分支，各有独立的工作目录，不用 stash、不用等 checkout 重建文件。这篇讲它的来历、典型场景，以及底层到底怎么实现的——顺便解释为什么它几乎不占额外磁盘空间。</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate></item><item><title>MCP 实战（六）：把这些零件拼起来，然后诚实盘一遍还差什么</title><link>https://kisslua.vercel.app/posts/mcp-06-integration/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/mcp-06-integration/</guid><description>系列收尾。把前五篇的零件拼成一条完整链路，然后诚实盘一遍：每一层换来的是什么、代价是什么，以及如果要拿去做真实项目，这套东西还差哪些部分。最后是我做完这一轮之后，对 MCP 这件事的三点判断。</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate></item><item><title>MCP 实战（五）：给 MCP 加三道安全墙，以及为什么 prompt 不算安全边界</title><link>https://kisslua.vercel.app/posts/mcp-05-security/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/mcp-05-security/</guid><description>上一篇做完，东西能用了。但「能用」和「能安全地用」是两件事。这一篇给数据库 MCP 加三道墙，并用 12 个用例验证它们真的挡得住。核心结论只有一句：安全必须做在模型管不到的地方——靠 prompt 约束模型，本质上是在赌。</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>MCP 实战（四）：做一个能查数据库的 MCP，以及工具描述到底有多重要</title><link>https://kisslua.vercel.app/posts/mcp-04-database-mcp/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/mcp-04-database-mcp/</guid><description>前两篇的工具是玩具，这一篇换成真实场景——让 AI 用自然语言查数据库。做完之后我最大的体会是：模型看不见你的库，它 SQL 写得对不对，九成取决于你怎么描述表结构。写工具描述这件事，比想象中重要得多。</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate></item><item><title>MCP 实战（三）：把 Claude 接进来，然后发现 agent 就是个 while 循环</title><link>https://kisslua.vercel.app/posts/mcp-03-agent-loop/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/mcp-03-agent-loop/</guid><description>上一篇链路跑通了，但决定调哪个工具的是你自己。这一篇把 Claude 接进来，让它来做这个决定。你会看到两件事：连接两者的桥接层只有 30 行，因为 MCP 和 Claude 用的是同一套 JSON Schema；而所谓 agent，剥掉所有包装就是一个 while 循环。</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate></item><item><title>MCP 实战（二）：手写一个 MCP Server，故意不接大模型</title><link>https://kisslua.vercel.app/posts/mcp-02-minimal-server-client/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/mcp-02-minimal-server-client/</guid><description>这篇写一个能跑的 MCP Server 和一个能调它的 Client，全程不到 300 行——而且刻意不引入任何大模型。这不是偷懒，是为了让「MCP 是程序调工具的协议」这件事变得无法回避。等你亲眼看到一个没有任何 AI 的程序调用 MCP 工具，那个概念的混淆就再也不会发生了。</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title>MCP 实战（一）：MCP 是什么，以及它和 Function Calling 到底是什么关系</title><link>https://kisslua.vercel.app/posts/mcp-01-what-is-mcp/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/mcp-01-what-is-mcp/</guid><description>给 AI 接工具这件事，过去是 N 个模型乘 M 个工具的排列组合。MCP 想把它变成加法。这个专栏用一套 Java 代码从零实现 MCP Server 和 Client，最后落到一个能用的只读数据库查询服务。第一篇先把概念理清——尤其是那个几乎所有人都会搞混的问题：MCP 和 function calling 到底是不是一回事。</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate></item><item><title>AI 应用开发面试笔记:RAG、Agent 与工程化全链路</title><link>https://kisslua.vercel.app/posts/ai-app-dev-interview-notes/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/ai-app-dev-interview-notes/</guid><description>面向 AI 应用开发岗的面试笔记:从 LLM 基础、Prompt 工程到 RAG、Agent、工程化与成本优化,一条主线的全链路高频考点与答题框架。</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>谈谈 Docker 的优缺点：一篇 2015 年的文章，与 2026 年的答案</title><link>https://kisslua.vercel.app/posts/docker-pros-and-cons/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/docker-pros-and-cons/</guid><description>一篇 2015 年的文章把 Docker 讲透了：镜像贯穿流水线、永远从空环境开始、Dockerfile 就是环境文档；代价是多一层复杂度、共享内核隔离弱、以及银行这类强监管领域的阻力。十年后回看，哪些被解决了、哪些纹丝不动、哪些换了形式——再补一整节「今天实际怎么做」：多阶段构建、distroless、BuildKit、供应链签名与准入控制，以及 Docker 在 2026 年的新战场：给 AI Agent 当边界。</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate></item><item><title>把 5 万行 Java 移植到 Go：一份完整的实战复盘</title><link>https://kisslua.vercel.app/posts/porting-50k-loc-java-to-go/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/porting-50k-loc-java-to-go/</guid><description>一位承包商花 601 小时把 RavenDB 的 Java 客户端移植成 Go。他最大的时间开销不是架构设计，而是反转变量声明顺序；他用 HTTP 流量比对做差分测试；他当年写下「Go 还没有泛型」——而泛型方法直到 Go 1.27 才落地。本文是原文的完整中文翻译，逐节补齐 2026 年的现状勘误，并新增一整节：今天用 Go 1.27 重写这个客户端，会怎么写。</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 实战（六）：把散落的零件拼成完整项目</title><link>https://kisslua.vercel.app/posts/rag-06-integration/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/rag-06-integration/</guid><description>系列收尾。把前五篇的零件拼成一条完整链路，然后诚实地盘一遍：每一层优化换来了什么、代价是什么，以及如果要上生产，这套东西还差哪些部分。</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>异步编程（一）：阻塞 I/O 与非阻塞 I/O</title><link>https://kisslua.vercel.app/posts/async-blocking-nonblocking/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/async-blocking-nonblocking/</guid><description>从「I/O 到底有多慢」讲起，拆开一次 socket 通信的两个阶段，再看阻塞、非阻塞、I/O 多路复用到底在哪儿等、为谁等；顺带厘清水平触发与边沿触发，以及为什么 asyncio 其实并不是真正的异步 I/O。</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 实战（五）：给 RAG 做量化评估</title><link>https://kisslua.vercel.app/posts/rag-05-evaluation/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/rag-05-evaluation/</guid><description>前四篇每次优化都靠「感觉变好了」，这一篇把它变成数字。检索指标可以精确计算，生成指标却必须借助 LLM 裁判——而示例代码里那两个生成指标只是占位实现，不能拿来当结论。</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 实战（四）：Rerank 重排序</title><link>https://kisslua.vercel.app/posts/rag-04-rerank/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/rag-04-rerank/</guid><description>粗排追求找全，精排追求找准，两者的模型结构就注定了它们不能是同一个。这一篇讲清 Bi-Encoder 和 Cross-Encoder 的本质差别，并用 Cohere Rerank 落地粗排-精排两阶段架构。</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 实战（三）：混合检索与 RRF 融合</title><link>https://kisslua.vercel.app/posts/rag-03-hybrid-retrieval/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/rag-03-hybrid-retrieval/</guid><description>纯向量检索漏关键词、纯关键词检索漏语义，两者的短板恰好互补。这一篇用 BM25 + 向量双路召回、RRF 融合排序，并说清 PostgreSQL 做中文全文检索绕不开的那个前置条件。</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 实战（二）：跑通最简 RAG 链路</title><link>https://kisslua.vercel.app/posts/rag-02-basic-rag/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/rag-02-basic-rag/</guid><description>不引入任何优化，先用 Spring Boot + Spring AI + pgvector 把「切分 → 向量化 → 检索 → 组装 Prompt → 生成」这条链路完整跑通，并且搞清楚每个环节在代码里对应哪几行。</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 实战（一）：RAG 是什么，以及环境怎么搭</title><link>https://kisslua.vercel.app/posts/rag-01-overview/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/rag-01-overview/</guid><description>大模型知道很多，但不知道你们公司的事。这个专栏用一套 Spring Boot + Spring AI 的代码，从最简链路一路做到混合检索、Rerank 精排和量化评估。第一篇先把 RAG 到底解决什么问题讲清楚，再把环境搭起来。</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（五）：接上第二个 Provider 和 MCP，验证抽象到底成不成立</title><link>https://kisslua.vercel.app/posts/agent-05-mcp/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-05-mcp/</guid><description>一个抽象只有一个实现时，你无法判断它是否成立。第五篇接入 Anthropic 协议和 MCP，实测发现两家的 input_tokens 语义并不一样，也实测出 MCP 这一层究竟抹平了什么、抹不平什么。</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（四）：上下文管理，压缩历史为什么会让缓存失效</title><link>https://kisslua.vercel.app/posts/agent-04-context/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-04-context/</guid><description>上下文是预算，不是容器。第四篇讲 token 估算、压缩策略和 KV 缓存的前缀匹配——以及一个意外发现：压缩会让缓存命中率掉下来，省下的 token 可能还不够赔的。</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（三）：写工具与权限系统，让它从「能跑」变成「敢用」</title><link>https://kisslua.vercel.app/posts/agent-03-permission/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-03-permission/</guid><description>给了 agent 写文件和跑命令的能力之后，第一个问题就是：它让你删库，你要不要照做？第三篇讲信任模型、风险分级、路径沙箱和危险命令拦截，以及为什么「每次都问一遍」最终会导致审批疲劳。</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（二）：工具系统与核心循环，agent 的心跳在这里</title><link>https://kisslua.vercel.app/posts/agent-02-tool-loop/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-02-tool-loop/</guid><description>「模型说要调工具，你执行完把结果喂回去」——这个循环是整个 agent 的心跳。第二篇实现 tool_use 循环、增量参数累积和虚拟线程并发，并踩中思考模式下 reasoning_content 必须回传的那个坑。</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（一）：打通流式对话，把 SSE 一寸寸拆开看</title><link>https://kisslua.vercel.app/posts/agent-01-streaming/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-01-streaming/</guid><description>流式输出看起来是个 UI 问题，实际是协议问题。第一篇从一次真实请求的原始数据流入手，手写 SSE 解析，把各家的协议方言归一化成一套统一事件——不引任何 agent 框架，全程只有 1 个第三方依赖。</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>系统扩展：从 0 到 1000 万用户</title><link>https://kisslua.vercel.app/posts/system-design-scale/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/system-design-scale/</guid><description>从单服务器到多区域单元化，系统扩展的七个阶段：何时该拆数据库、连接池该开多大、缓存与 CDN 的先后顺序、分片之前该穷尽哪些手段、微服务的真实动机，以及 CAP 如何按业务分而治之。</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent 实战（零）：从零手写一个编码 Agent，先想清楚这六条铁律</title><link>https://kisslua.vercel.app/posts/agent-00-overview/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/agent-00-overview/</guid><description>用 Java 21 从零手写一个编码 agent，不依赖任何 agent 框架。总览这一篇讲清楚选型理由、实测的模型事实，以及贯穿全程的六条铁律——每一条都是踩过坑之后总结的，违反了会出很难查的 bug。</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code 多窗口配置思路:每个窗口,各配各的模型</title><link>https://kisslua.vercel.app/posts/claude-code-multi-window-models/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/claude-code-multi-window-models/</guid><description>每个 Claude Code 窗口各有分工,如何让它们各配各的模型?一份独立配置就能做到。</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate></item><item><title>模型正在被「故意变笨」</title><link>https://kisslua.vercel.app/posts/models-getting-dumber-on-purpose/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/models-getting-dumber-on-purpose/</guid><description>推理分数在涨，每 token 算力在降。实验室正在把世界知识从权重里剥离出去——作者认为这是对的取舍。为什么知识该外挂、程序该内化，以及这件事对幻觉、对本地部署、对你今天该选什么模型意味着什么。</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Agent 的缓存保温（keepalive）多花了 8 倍的钱：间隔前沿</title><link>https://kisslua.vercel.app/posts/cache-keepalive-cost/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/cache-keepalive-cost/</guid><description>所有人都同意要开 keepalive，几乎所有人都用错了间隔。作者实测了 Anthropic、OpenAI、Gemini、DeepSeek 四家的保留曲线，结论是：正确间隔约 4 分钟而非 30 秒，OpenAI 应该用 8 分钟，而一旦间隔超过 TTL，每次 ping 都在按全价重新 prefill 一个死缓存——比完全不管还贵 4 倍。</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Java - 网络与 IO 篇</title><link>https://kisslua.vercel.app/posts/java-io/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-io/</guid><description>用寄快递和点外卖的类比讲清网络与 IO：TCP 三次握手四次挥手、粘包与拥塞控制、HTTP/1.1 → 2 → 3、TLS 1.3、五种 IO 模型与 epoll、零拷贝、Reactor 与 Netty，以及线上的 TIME_WAIT、CLOSE_WAIT、端口耗尽排查。</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - JVM 篇</title><link>https://kisslua.vercel.app/posts/java-jvm/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-jvm/</guid><description>用一家餐厅的类比讲透 JVM：运行时数据区、对象的一生、垃圾回收算法与收集器、内存分配策略、类加载与双亲委派、JIT 编译，以及 CPU 100% / OOM / 内存泄漏的线上排查剧本。按 JDK 25 现状更新：G1 默认、ZGC 分代化、紧凑对象头。</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - 多线程篇</title><link>https://kisslua.vercel.app/posts/java-thread/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-thread/</guid><description>线程基础、synchronized、JMM、CAS、volatile、AQS、ReentrantLock、线程池、ThreadLocal、ConcurrentHashMap等核心知识点。</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - 集合篇</title><link>https://kisslua.vercel.app/posts/java-collection/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-collection/</guid><description>ArrayList、LinkedList、HashMap底层原理、扩容机制、寻址算法、死锁问题等核心知识点。</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - 消息中间件篇</title><link>https://kisslua.vercel.app/posts/java-mq/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-mq/</guid><description>RabbitMQ和Kafka的核心概念、消息可靠性、重复消费、死信队列、消息堆积、高可用等核心知识点。</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - 微服务篇</title><link>https://kisslua.vercel.app/posts/java-microservice/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-microservice/</guid><description>Spring Cloud 组件、注册中心、负载均衡、熔断降级、限流、分布式事务、接口幂等性等核心知识点。已按 2026 现状更新：Spring Boot 4.0 / Spring Cloud 2025.1、Nacos 3.x 的 MCP Registry、Resilience4j 与 Sentinel 的分工、Seata 2.x 与 XXL-JOB 3.x，以及 Transactional Outbox、去重表幂等、服务网格等新章节。</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - Spring 篇</title><link>https://kisslua.vercel.app/posts/java-spring/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-spring/</guid><description>Spring 单例Bean、AOP、事务失效、Bean生命周期、循环依赖、Spring MVC、自动配置、MyBatis等核心知识点。</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - MySQL 篇</title><link>https://kisslua.vercel.app/posts/java-mysql/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-mysql/</guid><description>MySQL 慢查询定位、索引原理、SQL 优化、事务 ACID 与隔离级别等核心知识点。</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - Redis 篇</title><link>https://kisslua.vercel.app/posts/java-redis/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-redis/</guid><description>Redis 缓存穿透、布隆/布谷鸟过滤器、RedisBloom、击穿、雪崩、双写一致性、持久化、分布式锁、集群等核心知识点。</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - 基础篇</title><link>https://kisslua.vercel.app/posts/java-basics/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-basics/</guid><description>补上其它几篇默认你已懂的「地基」：基本类型与装箱、String 与字符串池、equals/hashCode 契约、面向对象、异常、泛型擦除、反射与动态代理、SPI、Java 8 函数式，以及 JDK 9 → 25 的现状（record / sealed / 模式匹配 / 虚拟线程 / 结构化并发）。</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java - 完整笔记（带图）</title><link>https://kisslua.vercel.app/posts/java-full-notes/</link><guid isPermaLink="true">https://kisslua.vercel.app/posts/java-full-notes/</guid><description>Java后端完整学习笔记，包含Redis、MySQL、Spring、微服务、消息中间件、集合、多线程等核心知识点，附带大量图解。</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>