blog

暴风雨后的宁静-第九十一期

../../images/d5fb22c0ebf6eadeb252254119e86286_720.jpg 暴风雨过后,海面风平浪静,就像所有的污秽都被大雨冲刷掉了,太阳明明快要下落了,但是却光芒璀璨,诉说着此刻的美好。

技术类分享

Agent原理、架构与工程实践

https://tw93.fun/2026-03-21/agent.html

把它想象成一个不断循环的机器人:接收信息 → 想清楚 → 执行动作 → 看结果 → 再循环,直到任务完成。核心代码其实不到 20 行,结构很稳,新功能都是往外加,不改核心。
Workflow(流程固定)vs Agent(AI 自己决策):现实中很多叫”Agent”的产品,其实只是写死的流程。

这篇文章讲解的很详细,以及Agent的原理,适合想要了解AI原理的人阅读。

为什么页面隐藏之后,网页Agent就会停止任务执行

不是某个产品故意做的限制,而是现代浏览器的主动节流机制。涉及几层:

  1. Page Visibility API + 浏览器节流策略

当浏览器标签页切到后台(最小化、切到别的 tab、锁屏、手机熄屏),浏览器会:

  1. 移动端更激进

手机浏览器(尤其 iOS Safari、微信 WebView)一旦进入后台:

整个 JS 执行环境直接挂起(不是节流,是冻结)

WebSocket 会被运营商/系统断开

锁屏几十秒后页面相当于”死了”,回到前台需要重连

  1. 系统级电源管理

macOS App Nap、Windows 的 EcoQoS、移动系统的 Doze 模式

操作系统主动降低后台进程优先级,连原生应用都跑不动,更别说浏览器 tab

常见的两种架构和它们的”暂停”原因

架构 A:前端驱动型(轻量 Agent / Web Agent)

工具调用循环、提示拼装、状态机都在浏览器里跑

页面隐藏 → JS 执行被节流 → 整个调度循环卡住

这类一旦切走真的就停了

架构 B:后端驱动 + 前端订阅型(绝大多数云端 Agent,包括 Knot)

任务在服务器跑,前端只是 SSE/WebSocket 订阅者

页面隐藏 → 后端理论上还在跑,但:

浏览器把 SSE 消息缓冲住不处理 → UI 看起来”停了”

心跳超时 → 后端可能主动断流,认为客户端没人接,节省 token / 算力主动停

长连接被运营商/代理回收 → 重连时没续上原 session

前端某些”用户在线才推进”的确认信号停了 → 后端等不到就停

为什么产品方”故意”让它停下来(不只是技术限制)

除了技术层面,还有产品和成本层面的主动设计:

省钱:大模型 API 按 token 计费,用户都不看了还跑下去是纯烧钱

防失控:Agent 跑长任务可能产生破坏性操作(写文件、调 API、扣费),用户不在场没人兜底

防超时堆积:用户切走可能就不回来了,挂起的会话占着资源

合规/审计:很多 Agent 要求”重大决策需用户确认”,用户离场就不能继续

所以厂商一般会主动加一条:检测到 visibilitychange = hidden 超过 N 秒 → 主动暂停 Agent 循环 暂停计费 等用户回来再恢复。

想让长任务”切走也能跑”,可以怎么办

任务转到后端跑、前端只看进度云端 Agent(Knot 已是这种)已经是这样,但消息推送仍受影响
任务部署到 AnyDev 虚拟机上的 Agent长跑、独立、不依赖你电脑前台需要在 knot.woa.com 创建 Knot 个人数字助理,部署到 AnyDev
Service Worker + Push API网页保留少量后台能力实现复杂、移动端支持差
Electron / 原生客户端桌面端 Agent不受浏览器节流,但对标普通 web 用户门槛高
用户离场前显式”后台继续”UI 层做明示仍受浏览器深度冻结影响

命令行 knot-cli(适合你做技术活时用)

如果你在做编码/数据整理类任务(比如你之前的高考志愿 OCR 项目),用命令行更顺手:

# 直接提一个问题
knot chat -p "帮我看下这个 PDF 怎么解析"

优点:

可以写进脚本,自动化跑批任务

不依赖浏览器,没有页面隐藏被节流的问题

长任务跑起来比网页稳

AnyDev 虚拟机里的 Agent(长任务首选)

如果你有那种”跑很久”的任务(OCR 一批 PDF、爬一堆网页、生成大量数据),可以:

在 knot.woa.com 创建一个 个人数字助理

创建时选择部署在 AnyDev 虚拟机

任务完全在云端虚拟机里跑,和你本地浏览器是否打开完全无关

这是解决你之前问的”页面隐藏 Agent 就停”问题的根本方案。

为什么资深开发者在 AI 时代讲不清自己的价值

https://www.nair.sh/guides-and-opinions/communicating-your-expertise/why-senior-developers-fail-to-communicate-their-expertise

商业侧(销售、产品、CEO)活在”对抗不确定性”的循环里,本能追求把更多东西尽快推向市场以收集反馈;而真正资深的开发者活在”对抗复杂性”的循环里,习惯反问”这真的需要做吗?""不做会怎样?""能不能先扛着以后再说?“,靠克制和减法守住一个长期可维护的系统。AI 工具能把”产出代码”这件事的成本压到极低,所以从商业循环看”开发者快被取代”是真的;但从复杂性循环看,资深开发者的核心能力——判断什么不该做、什么会埋下长期债务——并没被替代。文章呼吁资深开发者用”避免复杂性”这套语言,向不在同一循环里的人讲清自己的不可替代之处。

非技术类分享


杀死那个手写程序员

标题来源于 12 年前我很喜欢的一首万青的歌《杀死那个石家庄人》的改写,和当时他们描述的那个情景也有点类似。

好多年没有坐公交了,上次去太子湾,由于景区限行,只能把车停在外面,坐景区免费接驳车过去。

前面座位看到一个小女孩一直在刷那种 AI 生成的短视频,画面非常粗糙,内容也很假,滑到下一个居然还是差不多的东西,看得津津有味,每个视频的点赞居然也很高。当时看到这一幕我甚至有点伤心,以后我的小孩,是不是也会在看这种粗制滥造的 AI 生产的内容下慢慢长大,很难找不到那种美好的东西。

有了 AI 之后,很多东西的生产一下子就变简单了,做内容简单了,做软件也简单了。以前做一个东西出来,会需要要花不少时间,反复琢磨,要真的解决很多问题,最后才敢拿出来,现在很多环节一下就被抹平了,写点东西很容易,做个产品也很容易,花钱买 Token 问 AI、拼个流程、套个界面,很快就有一个能跑的东西出来。

今天也看到有人说两天可以复刻一个 Claude Code,我是既信又不信,最近语音 AI 软件一下冒出来几十个,看了看体验都还不错,甚至豆包都来卷这个了,Claude Code 的套壳的客户端最近也见了不少,有不少说实话做得挺好用的。

程序员很多以前看着要专业能力、要学习门槛、要长时间积累的东西,正在很快变成一种到处都是的供给。以后最不缺的,可能就是那种看起来像个产品的东西,能用,能跑,也好看,你只能做得再快一点,再好用一点,或者再多包一层,可能还是有价值的,只是这种价值会越来越容易被 AI 的发展追平。

上次吃饭和同事聊一个有意思的话题,我说我最近一年非常喜欢听磁带机,感觉每一首歌都非常耐听好听。为什么以前的磁带、CD、电视节目,甚至很多老书,整体会让人觉得质量更高一点,原因其实很简单,以前生产和分发都非常重。你想发专辑,先得把作品认真做好,然后才有可能去做上万个磁带出来,不然卖不出去下次公司可能就不推你了。想出一本书,也不是写完随手一发,就能立刻推到很多人面前。以前光做出来这一步,就已经筛掉很多东西了。

现在发歌传个平台就行,写东西发个公众号就行,做软件有了 AI 之后也差不多,甚至 AI 直接帮你上传到你之前望之却步的 GitHub,甚至帮你把 Release 自动发布的 CI 都创建好了,很多过去要靠长期积累才能跨过去的坎,现在被工具一下填平了,于是整个世界也就慢慢被大量差不多、看起来也能用的东西占满了。

麻烦的还不只是质量往下走,更是时间久了,大家对质量的感觉也会一起往下走。粗糙的东西越多,传播越广,加上搞钱的驱使,人对美好东西判断会慢慢被带偏,最后慢慢习惯的,就是快刺激、快反馈、快满足。
再回头看那个小女孩刷视频,让人不舒服的地方就在这里,她看的不只是几个粗糙视频,她从小看到的,可能就是一种越来越低成本、越来越高频、越来越空的东西。

可以肯定的是,写代码这个事情现在其实也走到这个阶段了。以后普通小白可以用 AI 写出满足自己能用的产品,产品经理也可以用 AI 做出之前要程序员一起来弄的产品,那么真正的工程师以后还能做什么,其实需要好好想想。

最近听说不少互联网大厂的老板也开始不眠不休的 vibe coding,一个下午也能做出一个自认为可用的 demo,甚至非常沉迷,这件事对一线干活的可能影响会很大,老板跑通代码后会感觉写代码其实也就那么回事。之前要 6 个月的东西,现在是不是一个月就行了,之前要 100 个人,现在是不是 10 个人就够了,后面简直就不太敢想了。

工程师继续做更好用、更高效的产品,当然还是有空间,但光停在这一层,后面一定会越来越挤,能进来的人越来越多,能做出点样子的人也越来越多,就真的非常内卷了。

我想后面真正该去做的,应该是和当时歌手演员一样的方式破解,也发专辑,但是会去做演唱会、舞台剧、现场剧,你没法随便套个壳就替掉,里面有组织能力,有细节密度,有长期打磨之后才会出来的完整感,而且是面对世界的。

软件往后看,我感觉也会越来越像这样,人人都可以 Vide Coding 出产品,都会做一个差不多能用的产品,后面真正能把差距拉开的,还是系统能力、工程深度、场景理解,还有那些别人一眼看不见,但最后会决定这个东西到底有没有分量的地方。

外面越快,越不能把自己对软件的要求一起放低。低水平的供给以后一定会越来越多,但这不代表我们也要跟着变得粗糙。那个你一用就觉得顺手、舒服、克制、毫无 Bug,能感觉到做的人认真对待过的东西,最后往往才是真正能留下来的。

我自己也在琢磨未来的发展之路,还是继续做好用、易用、不局限语言、能拿上万 Star 的开源软件,也会去玩底层渲染、终端、编辑器、Rust 这些方向,在没有 AI 之前其实挺有成就感,但是有了 AI 之后,其实只要有想法就够了,很容易显得意义不大了。

也许是我下一个维度的东西,是软硬件结合的产品,或者是以前只有大厂数千人才能做的那种平台型产品,或者干脆是突破现有维度的东西,但具体是什么,还需要多思考多琢磨。

最近我的一些产品内容,已经在慢慢往英文,往更大的世界走。当这里很多东西都越来越像、越来越挤的时候,往外走可能是一种办法,去面对更大的市场、更不同的用户、更高的要求,很多事就没法只停在套壳、拼快、抢时间差这一层了,它会逼着你把东西做得更扎实,也逼着你重新想清楚自己到底要做什么。

有了 AI 之后,很多事都更容易了,但也正因为更容易了,什么东西真的值得做、值得花很多年去换,反而变得更难想清楚。要做什么可能比怎么更快做出一个东西更加重要了。

看完93大佬最近对AI的感想,有感而发,现在AI确实发展迅速,让人类心生惊讶的同时,又带来了焦虑,今年爱奇艺说要用明星的脸来实践生成AI视频一样,然后导致爱奇艺一周处于负面新闻上,这就反应了人们对于AI的恐惧,恐惧以后看到的视频、看到的内容都不是真人表演出来的,而是AI生成的,而AI的能力目前来看取代最快的就是电脑上的操作,所有关于这方面的工作,取代的风险都很高,但是这也需要强大的AI大模型,以及token的费用,这是否会比人类的薪资还高呢,目前尚未可知,除了头部大厂外,其他的创业小公司能否支持的起来是问题,如果支出太大,那一般的企业就不会使用这样的方式,但不可排除现在免费的AI也能生成代码,但是质量又不能保证,需要人为审核。但很明显的是现在确实是互联网的寒冬了,从今年的招聘形势来看,hc岗位越来越少,公司直接不招人了,而且实习生都不考虑,那这对于刚毕业的大学生来说,他们既没有工作经验,又没有实习机会,就会导致人很焦虑。

AI让我变笨了

https://jpain.io/god-damn-ai-is-making-me-dumb/

现在过于依赖AI,确实会出现这样的问题,因为人的知识是随着时间,会遗忘的,如果你不使用这些知识,就会越来越不懂这些知识,但是这些知识也依旧重要,所以每天的学习,还是必不可少。