「收得到,发不出去」:一次飞书 OpenAPI 21001 策略拦截的完整排查
某天起我的飞书机器人消息照收不误、回复一条都发不出去。查到最后不是代码、不是网络、不是凭证,而是飞书侧一条未公开的访问控制策略:用豆包账号身份登录的账号,名下应用只要配了权限就取不到访问凭证。这篇记录完整的排查路径、一个把结论带偏一天的对照实验,以及可复制的验证步骤。
自托管 AI Agent 搬家记:从一体化 NAS 到 4 核小主机
把跑在一体化 NAS 上的自托管 AI Agent 整体迁到一台 4 核小主机:一次零丢失的切换、一轮全量体检,以及把迁移过来的 18 处配置改动逐条拉出来和官方默认对比——其中一条排空预算告警,最后被证明是框架自己的误报。
给博客做一次极客化改版:三个藏了一个多月的硬伤,和两个被推翻的结论
起因只是想换张首页图、把自我介绍写简单点。结果勘察阶段就挖出三个藏了一个多月的硬伤:头像根本不是我、favicon 线上一直 404、侧边栏公告停在迁移那天。这篇记录改版的全部细节——生成封面时踩的三个渲染坑、两个被实测推翻的结论,以及 GitHub 不给接口时,怎么确认 giscus 到底装没装。
「搜到 ≠ 下得动」:给自建磁力索引器补一个中文搜索前端和死种预筛
自建 DHT 索引器能扒下全网种子元数据,却回答不了一个最实际的问题:这条磁力链还有人做种吗?更有意思的是,它的中文搜索在架构上就是坏的——默认分词器把整串中文当成一个词。这篇文章记录我给索引器补上「存活预筛 + 中文检索」的全过程,包括四个只有真跑起来才会暴露的 bug,以及一次把二手结论推翻的核查。
把 AI Agent 接进微信、QQ 和飞书:三条消息通道的实测评估
我的自建 AI Agent 先后跑在微信、飞书和(评估中的)QQ 上。本文用 7 周的日志实测数据 + 适配器源码 + 平台官方文档三层证据,横向对比三条通道的拦截、截断与限制机制,并给出一个关键结论:'平台是否支持消息编辑'才是决定 Agent 长任务能否稳定投递的分水岭。
一个闯关式学习站的开发记录:选题、架构,和一个被测试抓出来的真 bug
记录把一套 523 课的开源课程改造成闯关进度站的完整过程:为什么放弃「重做一个学习网站」、为什么选元数据薄层而不是镜像、怎么用 Node 在服务器上真跑前端逻辑并因此抓出一个通关判定漏洞,以及让线上校验不作假的几个细节。文末附公开技术文章的隐私与安全自律清单。





