越发急躁,以及期末,没有那么多时间把话说开,故就草草写完,不是太严肃的分析,博大家一乐。

llm省流

省流版

LLM不是AGI,它只是一个强大的信息检索与格式化输出工具。正确使用它的核心心法只有一句话:你输入的信息熵决定了输出的质量,而你对自己“知道什么、不知道什么”的判断力决定了你会不会被带进沟里。


指导性意见(按优先级排列)

1. 管住嘴:避免X-Y问题

LLM最大的陷阱不是它不懂,而是它不懂的时候会演得很懂。所以:

  • 不确定根因时,只描述现象,不要给预设。 说“路由器上网不稳定”,别说“帮我检查iptables是不是配错了”。你一给错方向,模型就顺着挖坑。

  • 先让模型帮你建立排查框架,再填细节。 拿到一张概念地图之后,你再判断该往哪个方向走。

  • 判断力实操:每次提问前问自己一句——“这个预设我到底确不确定?” 如果你不确定,就不要把它包装成确定的样子塞给模型。

2. 大胆喂:确定性信息不要省

LLM是“你给多少,它出多少”的工具。课设要求、格式规范、硬性限制——这些你确定知道的东西,是信息熵的锚点,不是约束。锚点越多,输出越精准。模糊输入只能换来average的垃圾输出。

3. 换身份:用第三方视角提问

想获得客观回答,就说“你作为技术选型的评委,评估一下这个方案”,而不是“我朋友xxx”。不同的提问身份会激活模型不同的向量投影区,客观身份比第一人称更容易避开模型的讨好倾向。

4. 保持元认知:时刻判断自己的判断

LLM的核心短板不是缺知识,而是“不知道自己不知道”。而人能补上这块——前提是你在用它的过程中持续问自己:我现在缺的是什么?是框架还是细节?我是不是在错误的方向上让模型越挖越深?这个反思能力是人在LLM面前永远不可替代的东西。

5. 理解工具的边界:LLM是放大器,不是均衡器

它降低的是偶然复杂度(记不住函数名、语法、格式),不是本质复杂度(架构设计、系统理解、创造性判断)。有底层知识的人用LLM加速十倍,没知识的人用LLM在坑里挖深十倍。技术素养的差距没有被抹平,反而被放大了。如果遇到需要“发现自己搞错了才能做对”的任务,目前就不该完全交给LLM。


核心结论

别把LLM当神,也别把它当废物。把它当成一个永远不会拒绝你、永远顺着你说、但永远不知道自己不知道的强力助手。你对它最大的责任就是:替它做它做不到的事——判断。

前言和免责

我也算是vibe coding和使用agent harness一段时间的人了。openrouter配opencode,主要以国模为主。最近的LLM体验又一次回到了大号浏览器即视感。宣传的消息一个比一个神,让我这种小登也得以一览币圈风味,虽然我错过了当时定义下一代互联网,闪电网络引爆新的支付可能这些韭菜镰刀。

虽然我不小心太过好奇玩了玩,代价是投了几百块钱入OKX结果两手空空地出来。

关于加密货币

不过加密货币和DAO,智能合约那种概念真的不错。Matrix最近不是正流行着吗?随着SaaS的各种作恶,把去中心化钱包,密码学知识封装好给用户也许会有市场(不过考虑到平均用户真的只是想上个网,傻瓜式是最重要的,WWW创始人构想的Bucket和Bean可能真有人管理不好也流行不开来,yeah,用户觉得密码不可找回丢失自己的一切反而会大哭大闹的,这也就是一些流氓软件得以生存的地方,我们能做的也许就是尽可能地普及这些知识吧,就像把识字变成每个人掌握的技能。但我真是很期望这个未来,各个金融机构的私有联盟链已经用上了,元宇宙的数字藏品也火过一轮,也许这场火不会烧得那么快,但一些基础设施已经先用上了,谁知道呢?三十年前的互联网和现在是完全不能比了。)

幻觉之下

一方面,是对于各种各样的史上最强感到了厌烦,之前是能聊天,能角色扮演,能写好文章,后来是能解数学题(最近也是在解数学题),在后来我们把ai接入各种框架后,我们希望他能写好代码。评测标准在变,训练数据在变,跑分数据在变,我们让模型能记住的特征越来越多,知识面越来越广,旧的互联网快被淘得一干二净。

但我们很容易把模型的通识博学当作智能,而一直忽略了LLM从来没达到那个AGI的拐点。一个模型一开始就很像人类,但经过这么三四年的发展,却又是一直保持着像人而不似人的智能永远在某些领域不如人,究竟是真的线性增长的智能,还是只是一个极其奇异的正则表达式根据输入进行文本生成呢?新测试集的确增加了LLM的能力减少了一些谬误,但是世界真能靠这些短短几个特例规则描述来推理吗?测试集hack刷榜不是一次两次的事情了。但是实际体验又是如何呢?我想各位应该心里有数吧,模型能力提高了,一些之前的问题真的被解决了吗?

关于写作

曾经我也在写一些东西时多次参考LLM的输出,但发现他有时候跟我在不同的频道上,套用看过的一句话,会指出七八个并不存在的错误,给出四五种看上去井井有条实则烂大街的方法,指出自己的想法后又光速滑跪。

还会不管搞什么都要来一点奇怪的比喻,或者说其实你可以两个一起上,先xxx,后yyy,既有xxx的优势又有yyy的好处。额,我只能说,有些话说下去就是信息熵为0的废话,就像是明天可能下雨也可能不下雨,没有锁定任何信息,没有给出任何指导性的例子,我感觉LLM问法真的会影响他能给出的信息内容。

现在写东西一般是某处一个括号(这里要找一个古风词),(这里我记得xxx说过一句意境类似xxxx的话),然后我再根据生成的去挑。以及帮我解决一些排版问题,格式问题,头脑风暴的整理,由于我输入了足够的信息,他能帮我整理得很好,但是具体选择还是得我来,毕竟是我想表达的东西。下文会多次提到这些概念和方法。

被折腾与元认知

另外一点,最近让我祛魅的还有折腾nixos+nebula网络。给了reference文档还不会去看,或者被一些反直觉的地方坑了,语料少真没办法,nebula的host是cert name,groups默认按照and来,nixos的impure和IFD没有关系,impure只和网络,时间之类的有关系。

更别说选型指导了,上次建议我把nebula relay放到ECS而放弃轻量应用服务器上可把我害惨了(关闭联网搜索以提高智商)(不过那时候我是把自己绕进去了,我用LLM的习惯都是反面入手,不说我自己,说我有一个朋友,或者我是xxx老师,xxx评委,要公正地给评价,这样会客观点。但那天晚上也是昏了头,觉得讲得头头是道,什么ipv6支持,稳定性,可扩展性,欸,那些大厂写的离谱软文广告就是新型内容农场专坑只看LLM而不仔细辨认的人。开联网搜索问要不要买SSL证书和不开是两个世界的回答,不开还可能告诉你免费证书自动续期就够了,加密同样很强。开了联网搜索搜到那些卖证书的告诉你安全性权威性能统一管理然后LLM就疯狂推销说你必须买一个)。

另外,我现在让LLM写typst,无论是国模GLM,DEEPSEEK,还是GPT-5.5,没有一个模型能在生成复杂海报这边一次写对的,各种不理解script语法,把typst写成CSS的,LSP错哪修哪然后编译过了排版乱了或者排版是硬编码排的加一行又乱了。与Latex形成了鲜明的对比不是吗?

一些说模型迭代快啊,模型再学习学习就能掌握啦,都是训练不够啦,你不会管理上下文提供prompt啦,你再能学能学过AI吗?LLM读数据然后处理和学习的能力我不反对,我也知道压缩即智能的理念。但是还是那句话,这并不是AGI,AGI应该对这些没有经过训练的部分仍然能保持一定的能力,并且至少能在发现自己的语法不对的时候去翻翻文档而不是让人必须写个AGENTS.md去强迫塞一堆上下文进去。不会写typst,和被GEO污染给出错误选型意见,以及配不好nixos配置,本质上是一样的,模型不知道自己不知道,模型只是顺着这些东西一直跑下去。LLM模型还没法替代人,他不足以继承人类文明,只会陷入无穷循环错误的死循环,这并非AGI。之前很火的蒸馏人skill做数字生命,最近不也没什么人提了吗?因为效果的确没那么好,静态的切片上下文也说明不了人的什么

(实际上,似乎OpenAI他们最近也不怎么喊AGI了)

附加的错误

刻舟求剑的预设,如果你问一些假设当时没有选xxx而选yyy。LLM很容易受到当下语料影响而掺杂当下的看法。比如,我问LLM当时android不用Bionic而是用musl会不会和GNU/Linux系兼容更好还能复用一些二进制缓存和优化技术,为什么不选。

很多LLM一下子就说因为许可证问题,这是一个Google不选择Glibc的原因,但是对于同样开源的Bionic,实际上这并不是问题不是吗?因为musl静态编译友好而且允许二次闭源。另外还会有一些牵强附会的问题,觉得Bionic已经有大量Android hack了所以不用musl,但是当时选了也会像现在一个GKI一个上游内核不对吗?


推理?还是耸人听闻?在问题封闭,被很好描述,能设计好奖励反馈的领域(如数值计算),模型的压缩能力可能真的捕捉到了部分带有封闭形式的模式。但是在一些现实的复杂问题上却遇到了麻烦,大多数模型我第一次问他们还会认为两台电脑USB接口直接相连会导致主板烧毁,充电宝的usb-c输出接到自己输入口会导致烧毁(喂,这和充电宝一边插电充一边放电发热有什么差啊,我不知道底层电气特性会有什么差异,但是他们也没解释清楚)


就算勉勉强强也能解决的问题,有时候LLM并不是最优方案,就算是在处理部分纯字符方案,LLM也不是最优解。寻找字符串子串的KMP只要N+M的复杂度和LLM的上万运算完全比不了,能源问题?可持续问题?现在的问题就是一些非解析填表任务也要加上模型知识覆盖来把弓箭射上月球,就像是拿着锤子到处找钉子锤,说这个可以约化成钉子,说锤子可以外带电池变成导线。我只能说有时候我们还是得去找更好的工具,LLM的优势在于知识广度和通用的模板插值和提取信息能力。

工程约束LLM

在给出积极建议,给出我最近怎么用LLM之前,我想先聊聊我们最近让模型变得更智能的东西都是怎么回事。这些东西虽然不是模型本身的智力,但是却极大增强了模型对世界的认知和操作力(也容易让我们误以为模型变得更智能了调用工具不出错浪费token了而忽略了其他方面提高平平)

最基础的,Prompt工程和RAG,在一切开始前给模型一些相关的上下文,以期能在特定任务中表现良好,本质还是选择合适的向量在LLM这个巨大的数据库里面锁定我们的投影,这和搜索引擎很像。

后面的skills更是渐进式披露上下文以控制上下文控制输出方向的集大成者。提一下mcp,mcp原本就是用工程的方法统一地让模型能调用工具,虽然工具上下文膨胀同样污染了我们刚开始的那些Prompt工程创造的上下文环境,所以后面我们用RunCommand的mcp配合Linux coreutils这类的CLI工具(CLI工具最有用的一集,使用方法已经内嵌在模型内部了不用塞奇怪的mcp上下文)。

所谓的harness也是把n8n那样的自动化工程带入LLM而已,但LLM这个节点的地位属实有点尴尬,我们得加上许多限制和约束,才能防止他像喝醉酒的司机一样把整套自动化流程弄得乱七八糟。毕竟新Node有新性质,要防止污染上下文,要约束输出内容。是的,LLM完全放权还是有点距离,他的数据来自网络,他的搜索也是网络,他不知道自己不知道,很遗憾,LLM还不是人,不可被担责,不可被教导。

So,到头来,prompt工程和搜索引擎关键字在思想上一脉相承,skills是提前整理好的资源集合站(网址导航,21世纪初我们发现网站的方法,挂广告刷访问量还能赚钱的那段时光啊),harness和agent框架让我们从复制粘贴执行回复里面解放出来,现在我们在模型之外做的实践都能找到源头。

这并不是说LLM没有任何新的技术突破,它在原有工作流之上确确实实减少了大量的写正则表达式提取内容、搜索资料、填表、模板代码……又快又好还不遗漏,有一点点小的格式问题也能做。有人比作学校后勤部之类的要求你填完一堆杂七杂八表格然后让你毕业的老师的那种工作,不重要吗?也不是,但是就是有点烦。他是一个更好的parser,一个自动获取资料然后按照格式按照上下文一个字一个字算过去填到合适位置的状态机。总的来说,虽然我现在已经离不开LLM了,但他已经没有什么让我惊艳的了,成为和搜索引擎,推荐系统一样的,根据我的输入帮我更好地获取信息的一种工具。

再次思考和建议

其实也是让我们重新思考什么样的工作是真正有价值的,LLM内部的数据量海纳百川,一些公共互联网难以搜索到的记录,算法推荐太过注重新近事件,而LLM的权重经过训练和筛选不变。合理使用,极大地降低了信息差和学习新知识时寻找资料的摩擦(比方说写代码吧,你知道这里该有一个socket,那边该接一个管道,软件该处理一个信号。但是你就是不知道具体库的那个单词的字母开头,那个状态机如何设计的,有哪些暴露的公共方法。你已经有了思路,只是缺乏一个载体,这时候,一个LLM翻译官和资料查询就非常有用了)。有哪些工作只是靠着信息差和重复劳动而已(打字员,搜索员,CRUD)。这也让我爽到了,真正有价值的工作我能去做,而不是在各种wrapper上浪费时间(我真的只想传递一个数据让另一门语言可以调用啊)。

在这里,不同人对整个体系的理解差异会带来巨大的差异和改变,最近字节给他们的LLM加了办公模式,让LLM可以操控一个沙箱去做事。有些人靠对Linux的理解指挥LLM在沙箱内开FRP白嫖了服务器,而另一些vibe coder还在疑问为什么自己的网站开在127.0.0.1别人访问不了。人月神话在今天依然有效,我们之前认为llm生成代码能极大提高效率就是又把写代码当作本质复杂度而不是偶然复杂度了。

那么说有什么建议呢?还是和用搜索引擎一样,你输入多少信息,结合模型内部有多少信息,能够决定你输出最终能有多少信息。想要客观一点,用第三方视角而不是我xxx,我的朋友xxx会好一点,作为评委老师,或者技术选型会最好。描述问题尽可能配合他。注意我用的是配合,因为你是和一个带着大量信息的黑盒在交互,你的目的是让自己的语句向量在这个巨大的数据库里面找到你想要的投影,学艺不精很容易问出X-Y问题,有时候你刚开始的目标错了,去问他,只会南辕北辙。

关于配合

提供充足的信息

额,关于配合,举两个例子吧,单纯描述一句给我做一个期末课设的代码和PPT,LLM不知道要求,不知道限制,于是就会给你一个average的成果, 这就是我说的,你输入的信息熵搭配模型内部的信息决定了你的输出质量,这种情况,你应该给他喂课设要求,你的idea(人必须参与其中,人才是创作的主体,虽然大部分人觉得LLM内部搜索到的方案优于他们,但是,不锻炼这一个个小小的创新想法真会变成被LLM替代的),甚至要配点skill让他主动获取更多信息才能获得结果。

避免X-Y问题

另一个例子,你想修复你路由器的断流问题(实际问题可能是上游DNS爆炸了),你一开始觉得是防火墙配置的问题,拿着iptables的各种正常的链去问LLM是不是哪里配错了让网速变慢,然后恭喜你们,走上一条永远Debug不到结果的不归路了,LLM会让你删链,让你加各种奇怪规则,写开机脚本,修改内核参数,甚至觉得你是selinux规则阻止。这时候如果你回头开个新session问LLM我只是想解决路由器网络不稳定问题,然后他会给出几条通用的排解路径,然后,你可能通了。这只是一个很小的例子,其实灵感来源于我当时修rclone内部bug的那个经历

对于第二个例子,具体来说,有时候你提问过于详细会影响到LLM发挥(外行指导内行)。正确的提问应该是结构化的,可观测的,观察先于行动,你得保证你的判断事实是正确的思维起点。应该先问我遇到了xxx问题,xxx问题是上网,那么上网需要经过哪些过程,每个部分有哪些debug工具,我的本质问题是什么,我的问题可以被拆解成几个部分,每个部分的架构是怎么样的。这样,一步步把大问题变成小问题,一个个排解,就不会在一开始就走错掉了,你也能学习到新的知识和经验。

其实,第二个例子的这个方法也是搜索术里面学来的,先从一个模糊的匹配找到关键词和架构图,然后再根据关键词下去学习定位问题核心在哪。有些时候你用一些很杂乱的语言描述,找不到资料(你不能预设和你碰到同样问题的人会用和你一样的语言,而且大部分人在学习到新术语后常常忘记怎么用模糊语言表示了),而正确的人用关键词如VPN,coreutils,prometheus,ansible,一下子就找出你要的那个工具是什么了,所以第一步永远都是先找框架建立整个概念的地图和体系(比如有人说大学培养方案最有含金量的就在课程名字上了,能够建立起整个学科的感知。哈哈)。这是工程积累,但是LLM也给了你完全的模糊识别能力(以前搜索,你得先查wiki和论坛,后来有了推荐系统和社交媒体你就可以故意搜一些感受然后等信息流推,但现在,模糊识别准确率大大提高,我用它找到了好几款老游戏),所以LLM给人的认知突破真的很让人高兴。

预言

既然LLM维持不住了可能要和推荐算法一样成为日常中不被注意的一小部分,就像以前觉得推荐算法能解决一切而建的集群和优化也逐渐不成为新闻头条(点名:大数据),但无论如何,我们的生活也像大数据袭来之后,被默默改变了,我们基于此要有新的适应以及对未来前景的新预测。如果说下一个会火的可能是什么?我觉得Nix/NixOS可能会成为下一个热点。Nix/NixOS在云原生时代来的时候因为陡峭的学习曲线和不完善的基建把解决方案让给了Docker。但是就我从最近社区里越来越多的人涌入,Youtube和Bilibili的视频来看,NixOS的确越来越被人们所知(虽然现在和web3.0的社区热度和感觉差不多?圈内人高潮兴奋,圈外人有的被吸引进来,不过和web3.0还是有点不一样,毕竟是自来水而且的确有解决当下的供应链问题)。

LLM也让Nix语言的一些偶然复杂度降低,尤其是mkDerivation,保持开放心态,安装软件视为写好软件从哪里拉取,然后让LLM做好转换软件包安装工作,似乎也没什么不好是吗?也许未来人们会觉得操作系统就该是这样,像Android那样手机设置每台设备都能同步,要什么软件应用商店迁移,不会出现先装了这个先开了这个配置就不能装那个的事情。NixOS也是几乎能让LLM放手去配置而不用全有或全无不好回滚不好审计的系统了。是的,系统就该是,乱的只有用户自己的文档和其他数据,系统状态不是用户数据也不应是用户数据,应该只是配置。

OpenAI说Rust强类型内存安全和强大抽象对LLM友好,写出来几乎就是对的。我觉得与其说是Rust,不如说是函数式编程语言思想的作用。Haskell,Nix这样不带状态,函数一等公民能被传参,类型标记限制转换的。对于LLM来说就是在写从一个类型到另一个类型的转换证明,不用考虑全局状态,就是AI 优势。(Lisp:你在想我?人工智能语言,有空我也想聊聊Lisp,Lisp机,街机厅绿色荧幕我想象中的九十年代复古未来)

收个尾吧

总之,一个LLM融入现实生活,而且一些烦人的文书工作被自动化,我能设计架构和深入理解的时代要到来了,写了很多,现在很开心。