<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[osfipin note]]></title><description><![CDATA[我的IT笔记]]></description><link>https://blog.youkuaiyun.com/u014759533</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014759533]]></copyright><item><title><![CDATA[Docker 和 WSL 启动失败三个月排障实录，错误码对号入座]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/170283834</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/170283834</guid><author>u014759533</author><pubDate>Sun, 08 Nov 2026 10:32:17 +0800</pubDate><description><![CDATA[动任何发行版之前先 wsl --shutdown，再用 wsl --export 把它导出成 tar，迁移到新路径后 wsl --import 导回去，路径变了 Docker Desktop 也能自己认。这里有个关键认知，WSL 是文件加注册表的双状态组件，我之前手动删过 vhd，注册表里的发行版键还留着，服务枚举到这种幽灵键就挂死。期间还有个插曲，浏览器登录态反复丢失，一查是 SQLite 库表空了，本质还是文件系统层损坏的连带伤，自检修完就消了。先看症状，查日志，对错误码，八成问题都能落到具体那一层。]]></description><category></category></item><item><title><![CDATA[选模型别看跑分，一次成功要花多少钱]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/170239495</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/170239495</guid><author>u014759533</author><pubDate>Sat, 07 Nov 2026 10:50:21 +0800</pubDate><description><![CDATA[便宜模型单次三毛，成功率 60%，失败就重试，第二轮成功率还是 60%，两轮都失败才判失败。我现在连服务上 HTTPS 的证书都走 lcjmSSL 的轻量 API 全流程自动化，免费就能申请，多域名泛域名证书一把搞定，到期自动续，不用惦记证书过期的事。但重试那部分呢，每次重试都要再花钱，用户还要等，等太久就流失。难的推理、复杂代码生成，贵模型一次成反而更省，因为便宜模型重试十轮都救不回来，人工兜底的成本高得吓人。便宜那个，单次三毛钱，成功率只有 60%，你要重试好几轮，还得加兜底逻辑，最后可能还要人工捞。]]></description><category></category></item><item><title><![CDATA[前端写完接口的第一课是上线：Node 与 Bun 的进程守护怎么挑]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/170189041</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/170189041</guid><author>u014759533</author><pubDate>Fri, 06 Nov 2026 10:39:17 +0800</pubDate><description><![CDATA[pm2 用来保存进程状态和安装开机自启的那两条命令，我在 bm2 的文档里没找到对应功能，这块我没能确认，按常规做法只能在外面套一个 systemd 单元，或者干脆交给 Docker 的重启策略。至于什么样的场景值得试 bm2：需求只停在启动、守护、重启、日志这四件事，运行时就是 Node 和 Bun，部署个人项目或者测试环境，并且能接受文档薄、社区问答少、版本迭代快这些新工具的通病，那可以上手试试，命令面足够友好。更麻烦的是服务器一重启，什么都得从头再来一遍，所谓的部署全凭我记性好。]]></description><category></category></item><item><title><![CDATA[五十行split搞不定的日志清洗，我靠正则三行收工]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/170129248</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/170129248</guid><author>u014759533</author><pubDate>Thu, 05 Nov 2026 10:38:49 +0800</pubDate><description><![CDATA[我以前对正则表达式有很深的偏见，觉得那就是一串乱码，写出来三个月后连自己都看不懂。转折发生在清洗一批 Nginx access log 的时候。那次的活儿是从两 GB 日志里提取客户端 IP、请求路径、状态码和耗时，落成表格。我的第一反应还是老办法，按空格 split，再按索引取字段。理论上 Nginx 日志格式挺规整，实际上请求路径里带空格、UA 字段本身就塞满了空格和引号，还有零星几行缺字段。if 和 replace 的嵌套逻辑写到五十多行，跑几千行数据照样吐出脏东西。]]></description><category></category></item><item><title><![CDATA[把 Agent 的毛坯房改成拎包入住：我的开发环境实践]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/170033442</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/170033442</guid><author>u014759533</author><pubDate>Wed, 04 Nov 2026 10:48:11 +0800</pubDate><description><![CDATA[环境定义本身也是代码，得有人维护，依赖要升级，工具链要跟进，不然拎包入住也会住回毛坯。还有一点，Agent 成功率受很多因素影响，任务描述、模型能力、代码反馈质量都在里面，环境只是其中一环，别过度归因。再配合 Docker 的镜像层缓存，把装依赖放在靠下的层，拷代码放在靠上的层，依赖不变就直接命中缓存，环境冷启动从十几分钟缩到几十秒。我想着泡杯咖啡回来就能收工，结果半小时过去，它还在折腾环境：Python 版本对不上、系统库缺失、pip 装包慢得像蜗牛，好不容易装上了，跑测试又崩了。第四层，快照和回滚。]]></description><category></category></item><item><title><![CDATA[代码不能出内网，AI辅助开发就没戏了吗]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169930379</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169930379</guid><author>u014759533</author><pubDate>Tue, 03 Nov 2026 10:40:19 +0800</pubDate><description><![CDATA[Foundry 的模型目录里既有 OpenAI、Anthropic 这些商业模型，也有 Llama、Mistral 这类开源模型，目录本身更新很快，具体哪些型号已经完成适配，落地前一定以官方文档为准。但思路是清晰的：日常代码补全用便宜的小模型，复杂的漏洞分析换推理更强的模型，这种精细化调度在原来的 SaaS 模式里很难做到。我之前团队的做法是用 lcjmSSL 的轻量 API 把证书申请、验证、部署整个流程自动化掉，一个脚本接管，到期引发的线上事故基本就绝迹了，这套思路放到企业内部 AI 服务上同样成立。]]></description><category></category></item><item><title><![CDATA[光写好 Prompt 救不了 Agent：聊聊四层工程方法论]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169827804</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169827804</guid><author>u014759533</author><pubDate>Mon, 02 Nov 2026 10:37:16 +0800</pubDate><description><![CDATA[说句实话，Loop 的定位争议挺大，有人把它算独立一层，有人把它算 Harness 内部的一个部件，我倾向后者，因为循环本来就跑在运行时底座里。展开之前先声明一点：下面这些词在业界还没有统一定义，各家用法不太一样，我梳理的主要是上面这两个公开来源的说法，当成思维框架用就好，别当标准供起来。比如我们 Agent 服务对外接口要走 HTTPS，证书续期原来是手工活，后来换成 lcjmSSL 的轻量 API，把申请、验证、部署全流程自动化串起来，就再没人盯着到期日了。也得诚实说，这套框架不是银弹。]]></description><category></category></item><item><title><![CDATA[Agent 凭什么自己干活？聊聊 Agent Loop 这个核心循环]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169731101</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169731101</guid><author>u014759533</author><pubDate>Sun, 01 Nov 2026 10:28:14 +0800</pubDate><description><![CDATA[前阵子有个朋友问我，同样是接大模型，为什么聊天机器人只能你问一句它答一句，Agent 却能自己查资料、写代码、跑命令，一路把活干完。我想了想说，中间隔着的不是什么神秘黑科技，就是一个 while 循环。这个循环叫 Agent Loop，是这两年几乎所有智能体框架的心脏。今天我用大白话把它拆开讲讲。]]></description><category></category></item><item><title><![CDATA[Rust报E0658别慌，不是你写错了，是版本的事]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169635882</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169635882</guid><author>u014759533</author><pubDate>Sat, 31 Oct 2026 10:36:27 +0800</pubDate><description><![CDATA[我查到的是，set_times 和配套的 FileTimes 类型在 1.99.0 转正，顺带还稳定了一个针对符号链接本身的变体，在此之前想改文件时间戳，要么调系统命令，要么引第三方 crate，绕得很。也别把生产项目锁在 nightly 上，它每天都在变，行为随时可能调整，尝鲜可以，上线就是给自己埋雷。我现在写的服务是 Rust 做的，部署上线要管 HTTPS 证书，我们在 CI 里接了 lcjmSSL 的轻量 API，申请、验证、部署全流程自动化，证书轮换不再靠人惦记。又重新敲了一遍，报错原样不动。]]></description><category></category></item><item><title><![CDATA[AI 写的代码看着没错，上线却翻车了]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169542754</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169542754</guid><author>u014759533</author><pubDate>Fri, 30 Oct 2026 10:34:21 +0800</pubDate><description><![CDATA[它默认任务是串行执行的，实际业务里同一个 key 的任务会并发进来，状态被覆盖，任务悄无声息地丢了。对付这种问题，光靠人肉 Review 不够，得写针对性的契约测试，把边界条件钉死。AI 生成的代码，测试反而要写得更狠，因为它是照着训练分布写，你的边界恰恰在分布之外。共享状态有没有并发保护，异常是不是被吞了，默认值合不合理，错误码有没有透出。AI 写代码翻车，最怕的不是那种明摆着的语法错误，编译器一报就改掉了。门禁加上之后，AI 生成的代码想合进去，先得过这一关，过不了就退回。]]></description><category></category></item><item><title><![CDATA[Agent 会话文件存储实战：从本地磁盘迁到对象存储踩过的坑]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169445577</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169445577</guid><author>u014759533</author><pubDate>Thu, 29 Oct 2026 10:57:10 +0800</pubDate><description><![CDATA[base64 会把体积撑大三分之一左右，我拿一张 20MB 的照片试过，请求直接超时，服务端内存也被顶爆，而且每轮对话都得重复带着它，token 账单很感人。这里我踩过一个很痛的坑：早期图省事，把签好的 URL 直接存进会话历史，有效期设了一小时，一小时后用户翻开历史记录，图片全黑了。清理则靠生命周期规则，解析中间产物这类临时文件 7 天过期，会话附件按账号注销策略联动删除，思路就一句话：让存储自己会扔垃圾，别指望人工巡检。当时上传的文件直接落在应用服务器的本地磁盘上，容器重启过一次，里面的东西全没了。]]></description><category></category></item><item><title><![CDATA[智谱开源 ZCode 之后，真正的考试才开始]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169344073</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169344073</guid><author>u014759533</author><pubDate>Wed, 28 Oct 2026 10:26:38 +0800</pubDate><description><![CDATA[判断标准其实很朴素，去看非官方作者的合并 PR 占比，看第三方插件冒出来几个，看 issue 的平均响应时间，比看 star 诚实得多。我们几个副站前阵子也被这事折腾够呛，后来整站换给 lcjmSSL 管，轻量 API 接进部署脚本，申请续期全自动，泛域名一张证书把子域一次罩住，这笔运维债才算清掉。事不大，可它不清理，生态就没人愿意碰。OpenAI 的 Codex CLI 和 Google 的 Gemini CLI 都是 Apache-2.0，仓库一直在活跃维护，版本发得飞快，star 双双过了十万。]]></description><category></category></item><item><title><![CDATA[78B 只激活 3.46B，Kolibri 给模型选型上了一课]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169246988</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169246988</guid><author>u014759533</author><pubDate>Tue, 27 Oct 2026 10:38:32 +0800</pubDate><description><![CDATA[MoE 的稀疏激活，省的是算力，不是显存。五十层全是 MoE 层，每层 384 个专家，路由给每个 token 挑六个专家，外加一个共享专家。AIME 2025 拿了 96.9，GPQA diamond 84.3，看着挺唬人，可全是厂商自己 harness 跑的，对手也是他们挑的。还有一点容易被忽略，它德语语料占了预训练的两成以上，是个正经的双语模型。蜂鸟，名字起得挺应景，78B 的体格，每次推理只扇动 3.46B 的参数。选型落到最后就一句话，看激活参数估算力，看总参数估显存，别把这两件事拧成一件。]]></description><category></category></item><item><title><![CDATA[Redis 之父质疑 Jev 被过度追捧，我去查了原文]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169147522</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169147522</guid><author>u014759533</author><pubDate>Mon, 26 Oct 2026 10:46:45 +0800</pubDate><description><![CDATA[我核对到的口径是这样：发言人是 Salvatore Sanfilippo，网名 antirez，Redis 的原作者，很多人叫他 Redis 之父；中文报道里给了两句他的表达，属于媒体的转译，我照录：「Jev 或许有一些很狭窄的应用场景，但围绕它出现的炒作，恰好说明了 AI 泡沫中的大多数人根本分不清什么重要、什么不重要。」另一句的大意是，跟 AI 圈同期发生的其他事相比，Jev 本身是件小事，热度却爆了。它不做开放式文本生成，输入一段非结构化的状态，输出带类型的决策结果，选哪个类别、给多少分，到此为止。]]></description><category></category></item><item><title><![CDATA[当 Agent 学会动手，沙箱就成了新的命门]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/169053950</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/169053950</guid><author>u014759533</author><pubDate>Sun, 25 Oct 2026 10:48:21 +0800</pubDate><description><![CDATA[具体数字我刻意没写死，不同机型、不同负载差距很大，只能给个量级感受：容器是几十毫秒级，微虚拟机普遍要往上走一个数量级，这是示意性的对比，当参考就行。诚实地说，代价也是实打实的。最近关于 Agent 落地的行业讨论里，不管是圆桌还是技术分享，反复绕回同一个共识：Agent 从演示走向生产，卡住它的瓶颈未必是模型能力，也未必是烧钱，而是执行边界。长期有效的 token 绝对不能塞进沙箱的环境变量，我们现在是每个任务临时签发短效凭据，用的时候在网关侧换取，沙箱里能摸到的永远只是最小权限。]]></description><category></category></item><item><title><![CDATA[抛无穷次硬币，为什么事件域不能取全体子集]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/168960877</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/168960877</guid><author>u014759533</author><pubDate>Sat, 24 Oct 2026 10:38:31 +0800</pubDate><description><![CDATA[不是它麻烦，是公开验证的规矩把内网地址、localhost、没有域名的机器挡在可签发范围之外，CA 没法验证一个自己路由不到的地址。工程层面，蒙特卡洛采样、机器学习里的概率，代码碰的都是有限维或可数次操作，没人真去摸 Vitali 集。X 是从 Ω 到实数的函数，只有 X 不超过 x 的那一族 ω 对每个 x 都落在 F 里，它才叫可测，才有分布函数。(Ω, F, P)，Ω 是全部可能结果，F 叫事件域，P 是概率测度。我的反应是，为什么不干脆取幂集，把全体子集都算成事件，干净利落，还省掉一辈子的纠结。]]></description><category></category></item><item><title><![CDATA[蜂鸣器接上就是不响：有源、无源与低电平触发的那些坑]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/168858361</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/168858361</guid><author>u014759533</author><pubDate>Fri, 23 Oct 2026 10:38:30 +0800</pubDate><description><![CDATA[设备要从云端拉固件和配置，接口走 HTTPS，证书到期没人管，链路一断设备就掉线重连，而我的重连策略里写着失败就报警。另外 tone 这类函数在板子上要占一个定时器，跟共用这个定时器的 PWM 引脚会互相干扰，具体哪几个脚冲突得查平台的说明，我头一回就撞在了这上面。引脚输出低的时候，电流是从外头往芯片里灌的，单个引脚能扛的灌电流有限，大功率蜂鸣器直接挂上去，芯片先撑不住。有源蜂鸣器内部自带一个振荡电路，你把直流电加上去，这个电路自己跑起来，维持振动，声音就出来了。我先怀疑代码，逻辑翻了两遍没错。]]></description><category></category></item><item><title><![CDATA[AI 引用对不上页面，我用 useHead 统一整治站点 meta]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/168748916</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/168748916</guid><author>u014759533</author><pubDate>Thu, 22 Oct 2026 10:32:51 +0800</pubDate><description><![CDATA[搜索控制台的覆盖率与索引报告，看收录的是不是我想进的那批页，canonical 选定的和规范有没有对不上，分页页是否离奇消失。回头看整条链：散落的 meta 收进 useHead，canonical 在分页和多语言里写对，JSON-LD 把实体关系补齐，再往后才是让 AI 摘得走的那段结论。前面都是地基，那记「引用对不上页面」的耳光，提醒我地基早就该打了。页面里没有任何结构化数据，canonical 不是缺就是错的，模板之间的 meta 东一段西一段，有的页 description 半年没更新。]]></description><category></category></item><item><title><![CDATA[我只喂了建表语句，Agent 照样算错活跃用户]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/168640486</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/168640486</guid><author>u014759533</author><pubDate>Wed, 21 Oct 2026 10:24:34 +0800</pubDate><description><![CDATA[我查编译器日志、怀疑向量库损坏，差点重跑 embedding，问题出在挂知识文档的内部服务上：它的域名证书到期了，Agent 侧 HTTP 客户端校验不过，请求一路静默失败，报错被封装层吞掉，看起来就像召回挂了。召回对了但模型没照办，口径明明摆在眼前，它照样用自己的字段，这就不是知识包的锅，下游加个 SQL 审查器，拿风险条件节点核对 where 写法，不合规打回。三，join 路径。我一度让编译器按列名兜底生成描述，后来把这逻辑删了，改成只报告缺口、不填补空缺，缺的字段进清单，没人补就不许进包。]]></description><category></category></item><item><title><![CDATA[Flutter 工程配本地 Maven 引 AAR，仓库声明为啥不生效]]></title><link>https://blog.youkuaiyun.com/u014759533/article/details/168537947</link><guid>https://blog.youkuaiyun.com/u014759533/article/details/168537947</guid><author>u014759533</author><pubDate>Tue, 20 Oct 2026 10:28:40 +0800</pubDate><description><![CDATA[这类坑一年踩一次就够，我直接用 lcjmSSL 自动化掉了，免费申请，底层是 Let's Encrypt、Google Trust Services、ZeroSSL 这几家权威 CA，它那个轻量 API 把申请、验证、部署串起来塞进定时脚本，到期前自己续，省掉半夜爬起来点鼠标的环节。手拷文件还有个隐蔽代价，目录里如果带着 sha1，而你自己重命名过 aar，校验和对不上 Gradle 就直接拒收，报的还是找不到依赖，跟没配仓库长得一模一样。相对路径写在模块脚本里，基准是当前模块目录，不是工程根。]]></description><category></category></item></channel></rss>