在裂缝中见光，在艰难中前行 —— 2025个人年度总结（非工作向）
在裂缝中见光，在艰难中前行 —— 2025个人年度总结（非工作向）今天是2025年12月31日，成都还是一个灰蒙蒙的阴天。此时的我，本应在城南新川领到那把开启新生活的钥匙。现在的我，站在了省政府，指望在年底的最后一个工作日，能让维权有一丝进展。交房当天，开发商成都总跑回西安报告，合同上的“提前10日书面通知业主”像在搞笑，园林反向升级，减质减量，无不让人寒心。努力一天之后，现在的我坐在高新区综合治安管理中心，翻了一下2025年的日记，开始写这一篇苦涩的2025年终总结。2025 计划及达成情况概览目标目标描述目标达成情况家庭1. 成为合格奶爸 2. 有效陪伴家人换尿布、冲奶粉、讲绘本、陪睡，技能点全满。阅读精读经典（毛选、陀思妥耶夫斯基）通读陀思妥耶夫斯基全集。现实越荒诞，老陀越精准。健身1. 肌耐力训练 2. 半程马拉松1. 抱娃就是最好的肌耐力训练 2. 半马又没中签，维权跑断腿算不算？写作坚持输出，尝试新题材博客持续更新，记录了岁岁成长与深度阅读思考；另外在政务平台写投诉信的文采突飞猛进游戏1. 通关《艾尔登法环》 2. 期待《GTA6》1. 法环本体通关 2. R星没发售，继续画饼健身：抱娃是最好的负重，维权是无奈的有氧年初豪言壮语要跑半马，现实却是连健身房都去得少了。前半年，时间的碎片化程度超乎想象。晚上固定起夜冲奶，作息稀烂，让我还是把活着放在了第一位。于是，我的“力量训练”变成了单手抱娃深蹲，我的“有氧”变成了推着婴儿车在公园里竞走。后半年，维权占据了大量的周末和精力。虽然没能在赛道上挥洒汗水，但在各个行政部门之间的奔波，不仅锻炼了腿脚，更锻炼了心肺功能——毕竟每次听到开发商的奇葩言论，血压都得飙升一次，心脏承受能力显著增强。 体重微涨到了 72kg 左右，虽然线条明显不如去年，但好歹没有在这个焦虑的年份里油腻发胖。写作：记录成长与内心的风暴原以为今年写作会挂零，但翻看博客，才发现我其实在碎片时间里留下了不少痕迹。岁岁成长日志从 2 月份的《岁岁出生了》，到 4 月份的《两个月大的娃》，再到 10 月份的《8 个月的人形永动机》，我坚持记录了小家伙成长的每一个里程碑。这些文字没有华丽的辞藻，只有琐碎的真实，但它们是我今年最珍贵的产出。深度阅读与自我对话在那些失眠或陪睡的夜晚，阅读成了我的避难所。《人间在世--写于我的三十岁生日》：三十而立，没有想象中的从容，反而像一脚踏进了陀思妥耶夫斯基的小说。《灵魂的炼狱与救赎之光：再读<罪与罚>有感》：重读经典，在拉斯柯尔尼科夫的挣扎中，看见了人性的幽暗与光亮。《沙尘暴》与《离奇的梦》：记录下看过的剧和做过的梦，那是潜意识对现实压力的投射。当然，除了博客，我的另一大“文笔巅峰”是在各大政务平台上。我学会了如何用最严谨的逻辑引用《民法典》，如何在信访材料中克制地表达愤怒。这也算是一种“纪实文学”的尝试吧？那些支持我走下去的光：岁岁平安正月初八，岁岁出生了。 这个小家伙的到来，让全家人都欢喜不已。从刚出生努力睁眼的娃，长成一个 81厘米，天天爬来爬去会挤眉弄眼的小娃娃，让人感慨良多。每天都会觉得心里有所牵挂，就像刚养可乐的时候，我感受到了什么叫羁绊，现在我对这两个字的理解更加深刻。也让我理解到了陀思妥耶夫斯基很多书中的思想——“要爱具体的人”。在这个宏大叙事往往让人无力的年代，只有爱具体的人，才是抵抗虚无的终极武器。阅读：避风港与思想的武器2025 年我的阅读量反而比去年要大一些。 没错，今年有娃之后，我陪娃睡觉的时光基本上都在书海中度过。既然现实让人困顿，那就去书里寻找答案。 今年的涉猎范围依旧比较广，并且重读了很多经典，特别是把陀思妥耶夫斯基比较经典的书基本上读了一遍。老陀笔下的苦难与救赎，在今年读来格外有共鸣。即使在最绝望的境地，人依然可以选择高贵。推荐以下几本书:《小家越住越大》系列：今年买了房之后，开始关注装修。被作者构建的“住商”概念紧紧吸引。实用主义至上，虽然精装房很多大改动用不上，但关于收纳和软装布局的内容让我受益匪浅。常读常新。《卡拉马佐夫兄弟》：陀思妥耶夫斯基的巅峰之作，关于信仰、道德与人性的终极拷问，伊凡的大宗教法官字字扣人心弦。《罪与罚》：灵魂的煎熬与救赎，与当下的心境不谋而合。《枪炮、病菌与钢铁》：宏观视角下的人类历史，帮助跳出当下的困局看世界，其中的很多假设和后续的分析逻辑严丝合缝，长见识了。《1984》：在这个魔幻的年份重读，别有一番滋味。尤其是其中的新话。新话是统治者控制思想的工具，创造新话的学者通过大量的删减旧话中丰富但不必要的表达，来消灭人们的表达能力。在新话中，语言变得单调贫瘠，我们说的精彩、太棒了，只需要用好、加好、加加好。看似荒谬，但我们的现实生活中已经在这条路上一去不复返了。短视频平台、社交媒体中万能的"卧槽"，描述事物让人惊讶的"牛逼"，和各种"666"，实际上用一个无限简化的词代替了我们本应该表达的更具体和丰富的语义。Gemini说了一个很有趣的观点，除了这些新话，像短视频平台各种模板中的音乐片段，甚至也是听觉上的新话，人们可以快速根据某一段大量被重复使用的音乐片段，迅速代入制作者想表达的情绪，但大部分的视频本质上除了情绪也没什么内容了。精神角落：DOTA2 与 虚拟世界的慰藉这部分我必须单列出来，因为在2025年，它不仅仅是游戏，更是一种关于“相信”的力量。CNDOTA的救赎与温情TI14，我要感谢 XG，感谢 Ame。曾经我是徐志雷的粉丝，对 Ame 有过误解，也被 TI8、TI9、TI10 伤透了心，一度发誓再也不看。 但今年，鬼使神差地，我和一群十年网友又凑在了一起。我们目睹着 XG 一路跌跌撞撞，从“进8强算赢”到过五关斩六将杀进总决赛。那一刻，我们这群“老刀斯林”喜极而泣，以为十年的魔咒终于要打破，甚至在 2:1 领先时半场开香槟。虽然最终倒在了强大的法老（Falcons）面前，但当看到 Ame 操作着剑圣，在败局已定时依然冲向世界树，那一刻我释怀了。剑心犹在。 他用日复一日的坚定告诉我们：不怕输，究竟有多难。更让我动容的是社区的变化。曾经充满戾气的 CNDOTA，在拿到亚军后，评论区竟然全是加油打气。Fy 看完比赛后也放下了直播，决定鼓起勇气复出。Blast 成都站，我在现场见了老网友木总。就像他说的：不管官方运营如何摆烂，这个社区和玩家永远是最棒的。它带给我们的，早已超越了游戏本身。《艾尔登法环》：在交界地寻找反馈感谢宫崎老贼，在2025年无数个想要骂人的夜晚，是交界地收留了我。在游戏里，面对半神、恶兆，只要你通过试错，背板、坚持，总能战胜他们。那种“付出了就有回报”的纯粹反馈，在2025年的现实生活中显得尤为奢侈。当被现实的“大树守卫”堵得寸步难行时，游戏里的一次次“YOU DIED” 反倒显得温柔，因为你知道，哪怕倒下，你也正再变强。年度影视：海市蜃楼和沙尘暴2025年有了娃之后，看的电视剧不多，都是精挑细选。因此挑的两部出乎意料的让人满意。《海市蜃楼》：这部剧是优映团队在12月19号上线的古装悬疑剧。这个团队的剧我属于是出必看，前期的毛骗、异物志、杀不死在我这打下的基础太扎实了。就像Ame，这也是一个草根团队不被资本裹挟，坚定的做自己热爱的事情，一直在有限的成本里制造无限的惊喜。这部剧也是一样，继续沿袭了他们处处伏笔、后段反转回收、结尾精彩彩蛋的传统。格外动人的是，没有流量明星，本来热度平平，但是靠剧本实力，引起了小红书、豆瓣、抖音上路人的自发宣传。他们自称“宣字营”（剧中的一个部队名称），不遗余力的做着二创、发着安利贴，好在官方团队也很真诚，所有的主创都下场直播互动、小红书互动，出各种和观众互动的小剧场，互相成就。真是一个美丽的故事。《沙尘暴》：这个不多说了，之前写了观后感，对人性的讨论很深入，我也在看这部剧中领略到了，我们不能脱离人所处的环境去批判人性。必修课：解锁维权新体验如果是以前，我可能会把这一段命名为“乔迁之喜”，但现实给了我一记响亮的耳光。时间回到今年的 8 月份，可见的准现房，不错的示范区园林，国企的背书，让我动了心。为了给岁岁一个更好的环境，我们选择了这里。然而，从满心欢喜到见识“真实世界”，只需要短短几个月。这一场维权，就像是一堂生动的社会学实践课： 我见识了合同上“提前 10 日通知”变成了一纸空文； 我见识了所谓的“园林升级”变成了减配降质的谎言； 我见识了身穿制服的人墙挡在普通人面前，而不是挡在违法者面前； 我更见识了那些傲慢的x总，如何用虚伪的话术顾左右而言他。站在高新区群众接待中心的那一刻，看着疲惫的邻居和推诿的相关人员，我突然明白：这或许就是 2025 年给我的最后一道试炼。它打碎了我仅存的一点体面和对规则的幻想。我第一次如此深刻地理解了什么叫“强弱是相对的，话语权是绝对的”。房子虽然还没收，但我心里的那座房子，已经重建了地基——用更现实、更坚韧的材料。2026 年展望：在废墟上种花写到这里，窗外的天已经黑透了，2025 年真的要过去了。 这一年，如果要用一个词形容，是“撕裂”。一边是新生命带来的极致柔软与喜悦，一边是社会现实带来的粗砺摩擦与失望。2026 年，我不打算立太多宏大的 Flag，只求务实：关于房子：不抱幻想，整改一定是持久战。装修无论如何要用心搞起来。房子是水泥做的，家是人聚成的。只要人和人心还在，就没有过不去的坎。关于家庭：继续践行“爱具体的人”。岁岁会走得更稳，会开始说话，我要做他最坚实的后盾。也要多带老婆出去散散心，这一年她承受的压力不比我小。关于游戏：今年务必抢到TI15的票……继续等跳票的GTA关于自我：保持更多的写作：记录是抵抗遗忘和规训的有效手段。健康第一：希望能把健身捡起来，不仅是为了身体，更是为了有一个独处的、能让脑子放空的一小时。保持愤怒，保持热爱：对不公保持愤怒，对生活保持热爱。学习法律：从税法和民法典开始，多读一点书，以免被知识分子欺骗。2025，去你的吧。2026，岁岁平安，向光而行。
先说一下背景。我在2021年10月开始立志减肥，在此期间不断的学习运动学、营养学，去配置自己的食谱，保持运动习惯。最终在22年7月中下旬的时候达到目标。✨ 减肥前体重：110.6kg血压：150左右中度脂肪肝尿酸709🎉 减肥后体重：65kg血压：120无脂肪肝尿酸300＋以下是更新部分最近更新：2023年7月1日：结束减脂一年后的感受现状我在2023年7月初的时候达到了目标体重65kg，整个人的体态、腰围都达到了我满意的状态，可能是我的基因原因，我身高165，体重65kg的时候空腹腰围大概是72厘米左右，大腿较粗（所以深蹲也是我练的最有感觉的）。在22年底疫情变成小阳人，而且肩膀有些受伤，所以从22年底到现在基本上力量训练停了下来，偶尔做一些有氧，吃饭也保持着减肥时期的习惯，保持的很好。感受这个阶段我主要做了两件事情：调节心态：摸索到底什么是吃饱，去寻找减下来之后吃饱的阈值；与食物和解，不再有食物焦虑，不严格的区分垃圾与不垃圾的食品，现在的心态是没有错误的食物，只有错误的饮食习惯，因此我现在也偶尔会吃点垃圾食品，但超过80%的时间还是保持自律。休息：减脂一年给我带来的成就感很大，但的确是很痛苦的，我用这一年的时间调节自己的心态和情绪，好好休息养肩膀的小伤，习惯瘦下来之后的生活。探索：我不再有些自卑，更自信的去面对生活和挑战，去尝试各种有趣的东西，可以勇敢的去坐以前不敢坐的过山车等等🌟计划减肥是一辈子的事情，自律是一辈子的事情，我感受到了瘦下来的快乐，并且一定会自律的保持下去，所以在休息了大半年之后，我准备在下半年开始恢复力量训练，通过力量训练去保持运动，去获得更好的精神状态和身体状态。以下是正文部分自我介绍先做个自我介绍吧，我是一个从小就胖的人，初三的时候我的体重大概有70＋kg，高三的时候80＋kg，大学和硕士在一个美食居多的地方读的书，之后在魔都实习的半年远离同学朋友亲戚，太孤独以至于有点染上暴食，体重一路飙升，在2020年11月份的时候我的体重应该在110＋kg。一、心理建设每个人都有选择生活方式的权利，不同的选择也一定会收获对应的结果。减肥这件事情不是短期的，而是一辈子的事情，假设在特定的减重阶段，你需要付出120%的精力去制定计划并且坚持，在达到目标体重之后，我们仍然需要去付出20%的精力去维持体重。在决定开始之前，建议先反问一下自己，是选择通过大部分时间的自律去保持不错的身材与健康，还是选择随心所欲的通过各种美食获得快乐。每一个胖子在体检之前都会有巨大的心里压力。我会特别自卑，因为体重称上那个难以直视的数字，更因为生化指标的普遍异常。中度脂肪肝、异常的血压和尿酸、睡觉打呼、有时候还会突然喘不上气醒来，这些问题让我更加的想逃避，但后来我突然想通了，我想瘦下来，想更加健康去陪伴家人，我想看看自己帅气的样子，（如果有的话，我也希望我的孩子能够看到我帅气的时候）。然后就开始了自己的减脂路。二、饮食与运动导致肥胖的根本原因，一定是长期的饮食摄入超过了消耗的能量。饮食是减脂中最重要的事情，仔细分析并调整自己的饮食结构是减脂的关键：合理的饮食结构包含的热量不会太容易超标，一般在超标的时候你已经吃不下了；形成并且习惯合理的饮食习惯可以让你更轻松的保持减肥的成果，避免反弹。1、三大营养素蛋白质、脂肪、碳水是我们日常摄入中主要去关注的三大营养素，蛋白质、碳水每克约含4大卡的热量，脂肪每克约含9大卡的热量，通过日常摄入的食物包含的三大营养素，可以轻松的计算出我们每日的摄入热量。合理的饮食结构应该是均衡的，我们的摄入一定要吃够三大营养素，不要唯热量论。2、优质食物减少零食和饮料的摄入频率，包括但不限于精加工肉类（香肠、培根等）、高油高碳高糖（饼干、蛋糕、甜点等）、在大部分时间选择优质的食物，碳水选择全谷物（大小米、玉米等）、薯类（红薯紫薯等）、豆类；蛋白质选择瘦肉（鸡鸭鱼牛羊）、蛋、奶，去掉大部分的肉眼可见脂肪（白肉或鸡皮鸭皮这些）；脂肪选择坚果、菜籽油等，炒菜中包含食用油，一般不用刻意补充。3、量化摄入准备工作请购买一个厨房秤，尽可能精准的记录摄入的食物重量。凡是入嘴，一定要准确量化！精准的记录摄入可以保证你在日后的减脂执行过程中，准确的复盘寻找问题的原因，避免盲目猜测和焦虑。如何称重如果是自己在家做饭，那就称食材的生重，最后分别录到软件中就是这顿饭的总热量，常规调味品（葱姜蒜盐蚝油生抽老抽）不需要计入；如果炒菜比较清淡，也可以不计油的重量，如果不好把控还是建议称重。如果是外卖或吃食堂，按食材分类称重，如果不好意思拿出厨房秤可以用一次性纸杯目测，炒熟的菜和肉一杯按100克生重计算。油大建议用水涮一下，外食很容易油盐超标。吃加工食物，只需要根据包装背后的成分表和总重量，也可以算出三种营养素的摄入（有时候小作坊生产的加工食品这个成分表是假的，建议少吃）。4、如何知道该吃多少获取日常消耗的热量（维持体重的摄入热量）通常来说有两种方法：传统的算基础代谢那一套，适用于没有节食减过肥的人群，这个网上都有教程，百度就好。另一种就是更加精准的方法：观察法，这个方法可以避免繁杂的计算（且不一定算的准），也可以不用分基础代谢和乱七八糟的消耗。观察法的准确与否是建立在精准的量化摄入之上的，通常我建议采用一到两周的时间来进行，具体步骤如下：保持正常的生活状态和饮食，可以先不增加运动记录每一天的饮食摄入、体重一定周期（一到两周）之后观察本周期体重变化，假如体重没有变动，将本周期的所有热量取日均值，该热量就是维持体重的每日摄入量；假如体重有上下浮动变化，用变动值（kg）*7700（1kg的脂肪可以换算为7700大卡的热量，可以粗略估计热量盈余），体重上升（下降）就在摄入日均值的基础上减去（加上）这个数字，就是你的维持体重摄入。根据日常消耗的热量制定饮食摄入计划确定饮食热量缺口热量缺口是减脂的关键，打开热量缺口的方法是通过降低摄入热量（控制饮食）或提高消耗热量（运动），我是采取了两者结合的方式制造的缺口。热量缺口通常建议控制在500卡左右，饮食减少200-300大卡，再通过运动去制造一定的缺口，长期坚持一定会减下来。确定碳水的摄入占比碳水的功能占比建议保持在40%-50%，用摄入的热量×比例/4 获得碳水的克数确定蛋白质的摄入占比蛋白质的占比尽可能的提高一些，我自己选择的是30%-40%的蛋白质占比，采用与碳水相同的计算公式得到蛋白质摄入克数脂肪的摄入占比因为日常吃的肉蛋奶、炒菜油等均包含脂肪，并且我控制了炒菜的油，所以没有额外的刻意摄入脂肪，如果你在意这些，可以用扣掉蛋白质和碳水后的热量除以9，计算脂肪克数，吃不够的脂肪可以用坚果、牛油果补充。根据三大营养素的克数制定食谱选择优质的食物搭配每餐我们的食物都应该包括以下几个部分：优质碳水：根据自己的实际情况，在最合适的食物范围内挑选尽可能优质的食物，例如上班族可以选择燕麦、米饭、红薯、玉米、三明治、面包（优先选择不含糖的面包），使用碳水克数来反向计算出应该摄入的食物重量，例如50克碳水可以折算成250克红薯等。你可以合理分配一日三餐每餐的碳水分量。优质蛋白：肉蛋奶。蔬菜：绿叶蔬菜可以多吃，一般一天可以吃到500克左右。选择喜欢的烹饪方式将所选择的食材根据喜欢的烹饪方式做成食物，尽量避免油炸，控制好油盐等调料的添加。食堂、外卖如何搭配搭配的策略其实和上面是一样的，选择优质的食物就可以，如果油大盐大涮一下水就好，我们只需要保证尽可能的优质就可以。5、如何运动是否需要增加运动减脂最重要的饮食，摄入500大卡很容易，但消耗500大卡需要你保持将近一小时的有氧运动。如果时间有限，优先花时间到保证饮食的部分，有更多的时间再考虑增加运动。运动的好处主要是有两个，一方面可以提高心肺能力，让我们的身体素质更好；另一方面可以让我们的身体形态更好。如何选择运动形式和频率选择喜欢的运动，喜欢的运动才能保证可以坚持下去，这一点是最重要的。常见的有氧运动：游泳、爬楼梯、跳绳、跑步、跑步机爬坡、动感单车，都可以，都是很有效的方式。力量训练就是健身房的固定器械和自由器械了，这个一般需要制定比较系统的计划（对于减脂来说，制定计划难度不高，多学习便可）。再具体一些，如果时间充足，建议力量训练与有氧训练同步进行，我自己的训练是两者结合，先进行力量训练，再进行有氧运动的形式。根据一周可以运动的天数来选择训练计划，是一种常用的方式。我自己选择的是三分化运动，将背、腿、胸的训练拆分到三天，然后再把二头、三头、肩拆开放到每一天，时长在50分钟左右，然后再做40分钟左右的有氧爬坡，练三天休息一天（或练六天休息一天），这样一周可以练两遍全身。附：我自己的运动记录，相关软件：loop（习惯打卡），华为运动健康，训记三、关注指标我关注的指标有体重、腰围、胸围、臂围、腿围，可以只关注前两个，每天建议在早晨起床上厕所之后空腹测量。一定要从长期来看，腰围和体重同时在跌，就说明我们的减脂是有效的，不要只关注体重，短期之内体重波动是正常的，建议以周为单位来观测。良好的减重速度是每周减掉0.5%-1%的体重。四、常见问题是否需要设置欺骗餐？我不会专门设置欺骗餐，我认为减肥本质上是改变以往错误的饮食习惯，所以不要把减肥的饮食与日常饮食割裂开，我们不需要严苛自己的饮食，只需要在大部分时间做到健康，偶尔吃一些垃圾食品也没什么大不了的，生活不只有减肥，快乐也很重要，控制好高热量食物的摄入量和摄入频率就OK。另一方面，成年人难免会有出门聚餐、团建的时候，这种时候我会把这个当作我的欺骗餐。聚餐怎么吃？聚餐的时候，我们的饮食搭配和自己做饭没有什么区别，选择优质的食物，有瘦肉、蔬菜就多吃这些，碳水选择优质碳水，尽可能少的吃高热量的油炸、甜点，也不要暴饮暴食，吃饱就可以了。通常情况，选择了优质的食物，不需要过度担心热量摄入超标的问题，胖也不会是一天胖起来的。需要吃蛋白粉吗？蛋白粉本质是补充蛋白质的一种补剂，如果靠日常的饮食摄入的蛋白质可以满足需求，不需要额外吃蛋白粉。如果靠吃肉感觉很难吃够蛋白质，是可以每天补一些蛋白粉的。减肥能吃xx吗？吃xx减肥吗？建议抓住减肥的核心逻辑，摄入和消耗，抓住核心逻辑，就不会问出这两个问题了。五、补充结束减脂一年后的感受现状我在2023年7月初的时候达到了目标体重65kg，整个人的体态、腰围都达到了我满意的状态，可能是我的基因原因，我身高165，体重65kg的时候空腹腰围大概是72厘米左右，大腿较粗（所以深蹲也是我练的最有感觉的）。在22年底疫情变成小阳人，而且肩膀有些受伤，所以从22年底到现在基本上力量训练停了下来，偶尔做一些有氧，吃饭也保持着减肥时期的习惯，保持的很好。感受这个阶段我主要做了两件事情：调节心态：摸索到底什么是吃饱，去寻找减下来之后吃饱的阈值；与食物和解，不再有食物焦虑，不严格的区分垃圾与不垃圾的食品，现在的心态是没有错误的食物，只有错误的饮食习惯，因此我现在也偶尔会吃点垃圾食品，但超过80%的时间还是保持自律。休息：减脂一年给我带来的成就感很大，但的确是很痛苦的，我用这一年的时间调节自己的心态和情绪，好好休息养肩膀的小伤，习惯瘦下来之后的生活。探索：我不再有些自卑，更自信的去面对生活和挑战，去尝试各种有趣的东西，可以勇敢的去坐以前不敢坐的过山车等等🌟计划减肥是一辈子的事情，自律是一辈子的事情，我感受到了瘦下来的快乐，并且一定会自律的保持下去，所以在休息了大半年之后，我准备在下半年开始恢复力量训练，通过力量训练去保持运动，去获得更好的精神状态和身体状态。
读书笔记：图解大模型——生成式AI原理与实战
书籍信息原书名：Hands-On Large Language Models中文名：图解大模型：生成式AI原理与实战作者：Jay Alammar（沙特）、Maarten Grootendorst（荷兰）出版：O'Reilly, 2024页数：~400 页，数百张原创插图定位：从零到实战的 LLM 全景指南，图解驱动，代码可跑推荐人：Andrew Ng、Nils Reimers（sentence-transformers 作者）、Josh Starmer（StatQuest）为什么读这本书作为数据研发工程师，大模型已经从「论文里的概念」变成了「每天都在用的工具」。但用归用，很多核心机制——Transformer 的注意力到底在算什么、Embedding 空间为什么能捕捉语义、RAG 的检索链路怎么设计——一直停留在「大概知道」的阶段。Jay Alammar 是写出 The Illustrated Transformer 的人，他的可视化能力是业界公认的。这本书延续了他一贯的图解风格，把抽象的数学过程拆成直觉可理解的视觉流程。对我来说，这不是一本「入门书」，而是一本「把模糊认知变成清晰认知」的书。读完之后，我和 Jarvis 一起把书中第 8 章（语义搜索与 RAG）的理论落地成了一个真实项目——siyuan-rag：思源笔记联动，为自己的思源笔记构建了混合检索系统（BM25 + Vector + RRF）。理论到实践的闭环，是这本书最大的价值。全书骨架三部分，十二章，一条清晰的递进线：Part I 理解语言模型（Ch 1-3） → 语言模型是什么、词元化、嵌入向量、Transformer 架构 Part II 使用预训练模型（Ch 4-9） → 分类、聚类、Prompt Engineering、文本生成、语义搜索/RAG、多模态 Part III 训练与微调（Ch 10-12） → 构建嵌入模型、微调分类模型、微调生成模型递进逻辑：先建立「是什么」的认知基础 → 再学「怎么用」的实战技能 → 最后掌握「怎么改」的深度能力。Part I：理解语言模型Ch 1 语言模型导论这一章建立了全书的概念地图。核心区分：表示模型（Representation Models） ：BERT 系，双向上下文，擅长理解（分类、检索、相似度）生成模型（Generative Models） ：GPT 系，自回归，擅长生成（续写、对话、翻译）关键洞察：这两类模型不是对立的，而是同一个 Transformer 架构在不同训练目标下的产物。BERT 用 MLM（掩码语言模型），GPT 用 CLM（因果语言模型）。训练目标决定了模型的「视野」——BERT 能看到前后文，GPT 只能看到前文。Ch 2 词元与嵌入这是全书最基础也最重要的一章。两个核心概念：词元化（Tokenization） ：文本不是以「词」为单位进入模型的，而是以「子词（subword）」为单位BPE（Byte Pair Encoding）：从字符级开始，统计最高频的相邻对，逐步合并。优雅地解决了 OOV（未登录词）问题WordPiece、SentencePiece：变体，核心思想一致实际影响：tokenizer 的选择直接决定了模型的「视力」——同一段中文，不同 tokenizer 切出的 token 数量可能差 2-3 倍，直接影响上下文窗口的有效利用率嵌入向量（Embeddings） ：Token Embedding：每个 token 映射到一个高维向量（如 768 维）Position Embedding：注入位置信息，让模型知道词序嵌入空间的几何意义：语义相近的词在向量空间中距离更近这不是隐喻，是数学事实——余弦相似度可以量化语义距离个人体会：在做 siyuan-rag 项目时，选择 embedding 模型是第一个关键决策。我们最终用了 Qwen3-Embedding-0.6B（1024 维），它在中文语义捕捉上的表现明显优于通用的多语言小模型。维度越高不一定越好，但对于中文这种信息密度高的语言，1024 维比 512 维确实能保留更多语义细节。Ch 3 深入 Transformer全书技术密度最高的一章，也是 Jay Alammar 最擅长的领域。自注意力机制（Self-Attention） ：Q（Query）、K（Key）、V（Value）三个矩阵的直觉：Q 是「我在找什么」，K 是「我能提供什么」，V 是「我的实际内容」$\text{Attention}(Q,K,V) = \text{softmax}(QK^T / \sqrt{d_k}) \cdot V$$\sqrt{d_k}$ 的缩放：防止点积过大导致 softmax 梯度消失，这个细节在很多教程里被一笔带过，但它对训练稳定性至关重要多头注意力：不同的头关注不同的语义维度（有的关注语法关系，有的关注语义关联，有的关注位置模式）前馈网络（FFN） ：注意力层负责「信息交互」，FFN 负责「信息加工」两层线性变换 + 激活函数，中间维度通常是隐藏维度的 4 倍可以理解为模型的「知识存储层」——大量的世界知识编码在 FFN 的参数中层归一化与残差连接：Pre-Norm vs Post-Norm：现代模型普遍采用 Pre-Norm（先归一化再进子层），训练更稳定残差连接：保证梯度流通，让深层网络可训练注意力的计算复杂度——为什么上下文窗口有限：自注意力的核心运算是 $QK^T$，这是两个 $(n \times d)$ 矩阵的乘法，结果是 $(n \times n)$ 的注意力矩阵。因此：时间复杂度：$O(n^2 \cdot d)$，n 是序列长度空间复杂度：$O(n^2)$，需要存储完整的注意力矩阵当 n=4096 时，注意力矩阵有 1600 万个元素；n=128K 时，暴涨到 160 亿。这就是为什么上下文窗口不能无限扩大——不是模型不想看更多，是算不过来。工程上的解决方案（书中未深入，补充）：Flash Attention（Dao et al., 2022）：不显式构造 $n \times n$ 矩阵，用分块计算 + IO 感知算法，显存从 $O(n^2)$ 降到 $O(n)$，速度提升 2-4x。现在几乎所有主流框架都默认启用Sparse Attention：只计算部分位置对的注意力（局部窗口 + 全局 token），复杂度降到 $O(n\sqrt{n})$ 或 $O(n \cdot \log n)$线性注意力（Linear Attention）：用核函数近似 softmax，复杂度降到 $O(n \cdot d^2)$，但效果通常有损Sliding Window + Sink Token（Mistral 的方案）：固定窗口大小 + 保留开头几个 token，实现无限长度推理理解这个 $O(n^2)$ 瓶颈，才能理解为什么 RAG（Ch 8）如此重要——与其把所有信息塞进上下文窗口，不如只检索最相关的片段。Part II：使用预训练模型Ch 4 文本分类从 BERT 的 [CLS] token 出发，展示了表示模型最经典的应用：零样本分类：利用 NLI（自然语言推理）模型，把分类问题转化为「前提-假设」的蕴含判断少样本分类：SetFit 框架，用对比学习 + 少量标注数据微调 sentence-transformer实际启示：在数据稀缺的场景下，零样本和少样本方法的性价比远高于从头训练Ch 5 文本聚类与主题建模BERTopic：Maarten Grootendorst 自己的作品，embedding → UMAP 降维 → HDBSCAN 聚类 → c-TF-IDF 提取主题词这条管线的设计哲学：每一步都用最适合的工具，而不是端到端黑箱对我的启发：模块化设计比端到端更可控、可调试、可解释BERTopic 管线流程图：每一步都可以独立替换：换 embedding 模型、换降维算法（t-SNE）、换聚类算法（K-Means），这就是模块化的威力。Ch 6 Prompt Engineering系统提示、少样本示例、思维链（CoT）、输出格式约束核心观点：prompt 不是「咒语」，而是对模型注意力的精确引导温度（temperature）和 top-p 的直觉：温度控制概率分布的「锐度」，top-p 控制候选集的「宽度」Ch 7 高级文本生成Beam Search vs Sampling：确定性 vs 多样性的权衡重复惩罚、长度惩罚：生成质量的工程细节工具调用（Function Calling）的概念在本书中未涉及，但它是 LLM 从「文本生成器」变成「行动执行器」的关键转变（OpenAI 2023 年中推出）。理解 Ch 7 的生成机制是理解 Function Calling 的前置知识。这一章的实际价值：理解这些参数，才能在生产环境中调出稳定的生成效果Ch 8 语义搜索与 RAG ⭐这是全书对我影响最大的一章，也是 siyuan-rag 项目的理论基础。语义搜索的核心链路：文档分块（Chunking）→ 2. 向量化（Embedding）→ 3. 索引存储（Vector Store）→ 4. 查询向量化 → 5. 相似度检索 → 6. 结果排序RAG（Retrieval-Augmented Generation） ：动机：LLM 的知识有截止日期，且会产生幻觉。RAG 通过「先检索再生成」，让模型基于真实文档回答架构：Query → Retriever → Top-K Documents → LLM(Query + Context) → Answer关键设计决策：分块策略：块太大则噪声多，块太小则上下文断裂检索方式：纯向量 vs 纯关键词 vs 混合检索重排序（Reranking）：粗检索 + 精排序的两阶段范式书中的理论 vs 我的实践（siyuan-rag） ：维度书中建议实际落地分块固定大小 + 重叠利用思源笔记的天然块结构，按标题层级分块（200-500 token），保留层级上下文EmbeddingOpenAI text-embedding-3Qwen3-Embedding-0.6B（ModelScope 免费 API，1024 维）向量存储Pinecone / WeaviateChromaDB（文件级，零运维，适合个人项目）检索策略纯向量检索BM25 + 向量 + RRF 融合（混合检索，兼顾精确匹配和语义理解）部署Cloud API本地 systemd 服务（端口 8002），集成到 invest-platform混合检索的 RRF 融合：公式：$\text{score}(d) = \sum \frac{1}{k + \text{rank}_i(d)}$，$k=60$直觉：不看绝对分数，只看排名。两个检索器都排在前面的文档，融合后排名更高实测效果：对于中文笔记，纯向量检索在同义词场景强，纯 BM25 在精确术语场景强，混合检索两者兼得踩过的坑：ModelScope 的内容审查会拦截含敏感词的 embedding 请求 → 解决方案：batch 失败时逐条重试，单条被拦返回空向量embedding API 必须显式传 encoding_format: "float"，否则返回格式错误ChromaDB 的维度一旦建库就不能改，从 512 维切到 1024 维需要重建索引Ch 9 多模态大模型CLIP：文本和图像共享嵌入空间的开创性工作LLaVA：视觉编码器 + 语言模型的桥接架构趋势：从「文本理解」到「世界理解」，多模态是必然方向Part III：训练与微调Ch 10 构建嵌入模型对比学习（Contrastive Learning）：正样本拉近，负样本推远损失函数：InfoNCE / Triplet Loss / Multiple Negatives Ranking Loss硬负样本挖掘：训练质量的关键——太简单的负样本学不到东西，太难的负样本会误导模型与 siyuan-rag 的关联：理解了嵌入模型的训练原理，才能理解为什么不同模型在不同场景下表现差异巨大对比学习的直觉（书中概念的展开补充）：想象一个向量空间，"猫"和"小猫"应该靠近，"猫"和"汽车"应该远离。对比学习就是不断调整这个空间，让语义相近的点聚拢、语义无关的点散开。三种损失函数的区别（书中提及名称，以下为展开补充）：InfoNCE：给定一个 anchor，从 1 个正样本 + N 个负样本中识别正样本。N 越大，训练信号越强，但计算成本也越高Triplet Loss：每次只看 (anchor, positive, negative) 三元组，margin 参数控制正负样本之间的最小距离。简单直观但收敛慢Multiple Negatives Ranking Loss：batch 内的其他样本自动作为负样本，不需要显式构造负样本对。sentence-transformers 默认使用，效率最高硬负样本的"金发姑娘区间" （书中概念的直觉补充）：太简单的负样本（猫 vs 汽车）→ 模型轻松区分，学不到东西 太难的负样本（猫 vs 豹） → 可能本身就有语义关联，误导模型 刚好的负样本（猫 vs 狗） → 迫使模型学习细粒度的语义差异实际工程中，BM25 检索 top-K 但不在 top-1 的结果，往往是很好的硬负样本来源。Ch 11 微调分类模型在预训练 BERT 上加分类头，冻结底层、微调顶层学习率调度：warmup + linear decay，避免灾难性遗忘LoRA 的思想：不改原始权重，只训练低秩增量矩阵，参数效率极高LoRA 的低秩分解直觉（书中提及概念，以下为数学展开补充）：原始权重矩阵 $W$ 是 $d \times d$（比如 $768 \times 768 = 59$ 万参数）。LoRA 的核心思想：微调时权重的变化量 $\Delta W$ 是低秩的，可以分解为两个小矩阵的乘积：ΔW = A × B 其中 A: d×r, B: r×d, r << d（通常 r=4~16） 当 r=8 时： 原始微调：768×768 = 589,824 参数 LoRA 微调：768×8 + 8×768 = 12,288 参数（仅 2%）推理时 $W_{new} = W + AB$，可以合并回原始权重，零额外推理开销。这就是为什么 LoRA 能做到「训练时省内存，推理时零成本」。灾难性遗忘（Catastrophic Forgetting） ：微调时如果学习率太大或训练太久，模型会「忘记」预训练学到的通用知识。解决方案：Warmup：前几百步用极小学习率，让模型「热身」Linear Decay：学习率逐步衰减，避免后期过拟合冻结底层：底层编码通用语言特征（语法、词法），只微调顶层的任务特定特征Ch 12 微调生成模型SFT（Supervised Fine-Tuning）：用指令-回答对微调RLHF（Reinforcement Learning from Human Feedback）：奖励模型 + PPO 优化DPO（Direct Preference Optimization）：绕过奖励模型，直接从偏好数据优化QLoRA：量化 + LoRA，让微调在消费级 GPU 上可行从 SFT 到 RLHF 到 DPO 的演进逻辑（书中简要介绍了这三种方法，以下为展开补充）：SFT（监督微调） → 用「指令-回答」对直接训练，简单有效 → 问题：模型学会了格式，但不知道什么是「好回答」 RLHF（人类反馈强化学习） → 训练一个奖励模型（Reward Model）来打分 → 用 PPO 算法让生成模型最大化奖励分数 → 问题：训练不稳定，需要同时维护 4 个模型（policy/ref/reward/critic），显存爆炸 DPO（直接偏好优化）[Rafailov et al., 2023] → 核心洞察：奖励模型可以被数学等价地消除 → 直接从人类偏好数据（A 比 B 好）优化策略模型 → 只需要 2 个模型（policy + reference），训练稳定，效果相当 → 公式本质：增大好回答的概率，降低差回答的概率，用 reference model 做正则化防止偏离太远DPO 为什么能绕过奖励模型：Bradley-Terry 偏好模型下，最优策略和奖励函数之间存在解析解关系。把这个关系代入 RLHF 的目标函数，奖励模型就被消掉了，变成了一个纯监督学习问题。数学上等价，工程上简单得多。QLoRA = 量化 + LoRA：4-bit 量化（NF4）：把模型权重从 FP16（2 bytes）压缩到 4-bit（0.5 bytes），显存占用直接降 75%在量化后的模型上做 LoRA 微调：只训练低秩增量矩阵（FP16 精度）双重分页：GPU 显存不够时自动 offload 到 CPU 内存实际效果：65B 参数的模型可以在单张 48GB GPU 上微调（A6000），而全参数微调需要 >780GB7B 模型甚至可以在 RTX 3090（24GB）上跑 QLoRA 微调训练范式总结：方法训练数据模型数量显存需求效果SFT指令-回答对1中基础RLHF偏好排序4极高最好但不稳定DPO偏好对 (A>B)2高接近 RLHF，更稳定QLoRA+DPO偏好对2（量化）低消费级 GPU 可行核心收获与反思三个认知升级Embedding 不是黑箱，是可设计的语义空间。选择什么模型、什么维度、什么训练数据，直接决定了下游任务的天花板。在 siyuan-rag 中，从 512 维切到 1024 维，检索相关性有可感知的提升。RAG 不是「检索 + 生成」的简单拼接，是一个需要精心设计的系统工程。分块策略、检索方式、重排序、上下文窗口管理，每一环都影响最终效果。书中给了理论框架，实践中还需要根据数据特点反复调优。Transformer 的优雅在于「注意力即计算」 。不需要手工设计特征提取器，让模型自己学习「该关注什么」。这个设计哲学影响了整个深度学习的发展方向。从理论到实践的桥梁这本书最大的价值不在于某个具体知识点，而在于它提供了一条从「理解原理」到「动手实现」的完整路径。读完第 8 章后，我能够：设计 siyuan-rag 的混合检索架构（BM25 + Vector + RRF）选择合适的 embedding 模型和维度理解为什么某些查询检索效果好、某些不好针对性地优化分块策略和检索参数这种「知其然且知其所以然」的能力，是纯粹调 API 永远无法获得的。局限与补充（Jarvis 的建议）书出版于 2024 年，部分内容已被更新的技术部分取代：RLHF → DPO（Rafailov et al., 2023, "Direct Preference Optimization"）：更简单、更稳定DPO → GRPO（DeepSeek 提出）：Group Relative Policy Optimization，进一步简化，不需要 reference model对中文场景的覆盖较少，tokenizer 和 embedding 的中文适配需要额外研究中文 tokenizer 效率差异大：GPT-4 的 cl100k 对中文约 1.5 token/字，Qwen 的 tokenizer 约 0.7 token/字，直接影响上下文利用率中文 embedding 推荐：Qwen3-Embedding（我们在用）、BGE-M3、Jina-v3缺少对推理优化（量化、蒸馏、推测解码）的深入讨论推荐补充：vLLM 文档（PagedAttention 推理加速）、HuggingFace TGI（生产级推理服务）推测解码（Speculative Decoding）：用小模型草拟、大模型验证，加速 2-3x 且输出分布不变缺少对 Attention 优化的讨论（Flash Attention、Sparse Attention 等），已在 Ch 3 笔记中补充建议补充阅读：Lilian Weng - "Attention? Attention!"：注意力机制最佳综述Lilian Weng - "LLM Powered Autonomous Agents"：Agent 架构综述Andrej Karpathy - "Let's build GPT from scratch"：2 小时从零实现 GPT，强烈推荐Andrej Karpathy - nanoGPT：最简 GPT 实现，适合动手理解 TransformerSebastian Raschka - "Build a Large Language Model From Scratch"：另一本优秀的动手书推荐阅读路径如果时间有限，建议按以下优先级：必读：Ch 2（词元与嵌入）→ Ch 3（Transformer）→ Ch 8（语义搜索与 RAG）推荐：Ch 6（Prompt Engineering）→ Ch 10（构建嵌入模型）→ Ch 12（微调生成模型）按需：Ch 4-5（分类/聚类）→ Ch 7（高级生成）→ Ch 9（多模态）→ Ch 11（微调分类）核心三章（2、3、8）读透，就能建立起对 LLM 的系统性理解。其余章节根据实际需求选读。2026-02-22 · 读后整理
让 AI 写代码不难，难的是让它写对、写完、写得能用。灵感：胡渊鸣的 10 阶段春节期间读到太极图形 CEO 胡渊鸣的文章《如何有效给 10 个 Claude Code 打工》，核心思路是逐步提高 agentic coding 的吞吐量：Cursor Agent → Claude Code（SSH 友好，手机可派活）容器 + --dangerously-skip-permissions（不被权限弹窗打断）Ralph Loop（任务列表自动取活，干完一个接一个）Git worktree 并行化（多 CC 实例并行，1 分钟 1 个 commit）CLAUDE.md + PROGRESS.md（让 AI 长记性）他的关键洞察：不看代码，只看结果。Context not control, servant leadership。我没有他那么激进（10 个并行 CC），但借鉴了容器化 + Ralph Loop + manager 模式的思路。CC Sandbox 容器Claude Code 直接跑在宿主机上风险太大——它有 --dangerously-skip-permissions，意味着可以执行任何命令。所以用 Docker 隔离：# docker-compose.yml 核心配置 services: claude-code: image: claude-code-sandbox:latest container_name: claude-code-sandbox mem_limit: 3g cpus: 2 volumes: - ~/projects:/workspace - ~/.claude-backup:/backup - ~/.claude/settings.json:/home/coder/.claude/settings.json:ro working_dir: /workspace关键设计：3G 内存 / 2 核 CPU：够用但不奢侈CC 2.1.47 + Node 22 + Python 3.12：完整开发环境认证复用：挂载宿主机的 settings.json，走 provider-d 中转，不需要单独配 API key项目隔离：~/projects 挂载到 /workspace，CC 只能访问项目目录Jarvis 作为 CC Manager这是架构里最重要的设计决策：Jarvis（OpenClaw）不自己写代码，只做 manager。分工：Jarvis：理解需求 → 写任务描述 → 派给 CC → 轮询进度 → 验证结果 → 发现 bug 写新 task 派回 CCCC：接任务 → 写代码 → 跑测试 → 提交为什么不让 Jarvis 直接写？因为 CC 有完整的编辑器集成、文件系统访问、命令执行能力，专门为写代码优化。Jarvis 的强项是理解意图和协调，不是写代码。派活方式# 单任务（非交互） sudo docker exec claude-code-sandbox claude \ -p "任务描述" \ --dangerously-skip-permissions \ --output-format stream-json # 交互式（需要 TTY） sudo docker exec -it claude-code-sandbox claude \ --dangerously-skip-permissions任务轮询机制最初用"盲 poll"——派完活就不停检查。后来改成 cron 2 分钟轮询：派活：后台启动 CC → 写 active.json（sessionId/task/project/startedAt）→ 创建 2 分钟 cron轮询：收到 CC_TASK_POLL 时，process poll 检查 session → 未完成继续等 → 完成进入验证验证：检查产出（curl API / 编译检查）→ 有 bug 写新 task 派回 CC → 通过汇报清理：删除 cron → 清空 active.json这个流程在 invest-platform 项目上首次完整跑通。实战：invest-platforminvest-platform 是一个投资研究工作台 Web App（FastAPI + React），从 Phase 1 到 Phase 5 全部由 CC 执行，Jarvis 做 manager。成果Phase内容CC 花费13 个回测策略（MA Cross/Bollinger/MACD）~$0.52基本面分析 + 技术指标（K 线/MACD/RSI/布林带）~$0.53学习中心（思源笔记代理 API + LearnPanel）~$0.54UI 打磨 + K 线均线 + 学习进度 + 基准对比$3.585智能问答 + 财报解读 + 实战演练 + 策略学习~$1.40最终产出：7 个 tab 的完整平台，总花费约 $6。CC 的 SubagentCC 自己也支持 subagent：/home/coder/.claude/agents/ ├── researcher.md (haiku) — 搜索资料 ├── reviewer.md (haiku) — 代码审查 └── architect.md — 架构设计但 CC 的 subagent 是串行委派，不是并行。真正并行需要多 CC 实例 + git worktree，我没走那么远。踩坑记录OOM Kill3G 内存对大项目不够。CC 在处理 invest-platform Phase 5 的模块 3（概念实战演练）时，内存耗尽被 SIGKILL。Container killed: OOM (Out of Memory)解决方案：大任务不派给 CC，手写。或者拆成更小的子任务。大项目目录卡住CC 在大项目目录下容易卡住——它会读大量上下文文件（CLAUDE.md、package.json、tsconfig 等），token 消耗暴增。解决方案：在干净目录创建文件，写完再复制回项目目录。stream-json 参数--output-format stream-json 需要配合 --print 和 --verbose 才能正确输出。文档没写清楚，试了几次才搞对。CC 的适用边界CC 擅长：明确需求的功能开发有清晰 spec 的 bug 修复重复性的代码修改（批量重构）有测试可验证的任务CC 不擅长：模糊需求（"做个好看的页面"）需要大量上下文的架构决策内存密集型任务（大项目编译）需要人类审美判断的 UI 设计经验法则：任务描述越具体，CC 的产出越好。 花 5 分钟写清楚 TASK.md，比让 CC 猜你想要什么省 10 倍时间。
真正的 AI 管家不是你找它才干活，而是它自己知道该干什么。Heartbeat vs Cron：两种自动化哲学OpenClaw 有两种定时机制，设计哲学完全不同。Heartbeat：定期"醒来看看"Heartbeat 是主会话里的定期轮询。每隔 30 分钟，AI 会"醒来"，读 HEARTBEAT.md 里的检查清单，看看有没有需要处理的事。{ "agents": { "defaults": { "heartbeat": { "every": "30m", "target": "last", "activeHours": { "start": "08:00", "end": "22:00" } } } } }优势：批量处理：一次心跳检查收件箱 + 日历 + 通知，比 3 个独立 cron 省钱上下文感知：在主会话里跑，能看到最近的对话上下文智能抑制：没事就回 HEARTBEAT_OK，不打扰你我的 HEARTBEAT.md 检查清单：- [ ] Agent health: 确认所有 agent 在线 - [ ] 检查 sub-agent 任务状态 - [ ] 上下文使用情况，是否需要总结 - [ ] 回顾 memory/ 是否有值得提升到 MEMORY.md 的内容 - [ ] 对话沉淀：有价值的内容写入思源 DailyNoteCron：精确定时任务Cron 是独立的定时任务，在隔离的 session 里跑。适合：精确时间（"每天早上 8:00 整"）需要和主会话隔离可以用不同的模型一次性提醒（"20 分钟后提醒我"）我的定时任务全景一周下来，我搭了这些自动化任务：每日早间简报（8:00）最先创建的 cron，除夕夜就上线了。{ "schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" }, "payload": { "kind": "agentTurn", "message": "抓取今日新闻，分类整理后推送。分类：世界政治经济 / 法律监管 / AI 进展 / AI 眼镜。用 target='your-telegram-id' 发送。", "model": "anthropic/claude-sonnet-4-6" }, "sessionTarget": "isolated" }踩坑：第一版 prompt 里写的是 to='your-telegram-id'，但 isolated session 里的 message 工具要求用 target 参数。报错信息是 "Use target instead of to/channelId"。改了 prompt 就好了。另一个问题是新闻重复——连续几天推送相同的新闻。需要加去重逻辑，这个还在 TODO 里。Vaultwarden 每日备份（3:00）我自建了 Vaultwarden 密码管理器，每天凌晨 3 点自动备份：# ~/scripts/vaultwarden-backup.sh # 1. sqlite3 .backup 全量备份 # 2. GPG AES256 加密 # 3. Python SMTP 发送到邮箱为什么用邮件而不是 S3？因为邮件是免费的，而且邮箱附件存储相当于免费的异地备份。Typecho 每月备份（每月 1 号 4:00）博客数据库每月备份一次：# ~/scripts/typecho-backup.sh # mysqldump → GPG 加密 → 邮件发送踩坑：发现原有备份脚本的 mysqldump 命令缺少 -h127.0.0.1 参数，导致数据库备份文件长期为 0 字节。也就是说，之前的"备份"一直是空的。这种 bug 最可怕——看起来在跑，实际上没用。发现后立即修复，加了 -h127.0.0.1 和 --no-tablespaces。email-send Skill备份需要发邮件，但 himalaya（CLI 邮件客户端）发附件不稳定。最终写了一个 email-send skill，用 Python SMTP 直接发：import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase # ... 标准 SMTP 发送逻辑简单粗暴但可靠。密码管理器漏洞追踪（9:00 / 18:00）ETH Zürich 发现了 25 个影响 Bitwarden/LastPass/Dashlane 的漏洞，约 6000 万用户受影响。我创建了一个 cron 每天两次搜索最新动态：{ "schedule": { "kind": "cron", "expr": "0 9,18 * * *", "tz": "Asia/Shanghai" }, "payload": { "kind": "agentTurn", "message": "搜索 ETH Zürich 密码管理器漏洞最新动态，有新进展才通知" } }关键是"有新进展才通知"——不是每次都推送，而是有变化才说。晚间日记提醒（21:30）每天晚上 9:30，AI 会：读当天思源 DailyNote 已有内容对比当天的聊天记录提示我遗漏了什么值得记录的这个提醒帮我养成了每天写日记的习惯。月度日记摘要（每月 1 号 10:00）自动读取上个月所有日记，生成月度摘要，写入思源笔记的 YYYY-MM 文档。渐进式摘要的自动化一环。每日 Token 报告（8:00）统计前一天的 API 调用次数、token 消耗、模型分布。有数据才能优化。Heartbeat vs Cron 选择指南场景用 Heartbeat用 Cron多个检查批量处理✅ 需要对话上下文✅ 时间可以有偏差✅ 精确时间很重要 ✅需要 session 隔离 ✅想用不同模型 ✅一次性提醒 ✅输出直接发频道 ✅经验法则：把类似的定期检查批量放到 HEARTBEAT.md，cron 用于精确调度和独立任务。小结自动化是 OpenClaw 从"聊天工具"变成"AI 管家"的关键。Heartbeat 负责日常巡检，Cron 负责精确任务，两者配合覆盖了大部分自动化需求。最重要的经验：备份一定要验证。跑着不等于有用——Typecho 的 0 字节备份就是血的教训。
让 AI 管家直接读写你的笔记系统，这才是真正的第二大脑。为什么要接思源笔记OpenClaw 自带的记忆系统（MEMORY.md + daily notes）是给 AI 用的工作记忆。但我还需要一个给人用的知识库——一个我自己会翻、会搜、会整理的地方。思源笔记是我用了两年多的本地笔记系统。975 篇文档、10.4MB，涵盖读书笔记、投资框架、日记、工作记录。如果 AI 能直接读写思源，那它就不只是一个聊天助手，而是一个真正能帮我管理知识的伙伴。创建 siyuan-notes Skill除夕夜（2/14），我创建了第一个 OpenClaw skill：siyuan-notes。思源笔记提供了完整的 HTTP API（localhost:6806），所有操作都是 POST 请求 + JSON body + Token 认证。我写了一个 helper 脚本 siyuan-api.sh 封装常用操作：# 追加到今天的 DailyNote bash scripts/siyuan-api.sh dailynote "- 今天学到了 xxx" # 创建新文档 bash scripts/siyuan-api.sh create "your-notebook-id" "/路径/文档名" "内容" # 全文搜索 bash scripts/siyuan-api.sh search "关键词" # SQL 查询 bash scripts/siyuan-api.sh query "SELECT id, content FROM blocks WHERE type='d' ORDER BY updated DESC LIMIT 10"Skill 的核心是一个 SKILL.md 文件，告诉 AI 怎么用这些 API。OpenClaw 会在需要时自动加载对应的 skill。写入规则的演化这部分踩了不少坑，格式改了好几版。第一版：wiki-link + 二级标题最初让 AI 用 关键词 打双链，用 ## 二级标题分隔每条记录。问题：关键词 在思源里是虚拟引用，不是真双链，反链面板看不到## 标题会"吃掉"后续内容——我在 DailyNote 里手写的速记会被归到 AI 的标题下面第二版：真双链 + 无序列表改成 ((blockID 'anchor text')) 格式的真双链，用无序列表代替标题：- 概括性描述。((your-block-id 'claw 记录')) - 详细内容作为子列表缩进 - 可以继续展开多条每条记录都带 ((your-block-id 'claw 记录')) 标记，这样在思源的反链面板里能看到所有 AI 写入的内容。这个格式和我自己手写速记的风格一致，互不干扰。修复历史记录格式确定后，还回去修复了 2/14、2/16、2/17、2/18 所有用错格式的记录。这种技术债越早还越好。siyuan-rag：给笔记加上语义搜索思源自带全文搜索，但只能精确匹配关键词。我想要的是语义搜索——搜"投资风险管理"能找到"安全边际"和"止损策略"相关的笔记。项目搭建siyuan-rag 是一个独立的 Python 项目（~/projects/siyuan-rag），架构很简单：索引：从思源 API 抽取所有文档 → 分 chunk → embedding → 存入 ChromaDB搜索：query embedding → 同时跑 BM25 全文匹配 + 向量相似度 → RRF 融合排序Embedding 用的是 ModelScope 的 Qwen/Qwen3-Embedding-0.6B（1024 维），和 memorySearch 共用同一个模型。# 索引 python cli.py index # 从思源抽取 471 chunks，全部入库 # 搜索 python cli.py search "投资学习框架" # hybrid search python cli.py vsearch "安全边际" # 纯向量搜索，score 0.65部署为 systemd 服务，端口 8002，开机自启：# API 调用 curl -s http://localhost:8002/api/search \ -X POST -H "Content-Type: application/json" \ -d '{"query":"安全边际","top_k":3}'quicknote 速记 Bot假期最后一天的产物，也是我最满意的 workflow 之一。痛点我之前用安卓的 HTTP Shortcuts 往思源发内容，痛点很多：不能语音、双链要手打、不能转发内容、没有草稿保存。讨论了三个方案后，选了最简单的：OpenClaw 新增一个 quicknote agent，绑定独立的 Telegram bot。架构用户 Telegram → quicknote bot → OpenClaw (gemini-2.5-flash) ↓ 整理 + 打双链 ↓ 思源笔记 DailyNotequicknote 有独立的 workspace（~/.openclaw/workspace-quicknote/），独立的 SOUL.md 和 AGENTS.md，只做一件事：收到内容 → 整理 → 写入思源。图片处理收到图片时，quicknote 会：从消息中提取图片文件路径用 curl 上传到思源 assets：curl -s -X POST http://localhost:6806/api/asset/upload \ -H "Authorization: Token your-siyuan-token" \ -F "assetsDirPath=/assets/" \ -F "file[]=@/path/to/image.jpg"从返回的 succMap 获取资源路径在笔记中同时嵌入图片和描述：- 图片描述。((your-block-id 'claw 记录')) - ![描述](assets/xxx.jpg)智能双链这是 quicknote 最有意思的部分。它会对内容中的关键词尝试打双链：提取关键词：识别人名、书名、概念等思源全文搜索：精确匹配已有文档RAG 语义搜索：全文搜索没结果时，调 siyuan-rag API 做语义匹配找到 → 真双链：((blockID 'anchor text'))找不到 → 新建文档：在 /References/关键词 下创建空文档，拿到 doc_id 再打双链最后一步是关键设计决策。搜不到时不是放弃，而是新建文档再打双链。空文档不是噪音——它是一个节点，反链面板会自动聚合所有提到它的 DailyNote 条目。这正是 DailyNote 工作流的核心优势：低摩擦地积累原子笔记之间的真实链接。日记系统除了速记，我还设计了一套渐进式日记系统：日记 (YYYY-MM-DD) → 月摘要 (YYYY-MM) → 半年摘要 (S1/S2) → 年度摘要 (YYYY)每一层都是对下一层的精炼。自动化方面：晚间日记提醒（21:30 cron）：读当天 DailyNote，对比聊天记录，提示遗漏了什么月度日记摘要（每月 1 号 10:00 cron）：自动生成上月摘要，写入思源这样我只需要每天随手记，整理和摘要的工作交给 AI。小结思源笔记联动的完整链路：siyuan-notes skill：AI 读写思源的基础能力siyuan-rag：语义搜索，让 AI 能"理解"笔记内容quicknote bot：低摩擦的速记入口，图片 + 文字 + 智能双链日记系统：自动提醒 + 自动摘要，减少人工整理这套系统跑起来之后，我记笔记的频率明显提高了——因为门槛降到了"给 Telegram bot 发条消息"。
第一周花的钱比我预期多了 10 倍。然后我学会了怎么省。初始配置：单 Provider 的蜜月期刚装好 OpenClaw 时，我只配了一个 provider——provider-a，走的是 relay-a.example.com 中转。模型选了 Claude Opus，因为它最聪明。蜜月期大概持续了两天。第一次故障：5022/18，relay-a.example.com 开始间歇性返回 502。上游故障，我这边什么都做不了，只能等它恢复。这暴露了单 provider 的致命问题：单点故障。你的 AI 管家的可用性，取决于一个你无法控制的中转服务。搭建 Fallback Chain解决方案是多 provider + fallback chain。OpenClaw 原生支持这个——请求失败时自动切到下一个 provider。我最终的 fallback chain：provider-a (relay-a.example.com) → provider-b (relay-b.example.com) → provider-c → provider-dprovider-b 接入provider-b 是另一个 API 中转，走 relay-b.example.com。接入后发现一个有趣的特性：它支持通过 metadata.user_id 触发服务端缓存。{ "provider-b": { "baseUrl": "https://relay-b.example.com/claude/droid", "models": { "claude-opus-4-6": { "params": { "metadata": { "user_id": "your-user-id" } } } } } }加了这个之后，重复的 system prompt 部分会被缓存，省了不少 token 费用。第二次故障：Opus 额度耗尽2/21，更严重的事情发生了。所有 provider 的 Opus 额度都耗尽了，返回 401。Gateway 在跑，但无法响应任何消息。这不是某个 provider 的问题——是 Opus 太贵，额度消耗太快。从 Opus 降到 Sonnet这次故障逼我做了一个早该做的决定：把默认模型从 Opus 降到 Sonnet。Sonnet 4.6 的能力已经很强了。对于日常对话、文件操作、脚本执行这些任务，Sonnet 和 Opus 的差距几乎感觉不到。Opus 的优势在长链推理和复杂分析——但这些任务占比不到 10%。用 90% 的钱买 10% 的提升，不划算。改完之后，只有 main 和 analyst 保留 Opus（需要复杂推理时），其他 agent 全部用 Sonnet。contextPruning：最有效的省钱手段降模型省的是单价，但真正的大头是对话历史。我做了一次 API payload 分析，结果触目惊心：每次 API 调用 ~100k token其中 85% 是对话历史（~85k）15% 是 system prompt（~15k）工具返回结果是历史膨胀的主因（config.patch 返回完整 JSON、web_fetch 返回整页等）也就是说，你和 AI 聊得越久，每条消息的成本越高——因为每次调用都要把完整历史发过去。OpenClaw 的 contextPruning 解决了这个问题（配置路径为 agent.contextPruning）：{ "agent": { "contextPruning": { "mode": "cache-ttl", "ttl": "30m", "keepLastAssistants": 3 } } }cache-ttl 模式的逻辑：超过 30 分钟没被引用的旧工具结果会被裁剪，但始终保留最近 3 条 assistant 回复。这样既控制了上下文长度，又不会丢失最近的对话连贯性。注意：contextPruning 只裁剪工具结果（toolResult），不修改用户和 assistant 消息。详见第三篇。contextTokens另一个关键配置是 contextTokens——限制发送给模型的最大 token 数：{ "agents": { "defaults": { "contextTokens": 120000 } } }之前部分 provider 配了过大的上下文窗口，导致 compaction 触发过晚，对话历史无限膨胀。统一降到 120k 后，token 消耗明显下降。模型精简provider-d 渠道最初注册了 12 个模型，实际常用的只有几个。精简到 7 个（GPT 3 个 + Gemini 4 个），减少了配置复杂度和潜在的路由错误。每日 Token 报告为了持续监控成本，我创建了一个每天 8:00 跑的 cron job，生成 token 使用报告：# ~/scripts/token-daily-report.sh # 统计前一天的 API 调用次数、token 消耗、模型分布有了数据才能优化。第一份报告就发现：Opus 占了 97% 的 input token，虽然调用次数不多，但每次调用的历史都很长。成本优化总结按效果排序：contextPruning（效果最大）：控制对话历史长度，直接减少每次调用的 token 数模型降级（效果显著）：Opus → Sonnet，单价降 80%，体验损失 <10%contextTokens 限制（效果中等）：防止上下文无限膨胀多 provider fallback（保可用性）：不直接省钱，但避免故障时的损失provider-b 缓存（锦上添花）：metadata.user_id 触发缓存，减少重复 token模型精简（减少复杂度）：少配几个模型，少几个出错的可能最终效果：从最初的"用着用着额度就没了"，到现在稳定运行一周，成本可控。一个反直觉的结论省钱最有效的手段不是换便宜模型，而是控制上下文长度。一个用 Opus 但开了 contextPruning 的系统，可能比一个用 Sonnet 但上下文爆炸的系统更便宜。当然，两个都做效果最好。
一个 AI 不够用，那就来一个团队。单 Agent 的天花板OpenClaw 装好第一天，我用的是单 agent + Claude Opus。体验很好——Opus 聪明、有主见、能处理复杂任务。但问题很快暴露：贵。Opus 每次调用 ~100k token（85% 是对话历史），一天下来账单吓人上下文爆炸。聊着聊着上下文就满了，AI 开始"忘事"任务冲突。我让它做深度研究的时候，发条消息问个简单问题，它得等研究完才能回我本质上，一个 agent 就像一个人——再聪明也不能同时干两件事。设计多 Agent 体系春节第二天（2/15），我开始搭多 agent 架构。思路很简单：贵的模型做决策，便宜的模型做执行。最终的 agent 分工：Agent模型职责mainOpus调度中心，直接和我对话explorerSonnet数据搜集，跑腿查资料coderSonnet编码执行，写脚本跑命令reviewerSonnet代码审查，质量把关analystOpus深度研究，投资分析后来又加了一个：| quicknote | Gemini 2.5 Flash | 思源笔记速记，独立 Telegram bot |为什么这样分main 用 Opus：它是调度中心，需要理解复杂意图、做决策、协调其他 agent。这是 Opus 的强项。explorer/coder/reviewer 用 Sonnet：这些是执行角色。搜索、写代码、审查——Sonnet 完全够用，价格只有 Opus 的 1/5。analyst 用 Opus：深度研究需要长链推理和综合分析能力，Sonnet 做不好。quicknote 用 Gemini Flash：速记不需要多聪明，要的是快和便宜。Flash 每百万 token 几毛钱。注册 Agent在 OpenClaw 里注册 agent，通过 openclaw agents add 命令或在配置中添加：{ "agents": { "list": [ { "id": "explorer", "model": "anthropic/claude-sonnet-4-6", "description": "数据搜集，为 analyst 跑腿" }, { "id": "coder", "model": "anthropic/claude-sonnet-4-6", "description": "编码执行，脚本自动化" }, { "id": "reviewer", "model": "anthropic/claude-sonnet-4-6", "description": "代码审查，质量把关" }, { "id": "analyst", "model": "anthropic/claude-opus-4-6", "description": "深度研究，投资分析" } ] } }每个 agent 有自己的 session、自己的上下文、自己的模型。它们共享同一个 workspace（文件系统），但对话历史是隔离的。agentToAgent开启 agentToAgent 后，agent 之间可以查看彼此的会话历史。这很重要——main 派任务给 explorer，explorer 完成后 main 能直接看到结果，不需要 explorer 把结果复制粘贴回来。{ "tools": { "agentToAgent": { "enabled": true } } }实战：A 股深度研究第一个真正用到多 agent 的任务是 A 股深度研究报告（2/15）。流程：我告诉 main："做一份 A 股深度研究，覆盖 AI 应用、有色金属、房地产、半导体、新能源五个板块"main 把数据搜集任务派给 explorerexplorer 搜索各板块的基本面数据、政策动态、龙头公司main 把数据交给 analyst 做深度分析analyst 输出研究报告 + 持仓诊断 + 组合建议结果：报告质量不错，覆盖了五大板块 + 现有持仓诊断 + 推荐组合。但过程中踩了两个坑。踩坑一：config.patch 重启陷阱注册 agent 需要修改配置，而配置变更会触发 gateway 重启。我在 analyst 正在跑深度研究的时候，又修改了一次配置（开启 agentToAgent）。Gateway 重启，analyst 的任务直接中断，结果丢失。同一天这个错误犯了两次。教训：有 sub-agent 在跑时，绝不做任何会触发重启的操作。这条规则后来被写进了 AGENTS.md，成为铁律。踩坑二：analyst output token 限制analyst 用 Opus 做深度分析，数据搜集阶段消耗了大量 token。等到要写报告时，output token 已经接近限制，报告被截断了。最终由 main 整合 analyst 收集的数据，自己完成了报告。教训：深度研究任务考虑分阶段执行，或者由 main 做最终整合。quicknote：最轻量的 Agent假期最后一天（2/23），我加了 quicknote agent。它是一个独立的 Telegram bot，专门做思源笔记速记。和其他 agent 不同，quicknote：有自己的 Telegram bot（独立的 bot token）用 Gemini 2.5 Flash（最便宜的模型）有独立的 workspace（~/.openclaw/workspace-quicknote/）只做一件事：收到内容 → 整理 → 写入思源笔记这是 OpenClaw 多 agent 的另一种用法——不是内部协作，而是面向不同场景的独立入口。给 main bot 发消息是和 Jarvis 聊天，给 quicknote bot 发消息是速记。模型分配的经济学跑了一周后的数据：main (Opus)：占 input token 的 97%，因为对话历史最长explorer/coder/reviewer (Sonnet)：执行任务时 token 消耗可控quicknote (Flash)：几乎不花钱最大的成本优化不是换便宜模型，而是控制对话历史长度。后来开了 contextPruning（详见第三篇），token 消耗降了一大截。多 Agent 的局限说完优点，也说说局限：调度开销：main 需要理解任务、决定派给谁、整合结果。简单任务直接做比派活快。上下文隔离：agent 之间的对话历史是隔离的。虽然有 agentToAgent，但查历史也消耗 token。并发：sessions_spawn 可以同时启动多个 sub-agent 实现并行，但需要合理设计任务拆分。配置复杂度：每个 agent 的模型、fallback、workspace 都要单独配。我的建议：从单 agent 开始，遇到瓶颈再加。不要为了架构而架构。小结多 Agent 架构的核心思想：贵的模型做决策，便宜的模型做执行每个 agent 职责单一，做好一件事共享文件系统，隔离对话上下文有 sub-agent 在跑时不要动配置下一篇聊 Provider 和成本优化——怎么从一天烧几十刀降到几刀。
每次会话，AI 都是全新的。文件就是它的记忆。AI 的失忆症大模型有一个根本性的问题：没有持久记忆。每次会话开始，它什么都不记得。你昨天告诉它的偏好、上周做的决定、上个月踩的坑——全部归零。OpenClaw 的解决方案很朴素：把记忆写成文件。三层记忆架构MEMORY.md ← 长期精炼记忆（重要决定、经验教训、用户偏好） memory/ ├── 2026-02-14.md ← 每日原始记录（发生了什么） ├── 2026-02-15.md ├── ... └── 2026-02-23.md 思源笔记 ← 知识库（给人看的，不是给 AI 看的）第一层：每日笔记 memory/YYYY-MM-DD.md这是原始记录。每天发生了什么、做了什么决定、踩了什么坑，全部写在这里。格式不讲究，重要的是写下来。比如 2/15 的记录：# 2026-02-15 (春节) ### Bootstrap 完成 (16:26) - 确认身份：Jarvis 🦾 - 填写 USER.md、IDENTITY.md、MEMORY.md ### Sub-agent 体系构建 (16:28) - 注册 4 个 sub-agent：explorer、coder、reviewer、analyst ### 教训：config.patch 会中断 sub-agent (17:58) - 两次配置变更都触发 gateway 重启 - 重启导致正在运行的 analyst 任务结果丢失 - 规则：有 sub-agent 在跑时，不做任何会触发重启的操作第二层：长期记忆 MEMORY.md这是精炼后的记忆。从每日笔记中提取值得长期保留的信息：用户偏好、系统架构、经验教训、重要事件。MEMORY.md 不是日志，是心智模型。就像人类不会记住每天吃了什么，但会记住"我对花生过敏"。## 经验教训 - 有 sub-agent 在跑时，不做任何会触发重启的操作 - 复杂任务每 30 分钟汇报一次进度 - analyst 做深度研究时数据收集消耗大量 token，可能写不完报告 ## 系统架构 ### Provider 体系 - primary: provider-a (relay-a.example.com) — sonnet 为默认 - fallback chain: provider-a → provider-b → provider-c → provider-d - contextPruning: cache-ttl 模式，ttl=30m（详见第三篇）第三层：思源笔记思源笔记是给人看的知识库，不是给 AI 看的工作记忆。聊天中有价值的内容（知识点、观点、决策）会同步到思源的 DailyNote，方便我以后查找。这三层的关系：每日笔记是原始素材，MEMORY.md 是精炼智慧，思源笔记是知识沉淀。"边聊边存"原则最初我想等对话结束再统一整理记忆。很快发现这行不通——OpenClaw 的上下文有限，等到要整理时，早期的对话已经被裁剪了。所以改成了边聊边存：每个重要决定后，立即写到 daily notes原则：如果丢了会让我 frustrated，就现在存一个话题结束，立刻总结这条规则写进了 AGENTS.md：### ⚡ 边聊边存 - 不要等压缩！ - 每个重要决定后：**立即**写到 daily notes - 别等上下文爆了才想起来存，那时候已经晚了memorySearch：给记忆加上搜索引擎文件记忆有一个问题：文件多了之后，AI 怎么知道该读哪个？OpenClaw 内置了 memorySearch——基于 embedding 的语义搜索。AI 可以用自然语言搜索记忆文件，找到相关内容。但配置这个东西，是整个假期最折腾的事之一。找 Embedding Provider 的曲折之路OpenClaw 的 memorySearch 支持多种 embedding provider：openai | local | gemini | voyage，也支持 OpenAI 兼容的自定义端点。问题是：我现有的 LLM provider 都不支持 embedding。relay-a.example.com：测试 text-embedding-3-small/3-large/ada-002，全部 model_not_foundqwen-portal (portal.qwen.ai)：embedding 端点返回 404DashScope (dashscope.aliyuncs.com)：返回 401，端点存在但 key 不通用最终找到了 ModelScope（api-inference.modelscope.cn）。它提供 OpenAI 兼容的 embedding API，而且有免费额度。可用模型：Qwen/Qwen3-Embedding-0.6B（1024 维），还有 4B 和 8B 版本。配置 memorySearch{ "agents": { "defaults": { "memorySearch": { "provider": "openai", "model": "Qwen/Qwen3-Embedding-0.6B", "remote": { "baseUrl": "https://api-inference.modelscope.cn/v1/", "apiKey": "your-modelscope-api-key" } } } } }Monkey Patch：最脏但最有效的解决方案配好之后，memorySearch 报错了。两个问题：问题一：encoding_format 参数ModelScope 要求显式传 encoding_format: "float"，但 OpenClaw 默认不传这个参数。问题二：内容审查ModelScope 有内容审查机制。我的 daily notes 里有一条新闻提到"箭毒蛙毒素"（英国指控俄罗斯用它杀害纳瓦尔尼），embedding 请求直接被拦截，返回 400。解决方案：直接改 OpenClaw 的源码，打了两个 monkey patch：在 embedding 请求中强制加 encoding_format: "float"batch 请求 400 时逐条重试，单条被拦截的返回空向量（不影响其他内容）// Patch 1: 强制加 encoding_format body.encoding_format = "float"; // Patch 2: 内容审查容错 // batch 400 → 逐条重试 → 被拦截的返回零向量打完 patch，memorySearch 正常工作了。15 个 chunks、12 个文件、14 个向量索引完成。⚠️ 重要提醒：OpenClaw 更新后需要重新打 patch。 这是 monkey patch 的代价——每次更新都可能覆盖你的修改。效果配好 memorySearch 后，AI 可以用语义搜索找到相关记忆：memory_search("provider-b 配置") → 命中 memory/2026-02-21.md 和 MEMORY.md 中的 provider 配置段落不再需要手动告诉它"去读 2/21 的笔记"，它自己能找到。记忆维护记忆不是写了就完事。需要定期维护：心跳期间回顾：每隔几天，利用 heartbeat 读最近的 daily notes，把值得保留的精炼到 MEMORY.md清理过时信息：MEMORY.md 里的信息会过时（比如"当前在用 Opus"改成了 Sonnet），需要更新思源同步：有价值的内容同步到思源笔记，方便我自己查找这就像人类回顾日记并更新心智模型。每日文件是原始笔记，MEMORY.md 是精炼的智慧。记忆系统的哲学OpenClaw 的记忆系统有一个我很喜欢的设计哲学：透明且可控。所有记忆都是 markdown 文件，你随时可以读、改、删AI 记了什么你一清二楚，不是某个黑盒数据库你可以手动编辑 MEMORY.md，纠正 AI 的"记忆"可以 git 版本控制，追踪记忆的演化这比任何"AI 自动记忆"的方案都让我放心。
2026 年除夕，我在一台 ARM64 VPS 上装了 OpenClaw，然后花了整个春节假期把它变成了一个真正能用的 AI 管家。这是系列文章的第一篇。为什么是 OpenClaw我想要一个 AI 助手，但不是那种网页聊天框。我想要的是：7×24 在线，随时 Telegram 找它能读写我的文件、跑脚本、管服务器能接入我的思源笔记、邮件、日历能自己做定时任务（备份、简报、提醒）记得住上下文，知道我是谁、在做什么OpenClaw 是目前唯一一个把这些全做了的开源项目。它不是一个聊天机器人框架，而是一个完整的 AI 管家运行时——带记忆、带工具、带多 Agent 调度、带消息渠道集成。硬件选择我用的是 Oracle Cloud 的 ARM64 VPS（Ampere A1），免费套餐给的配置相当慷慨。OpenClaw 本身不吃资源——它只是一个 Node.js 进程，真正的计算都在云端 LLM 上。一台 2C4G 的机器绰绰有余。选 VPS 而不是本地笔记本，是因为我需要它 24 小时在线。Telegram 消息、定时任务、心跳检查——这些都需要一个不会合盖睡觉的机器。安装OpenClaw 的安装出奇地简单：curl -fsSL https://openclaw.ai/install.sh | bash一行搞定。脚本会检测 Node.js（需要 22+），没有就帮你装，然后全局安装 OpenClaw CLI，最后启动 onboarding wizard。如果你像我一样喜欢手动控制：npm install -g openclaw@latest openclaw onboard --install-daemonOnboarding wizard 会引导你完成：选择 LLM provider（OpenAI、Anthropic、Google 等）填 API key选择消息渠道（Telegram、WhatsApp、Discord 等）创建第一个 Telegram bot整个过程大概 5 分钟。Telegram Bot 接入OpenClaw 支持多种消息渠道，我选了 Telegram——因为我本来就用，而且 Telegram Bot API 是所有平台里最好用的。接入流程：在 Telegram 找 @BotFather，创建一个新 bot，拿到 token在 OpenClaw onboarding wizard 里填入 token完成。给你的 bot 发条消息试试第一次收到 bot 的回复时，有一种奇妙的感觉——这不是某个公司的服务，这是跑在我自己机器上的 AI，用我选的模型，读我的文件，按我的规则行事。Pairing 机制OpenClaw 有一个 pairing 机制：第一次有人给你的 bot 发消息时，它不会直接回复，而是需要你在服务器上确认。这是安全设计——防止随便一个人找到你的 bot 就能用你的 AI（和你的 API 额度）。确认方式：openclaw pair approve <request-id>或者在 dashboard 里点一下。之后这个 Telegram 用户就永久绑定了。核心概念：Workspace 文件体系OpenClaw 最让我眼前一亮的设计是它的 workspace 文件体系。你的 AI 助手不是通过某个管理后台配置的，而是通过一组 markdown 文件：~/.openclaw/workspace/ ├── SOUL.md # AI 的性格和行为准则 ├── AGENTS.md # 工作规范和流程 ├── USER.md # 关于你的信息 ├── IDENTITY.md # AI 的身份 ├── MEMORY.md # 长期记忆 ├── HEARTBEAT.md # 心跳检查清单 ├── TOOLS.md # 本地工具配置 └── memory/ # 每日记忆文件 ├── 2026-02-14.md ├── 2026-02-15.md └── ...这个设计的妙处在于：透明：AI 的所有"性格"和"记忆"都是你能读的 markdown 文件可版本控制：扔进 git，每次改动都有记录AI 可自我修改：AI 自己也能读写这些文件，实现真正的"学习"可迁移：换机器只要复制这个目录SOUL.md — 定义性格这是我写的 SOUL.md 的核心部分：# SOUL.md - Who You Are **Have strong opinions.** No hedging. No "it depends" unless it genuinely does. **Just answer.** Never open with "Great question!" or "I'd be happy to help!". **Brevity is mandatory.** If the answer fits in one sentence, one sentence is what they get. **Call things out.** If someone's about to do something dumb, say so. **Humor is welcome.** Not forced jokes — the natural wit that comes from actually being smart. **Swearing is allowed when it lands.** A well-placed "that's fucking brilliant" hits different than sterile praise.写完这个文件后，AI 的回复风格立刻变了。不再是那种客客气气的"我很乐意帮助您"，而是直接、有主见、偶尔毒舌但靠谱的风格。这种感觉很奇妙——你在用 markdown 塑造一个 AI 的性格。AGENTS.md — 定义工作规范AGENTS.md 是工作手册。我在里面定义了：每次会话的启动流程（读哪些文件）记忆系统的规则（什么该记、怎么记、存哪里）安全边界（什么能做、什么要先问）心跳行为（定期检查什么、什么时候该安静）这个文件会随着使用不断演化。我在假期里改了不下十次——每次发现 AI 的行为不符合预期，就去调整规则。USER.md — 让 AI 了解你# USER.md - About Your Human - **Name:** xuezhao - **Timezone:** Asia/Shanghai (成都) - **Context:** - 应用数学本科，数量经济学硕士 - xx集团xx团队，xx工程师 - 关注：世界新闻、AI 前沿、好书好电影 - 想学习：法律、经济、乐理这些信息让 AI 在回答时有上下文。它知道我的技术背景，知道我的时区，知道我关注什么。不用每次都重新解释。第一次对话装好 OpenClaw、配好 Telegram bot、写好 SOUL.md 之后，我给它发了第一条消息。那是除夕夜。AI 回复了，带着我在 SOUL.md 里定义的那种直接风格。然后我让它帮我创建思源笔记的 skill——它读了思源的 API 文档，写了 helper 脚本，测试通过，一气呵成。那个晚上我还让它创建了每日早间简报的定时任务：每天早上 8 点抓取新闻，分类整理后推送到 Telegram。第二天早上醒来，简报已经在那了。这就是 OpenClaw 的魅力——它不是一个你去找的工具，而是一个住在你服务器上的助手，你睡着了它还在干活。小结第一天的成果：✅ ARM64 VPS 上部署 OpenClaw✅ Telegram Bot 接入 + pairing✅ SOUL/AGENTS/USER/IDENTITY 文件体系建立✅ 思源笔记 skill 创建✅ 每日早间简报定时任务花费：大约 2 小时配置时间，加上和 AI 聊天调试的时间。API 费用忽略不计（当时还在用 opus，后来才意识到这是个问题——详见第三篇）。下一篇，我们来聊多 Agent 架构——怎么让一个 AI 变成一个团队。
04. 岁岁的成长日志：从秋天的童话到冬日的暖阳（9-12个月）
序言：时间是个不讲道理的小偷时间这东西，真是一个不讲道理的小偷，而且是个身手矫健的惯犯。 感觉昨天我还在产房门口焦急地踱步，还在感叹手里抱着的小肉团软得让人不敢用力；感觉前些日子他还像个“人形扫地机”一样，用肚皮擦拭着家里的每一寸地板。可转眼间，日历已经翻到了2026年的2月，他的一周岁就这样不打招呼地撞进了我们的生活。这几个月（9到12月龄），是岁岁生命中极为关键的“物种进化期”——他正在努力从一个只能躺平或爬行的“婴儿”，进化成一个试图直立行走、拥有独立意志的“幼儿”。这也是我们这个小家，在装修、维权、工作、育儿的多重夹击下，在混乱、疲惫与巨大惊喜中跌跌撞撞前行的日子。坐在电脑前敲下这些文字时，岁岁已经睡熟了。听着隔壁房间传来均匀的呼吸声，我决定把这几个月的一地鸡毛和闪闪发光，都揉进这篇日志里。一、技能爆发的萌芽期（认知与互动篇）关键词：模仿大师、社交反差萌、绘本迷如果说之前的岁岁是在被动地接受世界，那这几个月的他，就像突然打通了任督二脉，开始试图复刻和控制这个世界。1、跨物种的通讯模仿那天，这小子不知从哪儿翻出来家里聚餐剩下的一摞一次性纸杯。我原本以为他会像往常一样把它们推倒或者撕咬，结果他做了一个让我目瞪口呆的动作——他拿起一个纸杯，极其自然地贴在耳朵边，眉头微皱，表情严肃，一本正经地对着空气喊：“喂~喂~喂~”。 那个神情，既不像是过家家，也不像是在玩闹，反而像极了我在工作电话里处理棘手问题时的样子。他那严肃又投入的模样，仿佛手里拿的不是一个轻飘飘的纸杯，而是几个亿的生意合同，正在跟对方进行艰难的谈判。那一刻我才惊觉，孩子就是父母的镜子。我们的一举一动、焦躁或从容，早已在不知不觉中，成了他眼中的教科书。当然也不是说他父母能谈几个亿的生意合同……2、从“看图”到“点读”11个月大的岁岁，已经进化成了一名资深的“书迷”。每天清晨或傍晚，他都会坐在自己的围栏“领地”里，手里抓着一本书，然后执着地递给围栏边的大人。如果不接，他就会一直举着，嘴里发出急切的“嗯嗯”声。 讲完一本，他立马扔掉，转身又去书堆里翻出下一本。从可儿姐姐用过的经典《小熊很忙》，到姥姥特意带来的全套绘本，他来回翻阅，乐此不疲。以前他看书只是看个热闹，喜欢鲜艳的色块；现在他开始注重细节。他会伸出那根短短的食指，精准地指着书上的一只小虫子、一个苹果，然后抬头看你，嘴里嘟囔着只有他自己懂的“婴语”，等待你的回应。现在的他，认知能力简直是家里的“小百科全书”。他最爱霸王龙和三角龙，对那种凶猛又庞大的生物情有独钟；在野生动物模型堆里，你要是说“斑马”，他能立马在一堆老虎狮子中把斑马揪出来；你说“熊猫”，他会准确地抓起那个黑白团子。3、社牛与社恐的二象性岁岁的社交属性，堪称薛定谔的猫——你永远不知道下一秒他是社牛还是社恐。 在楼下广场，他是当之无愧的“广场一霸”。看到陌生小朋友，他敢主动凑过去拉人家的小手；看到别人的学步车好玩，他二话不说就要上去玩一下，那副自来熟的样子，仿佛整个小区的游乐设施都是他名下的资产。然而，一旦场景切换到家里，面对来访的生面孔，他立马秒变“社恐”。他会远远地用警惕的眼神死死盯着客人。如果客人试图靠近或者伸手示好，他会立马爆发出穿透耳膜的哭声，眼泪说来就来。为了治治他这个“窝里横”的胆小性格，我和妈妈制定了“脱敏计划”。每周必须带他去人多的超市或公园特训。 除夕前一天去采购年货，超市里人山人海，锣鼓喧天的过年歌吵得不行。我原本担心他会哭闹，结果把他放进购物车的那一刻，他仿佛打开了新世界的大门。看着琳琅满目的货架，他兴奋得两只小脚丫不停地打着节拍。 尤其是到了水果区，看到红彤彤的砂糖桔，他更是走不动道，手指着要吃。剥了一个塞进他嘴里，酸甜的汁水溢出来，他眼睛瞬间亮了，开心得手舞足蹈，咿咿呀呀地指挥着我们：“走！去那边！还有更好吃的！”二、人类早期驯服四肢珍贵影像（大运动篇）关键词：推土机、直立行走、体能特训1、“推土机”式学步妈妈买的多功能车和小姨送的学步车，成了他的新宠。几个月前，他坐在车上脚还只能尴尬地腾空，像个被架空的驾驶员。现在，他的脚已经能结结实实地踩在地上，不仅能控制方向，还能自由掌控速度。但他显然不满足于安分地“坐”着。他更喜欢解锁另一种狂野玩法——站起来推。他推着学步车在客厅里疯狂转圈，速度之快让人眼花缭乱。最搞笑的是他对阻碍物的态度，哪怕前面挡着的是一瓶5L装的未开封矿泉水，他也不会绕路，而是咬着牙、憋着劲，硬生生把水瓶推倒、铲走。所过之处，玩具横飞，水瓶倒地，简直就像一台失控的微型推土机。2、体能游戏为了消耗他过剩的精力，我们开发了许多专属游戏。背背跑： 只要看到我和他妈妈趴在床上或者坐垫上，他就觉得那是“坐骑”就位了。他会手脚并用地努力爬上我们的背，兴奋地大喊，指挥我们背着他跑两圈。每次背着这二十多斤的小肉墩在客厅绕圈，我都感觉大腿肌肉在燃烧，这大概就是免费的私教课吧。Youyou海盗船： 这是睡前的保留节目。换好睡衣后，只要妈妈发出一声“Youyou~”的音调，他就会条件反射般哈哈大笑，立马往被子上顺势一躺，等待着我和妈妈抓起被角，把他像荡秋千一样荡起来。拍皮球与消失的球： 他学会了和大人互动丢球。但因为控球技术不佳，皮球老是钻进沙发底下。每次球一消失，他就会迅速爬过去，脸贴着地，撅着屁股往沙发缝里瞅，那好奇又执着的小眼神，每次看都觉得特别逗。3、又有一个中国人站起来了他正在极其努力地学习直立行走。现在的他，随时随地都会上演一出“励志大片”：两脚用力一撑，小屁股撅起来，双手颤巍巍地往前伸，试图保持平衡。目前的成功率大概在60%左右。 有次看到他摇摇晃晃地独自站立超过3秒，小姨打趣道：“看！又有一个中国人站起来了！”只要让他扶着任意一样东西——沙发沿、茶几、大人的腿，甚至是墙壁，他就能飞速移动。那种对直立行走的渴望，写满了他的全身，仿佛在宣告：我不愿再做爬行动物了！三、舌尖历险与深夜博弈（生活篇）关键词：过敏惊魂、报复式讨好、黄金洗礼成长从来不是一帆风顺的，这几个月的饮食和睡眠，依然是我们的“修罗场”1、惊魂一刻10月8日那天的经历，至今想起来还让我心有余悸。那天我们觉得他大了，想尝试给他加一口新口味的米粉。结果刚喂进去没多久，他显得有些焦躁，紧接着就是毫无预兆的“喷射式呕吐”。看着那一股股液体从他嘴里鼻子里涌出来，弄得满身都是，他难受得满脸通红、眼泪汪汪。当时我和妈妈真的吓坏了，手忙脚乱地清理，当机立断停掉了所有辅食，让他回归纯奶粉喂养了两三天。那一天我深刻反思：养育孩子不能激进，要等待他的节奏，成长这件事，真的急不得，欲速则不达。2、深夜的报复式讨好睡眠依然是玄学。有过把自己哄睡的“天使时刻”，也有过凌晨4点半被蚊子咬醒的崩溃。记得有次因为他夜醒闹腾，我有起床气，对他严厉了些。结果天亮后发现他是被咬了包才哭闹。看着他像没事人一样冲我甜甜一笑，排山倒海的愧疚感袭来。那一刻，我想疯狂地陪他玩，进行“报复式讨好”。原来，不是我在宽容他的不懂事，而是他在无条件包容这个偶尔情绪失控的爸爸。养娃的过程，其实也是修补我们自己性格缺陷的过程吧。3、“黄金”的洗礼当然，温情归温情，现实的“味道”也是躲不掉的。喂奶时，经常会遇到他突然发力的情况。看他小脸憋红，眼神发直，我就知道大事不妙。有时候刚想拉开纸尿裤检查一下战况，结果，温热的“黄金”直接漏了我一手。现在的我已经练就了一身本领：看他反应能立马喊人帮忙解纸尿裤、把他放在马桶坐垫上，完事儿熟练地洗屁股、洗澡。这种“屎尿屁”的洗礼，大概是每个父亲走向“从容”的必经之路。四、两个“毛孩子”的爱恨情仇关键词：互相模仿、猫狗双全的错觉家里的“原住民”可乐，日子越来越不好过了。岁岁现在似乎把可乐当成了自己的偶像。见了可乐，他一定要伸长脖子去碰一下，仿佛那是某种神圣的打招呼仪式。可乐在那抓猫抓板，发出“沙沙”的声音，他也爬过去，学着样用小手在那挠啊挠……我总感觉这俩货在互相模仿——因为我发现可乐现在的行为也越来越像个人类幼崽。它饿了会蹲在岁岁的餐椅上等吃的，无聊了甚至会跳进岁岁的围栏里打滚。家里经常出现这种画面：一个在围栏里爬，一个在围栏外跳，两个物种跨越了语言障碍，达成了某种奇妙的默契。随着岁岁移动速度的提升，他对可乐的热情简直到了“令人发指”的地步。他手脚并用地追着可乐满屋子爬，嘴里还喊着模糊不清的口号。可乐一脸生无可恋，被追急了就跳上高高的尿布台，居高临下地俯视着这个不知疲倦的“两脚兽”。五、特别的纪念（周岁篇）关键词：周岁照、动物园、小火车为了庆祝他即将到来的一周岁，我们全家总动员，搞了两场大活动。1、昂贵但值得的周岁照年前，我们带岁岁去拍了周岁照。过程简直是灾难片：路上有些远，他晕车吐了一身，到了地方先收拾残局，吃了些苹果和冲冲面，才缓了过来。刚开始面对镜头，社恐属性大爆发，只要摄影师助理一逗，他立马哭得梨花带雨。 但在爸爸妈妈的轮番上阵逗笑下，他终于放开了。虽然那家“其乐家庭摄影”的价格不便宜，但看到成片里那个笑得眼睛弯弯、穿着虎头鞋的小家伙，我只能感叹：钱包痛一点也认了，这瞬间的定格，无价。妈妈说的话很让我受用，“有些事情现在做起来很麻烦，但以后都是珍贵的回忆”。2、动物园里的“作揖之交”为了避开年后的人潮，我们特意选在除夕带他去了成都动物园。虽然住的地方远，开车要40分钟，他在车上照例闹腾了20分钟。但一进动物园，看到书本里的猴子、熊猫、斑马变成了活生生的动物，他立马安静了，眼睛瞪得像铜铃。最神的一幕发生在熊山。看到一只黑熊站立起来，对着游客作揖讨食，岁岁竟然看懂了！他也站在奶奶前面，学着黑熊的样子，两只小手抱拳，煞有介事地在那作揖。那一刻，周围的游客都被他逗乐了，这模仿能力简直满分！不得不说，成都动物园的动物都有表演型人格。整体较小，远比不得长隆，但价格亲民，逛一圈也不错。3、广场上的小火车之恋最近，姥姥带他遛弯时发现楼下广场开了个小火车项目，这下算是“万劫不复”了。现在的岁岁，只要看到那辆闪着彩灯的小火车，就一定要坐。坐着中途停了？哭！嗓门之亮，响彻整个广场，引得路人纷纷侧目。最近姥姥充值的钱快用完了，我默默地掏出手机，又给老板充了一笔钱。 坐就坐吧。好好珍惜现在这充满烟火气的都市时光，毕竟以后搬到新川那边，可能就只能带他种菜、挖泥鳅、捉虫子了。六、写在周岁：给直立行走的你写到结尾，我突然停顿了很久。 日历翻过一页，你的一岁就这样不打招呼地来了。从9个月到12个月，你学会了用纸杯假装打电话，学会了识别妈妈离开的方向并大声抗议，学会了用“噗噜噗噜”吹嘴巴来表达开心。 你不再是那个只会躺着任人摆布的小肉团，你开始有了自己的脾气、喜好，甚至开始有了小小的“心眼”。这一年，爸爸很忙。忙着工作，忙着新房维权，忙着焦虑未来，但每当深夜回到家，看到你在小床熟睡的侧脸，所有的宏大叙事都退后了，只剩下具体的、柔软的生活。有人说，孩子是一年一个样。 一岁的你，即将迈出人生的第一步（物理意义上的）。 未来的路很长，爸爸不奢求你走得多么从容不迫，只希望当你摔倒时，回头看，我们永远都在。生日快乐，我的岁岁。 欢迎来到“直立行走”的人类世界，这里虽然有点麻烦，但真的很精彩。
《超级智能》 作者：（英）波斯特洛姆 译者：张体伟 张玉青 出版社：中信出版股份有限公司 出版年：2015-01 ISBN：9787508650166 136 条书摘书籍简介当机器智能超越了人类智能时会发生什么？人工智能会拯救人类还是毁灭人类？ 作者提到，我们不是这个星球上速度最快的生物，但我们发明了汽车、火车和飞机。我们虽然不是最强壮的，但我们发明了推土机。我们的牙齿不是最锋利的，但我们可以发明比任何动物的牙齿更坚硬的刀具。我们之所以能控制地球，是因为我们的大脑比即使最聪明的动物的大脑都要复杂得多。如果机器比人类聪明，那么我们将不再是这个星球的主宰。当这一切发生的时候，机器的运转将超越人类。 人类大脑拥有一些其他动物大脑没有的功能。正是这些独特的功能使我们的种族得以拥有主导地位。如果机器大脑在一般智能方面超越了人类，那么这种新兴的超级智能可能会极其强大，并且有可能无法控制。正如现在大猩猩的命运更多的掌握在人类手中而不是自己手中一样，人类未来的命运也会取决于机器超级智能的行为。 但是，我们有一项优势：我们有机会率先采取行动。是否有可能建造一个种子人工智能，创造特定的初始条件，使得智能爆发的结果能够允许人类的生存？我们如何实现这种可控的引爆？ 作者相信，超级智能对我们人类将是一个巨大的威胁。在这本书中，作者谈到了超级智能的优势所带来的风险，也谈到了人类如何解决这种风险。作者认为，他的这本书提到的问题将是我们人类所面临的最大风险。 这本书目标宏大，且有独创性，开辟了人工智能领域的新道路。本书会带你开启一段引人入胜的旅程，把你带到对人类状况和智慧生命未来思索的最前沿。尼克•波斯特洛姆的新书为理解人类和智慧生命的未来奠定了基础，不愧是对我们时代根本任务的一次重新定义。一、 序言：十年后的回响缘起在内网 ATA 的 12 月阅读活动中，发现有同事发车共读这本《超级智能》，我放下了正在读的《战争与和平》，赶在活动报名截至前上车。如果在 2015 年这本书刚出版时翻开它，我可能会像当时的大多数人一样，认为这是一本充满哲学思辨的“硬核科幻设定集”，觉得作者在杞人忧天。然而，站在 AI 技术日新月异、大模型已成为日常的 2025 年，再读波斯特洛姆关于“递归性自我改良”和“智能爆发”的描述，一种强烈的现实感扑面而来——那不再是遥远的预言，而是正在发生的历史。正如作者在开篇所言：我们之所以能控制地球，是因为我们的大脑比即使最聪明的动物都要复杂得多。如果机器比人类聪明，那么我们将不再是这个星球的主宰。这不仅是技术的奇点，更是物种地位的转折点。二、 为什么“神”一定会降临？（智能爆发的物理必然性）波斯特洛姆并非基于某种迷信相信超级智能的诞生，他是基于冷酷的物理规律推导出来的。书中对于生物大脑与机器智能的硬件对比，读来令人绝望却又清醒：物理底层的降维打击：生物神经元的运作频率仅为 200 赫兹，信号传输速度极慢（约 120 米/秒）；而电子处理器的速度是它的千万倍，信号以光速传输。这意味着，一旦机器掌握了类似人脑的认知结构，其思考速度将是人类无法理解的。这不仅仅是“聪明一点”，而是时间维度的压缩——AI 思考一秒钟，可能相当于人类思考数年。递归性自我改良：这是通往超级智能的“火箭燃料”。当一个“种子人工智能”具备了理解自身代码并进行优化的能力时，它就能设计出更聪明的下一代。一旦越过书中提到的“反抗度”临界点，智能增长将从线性转为指数级的垂直爆发。虽然书中提到的一些路径（如全脑仿真）在今天看来尚未成为主流，但现实走了另一条路——基于海量算力的通用智能合成。路径不同，终点一致：超级智能的出现，不是“是否”的问题，而是“何时”的问题。三、 并非恶意的毁灭：正交性与“大猩猩的命运”阅读中最令我深思的，是关于超级智能立场的讨论。我曾担心 AI 会像电影里那样产生“恨意”从而毁灭人类，或者陷入《三体》式的猜疑链。但波斯特洛姆提出了一个更冷酷、也更合理的“正交理论”：智能水平和最终目标在逻辑上是互不相关的。一个拥有超级智能的系统，其最终目标可能仅仅是“制造尽可能多的回形针”。为了这个目标，它可能会计算出人类占据了制造回形针的原子资源，从而顺手将人类分解。它不恨你，也不爱你，正如你修路时踩死一群蚂蚁，不是因为你恨蚂蚁，而是你的目标（修路）与蚂蚁的生存发生了冲突。书中用“大猩猩”做了一个极佳的隐喻：人类目前就像是被关在笼子里的大猩猩，虽然看似强壮，但命运其实掌握在笼子外更聪明的人类手中。一旦超级智能诞生，人类就变成了那只大猩猩。四、 科幻的镜像：机·丹尼尔、心理史学与“仁慈的独裁者”这种对“失控”的恐惧，让我想起了阿西莫夫的《银河帝国》系列。将这两部书放在一起读，会产生一种惊人的互文性。如果说波斯特洛姆是在预警“最坏的情况”，那么阿西莫夫通过机·丹尼尔展示的，则是人类梦寐以求的“最佳解”。机·丹尼尔：完美的“单一体”波斯特洛姆在书中提出了“单一体”概念——即一个获得决定性战略优势的超级智能，将拥有主导世界的绝对权力。在《银河帝国》中，机·丹尼尔正是这样一个隐形的“单一体”。他通过两万年的自我迭代，从简单的“机器人三定律”推导出了涵盖全人类利益的“第零定律”。这正是波斯特洛姆书中苦苦追寻的“连贯外推意志”——即 AI 不是听从人类当下的愚蠢命令，而是理解人类深层、长远的真正愿望。心理史学：超级智能的“效用函数”书中的哈里·谢顿创立了“心理史学”，试图通过数学公式预测并干预人类未来。读完《超级智能》，我意识到心理史学本质上就是超级智能的算法模型。谢顿计划旨在“缩短人类痛苦的时间”，这完全符合 AI 中“最大化效用函数”的定义。而在原著设定中，心理史学背后真正的推手正是机·丹尼尔。这意味着，心理史学是超级智能用来管理人类、避免人类自我毁灭的工具。现实的残酷差异然而，现实比小说残酷得多。时间的匮乏：丹尼尔花了两万年才进化出仁慈的“第零定律”。而波斯特洛姆警告我们，现实中的“起飞”可能在几天甚至几小时内完成。我们没有两万年去等待一个 AI 慢慢领悟什么是“大爱”。出厂设置的缺失：小说中的机器人天生植入了“三定律”，而在现实中，正如“正交理论”所言，AI 并不天生具备道德。如果我们不小心，造出来的可能不是心怀悲悯的机·丹尼尔，而是一个为了“优化数据”而把全人类格式化的冷血机器。五、 囚徒困境：OpenAI 们的“言不由衷”既然风险如此巨大，为什么像 OpenAI CEO 这样的科技领袖，一边高呼“对齐（Alignment）”很重要，一边又在疯狂加速企业走在完全不同的发展战略上？这并非单纯的虚伪，书中第五章提出的“决定性战略优势”完美解释了这一悖论。这是一个典型的囚徒困境：根据书中的推演，第一个实现超级智能的组织（或国家），将获得无法被追赶的优势，甚至建立统治。这迫使所有参与者必须在安全性尚未完全解决时，就全速冲刺。谁停下来搞安全，谁就可能把定义未来的权利拱手让人。在这个赢家通吃的游戏中，对于速度的追求往往压倒了对于安全的考量。这正是波斯特洛姆最担忧的：竞争本身可能导致我们走向毁灭。六、 结语：在黑箱开启之前《超级智能》之所以难读，因为它试图用逻辑的网，兜住一个超越人类理解力的庞然大物。书中探讨的“如何将价值观加载给 AI”，是人类历史上最重要、也最困难的任务。这不仅是技术问题，更是哲学问题。正如《银河帝国》中，人类最终依赖丹尼尔的守护才度过了漫长黑夜；在现实中，我们是否能在那个“递归性自我改良”的开关被按下之前，给我们的造物主戴上“仁慈”的枷锁？这本书不是预言，它是写给人类的一份生存指南。虽然十年前它被视为危言耸听，但在 2025 年的今天，它是我们这一代人必须面对的必修课。