这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
Agent 记忆系统实战:从上下文窗口到长期记忆的持久化架构
LLM 本身没有记忆——每次调用都从空白上下文开始。但真实的智能应用需要跨会话记住用户偏好、任务进度与历史事实。Agent 记忆系统正是为了解决"上下文是易失的、知识是永恒的"这一矛盾而生的工程领域。本指南从记忆的类型学出发,系统覆盖短期工作记忆、长期语义记忆、情景记忆与程序性记 …
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
LLM 本身没有记忆——每次调用都从空白上下文开始。但真实的智能应用需要跨会话记住用户偏好、任务进度与历史事实。Agent 记忆系统正是为了解决"上下文是易失的、知识是永恒的"这一矛盾而生的工程领域。本指南从记忆的类型学出发,系统覆盖短期工作记忆、长期语义记忆、情景记忆与程序性记 …
完整讲解 Node.js CLI 工具开发:shebang 与可执行入口、commander/yargs 参数解析、交互式 CLI(inquirer 提示、进度条)、输出规范与 ANSI 颜色、退出码与错误处理、打包成全局命令与 npm 发布,以及实战脚手架工具设计。
深入 Node.js 输入校验与数据契约:运行时校验的意义、Zod 核心 API 与 Schema 组合、与 TypeScript 的类型联动(z.infer)、请求校验管道、DB 与 API 边界的数据契约、错误信息国际化,以及 Zod vs Joi vs Valibot 选型对比。
N+1 是 JPA 生产事故的头号来源。本节从 SQL 日志里还原 N+1 的形态,对比 JOIN FETCH、@EntityGraph 与 @BatchSize 三种抓取策略的代价,讲清分页叠加 fetch join 的经典陷阱与 LazyInitializationException 的根因,并给出定位与验收方法。
系统讲解 Node.js 错误处理与日志工程:错误分类与自定义错误对象、同步/异步/事件循环错误捕获、Express 与 NestJS 全局错误中间件、错误码与错误响应规范、Pino/Winston 结构化日志、链路追踪与日志关联、Sentry 告警集成。
系统讲解 Node.js 缓存架构:内存缓存与 LRU、Redis 缓存层设计与序列化、TTL 与过期策略、缓存穿透/击穿/雪崩的成因与防护(布隆过滤器/互斥锁/随机过期)、缓存更新的一致性策略(Cache Aside/Write Through/双写)与监控演进。
用 -memprofile 加 pprof 的 -alloc_space / -alloc_objects / -list 三件套,把分配热点从函数级定位到行级;再用同一份 benchmark 对比 bytes.Buffer 裸用与 sync.Pool 复用,实测 allocs 从 10 降到 1、B/op 从 44992 降到 12293,并诚实报告 ns/op 没有明显改善。
把 -gcflags=-m 的每一行拆开读:从 go1.27.0 的 escape 包(escape.go、graph.go、solve.go、leaks.go)看数据流图怎么建、leaks 位图怎么编码、不动点怎么解,并用同一段代码在开/关内联下的不同输出,解释「moved to heap」「escapes to heap」「flow:」三行分别在说什么。
用 50 万次真实分配测出「请求 33 字节实得 48 字节」这类 size class 圆整,实测每对象字节数逐条对上 runtime 的 size class 表,并把一次小对象分配的三级路径(mcache → mcentral → mheap)钉到 go1.27.0 源码的 mallocgc、nextFree、cacheSpan 上,最后给出按 size class 选对象尺寸的决策表。
系统讲解 Node.js 文件系统工程实践:fs API 三形态(同步/回调/Promise)、path 模块与跨平台路径、大文件流式读写与背压、目录监听 watch、路径遍历防护、原子写入与临时文件,以及磁盘 IO 性能剖析。
深入 Node.js 模块系统:CommonJS 解析机制与缓存、ESM 静态分析与 tree-shaking、双格式互操作、package.json exports 字段、循环依赖成因与对策、包管理器选型(npm/pnpm/yarn)与 Monorepo 模块边界设计。
深入 NFT 市场合约开发:ERC-721/1155 标准差异、挂单/撮合/托管架构、EIP-2981 版税实现、上架购买流程、EIP-712 签名订单与重入抢单等安全考量。
派生查询、@Query(JPQL / native)与 Criteria、Querydsl 各有适用边界。本节用图书借阅服务的多条件检索场景对比三种写法的可维护性与类型安全,给出动态条件查询的落地方式、原生 SQL 的方言锁定代价,以及 4.x 下 Hibernate 7.x 的相关口径。
本节是全卷的版本迁移承载节。用 api 清单与 1.26/1.27 差分两套证据,逐项列出 Go 1.24 到 1.27 的语言、标准库、工具链与实验开关变更,为每一项给出「需要改代码吗」的判断列,并把三处默认语义翻转做成前后对照实测,最后汇总成可直接执行的迁移检查表。
math/rand/v2 与 iter.Pull 常被记错版本归属。本节用 api 清单核实:前者 Go 1.22 引入、1.24 补 AppendBinary,后者是 Go 1.23 的 range-over-func 配套;再实测 PCG 与 ChaCha8 的可复现与 MarshalBinary 往返,给出 iter.Pull 比 range 慢约 132 倍的真实数字与使用判据。
encoding/json/v2 是 Go 1.27 才默认可用的新 JSON 实现。本节先给出它在 1.26 必须开 GOEXPERIMENT=jsonv2、1.27 默认开启的版本归属证据,再用本机实测逐条对比 v1 与 v2 在大小写匹配、重复字段、HTML 转义、map 键序与非法 UTF-8 上的语义差异,最后给出 import 替换、Options 组合与迁移检查表。
本节补齐 ResearchCopilot 接口的三个边角:用 Idempotency-Key 让同一 key 重复 POST 只创建一个 run、设计 code / message / details / request_id 四字段统一错误体并给出错误码表、用游标分页取代 offset 分页,三处都用 TestClient 真跑并贴出真实输出。
接入卷一实际 stream_run 入口,交付完整 SSE 回放、失败事件与游标验收,明确进程内测试、真实网络和原生模型流的区别。
本节为 ResearchCopilot 设计会话与任务 API:把 session、run、message 三类资源钉成 REST 语义,讲清为什么 run 必须独立成资源而不是 session 的一个动作,给出资源关系图与状态字段,并用 FastAPI 0.143.0 真跑一组路由,贴出 TestClient 打出的真实 JSON 响应与 OpenAPI 契约。
接口写完了,但契约只活在代码里:客户端没有类型、文档会过期、字段改名没人知道。本节给 TaskHub 补上 OpenAPI 契约优先的流程,用 oapi-codegen 从一份 openapi.yaml 真实生成类型与服务端骨架并跑通请求,实测生成器对 enum 与多余字段的校验边界,再写一个契约漂移检查把 spec 和路由锁在一起,最后给出 URL 版本化与废弃策略。