Posts

2026

AI 模型网关的通用架构:从 API 代理到推理治理层

多模型接入后,网关不只是转发请求。本文从职责边界、控制面与数据面、协议归一化和请求处理链路出发,拆解一套可复用的 AI Gateway 架构思路。
阅读全文

多模型路由与故障恢复:重试、熔断和降级的边界

多模型网关的路由不只是挑一个供应商。本文从候选渠道、路由策略、请求 deadline、流式重试和熔断降级出发,讨论怎样让上游故障更可控。
阅读全文

模型网关的治理设计:计费、密钥与隐私保护

模型请求能返回答案只是第一步。本文从虚拟 Key、上游密钥保护、预扣与结算、限额、敏感信息脱敏和审计指标出发,讨论模型网关如何把成本与安全纳入请求生命周期。
阅读全文

Agent 的工程细节:上下文裁剪、重试、编码与打包

核心循环之外,真正决定一个 Agent 能不能用的,是这些琐碎却关键的问题:历史无限增长怎么办、流式中断该不该重试、Windows 控制台为什么乱码、TUI 怎么和核心解耦,以及怎么打包成一个 exe。
阅读全文

从零开始写一个 Agent:一次极简的尝试

不借助任何 agent 框架,只用一个 HTTP 客户端和一个工具,把「会调用工具的模型」从头实现一遍。这篇记录整个过程——Agent 到底比普通对话多了什么,那个循环长什么样。
阅读全文

让 AI Agent 安全地执行命令

给模型一个 bash 工具,等于把 shell 交到它手里。这篇讲一个最小 Agent 如何加护栏——危险命令三分类、审批与非交互拦截、环境变量剥离防外泄,以及 Ctrl+C 的取消语义和进程树清理。
阅读全文

把 yt-dlp 封装成好用的下载器:vidgrab 的设计笔记

yt-dlp 能力很强,但接口是给命令行高手用的。vidgrab 用一层薄封装把它变成「双击即用」的工具——这篇讲它的分层设计、配置驱动的选项构造、双层进度条、风控重试,以及一个容易踩的错误处理陷阱。
阅读全文

一个下载器的工程化踩坑:单文件 .bat、cmd 陷阱与 uv 锁源

功能写完只算一半。真正难的是把程序做成「双击即用」——从一个自解压的单文件 .bat,到 cmd 的重定向陷阱、Python 版本语法差异、uv.lock 的源绑定,以及 Windows 控制台的编码问题。
阅读全文

yt-dlp 技术解析:一条视频是怎么被解析、选择并下载的

yt-dlp 不只是一个下载命令,而是一条「站点解析 → 格式选择 → 分片下载 → 后处理」的管线。这篇拆开它的内部结构,重点讲清格式选择这门迷你语言,以及 ffmpeg 到底负责哪一步。
阅读全文

当游戏引擎也有竞态条件:从 Minecraft 红石看时序设计

游戏不是「实时」的——它跑在固定长度的游戏刻上。一旦红石装置跨越了刻的边界、区块的边界,或依赖了未定义的更新顺序,竞态条件就出现了。这和后端、前端里踩过的坑几乎是同一批。
阅读全文

用 Minecraft 红石入门数字电路:从非门到 RS 锁存器

红石不只是游戏玩法——它是一套完整的数字逻辑系统。用红石粉、火把和中继器,把非门、缓冲器、锁存器、时钟这些抽象概念变成看得见摸得着的东西。
阅读全文

Pagefind 静态搜索技术解析:纯前端也能做的全文搜索

深入讲解 Pagefind 的原理——构建时建索引、运行时 WASM 检索,让静态博客无需后端也能拥有强大的全文搜索。
阅读全文

用 TypeScript 写一个可即时取消的防抖函数

从闭包讲起,实现带 cancel / flush 能力的类型安全防抖,并深入 this 绑定、leading edge、React 集成与单元测试。
阅读全文

深入理解 useEffect 的依赖数组

依赖数组是很多 React Bug 的源头,这篇文章从 Object.is 判定规则讲起,覆盖闭包陷阱、竞态问题与 exhaustive-deps 的正确用法。
阅读全文

用 Markdown 写文章:Void 主题写作指南

在 Hugo + Void 主题下,文章支持哪些扩展语法?Frontmatter、提示框、代码高亮、KaTeX 一网打尽。
阅读全文

CSS Grid 常用布局速查表

整理了日常开发最常用的 Grid 布局写法,从 fr 单位、模板速记到对齐系统,配合完整可抄的代码模板。
阅读全文

你好,这是我的技术博客

这个博客的定位、写作约定,以及如何发布一篇新文章。
阅读全文