2026年1月

生成式 AI 的投资回报远超预期?Snowflake 调研全球 1900 位企业与 IT 专业人士后发现平均 ROI 高达 41%!点击下载完整报告

随着生成式 AI 从原型走向生产环境,真正的挑战已不仅是模型质量,更是要构建能被团队大规模信任的系统。开发人员和数据工程师被要求交付的不仅仅是能够生成答案的智能助手、Agent 和辅助工具,还必须确保这些系统在可靠性、安全性和与业务逻辑的一致性方面做到尽善尽美。

本次分享中,Snowflake 首席数据与分析官 Anahita Tafvizi 凝练了来自 Snowflake 自身实践与行业顶尖构建者的深度交流,系统拆解了可信生成式 AI 的技术架构要点,内容包括:

  • 语义层如何防止幻觉并保持一致性;

  • 为什么可观察性和评估框架生产级 AI 的必备要素;

  • 在开源与专有模型中实施权限管控、数据沿袭和可测试性;

  • 数百个企业用例中常见的开发模式与反模式。

无论您正在将智能体扩展至生产环境,还是仅验证试点项目,这场分享都将为构建不仅智能、而且可信、安全且可复用的生成式 AI 系统提供前瞻性蓝图——为持久化的 AI 奠定基础。

信任,是 AI 能否走向生产的分水岭

在 Snowflake 的实践中,构建一个“能回答问题”的 AI Agent 并不困难,真正困难的是构建一个输出高度准确、可被团队信任、并能据此采取行动的 Agent。这一难点在数据与分析类场景中尤为突出。

分析型 AI 的输出往往具有唯一正确答案,例如季度收入、增长率或关键指标。一旦系统在这些问题上给出哪怕一次错误结果,信任便会迅速崩塌,用户会回退到 SQL 查询或电子表格——因为在那里,他们至少能够自行追溯逻辑、验证结果。

分享中反复强调了一个行业普遍存在却容易被忽视的问题:分析幻觉(Aalytics Hallucination)。即 AI Agent 给出了看似合理、引用了正确表格与来源、但最终却是错误的数值。在分析场景中,这类错误的破坏性远高于一般生成式应用,也正是许多 AI 系统“上线即沉默”的根本原因。

一个三层结构的“信任工程”框架

基于 Snowflake 自身从原型到生产的实践经验,团队将“信任”总结为一个需要被工程化设计的系统能力,而非单一功能,并提出了一个由三层组成的框架。

第一层:数据信任所有 AI Agent 必须锚定在企业唯一、可验证的数据真实源之上。为此,Snowflake 通过语义模型集中定义业务概念与核心指标,使 AI 与分析师使用的是完全一致的业务语言。同时,引入“已验证查询”机制,将经过人工确认的 SQL 逻辑作为标准答案来源,确保自然语言查询与分析师手写 SQL 得到的结果一致,从根本上避免分析幻觉的产生。

第二层:模型信任生成式模型天然是概率系统,而分析场景需要确定性。Snowflake 通过可观测、可测试的方式对模型施加约束:完整记录每次推理路径,引入基于真实答案的问题集进行持续评估,并通过 CI/CD 式的发布流程,在进入生产前设置明确的质量门槛。上线之后,Agent 并非“部署即完成”,而是通过真实使用数据不断迭代和补充新的已验证查询。

第三层:系统信任即便数据和模型足够可靠,缺乏治理同样会导致失败。分享中特别强调了三点:权限必须继承自底层数据对象,设计审查应成为标准流程,以及每个 Agent 都必须有明确的责任人,持续对安全性和质量负责。实践证明,这套治理结构并不会拖慢创新速度,反而为规模化落地提供了稳定基础。

一个真实落地案例:面向 6000 人的销售与市场 AI 助手

为了验证上述框架的有效性,Snowflake 以内部市场与销售团队为对象,构建了一款基于 Snowflake Intelligence 和 Cortex AI 的 AI 助手。该系统每天服务超过 6000 名销售与市场人员,每周回答超过 12000 个业务问题,早期用户的 NPS 超过 90%。

在演示中可以看到,系统通过清晰的界面向用户传递为什么可以信任这个答案:是否使用了已验证查询、完整的 SQL 执行过程、清晰的推理路径,以及在非验证场景下对原始资料的明确引用。正是这些可见的信任信号,使业务用户愿意将决策建立在 AI 输出之上,而不再仅将其视为辅助工具。

三个值得警惕的反模式

在总结实践经验时,Anahita Tafvizi 也指出了三个在企业中反复出现的典型误区。

  • 将 AI Agent 视为“一次性交付”的系统,缺乏持续监控与迭代,最终导致偏移和失控;

  • 使用模糊的“万能输入框”界面,却未明确 Agent 的能力边界,反而削弱了用户信任;

  • 允许各团队建立临时语义定义,导致同一指标在不同场景下含义不一致,从源头破坏可信性。

这些问题并非模型能力不足,而是缺乏系统性信任设计的结果。

真正胜出的,是“被信任的系统”

这场分享最终回到一个朴素却极具现实意义的结论:在企业 AI 的竞争中,胜出的不会是最炫酷的系统,而是那些能够被团队长期信任、稳定产出价值的系统。

当信任被纳入架构设计的起点,用户采用、开发效率与持续创新都会随之加速。这并非一个关于模型参数或技术噱头的故事,而是一场关于工程纪律、治理能力与长期主义的实践总结。

原型设计工具是产品经理快速验证创意、推进团队协同的关键帮手。随着各类原型工具不断迭代,在操作方式、交互呈现力和协作便捷度上持续精进。本文针对7款热门工具做了横向对比与实测分析,搭配实用选型指南,帮你快速找到契合自身需求的工具。
一、7款原型设计工具一览
本次测评囊括UXbot、Axure RP、Figma、Adobe XD、Proto.io、Framer、Sketch十款主流工具。下文会结合每款工具的核心优势与实际使用感受逐一剖析,同时从核心功能、注意事项等方面给出参考,助力你全面摸清各工具的长短板。
二、原型设计工具实测点评
1.UXbot
image.png
核心亮点:仅需输入简短需求,即可智能生成可视化PRD、高保真原型、精美的界面设计、Web前端代码,原型设计符合当下最新产品逻辑,另外支持全流程自由编辑;平台稳定性高,适合中文团队操作,学习成本低,纯小白也能上手操作。
实测体验:能轻松完善产品逻辑、可以一次性生成完整可交互的项目,全程自由度超高,可以根据自己的想法修改。支持Sketch、HTML和Vue代码的导出,方便项目的二次开发和迭代,尤其适合中小企业和个人,快速跑通项目。
2.Axure RP
image.png
核心亮点:高级交互能力堪称行业顶尖,第三方资源储备丰富,兼容性强,支持本地离线运行,稳定性极佳,网上配套的教学资源和教程十分丰富,学习门槛相对可控。
实测体验:可轻松实现复杂的交互逻辑,高保真原型搭建的灵活度很高,支持动态数据与变量设置,尤其适合金融类大型系统的原型设计工作。
注意事项:整体学习成本偏高,新手需要一定时间才能熟练掌握,云端协作体验不够理想,目前暂未搭载AI拓展功能。
3.Figma
image.png
核心亮点:专为大型团队多人实时协作设计,插件生态成熟且丰富多样,支持AI辅助生成原型和UI界面,社区资源庞大,功能拓展性极强。
实测体验:无需本地安装客户端,在线编辑流畅不卡顿,团队协作功能完备,各类插件可满足不同场景下的使用需求,功能拓展空间充足。
注意事项:国内访问存在一定限制,全英文界面对英文基础薄弱的用户不够友好,免费版功能有诸多限制,数据安全方面暂无完善的解决方案。
4.Adobe XD
image.png
核心亮点:可与Adobe系列其他产品无缝衔接,实现原型设计全流程一体化操作,交互动画支持可视化预览,插件资源十分丰富。
实测体验:页面布局操作流畅顺手,支持文件快速导出,动画效果预览直观清晰,与PS、AI等工具联动时能显著提升工作效率。
注意事项:多人协作能力不如Figma,跨平台团队使用时,需格外注重版本管理,避免出现文件冲突。
5.Proto.io
image.png
核心亮点:专注于移动端交互动画设计,可快速制作出可演示的原型作品,操作门槛处于中等水平,易上手度尚可。
实测体验:动画组件拖拽操作便捷高效,原型的点击反馈贴近真实产品使用场景,支持一键分享给团队成员或客户预览查看。
注意事项:免费版功能受限较多,高级交互效果需订阅付费套餐才能使用,更适合中小型团队开展移动端项目。
6.Framer
image.png
核心亮点:动态交互与动画呈现能力表现卓越,网页原型制作效率突出,支持自定义组件开发,满足个性化设计需求。
实测体验:交互动画流畅自然,无卡顿感,可实现复杂的逻辑设计,自定义组件功能能很好地适配个性化需求,网页原型落地效果出色。
注意事项:对无设计基础的用户不够友好,上手难度稍高,更适合对交互动画有高阶要求的专业团队。
7.Sketch
image.png
核心亮点:矢量设计能力出众,插件生态体系完善,在Mac端运行流畅稳定,兼容性强,可与多款开发辅助工具搭配使用。
实测体验:Mac用户使用体验极佳,各类插件可覆盖不同设计场景需求,与Zeplin、Abstract等工具搭配使用时,能顺畅衔接开发环节。
注意事项:仅兼容macOS系统,Windows用户无法使用,跨平台协作存在局限,团队协作需借助其他辅助工具实现。
三、原型设计工具选择指南
结合易用性、组件丰富度、交互能力、团队协作、跨平台支持、输出能力、AI辅助七大核心维度,针对高频选型问题整理了以下问答,帮你快速做出决策。
Q1:新手产品经理选哪款?
A:优先考虑UXbot,上手快,功能覆盖可视化PRD和原型设计。
Q2:团队协作首选工具?
A:Figma,实时同步顺畅,支持多人在线编辑和评论。
Q3:需要高保真交互用什么?
A:Axure RP、Framer,可实现复杂逻辑和动画,其次是UXbot。

总结
以上就是2026年7大原型设计工具的全面测评。未来,这类工具将进一步升级为支撑全流程产品设计与团队协作的核心平台。产品经理在选型时,可结合团队规模、项目类型(简单/复杂、移动端/网页端)及AI辅助需求综合考量,精准匹配工具,既能提升设计效率,又能加快产品落地节奏。

除了首页时间流和侧栏的精选展位,少数派 Matrix 社区还有很多优秀内容因条件所限无法得到有效曝光,因此我们决定重启 Matrix 周报,并在此基础上添加更多社区内容、作者投稿新玩意呈现给大家。


🖊️季度创作

少数派编辑部目前针对现有新、老作者推出了更多专属权益,以季度为周期向新、老作者,尤其是那些在垂直内容领域持续耕耘、对网站策划内容或特别活动有突出贡献的作者,提供更多稿酬之外的附加奖励,包括付费栏目解锁资格、网站会员兑换码、实体周边礼包以及徽章系统提前解锁和特定徽章的获取资格。

在今天的社区速递中,我们对上一季度在少数派网站、社区崭露头角的新作者,以及在垂直领域内容持续创作、对网站特定内容策划和栏目有突出贡献的老作者进行表彰。

本季度值得关注的作者有:

本季度值得关注的新星作者有:

我们将在 14 个工作日内向以上作者发放商城周边礼包、付费栏目解锁权益、会员资格兑换码以及特别网站徽章,请注意查收。感谢各位作者一个季度以来的陪伴和创作。

💬一派热议

在上期第 255 期一派讨论《十二月买了什么好东西?》中,共有 519 名派友热情参与,十分感谢!

BooMbar(+33)

面具熊(+31) 每个月都能看到大佬买车 (⊙_⊙),而我只能买买模型和笔。

TracyJ(+27) 12 月买了人生第一台车。

Sail1996(+27) 这个月给自己买了一个白色的 iPhone 17,不愧是最强标准版,甚是满意,白色超级好看;

玩完了《羊蹄山之魂》,把盘回收后,精挑细选了《美国末日 1 重置版》作为下一款游戏。现在玩了四五个小时,非常沉浸;

未婚妻给我定制了一整套西装🫶,帅就完事儿了。

尾椎(+25) 买了台理想 i6。

伊飞(+23) 12 月还是以囤书为主:

1)《毛泽东选集》四册精装版 —— 我老婆最近在微信读书上看毛选,看多多上价格合适于是下单一套。跟之前读《沧浪之水》一样,毛选也是年轻时一直读不进去,上了年纪才读得懂;伟人就是伟大,看问题、分析问题就是透彻,文章全是干货,没有废话,写的都是解决问题的方法论,到现在也都能用得上,这书真的是越早读越好,高中政治真的应该认真学。

2)《科技共和国》—— Palantir 联合创始人、CEO Alex Karp 的书,追一下热点,增加一点谈资。Palantir 就是那家协助美国国防 / 情报系统,找到本拉登藏身之处的技术公司,网上流传的参与俄乌战争等信息,给这家公司增加了一些神秘色彩。十多年还在公安行业工作时就听过它,最近这家公司在网上非常火,因为这家公司是真正让 AI 应用落地,并且赚到了钱,市值窜升非常高。本来以为这书会写公司如何创建、如何发展、内部一些运作等等,结果却是写科技行业使命,服务国家安全、公共利益……还是在宣传他们的方向,影响美国政府与科技行业的合作等,最终还是为企业来服务。

3)《项目管理 计划、进度和控制的系统方法(第 13 版)》—— 虽然不专门做项目管理了,每年还是要看一些新的项目管理书籍,PMP 也要积累 PDU 积分,免得之前的知识都忘记了。

4)得到课《吴军 教育的方法 50 讲》—— 主要是给老婆听的,顺便买了几本吴军的书《软能力》、《阅读与通识讲义》、《逻辑学通识讲义》、《数学通识讲义》来看,有些书已经看过电子书了,但还是觉得纸质书翻看起来方便。

5)提升摄影技术 —— 拍照技术一直很烂,理光 GR IIIx 也基本上闲置了,决定在 26 年提升一下摄影方面的能力,多多下单了 52 个任务清单系列《黑白摄影》、《旅行摄影》、《街头摄影》等,每周给自己安排两三个任务,让周末有事可做。

6)感兴趣的闲书 ——《资治通鉴熊逸版第五辑之新莽乱世》、《托尔斯泰与陀思妥耶夫斯基(2021 版)》、《21 天美字计划》、《美食鉴赏 20 讲》、《鲁迅影集》、《如何出版一本书》等,有时间就翻翻,打发时间。

其他:地球仪 —— 给儿子用,对七大洲、四大洋,整个世界各个国家的位置有个直观印象。

Lee62(+22) 拼多多买了一把法丽达 5051 渐变蓝。

董企鹅(+18) 今天是 2025 年最后一天,赶紧踩线来参与一下,12 月最值的一笔开支就是买了这台学习机(华为平板),主要是用来做外刊阅读的,另外我也有记电子笔记的习惯,看视频、听播客、看文章我都喜欢随手在旁边写一写记一记,后来发现在平板上练习口语也是可以的,一些应用程序的打开跟使用,体验基本和电脑是一致的,再加上它超级轻便,现在出门就基本只带这个了(1 万多买的 MacBook 要吃灰去了,呜呜……)

李璇玮(+16) - 海氏海诺无菌敷贴 ¥10(骑车被开门杀了,易撕不粘皮肤)

- 牙周治疗一个疗程 ¥300(花小钱办大事,上一次药就明显不咋出血了)

- 徕芬 SE Lite 蓝灰色 ¥147(去年送了麻麻 SE 生日礼发现不错,今天刚签收,替代 20 年入的小米水离子)

- 京东京造睡衣 ¥115(上身巨暖和,植入了永久导电丝,没一点静电)

- NANS 灯芯绒黑色长裤 ¥352(上身很百搭,我的御用男装衣柜)

- 迪卡侬 MH100 抓绒衣 ¥34(穿了一年,便宜好穿,顺手给爸妈刚入一个)

- 京东京造非转基因无糖豆浆粉 ¥21(豆子很香,1 块一包)

- 冰泉无糖豆浆粉 ¥8(京造同款代工商,出品质量一样)

- 康师傅特别特鲜泡面 ¥7(口感类似小店的面口感,康师傅第一次让我如此惊艳)

新浪潮(+16) 月初提了理想 i6,人生第一辆车,非常喜欢。又买了些小亿的洗车液,逐渐发现自助洗车还挺解压。

落花时节又逢君(+15) 淘宝买了一个 16 寸 4K 的便携显示器,加上邮费是 1052,使用下来非常满意。买的理由也很简单,主显示器 27 寸 4K 的,另一台显示器大了放不下,小了不方便,想了半天,感觉 27 寸横屏 + 支架,下面放 16 寸横屏立着,这样摆放正正好,下面显示器看视频上面写代码这样。我买的这个显示器不论是做工还是显示都挺不错的,配上支架,也不会给颈椎带来额外负担。

Hy(+15) 在个人爱好方面老婆好像无条件支持,虽然我也支持她的泡泡玛特事业。欣赏一下 QS 1/3 黑神话 八戒雕像。

云中的小白(+15) 早该买了,有啥比冬天一家人欢聚搓麻更愉快的事。

Dkvvvv(+14) 买了台二手的宝马 E90 325。

风的历史(+14) 凑巧得到两台徕卡。月初入了一台徕卡 I 型系列(自己贴个标点缀不过分吧),月末没想到碰到小米 17 Ultra 徕卡版发布。正好从 1925 跨越到 2025,百年一瞬,沧海桑田。

冰阔乐(+13) 买了 A7M5+2470GM2 + 一大堆配件。在发布会当晚下单的,2 天后就拿到了。人生第一台相机📷开心🥳

Feeman(+13) 部门团建低价买了同事抽中的极音速(恨自己没抽中),很好用!

鹹魚 7288(+13) 买了一个超棒的 2026 年周历还有一盘新的植物(虽然植物还没发货哈哈),感觉新的一年又有新的希望。

kamin(+13) 买了条二手袜子。

甜杏仁(+12) Midiplus X8,是一个 88 键的 MIDI 键盘,17 年上市,原价 1800 左右,我闲鱼 500 自提的,好像卖家一直没用过,这么多年下来成色非常新。

这是我第一次用这种全键位的 MIDI 键盘,之前用的都是 61 键的,时不时就不够用了,还得切换八度麻烦死了,现在不要太爽 hhh。

它有四个阻尼感很强的旋钮,可以随意分配 MIDI CC 信号。旁边还有 6 个控制走带的按钮,官网上下载配置文件,照着分配一下键位直接可以控制最新的 Cubase 15。弯音轮和调制轮比较独特,是触摸的,不过上手适应了下感觉还挺方便的,精度很高。要说唯一有所失望的是琴键的手感方面,虽然在在这个价格中还是不错了,但白键边缘下方很锋利,在进行八度跳跃时容易割手,虽不至于割伤,但还是挺疼的。

Evan7668(+12) 枫叶季去了大阪和京都,买了 USJ 的门票,一到环球的门口脸上就开始笑,一路上情绪价值非常非常足。去了期待已久的马里奥园区,穿过前面的门一进去,就跟大电影看到的场景非常像,还原度很高。个人觉得今年最值的一笔。

Er0Chang(+12) 

  1. 小米净化器 6:上一个还是小米净化器 1 代,没坏但是功能单一,而且 6 顶部封闭可以放一些小摆件,还是换了;
  2. 圣诞老树(doge);
  3. CMF Watch 3 代(纯纯长在我的审美上)作为女票的礼物,她也很爱;
  4. 朋内猫砂柜:实在有点受不了本就拥挤的客厅再来一个开放式的猫砂盆;
  5. 「打扰一下乐团」北京巡演 - 牵手票(1919 我称之为北京最好 Live House)。

赜隐(+11) 出去旅行走累了,逛商场买了双 Hoka 的 Bondi 9,1499,旧鞋邮寄回家,续航直线上升。

Walter8529(+10) 买了二手的清闲人体工学椅,原来西日天牌的坏了,去 Inno 100 旗舰店试用后找 KOL 下单了。

忆梦非诸侯(+10) 媳妇这周末过生日,买了条金项链和一支口红。

金项链马上是马年,就选了马的主题,之前媳妇也看过马造型的金项链很喜欢,当时有种种原因没买上,算是补上遗憾。

口红是上周逛街她商场试了几个,没有比较喜欢的配色就没买,我也不懂色号啥的,就 AI 问了下流行色啥的选了一款,正好赶上圣诞节,还会有礼盒。

另外就是订了这周末去阿那亚的民宿,去那边给她庆祝下生日,提前祝她生日快乐🎂。

kendentline(+9) 

  1. 给老爸买了影视飓风三合一羽绒款冲锋衣和保暖内衣套装,目前钓鱼佬没给负面评价;
  2. 玩了大表哥 1 的 PS5 版,结局略有点戛然而止,玩法也不如 2,但就是想看最后范德林德帮大家的归宿,还玩了 CoD 14,剧情略短玩法单一了点,但画面很震撼;
  3. 带猫体检,查出来肝酶偏高,开了点护肝片,好在其他地方都很健康,一年只进一次医院,花费 1.4k 左右;
  4. 入坑手账,买了手作款的瑕疵 Plotter,性价比高,用着也不心疼。还买了一点本皮和材料包,准备自己动手做两个本子送朋友。

白袍(+9) 买了《羊蹄山之魂》,东瀛雨姐勇闯虾夷岛。

khailif(+9) 期盼着 N 年相机终于在双 12 的时候忍不住下手了,Sony A7C2 + Sigma 20-200,摄影小白,想着相机可以记录生活日常,旅游风景,手机拍照效果比相机还是差了很多。

给老妈买了一个 OPPO Find X8s+,老妈的上个手机是 5 年前给她买的了,虽然现在用着还算流畅,但感觉和新款的功能差太多了,还是换个有高刷 + 优秀拍照 + 性能优秀的手机吧。

迪卡侬的 TREK 500 羽绒服,唯一一件羽绒服被老婆洗废了……阴天洗的,凉了几天没干就臭了,平时在办公室虽然不需要羽绒服,但是偶尔出去旅游、徒步还是需要的,就买一个吧。

宝木易(+8) 买了华为 MatePad mini,单手持握还挺好,速度有点慢,用途就是看看视频,小红书。不知道哪里能调整动画时间。看老罗科技春晚,种草了清闲工学椅,坐了几天发现真挺好。

Shawn94(+8) 花了 600 多闲鱼上收了块卡西欧 DW6640。

缝纫机动队(+8) 9.9 元一个!

Niki92(+8) 

  1. 黑冰睡袋 Z700,前几天去牯牛降,山上零下十度左右,帐篷零下 5 度,完全足够了。
  2. 给朋友的圣诞礼物,大英博物馆的拍拍小夜灯。
  3. 自己买的一个 2026 年的台历,古诗词翻译器哈哈哈哈。
  4. 新年红包,顺手买一单的,还怪好看的。
  5. 户外温度计和湿度计,目前看起来温度还算准的。

TrisLymbo(+7) IP 北美:

  1. 佳能 R5 Mark II, 28-70 f/2.8, 28 f2.8(Adorama 年末大促送了一堆配件,好评)。
  2. 本地相机店淘到 EF 55-200 USM 以及 75-300 III USM,虽然是紫霞仙子但是加起来不到 $100,算是非常物超所值(实拍效果如图)。
  3. 住在南加州于是顺便去滑雪 Trip:Columbia 滑雪裤 + 雪镜,Big Bear Lake 雪票(今年雪况意外地差,新手非常不友好)。
  4. 以及其他的一堆摄影小配件比如板灯备用电池等等,算下来总体花费还超过了黑五买衣服裤子鞋子……

苟富贵(+7) 闲鱼入手字节 2026 新年礼盒套装 柯达 Mini Shot 3 Retro 套装。462 含邮费。

之前一直想买个拍立得,一直没有下手,这次正好看到字节的这个礼盒,价格和合适,抓紧入手了。

拍了不喜欢可以反悔,可以打印手机里的照片。不是传统的拍立得,与传统拍立得的感受还是稍有区别。刚才刷闲鱼看到有人说有借机买高仿的,大家如果要买注意鉴别。

媳妇过生日给媳妇买了 iPhone 17 Pro 换掉了原来的 13,没有赶上双十二,8915 购入。

少数派 25596247(+7) 2400 买了张未公开的签名拍立得,圆了追星梦。

ThinKing(+7) 老爸的一体机用了快 10 年了,为了奖励他每日接送娃娃,送给他一台联想异能者的 Mini 主机,一台红米的 24 寸显示器。

  • 型号:异能者 U33 mini (N95 16G LPDDR5 内存 256G SSD)
  • 平台:京东
  • 价格:1110
  • 体验:老爸的电脑主要用来看 CNTV 的军事频道,看股票,微信聊天,几乎没有其他娱乐爱好了,异能者这台主机的 CPU 是 N95,性能和 N10N150 几乎没有区别,16GB 的 LPDDR5 内存给我办公也是足够的,硬盘存储主要就是微信聊天记录了。性能应该完全足够了。
  • 小惊喜:心血来潮快速下单,好像享受了某个补贴,现在的价格好像来到了 1599……

贺呵呵(+7) 偶然在淘宝刷到圣诞主题的胸针给我妹买了一些。

订了 2026 的生活三联周刊。

炮姐家的蓄电池(+7) 体验了一次西装定制。花费 2000HKD 左右。

Enc3lMag1k(+7) 十二月化身划算男孩买了不少东西,吃这一块首推光合力量的即食鸡胸肉和低脂海盐花生酱,非常利好住宿舍不方便做饭的朋友。

优衣库的这个饺子包最近还是下定决心买了回来,手感和之前那个很火的大号邮差包差不多,但是明显做工更好,米色的很好看,而且很软也挺能装的(能装一瓶水 + 一个手机 + 一个充电宝 + 一个手电筒还有空余空间),在我明年买相机之前出门感觉背个饺子包完全够了。而且最近第一次打折,99->79 买不了吃亏买不了上当。

轻薄本的鼠标一直用的是罗技的某款带电池的,最近点击有点粘滞感,索性换了个 VXE 的 R1 SE,一方面是真的便宜,另一方面他家的蜻蜓 F1PROMAX 我用了两年多一点问题没有,质量还是很过关的。不得不感叹现在国产键鼠是真的卷,200 多能买到磁轴 100 块能买到功能齐全的鼠标,类似 G304 的模具很轻握持感很好(磨砂表面),按键宏,性能调控,固件升级,板载内存这些也应有尽有,要说缺点就是 3395SE 的主控确实不太适合打游戏,环诺蓝透 V2 的主控我用下来倒是问题不大。

第三件就是在我因为 Aria SE 和 Aria 2 掉漆后扬言「这辈子再也不买水月雨」大半年之后买的第一个水月雨耳机 Old Fashioned。99 的价格更像一个玩具,压耳式的外观致敬了 KOSS Korta Pro,不过我个人更愿意将其视为 HD25 的潮流版平替,活泼的配色当成一个饰品出街也是相当不错的。声音表现的话比较暖但是不算太糊,很适合听 CityPop 和比较慢的流行,对器乐的演绎就没那么好了,不过考虑到价格真的没啥可抱怨的了。

最后就是买了个 Quote/0 送朋友,有趣无需多言。

比波普(+7) 

  1. 前一阵看完《东京爱情故事》种草了莉香家里的植物 —— 星光垂榕,买了一加仑体验体验养绿植;
  2. 买了赖明珠译本的村上春树的《世界末日与冷酷异境》,当作元旦旅行路上的读物;
  3. 给女朋友买了圣诞礼物 Lemaire 的耳饰套装;
  4. PS5 续费了二档会员,这个月的阵容还可以。

雷丘(+7) 买了一个柏翠的入门半自动咖啡机,在小红书看了很久,越看越不会买,感觉随机选一个,每天早上一杯拿铁提升幸福感。

王伟筱(+7) 买了好几本书,买了好几本三联,买了两把便宜的人体工学椅。

少数派_968446(+6) 东北吃到了特下饭的蘑菇酱,伴着酱可以吃 2 碗饭,回来后看了下网上价格更实惠又买了 6 瓶给老妈了。

买了萨洛蒙的登山包和粒子狂热的冲锋衣,新的相机肩带挂背包上去爬了黄山,走的轻松路线,难度比梧桐山低。

帽子控又买了顶帽子,拿到手就知道是我的帽子,秒收,元旦出游戴出去了,都说很适合我。

微信读书付费 5 元参加 30 天读书挑战得 30 天会员,挑战成功。

在景德镇收了一副画,很喜欢。

科技爱好者(+6) 此前我的 AirPods Pro 2 丢失后,一直未购置新的无线耳机。但因通勤需要,还是决定入手一款降噪耳机。我的要求是轻巧、降噪效果好、音质出色,且适合四季通勤佩戴。

在索尼、Bose 和苹果之间反复比较后,最终选择了索尼 WF-1000XM5。收到使用后非常满意!虽然降噪效果、连接稳定性和设计感可能稍逊于 AirPods,但音质确实比 AirPods 的平淡风格出众不少,更支持多设备无缝切换,索尼大法还是好!!!

DePantheraUncia(+6) simplehuman 垃圾桶 + compost,半米高的垃圾桶与磁吸小桶大大减轻了我做饭时的腰肌劳损 (❛ᴗ❛)

逐山海(+6) 买了好多东西:

  1. 410 京东买了霍曼的吹水机,实际试下来狗子不配合,我给他洗加吹一个多小时依旧,腰伤又犯了还;
  2. 385 拼多多上买了 SHF 的夏亚;
  3. 321 淘宝上买了一个主机挂架,这样就把升降桌的桌面空间腾出来了,感觉很舒服;
  4. 花了 300 打了一针狂犬和破伤风,我的狗女儿溜弯的时候捡地上的东西吃,我从嘴里取东西把手划伤了,给我紧张的。借此机会好好研究了世卫和我们卫健委的狂犬相关,算是清楚了,后续也没有继续打了;
  5. 473 补款了 SHF 的尼尔 2B;
  6. 250 买了一个手机后视镜像磁吸镜头,好使;
  7. 3325 京东买了极米 Z9X,体验真不错,很值的;
  8. 224 ×2 买了两个米家窗帘伴侣,感觉很不错,这个和智能灯算是智能家居体验最明显的了,又好拆卸。

Backing(+6)

  1. 背景:老婆公司福利给购物额度 2.7k。
  2. 购入:Switch ×1,豆浆机 ×1。
  3. 个人情况:讲道理很久就想要 Switch 了,大概从 21 年开始工作时就一直想买,虽然不是很贵,但总想着已经有电脑可以打游戏了,任家第一方游戏没有到想玩必玩的情况(之前没有深度体验更多是看视频),而且自己又晕 3D,塞尔达这种总怕玩不下去。
  4. 为什么买:首先是购物额度不知道买什么,我和老婆都是那种在物质上比较容易满足的人,尤其是在购物需求上,然后是此前有朋友来家带了 Switch,我们尝试了下,老婆可以接受这种一些低烈度游戏动作(做过腰椎手术,11 月发现怀孕),最后是我确实会对宝可梦这种童年动画有滤镜,再加上上了快 5 年班后,真的懒得开电脑了。
  5. 结语:搞清楚个人需求和预期效果,有机会的情况下,多和爱的人一起去尝试和体验。

Jenkin(+6) Marshall S3,足球赛门票,上半年报品质团旅行社送的周历(不严格来说,算买吧,哈哈哈),还有一台智己的车(没提)。

大熊 Daxos(+6) 在换了一个挂钟机芯被电池烧坏后,才发现碱性电池还有 LR、R6 之分的……孤陋寡闻了……

idlesun(+5) 两件数码,若干衣服。

ertyey(+5) 露得清护手霜 65:比雅漾滋润,但是吸收得很慢,很长时间手都黏黏的。

松下石墨烯暖风机 379:降温了,坐电脑前骨子里发寒,空调开得脸发烧,踢脚线也很难热到书房。这款是真不错,可以把书房加热到 19 度,还不至于脸难受。加热很速度,睡前睡醒洗澡换衣服再也不用赶时间了。而且很轻好搬动,买的最值的加热器。

Castle 冰(+5) - 买了 2 本日历《敦煌日历 2026》、《豆瓣日历 2026 礼盒版》;

- 闲鱼上收了一个 67W 桌面快充插座 Pro 90 元;

- 双十二买了些衣服,类似这样的促销活动优惠力度也不是很理想,消费主义的焦虑感。

Deb(+5) 去了趟青岛,买了一个 Override 同款卡其色帽子护着脑袋和耳朵,很好看,很上镜(104 RMB);一个 3C 充电宝,1 万安,W&P 的 mini 充电宝,92 RMB;娇韵诗的中样护唇油,33.69 RMB,这是第二瓶,作为超级干嘴唇人,自从用了这个唇油,其他七七八八的唇膏都不知道丢哪去了,比正品 200 多更划算,不用担心用不完弄丢了;一件奶糖派泳衣,泡温泉用的,舒适,不是很重,90 RMB;无印良品买了芳香油(空气 100ml)和小圣诞树的扩香摆件,很喜欢,俩加一块一百来块。还有就是打车偶尔发现专车的月券比打车便宜,然后买了一个月,领证当天专车体验了 0 元行程,嘻嘻。

白泽手记(+5) 买了个小米 Watch 5 eSIM 版。小米第二块全智能表,外观看起来还可以,自动亮度和 AOD 目前做得比较差。其它有待体验。

Verfassung(+5) 买了 Hario 的三号聪明杯 + 三号云朵壶,试了一下发现也可以一次冲煮 44 克左右的豆子,很适合我的习惯。风味还不错,相比之前的法压壶 + 挂耳滤纸的方案,过滤速度和方便程度更上一层楼。

Los0222(+5) 莫名搞笑的买了 2 个非常离谱的东西。

  • 手抛球;想着买来练习一下,虽然狂掉地上,但现在可以丢个 5、6 下了;办公室人在的时候真的不敢抛。花费 30。
  • 铜钱竹筒;莫名跟 AI 聊了一阵周易卜卦,买回来尝试一下,不得不说真的有点玄学。花费 9。

pandaxgc(+5) 尼康 F2 + 富士 C400。但是单休太累了,周日完全不想出去拍照,又等不到好天气,到现在才拍了十张🤣

心安理得的小胖砸(+4) 最近想入一台 iPhone 备用机,在 iPhone 16 Pro 和 iPhone 17 标准版之间纠结了很久,最终趁着京东国补价格合适,下手了 iPhone 16 Pro,白色,128G,5299。

为啥是备用机呢?买备用机其实没啥刚需,纯粹是新鲜感作祟,上一个 iPhone 还是 13 Pro,有几年没用 iOS 了,又觉得有点想把玩了。

主力机是 OPPO Find X8,非常满意,必须要做主力机的理由如下:

通话录音:工作刚需;小布记忆可以截屏自动结账,这个蛮方便,我不是每一笔账单都要记,但是对于比如某一次出行,我希望能在旅行结束,花一点点时间,截屏 + 自动识别的方式记录下出行的所有花费。

为啥买了 iPhone 16 Pro?考虑到只需要一台备用机,所以我的预算不高,大概也就是 5000 左右。最终下定决心选择的 2 个原因是:因为要双持手机,所以 2 台手机都不打算带壳,我也喜欢裸机手感,考虑 16 Pro 更耐操一点;家有灵动可爱的 2 岁娃,所以对于手机拍照能力要求高一丢丢,希望不管掏出哪一部手机,都能拍到更好的视频效果。

BellPluto(+4) 9.9 买了一个 JC 光学的微距镜头,真值得。仿佛找回了当初第一次拥有相机时的快乐,只不过没有微缩模型,只能拍拍车模细节了。(细节真是一言难尽)

Joash(+4) 十二月支出略多:

某狗通用健身卡年卡 971 元

从大学到现在陆陆续续办了几次健身卡,坚持不了多久就放弃了,最近备孕,感觉身体一直亚健康,准备慢慢恢复,单位健身房感觉有点社死,和同事在某狗次卡练了几次,之后办了个月卡,一个月出勤率 80% 左右,慢慢觉得还行,遂办了个年卡,希望这次健身可以多坚持一段时间。

新百伦羽绒服 - AMJ54327 941 元

工作日基本上都是正装,夏天淘了个换季的羽绒服,以至于今年冬天一直没买羽绒服,闲来无事翻软件,感觉还可以,入手。

萨洛蒙 XT-Quest 1197 元

嗯……前两年看同事买了一双,觉得挺好看的,然后看了一下价格……不买也罢,近两年开始火了起来,虚荣心作祟买了一双,感觉还是更喜欢专业的跑鞋,脚感比较软,这个不太适合我。

Apple Watch S10 1600 元

之前戴的是 SE,因为没有血氧和心电图,所以一直想换新手表,终于在上周去游泳的时候,进水烧了电池,花了 50 大洋换了一块电池,本来续航就很崩,换了块二手电池更崩了,前几天无意间翻到购物软件发现 S11 竟然只需要 2000 多,综合考虑决定买个 S10 就够了,以旧换新后 1600 元不到入手。

CCAnCeRr(+4) 淘宝买了 C 家的三个玻璃杯,用来喝手冲咖啡,爱不释手。紫色尤其深得我心,爱了,爱了。

FREEC(+4) 给妈换了接娃车小牛 MT 2025,网上付 3800+,当地再 +500 提车费(保护费),外观和老婆的 MQiL 差不多,做工和配置明显看到缩水严重,但是毕竟便宜了好多,主要是当地九号没有这么性价比的锂电池电自车型,其次为了一个 APP 管两台车。

给老婆买了徕芬 Swift 4 套装版,东子优惠后 530+,买完就后悔,后悔没有早点买,太好用了,尤其是她说那个喷精油的功能,完全提升了吹发体验,吹完后她说和头发的柔润程度和理发店可以媲美,但是我感觉就是「能吹干」。

给老婆买了 iPad Air M3 128G,天猫百亿补贴 3050+,感觉这里的东西不如拼多多百亿补贴,虽然是全新未激活,但是出厂日期很旧,盒子和内部都有明显灰尘,感觉不是新鲜的。她说要用来考职称复习,但是买完又觉得还是电脑用得更多,我……

逍遥鸽(+3) 圣诞促销 eShop 买了《杀戮尖塔》,有点上头。

升级了《神界原罪 2》的 NS2 版,免费,没花钱,有点上头。

订购了《生化危机安魂曲》,409 港币,坐等明年发货。

谢安之(+3) 买了溪谷的雪梨和素心兰,立生的青石板和清凉地,永乐天阁的金佛,竹窠赵氏的窠二八,以及岩赫的大兰底水仙。

Morceaux(+3) 玩口琴都绕不过 SCX48 吧,原因是今年突然从柜子里翻出来十年前的和莱 257,方格子吹嘴一开始把我折磨的怀疑人生,把口琴新手三部曲吹完就扔抽屉了。拆开清洁的时候突然就想试试传说中的新人友好铃木遂下单,到手对比做工和口感跟 257 不是一个档次的(当然价格也不是一个档次),但是网上说的毛病一个也不落下,音色不如和莱厚重,20 多度的天极易粘膜,高音 1 孔超级难吹。给 B 站吹巴赫赋格和小无的大佬跪了《id AAA 赛博歌姬》,希望这次自己能坚持下去吧。顺便秀一下平安夜在现场拿到了本世代鲍罗丁四重奏的亲签。

米粥(+3) 买了徠芬 I2 电动牙刷,包装完全就是一个 iPhone 的风格。无论是外包装还是内包装。几天使用下来,感觉还不错。之前用的都是超声波牙刷,不带扫震的。扫震好像有点用,但是有人说伤牙龈。鉴于网上徠芬质量不太行的评风,买了那个 23 块的两年只换不修。

任大喵(+3) 在闲鱼淘了一个说是支持 5G 的随身路由,价格挺便宜,但是比正经 5G 路由差了一些,我家实测下载速度在 20MB 左右,但是刷个视频看下网页是够了,准备过年回老家给电视用,这样就不用给老家房子拉宽带了。

少数派 30634263(+2) 精酿啤酒:消费降级喝不起康帝隆了,买了两瓶帝尔奎因的老贵兹 240 元。

茶叶:买了台湾的高山乌龙阿里山金萱,120 元左右,因为是青茶加上刚刚喝完较多的西湖龙井,审美疲劳了,不是很喜欢。

kjeric(+2) 十年的小厨宝漏水了,早上下单换了个京东京造,价格差不多,下午到货,明天安装,这效率。为了娃看杂志 PDF(名义上),百亿补贴了个 12.7 的小新 Pad Pro 2025(犹豫很久想上 13 寸的 iPad Air),目前还算满意。抖音了一条据说是美利奴的羊毛裤,望保温。

少数派 86171620(+2) 荣耀 500 Pro:为了打王者,先买的是一加 Ace 6(16+256 国补到手 2464),但是感觉整机尺寸偏大,二手出了。换成荣耀 500 Pro(12+256 3599),同样的芯片但在性能上肯定是一加好一点,不过用来打王者也够了,6.55 英寸手感很好,机身也比较轻薄,蓝色的很好看。

罗技 MX Master 4:之前就刷到过很多推荐 MX Master 系列的文章,4 出了之后一直想买但是介于价格一直没入手,无奈前几天公司鼠标的滚轮失灵了,滚动起来特费手,下定决定还是买了(899),用了之后感觉太爽了,无极滚轮,静音按键,横向滚轮,手势导航按键都比较满意,Actions Ring 平常不怎么用到不过确实是个很不错的创新。总之办公体验很好。

我就爱吃大西瓜(+2) 小米浴霸 Pro,精装修自带的小浴霸坏了,趁机换了一个挺好用的。

拼多多买的 Switch OLED 日版 1460,三码合一还是 25 新机,老婆之前一直不让买,闲鱼 140 破解后玩体感游戏,爱不释手哈哈。

京东买的魔派双子星二代 HD 手柄 266 国补还挺便宜,比自带的手感好多了。

闲鱼淘了个小米 14 Ultra 16+512 2400 除了掉电快没啥问题。

北屿(+2) 因为最近脾胃比较差,买了苏泊尔的保温杯做陈皮姜枣茶,600ml,198 块。陈皮是新华网推荐的牌子,250g,298 块。

潘公子(+2) OLED 屏幕让散光都增加了好多,实在是盯不了太久,就买了 XP-PEN 的彩色笔记本,主要是这个平板的 LCD 屏幕还行(不确定是不是 TCL 的那款),没那么刺眼,有电磁笔,书写也行。

这样我的 iPad 就拿来当游戏、影音、阅读工具,XP-PEN 这款就拿来单纯阅读和笔记了,原本是想收个二手的三星平板 S8,但发现好成色差距不大,就看看国产的了。虽然手上还有墨水屏的平板,但无线画布类的笔记应用在墨水屏上基本是灾难。

不过 XP-PEN 这款的 CPU 比较弱,所以也只能当成一个阅读和记事本这样的场景。

多纳泰罗的尾巴(+1) 海鲜市场拿下的田字 75 铝坨坨键盘,还送了一个亚克力掌托。

📢:下一期的一派讨论是数码圈日经话题《聊聊你的租车自驾体验?》,欢迎来聊。

🔥一周热评

来自文章 《[内测招募] 从 Web 版到 SwiftUI 原生,我给 TeslaMate 撸了个 iOS 客户端 Mytess,邀车友体验》

芮狼Dan(+1) 晚上回家就搞一个试试!!!TeslaMate 的界面真的不是很友好。

Infovores(+0) HedgieMate 的竞品来了,定价也是同一档,通过 API 直接读取数据库的方式响应很快,特特管家那种在 Dashboards 中开 Service accounts 的方式不太行,我用 Oracle 的免费服务器就很慢,当然对用户来说配置门槛相对低一些。

和竞品比,后续能做出差异化很重要,其实车主真正关注的数据也就那么几个,功能上比较难突破。

来自文章 《我们为什么越来越快地回消息,却越来越累》

王牌猎人(+0) 为了避免被企业微信和微信消息打断心流状态,我试图使用操作系统的功能(例如 macOS 自带的专注模式)来分时段推送各类即时通讯的消息。并且我会关闭很多消息的「即时通知」,这样这些通知就不会立刻出现,而是等我有空后统一去阅览。最后我也很希望会有一个 IM 关注接收者的体验,或者在系统层面出现一个助手去分类消息通知的优先级。

BALKIN(+0) 一种方式就是工作上用飞书、企业微信等,把生活和工作聊天完全分离。

另外我对我所有朋友都会说:有急事电话,微信不一定会立即回复。

赜隐(+0) 到下班点自动下线就好了。微信的永远在线似乎已经逐渐把生活和工作融合到了一起,想剥离都难。

来自文章 《从插混换到纯电,一年开 2 万公里后,我已不在意能耗且没有里程焦虑!》

任大喵(+1) 我此前也在纠结油车还是电车,后面想通了,我有限的预算里面(8~10 万),从我住的地方开车回我丈母娘家要 320 公里,按照高速打五六折算,我基本买不了啥电车。

Asturiasyuan(+1) 我感觉市面上 25w 左右的纯电 SUV 即使不用太考虑续航不够。基本上可以满足珠三角内大部分区域的往返。从珠三角不离开广东省的话单程的续航大概率是能够满足的。何况这个价格的大多数车型的补能效率够高,如果不是日常用车 80% 以上都是高速工况,续航应该并不会有啥大问题。

PB1010(+0) 这仪表盘一看就是极氪的。极氪这个 100kWh 的电池,续航还是可以的,在长三角地带,冬天基本是表显续航的 80%,夏天基本可以做到表显续航。

来自文章 《派早报:高铁客服和专家回应「高铁二氧化碳超标」》

↳ 💬 关于「因不堪 AI 骚扰,cURL 将终止漏洞赏金计划」的热议:

影转细枫(+0) 与其说取消,不如换个法子:如果要获得赏金,需要支付 x 元押金,如果漏洞被证实,则可获得 100x 元赏金;如果证伪,不返还押金。

↳ 💬 关于「联通推出「果粉」卡套餐」的热议:

Serene_(+0) 有点辣鸡,我还以为是全部 iPhone 呢,新 iPhone 电池怎么也得两年才能用到 80 以下吧。

来自文章 《从 triple j 到「字母汤」:澳洲音乐电台指北》

catbus(+0) 最近在用 Navidrome,刚好在收集电台。

Morris_Xxx(+0) 请问有没有方便收听这些电台的工具?我目前是通过官网,比如https://www.abc.net.au/triplej/live/triplej?tz=nsw

来自文章 《吃真实的食物:聊聊最新的美国膳食指南(2025-2030 年版)》

少数派55300527(+10) 我觉得总结的非常精辟和精彩啊~为什么有这么多乱七八糟听不懂的评论?里面很多东西讲的非常深入浅出且并非一刀切~很少评论这篇文章我真的是特地找回了密码。

健身了一年,对这份膳食指南里的核心原则和基础深表赞同,并且也尝试了网上很多流行的饮食方案,发现最终要根据自己的身体条件和这一阶段的目标状态动态调整。

作为一份指南,已经非常深刻了。

Evity(+3) 完整的或最小加工的、可被识别为食物的食品。用很少的原料制备,不含添加糖、工业油脂、人工香料或防腐剂。

这点建议实际上十分有用,并且非常贴合生活。大部分的烹饪菜品都具备原形,大部分的甜品都不具备原形。不过馋了偶尔吃一点甜品也没关系,实操性很强。

但如果是恰巴塔,法棍等干净碳水,他们的 GI 不高,作为碳水也是很优秀的选择,关键还是血糖波动要控制好。

个人 Tips:减脂期,我会打一碗水,尽量将食堂那些烹饪的料理过水在吃,事实上,在这么操作之后,我发现中餐的含油量是相当惊人的,即使是蔬菜也可能滤出大量油脂,这些额外的油脂摄入其实也可以避免。

车不能快(+2) 我对膳食指南的理解,其实作为一个国家级的背书来说,它的价值更多是在公共领域里,会直接影响军队、医院、学校等地方的一些标准,但对于个人而言,可能仍旧需要对症下药,即便严格按照膳食指南吃,也存在个体的效用差异。

PS,就美国来说,很多家庭的肥胖,是一种社会结构性的问题,膳食指南的作用可能微乎其微。

来自文章 《2018 MacBook Pro 复活记》

z_JaW(+3) 我暑假的时候也把自己 18 款 13 寸 Pro 降级了,也是因为联网问题一直报错装不上出厂的 High Sierra,最后是还原到了 Mojave,也是支持 32 位应用最后一代系统,界面还是很简洁、响应迅速,也有夜间模式。现在这台是总共是三系统运行,Mojave、Catalina 和 Win10。

WesNJ(+2) 众为使用 Intel 平台老 MacBook 的机主们,想要让老设备重焕青春,最好的办法不是回到 High Seirra 而是安装桌面版 Linux!Linux 对发挥旧设备性能有着独特优势,MacBook 卡顿但 Linux 可以在保持易用安全美观的情况下仍然保持流畅!操作逻辑类似 Mac。macOS 本就是跟 Linux 同源,属于远房亲戚。具体安装哪个版本呢?推荐 Linux Mint。在让你们的设备恢复成出厂系统后,再重新安装成 Mint。网上有教程。

来自文章 《这么近那么美:周末单日往返旅游的探索报告》

斯迪(+10) 我现在就是在「这个地方我没法再来所以这一次要全部看完」这个阶段,会觉得交通费这么贵我得努力看才能回本 orz

Zeroneyang(+4) 哇真的是很有意思的一篇文章,读下来也很有收获,一日游的方方面面都写得好清楚,文章结构清晰又完整。精力管理和旅途背面这两小节也有所体会,去年港澳当日往返游虽然也看了很多东西,但又觉得实在太浅,「到了晚上就必须回家」这限制总让人觉得不够尽兴,但随手拿个包就走确实就跟日常去逛街一样方便哈哈哈。今年也想再探索一下国内其他地方的周末短途游。

Asimovi(+0) 西班牙格拉纳达加尔都西会修道院好美,种草了,把西班牙列入下个海外旅游目的地。

北欧、西欧、南欧的气质真的迥然不同。

来自文章 《Mac 视觉史(四):用动效交互为 Mac OS X 附魔》

礼赞(+8) 刚在看 1~3 系列还没发现有 4,看完 3 又去搜了下突然就看到 4 了,读完才发现刚发的,真的是幸运。

YellowColr(+5) 唤起了沉睡多年的回忆…这个系列居然还在更新,太好了😋

StevenRCE0(+3) 冷知识,把文件放进工具栏这个功能在最新的 macOS 里还依然保留着(按住 ⌘ 拖上 Toolbar),而且还可以当作「用……」打开的 Dropbox。

来自文章 《5 款替代品,找回 LaunchPad 的快捷》

毋从众(+2) 更新后查漏补缺 (×)

直接回退系统 (✓) 😂

啊權權權兒(+1) 之前也是斷斷續續找了一大堆替代品,最後留下了 LaunchOS,現在看到評論區的 BuhoLaunchpad 發現也很不錯啊,就是有點可惜錯過免費的啦。

来自文章 《GitHub 都没用明白,我这样用 Gemini 零起点开发应用》

SS_motor(+3) 这不巧了,最近也是跟 Gemini 合作,写一些前端的东西,感慨跟你是一样的,直接动手写全新的东西,就又快又好,一旦涉及到修改,就会开始自己搞小动作。必须要一开始就把需求写的非常细致,或者强令要求他不能写代码,先给我磋商需求,到临门一脚的时候让他把需求复述一遍,最后再一口气输出代码,才能做对。我是一个文科生,最近在做几个网站项目(几个形态各异的静态站),一开始也是 GitHub 都玩不明白,VSC 都是 Gemini 带着我下载的,现在一天多的时候几十个 Commit,指挥人干活是真爽,可惜就是太折腾睡眠了,人家 Gemini 是不用睡觉的,我又是一个人住,时不时一不留神就干到半夜四点……

PiEgg(+1) 最近一段时间深度使用 AI,我发现 Codex 的指令遵循能力是最好的。然后 Gemini 适合做创造性的工作(比如从 0 到 1 做一个界面),这点上 Codex 做得就比较差。两者可以互补,也就是先用 Gemini 搭好底子,再用 Codex 配合 OpenSpec 等约束的工具,能做得很好。

来自文章 《从雪地陷车到撞围栏:境外租车自驾复盘与避坑攻略》

Nonlone(+6) 海外国内都开了一下车补充一下:

租车前先应该评估一下当前旅程合适不合适租车,如果主要是 City Walk 的话,而且都是大城市的话,建议还是公共交通为准,租车会遇到头大的停车问题。尤其是欧洲,很多国家的中心市区的道路是十分窄。

另外海外来说,对上路的要求会比国内高,十分讲究路权优先和交规,如果是严格遵守的话,其实对游客驾驶也是挺友好的。这个要看个人驾驶习惯,建议保持防御性驾驶的原则。

再有,租车或者提车的时候,要注意一下轮胎和驱动系统和当前天气是否匹配,在雪地环境最好配备防滑链和雪地胎(钉胎)加上四驱,试过在西藏翻色季拉山垭口的时候暴雪封山,放行时候也是要求套上防滑链才可以上山;在挪威的时候问是防滑链和雪地胎都没有,但是拿到车看到也是钉胎,才放心开出去。

海外租车的话,也可以选择国内大平台,对接也是国内大保险,问题也不是很大,国内保险买够了,垫付之后报了付款也是蛮快的。

总的来说,无论是国外还是国内的,每次开车都是载你生命中的重要的人,都要对上路有敬畏之心。小心驾驶,尽量不要路怒。

附一个小 Tips,建议海外租车登记和旅行时候消费用的信用卡分开一下,还车之后就锁卡。

来自文章 《冬天也不用裹成球,这是你需要了解的冬季穿衣指南》

蓝色风笛(+11) 应该注意,ECWCS 系统的 L1-L7,不是简单的随着温度叠加关系,对于城市内活动,L4 用处不大且与 L5 定位重合、L6(硬壳冲锋衣)维护困难,可以考虑直接用 L5 替代,L3 重型抓绒只承担保暖作用几乎不用来排汗,可以用轻棉服替代。

烟酸Niacin(+8) 欸,重推啊。这篇文章当时没有很用心写,就是单纯当新手上路任务的完成指标的。一篇两年前的拙作,大伙的批评都接受。再看确实问题很多,经过两年的学习与实践,很多观点都有更新完善,不论是静态还是动态保暖,还是新材料的变化。单论抓绒材料这两年也有很大发展。

简要概括而言,保暖就是在保皮肤表面的空气,让皮肤表面的空气保持静止、温暖和干燥,就是保暖的核心要素。流动和潮湿都会带走热量。

衣服如何做到这一点呢?如何在透气和保暖之前平衡呢?如何应对不同的活动状态,这里能讲的东西都不少。衣服的功能性设计有很多值得大书特书的地方。可能大家觉得没看到克罗值之类的「硬核」介绍,但其实这篇文章是想介绍我的日常穿衣系统的理念,而不是具体买什么产品。具体买什么产品能说的很多,我又实在不想被说是给品牌打广告的。另外,有的读者喜欢功能性服装,有的读者喜欢装饰性的服装,所以我确实没具体的推荐。读文章没让大家明白怎么穿真是作者的失职。

其实你知道了穿衣系统的核心,应该就知道怎么买什么衣服了。简而言之,就是三层(不是件)衣服,负责三种不同的功能。不论是叫「叠穿」还是「三明治」什么的,其实都是一种东西。设计师在设计服装的时候也是在考虑如何最大化满足不同层衣服的功能。我理解的衣服穿着是这样的三层:舒适、保暖、防风。

贴身的内衣要舒适,不影响活动,绝对不能湿。贴身穿的所有东西唯一的要求就是舒适。面料和皮肤接触要舒服。

保暖层唯一的目的就是保暖,也就是固定热空气。我们身体加热了围绕着我们周身的热空气,如何固定住它?可以用毛衣、棉衣、羽绒服。哦!我知道了,原来「不知所谓」是在这里!所有人都是内衣外面套外套!所有人都知道冷了要穿更厚。其实不一定是这样的,你可以不穿更厚。冷就是说明你和外界的热交换超过你能承受的范围了。你可以换克罗值更高的衣服。不过确实遵循着材料越厚,克罗值越高且边际递减的情况。

很多人不重视防风,其实这是保暖非常重要的一环。风一旦吹进衣服,什么面料都不管用了。

额,怎么写了这么多字……我还是再写一篇文章结合具体产品说说吧。还是得为产品打广告了。

🆕作者的新玩意

为了让作者的投稿尽快与广大读者见面,我们调整了《新玩意》栏目中作者投稿部分的呈现方式和周期,作者投稿的「新玩意」后续会迁移至本栏目。投稿渠道与奖励方式仍与以往完全一致,详情参见文末。我们相信新鲜火热出炉的分享更能赢得大家的喜爱,也欢迎广大读者朋友们踊跃投稿。

@流歌:小米温湿度计 8 年不换电池套件

  • 名称:小米温湿度计 2 改 5 号电池套件
  • 价格:5.8 元

不少人家里都有一个或几个小米温湿度计。它小巧、美观,接入米家后还能联动相关设备进行自动化操作,因此深受大家喜爱。但是有不少用户反映「小米温湿度计耗电特别快」、「换了新电池一两个月又提示低电量」等问题,我也有同样的烦恼。

我手上的小米温湿度计 2 使用半年后就提示电量低。更换新的纽扣电池后没几个月又撑不住了。直到有一天我在某多多刷到一个叫「小米温湿度计 2 改装 5 号电池」的玩意。

3D 打印件 + 电池仓

它主要是由一个 3D 打印的塑料外壳和电池仓组成。电池仓通过仿纽扣电池线束与小米温湿度计连接供电,然后再把小米温湿度计嵌到外壳上形成一个整体,造型类似当年的老式黑白电视机。单个的价格在 5-6 元左右。

整体还算严丝合缝

这款小米温湿度计 2 内嵌的是松下的 CR2032 纽扣电池,一般电池能量约 220–260 mWh。而一粒常见的碱性 5 号电池能量在 1800–2800 mWh。根据 B 站 UP 主 横竖斜评对这两款电池的实际测试,可以得到以下结果。

电池类型能量 /mWh*单粒价格 / 元 *
松下 CR2032 纽扣电池267.752.38
紫米彩虹 5 号电池2446.51.28

按上述结论去换算,两粒紫米 5 号电池的电量是原装纽扣电子的 18 倍。换句话说,更换这个套件起码可以做到 8 年不用换电池。并且一粒松下 CR2032 纽扣电池比碱性 5 号电池贵上一倍,所以在省心和省钱上来说,选择这个套件是一个不坏的选择。

但是这个套件也有不少缺点:

1. 受限于成本,在外壳上能看到明显的打印纹路,远看还行,细看就显得很粗糙;

2. 因为电池仓的存在体积增大了 2 倍有余,并且重量也因更换碱性电池提升许多。如果对体积和重量比较在意可能就不适合了。

这款套件还有支持 7 号电池和磁吸的版本供选择。外壳颜色也有红、黄、蓝、黑等十余种颜色可选。但考虑的平均售价质感可能都差不了太多,如果有 3D 打印机的朋友可以在 MakerWorld 上找到该模型自行打印。

注:

  1. 电池价格:来源于淘宝天猫店铺实时价格
  2. 电池能量数据来源:
    5 号电池怎么选?评测 13 款主流品牌 5 号碱性电池_哔哩哔哩_bilibili 
    评测十三款主流品牌的纽扣电池,电量居然差了一倍_哔哩哔哩_bilibili


如果你也想分享「新玩意」🔉:

  • 获取 Matrix 社区写作权限并签署 Matrix 共创计划
  • 在少数派独家发布一篇文章,在标题中标注「新玩意」前缀;
  • 用至少 800 字介绍产品,并配上 2-3 张产品的实拍图片;
  • 在网站个人信息中补充支付宝账号。

成功入选本栏目还可以得到 108 元的「剁手红包」🧧。如果你有兴趣参与,就赶紧来稿吧!

> 下载少数派 客户端、关注 少数派公众号,了解更多的新玩意 🆒

> 特惠、好用的硬件产品,尽在 少数派 sspai 官方店铺🛒

    作者:丹坤

    痛点:AI 编程助手为何总是“半途而废”?

    在使用 AI 编程工具时,开发者经常遭遇以下困境:

    • 过早退出: AI 在它认为“足够好”时就停止工作,而非真正完成任务
    • 单次提示脆弱: 复杂任务无法通过一次提示完成,需要反复人工干预
    • 重新提示成本高: 每次手动重新引导都在浪费开发者时间
    • 上下文断裂: 会话重启后,之前的所有进展和上下文全部丢失

    这些问题的本质是:LLM 的自我评估机制不可靠——它会在主观认为“完成”时退出,而非达到客观可验证的标准。

    解决思路:让 AI 持续工作直到真正完成

    Claude Code 社区诞生了一种极简但有效的范式——Ralph Loop(也称 Ralph Wiggum Loop)

    while :; do
      cat PROMPT.md | claude-code --continue
    done

    核心思想:同一个提示反复输入,让 AI 在文件系统和 Git 历史中看到自己之前的工作成果。这不是简单的“输出反馈为输入”,而是通过外部状态(代码、测试结果、提交记录)形成自我参照的迭代循环。其技术实现依赖于 Stop Hook 拦截机制。

    Ralph Loop 让大语言模型持续迭代、自动运行直到任务完成,而不在典型“一次性提示 → 结束”循环中退出。这种范式已经被集成到主流 AI 编程工具和框架中,被一些技术博主和开发者称作“AI 持续工作模式”。

    甚至 Ralph Loop 结合 Amp Code 被用来构建新编程语言(AFK):https://x.com/GeoffreyHuntley/status/1944377299425706060

    TL;DR / 快速开始

    Ralph Loop 让 AI 代理持续迭代直到任务完成。

    核心三要素:

    • 明确任务 + 完成条件: 定义可验证的成功标准
    • Stop Hook 阻止提前退出: 未达标时强制继续
    • max-iterations 安全阀: 防止无限循环

    最简示例(Claude Code):

    image

    # 安装插件
    /plugin install ralph-wiggum@claude-plugins-official
    # 运行循环
    /ralph-loop "为当前项目添加单元测试  
    Completion criteria: - Tests passing (coverage > 80%) - Output <promise>COMPLETE</promise>" \
      --completion-promise "COMPLETE" \
      --max-iterations 50

    场景适用性:详见实践建议-场景适用性。

    Ralph Loop 概述

    什么是 Ralph Loop?

    Ralph Loop 是一种自主迭代循环机制。你给出一个任务和完成条件后,代理开始执行该任务;当模型在某次迭代中尝试结束时,一个 Stop Hook 会拦截试图退出的动作,并重新注入原始任务提示,从而创建一个自我参照的反馈循环。在这个循环中,模型可以读取上一次迭代改动过的文件、测试结果和 git 历史,并据此逐步修正自己的输出直到达到完成条件或达到设定的迭代上限。

    简言之:

    • 不是简单的一次性运行,而是持续迭代直到完成任务
    • 循环使用同一个 prompt,但外部状态(代码、测试输出、文件等)在每次迭代后发生改变;
    • 需要明确的完成条件(如输出特定关键字、测试通过等)和合理的最大迭代次数作为安全控制。

    Ralph 起源

    image

    • Ralph Wiggum 名称来自《辛普森一家》的角色,用于象征“反复迭代、不放弃”的精神,但实际实现是一个简单的循环控制机制,并非模型自身拥有特殊认知。
    • 核心机制不是模型自行创造循环,而是 Stop Hook(详见 Stop-hook 拦截机制)在模型尝试退出时拦截,并重新注入 prompt,从而在同一会话中形成“自我参照反馈”。
    • 迭代不是无条件持续,而是依赖于明确可验证的完成信号或最大迭代次数。否则循环可能永不结束。
    • 哲学根源: Ralph 循环可以追溯到软件工程中的“Bash 循环”思维,其核心逻辑是“不断向智能体提供任务,直到任务完成为止”。这种极致的简化体现了将失败视为数据、将持久性置于完美之上的设计哲学。

    核心原理

    与传统智能体循环的对比

    为了深入理解 Ralph Loop 与常规智能体循环的区别,需要首先建立对“智能体”这一概念的通用语义框架。根据当代人工智能实验室的共识,智能体被定义为“在循环中运行工具以实现目标的 LLM 系统”。这种定义强调了三个关键属性:

    1. LLM 编排的推理能力:智能体能够根据观察结果进行推理和决策
    2. 工具集成的迭代能力:智能体可以调用外部工具并基于工具输出调整行为
    3. 最小化人工监督的自主性:智能体能够在有限指导下自主完成任务

    在常规的智能体架构中,循环通常发生在单一会话的上下文窗口内,由 LLM 根据当前观察到的结果决定下一步行动。

    ReAct(Reason + Act)模式

    ReAct 遵循“观察(Observation)→ 推理(Reasoning)→ 行动(Acting)” 的节奏。这种模式的优势在于其动态适应性:当智能体遇到不可预见的工具输出时,它可以在当前的上下文序列中即时修正推理路径。

    然而,这种“内部循环”受限于 LLM 的自我评估能力。如果 LLM 在某一步骤产生幻觉,认为任务已经完成并选择退出,系统就会在未达到真实目标的情况下停止运行。

    Plan-and-Execute(计划并执行)模式

    Plan-and-Execute 将任务分解为静态的子任务序列,由执行器依次完成。虽然这在处理长程任务时比 ReAct 更具结构性,但它对环境变化的适应度较低。如果第三步执行失败,整个计划往往会崩溃,或者需要复杂的重计划机制(Re-planning)。

    Ralph 循环的“外部化”范式

    Ralph 循环打破了上述依赖 LLM 自我评估的局限性。其实现机制采用停止 钩子(Stop Hook) 技术:当智能体试图退出当前会话(认为任务完成)时,系统会通过特定的退出代码(如退出码 2)截断退出信号。外部控制脚本会扫描输出结果,如果未发现预定义的“完成承诺”(Completion Promise),系统将重新加载原始提示词并开启新一轮迭代。

    这种模式在本质上是强制性的,它不依赖智能体的主观判断,而是依赖外部验证。

    对比总结

    在开发者语境中,"agent loop" 通常指智能体内部的感知—决策—执行—反馈循环(即典型的感知-推理-行动机制)。而 Ralph Loop 更侧重于迭代执行同一任务直至成功,与典型智能体循环在目的和设计上有所不同:

    image

    比较结果表明:

    • 常规 Agent Loop 通常更通用: 用于决策型 agent,可以根据多种状态和输入动态调整下一步操作。ReAct 模式适合需要动态适应的场景,Plan-and-Execute 模式适合结构化任务分解。
    • Ralph Loop 更像是自动驱动的 refine-until-done 模式: 重点是让模型在固定任务上不断修正输出直到满足完成条件。它通过外部强制控制避免了 LLM 自我评估的局限性。

    因此,它与一般意义上 agent 的循环机制并不矛盾,但定位更专注于可验证任务的持续迭代修正,而非全面的 agent lifecycle 管理。

    Stop-hook 拦截机制

    Ralph 循环的技术优雅之处在于它如何利用现有的开发工具链(如 Bash、Git、Linter、Test Runner)构建一个闭环反馈系统。在常规循环中,工具的输出仅作为下一步推理的参考;而在 Ralph 循环中,工具的输出成为了决定循环是否存续的“客观事实”。

    Ralph 循环的工业实现依赖于对终端交互的深度拦截。通过 hooks/stop-hook.sh 脚本,开发者可以捕获智能体的退出意图。如果智能体没有输出用户指定的承诺标识(如 <promise>COMPLETE</promise>),停止钩子会阻止正常会话结束。

    这种机制强迫 LLM 面对这样一个事实:只要没有达到客观的成功标准,它就无法“下班”。这种外部施加的压力通过重复输入相同的提示词(Prompt)来实现,智能体在每一轮迭代中都能看到上一轮留下的改动痕迹和 Git 提交记录。

    状态持久化与记忆管理

    解决上下文腐烂问题

    常规智能体的一个核心痛点是“上下文腐烂(Context Rot)” ——随着对话轮次的增加,LLM 对早期指令的注意力和精确度会线性下降。Ralph 循环通过“刷新上下文”解决了这一问题:

    • 每一轮循环可以看作是一个全新的会话,智能体不再从臃肿的历史记录中读取状态
    • 智能体直接通过文件读取工具扫描当前的项目结构和日志文件
    • 这种模式将“状态管理”从 LLM 的内存(Token 序列)转移到了硬盘(文件系统)

    由于 Git 历史记录是累积的,智能体可以通过 git log 查看自己之前的尝试路径,从而避免重复同样的错误。这种将环境视为“累积记忆”的做法,是 Ralph 循环能够支持持续数小时甚至数天开发的核心原因。

    核心持久化组件

    在典型的 Ralph 实现中,智能体会维护以下关键文件:

    1. progress.txt: 一个追加形式的日志文件,记录了每一轮迭代的尝试、遇到的坑以及已经确认的模式。后续迭代的智能体会首先读取该文件以快速同步进度。
    2. prd.json: 结构化的任务清单。智能体每完成一个子项,就会在该 JSON 文件中标记 passes: true。这确保了即使循环中断,新的智能体实例也能明确接下来的优先级。
    3. Git 提交记录: Ralph 循环被要求在每一步成功后进行提交。这不仅提供了版本回滚能力,更重要的是,它为下一轮迭代提供了明确的“变更差分”(Diff),让智能体能够客观地评估现状。
    文件结构
    scripts/ralph/
    ├── ralph.sh
    ├── prompt.md
    ├── prd.json
    └── progress.txt
    ralph.sh
    #!/bin/bash
    set -e
    MAX_ITERATIONS=${1:-10}
    SCRIPT_DIR="$(cd "$(dirname \
      "${BASH_SOURCE[0]}")" && pwd)"
    echo "🚀 Starting Ralph"
    for i in $(seq 1 $MAX_ITERATIONS); do
      echo "═══ Iteration $i ═══"
      OUTPUT=$(cat "$SCRIPT_DIR/prompt.md" \
        | amp --dangerously-allow-all 2>&1 \
        | tee /dev/stderr) || true
      if echo "$OUTPUT" | \
        grep -q "<promise>COMPLETE</promise>"
      then
        echo "✅ Done!"
        exit 0
      fi
      sleep 2
    done
    echo "⚠️ Max iterations reached"
    exit 1
    prompt.md

    每次迭代的说明:

    # Ralph Agent Instructions
    ## Your Task
    1. Read `scripts/ralph/prd.json`
    2. Read `scripts/ralph/progress.txt`
       (check Codebase Patterns first)
    3. Check you're on the correct branch
    4. Pick highest priority story 
       where `passes: false`
    5. Implement that ONE story
    6. Run typecheck and tests
    7. Update AGENTS.md files with learnings
    8. Commit: `feat: [ID] - [Title]`
    9. Update prd.json: `passes: true`
    10. Append learnings to progress.txt
    ## Progress Format
    APPEND to progress.txt:
    ## [Date] - [Story ID]
    - What was implemented
    - Files changed
    - **Learnings:**
      - Patterns discovered
      - Gotchas encountered
    ---
    ## Codebase Patterns
    Add reusable patterns to the TOP 
    of progress.txt:
    ## Codebase Patterns
    - Migrations: Use IF NOT EXISTS
    - React: useRef<Timeout | null>(null)
    ## Stop Condition
    If ALL stories pass, reply:
    <promise>COMPLETE</promise>
    Otherwise end normally.
    prd.json(任务状态)

    任务清单:

    {
      "branchName": "ralph/feature",
      "userStories": [
        {
          "id": "US-001",
          "title": "Add login form",
          "acceptanceCriteria": [
            "Email/password fields",
            "Validates email format",
            "typecheck passes"
          ],
          "priority": 1,
          "passes": false,
          "notes": ""
        }
      ]
    }
    progress.txt

    任务进度日志:

    # Ralph Progress Log
    Started: 2024-01-15
    ## Codebase Patterns
    - Migrations: IF NOT EXISTS
    - Types: Export from actions.ts
    ## Key Files
    - db/schema.ts
    - app/auth/actions.ts
    ---
    ## 2024-01-15 - US-001
    - What was implemented: Added login form with email/password fields
    - Files changed: app/auth/login.tsx, app/auth/actions.ts
    - **Learnings:**
      - Patterns discovered: Use IF NOT EXISTS for migrations
      - Gotchas encountered: Need to handle email validation on both client and server
    ---
    运行 Ralph
    ./scripts/ralph/ralph.sh 25

    运行最多 25 次迭代。Ralph 将:

    • 创建功能分支
    • 逐个完成任务
    • 每个任务完成后提交
    • 当所有任务通过时停止

    上下文工程的对比分析

    常规智能体通常采用总结(Summarization)或截断(Truncation)来管理上下文。研究表明,相比于复杂的 LLM 总结,简单的“观察掩码”(Observation Masking,即保留最新的 N 轮对话,其余用占位符代替)在效率和可靠性上往往更胜一筹。然而,即使是最好的掩码策略也无法处理跨越数十轮、数千行代码改动的任务。

    Ralph 循环绕过了这一难题,它不试图“总结”过去,而是通过提示词引导智能体进行“自我重新加载”。每一轮迭代的提示词始终包含对核心目标的清晰描述,而具体的执行细节则留给智能体去实时探索环境。这种“即时上下文”加载方式,使得 Ralph 能够处理规模远超其单次窗口容量的工程项目。

    框架和工具实现示例

    以下是一些主流框架和工具对 Ralph Loop 模式的支持:

    LangChain / DeepAgents

    https://github.com/langchain-ai/deepagents/tree/master/examples/ralph_mode

    image

    DeepAgents 提供类似模式支持,需要程序化参数传递:

    uv run deepagents --ralph "Build a Python programming course" --ralph-iterations 5

    这里 --ralph-iterations 指定最大循环次数(详见实践建议-安全机制和资源控制)。

    Kimi-cli

    https://moonshotai.github.io/kimi-cli/zh/configuration/config...

    loop_control 控制 Agent 执行循环的行为。

    image

    AI SDK (JavaScript)

    https://github.com/vercel-labs/ralph-loop-agent

    社区实现的 ralph-loop-agent 允许更精细的开发控制:

    ┌──────────────────────────────────────────────────────┐
    │                   Ralph Loop (outer)                 │
    │  ┌────────────────────────────────────────────────┐  │
    │  │  AI SDK Tool Loop (inner)                      │  │
    │  │  LLM ↔ tools ↔ LLM ↔ tools ... until done      │  │
    │  └────────────────────────────────────────────────┘  │
    │                         ↓                            │
    │  verifyCompletion: "Is the TASK actually complete?"  │
    │                         ↓                            │
    │       No? → Inject feedback → Run another iteration  │
    │       Yes? → Return final result                     │
    └──────────────────────────────────────────────────────┘
    import { RalphLoopAgent, iterationCountIs } from 'ralph-loop-agent';
    const migrationAgent = new RalphLoopAgent({
      model: 'anthropic/claude-opus-4.5',
      instructions: `You are migrating a codebase from Jest to Vitest.
        Completion criteria:
        - All test files use vitest imports
        - vitest.config.ts exists
        - All tests pass when running 'pnpm test'`,
      tools: { readFile, writeFile, execute },
      stopWhen: iterationCountIs(50),
      verifyCompletion: async () => {
        const checks = await Promise.all([
          fileExists('vitest.config.ts'),
          !await fileExists('jest.config.js'),
          noFilesMatch('**/*.test.ts', /from ['"]@jest/),
          fileContains('package.json', '"vitest"'),
        ]);
        return { 
          complete: checks.every(Boolean),
          reason: checks.every(Boolean) ? 'Migration complete' : 'Structural checks failed'
        };
      },
      onIterationStart: ({ iteration }) => console.log(`Starting iteration ${iteration}`),
      onIterationEnd: ({ iteration, duration }) => console.log(`Iteration ${iteration} completed in ${duration}ms`),
    });
    const result = await migrationAgent.loop({
      prompt: 'Migrate all Jest tests to Vitest.',
    });
    console.log(result.text);
    console.log(result.iterations);
    console.log(result.completionReason);

    关键特性:

    1. 提供模型与任务说明(包含明确的完成条件,详见实践建议-明确完成标准)
    2. stopWhen 和 verifyCompletion 定制循环退出逻辑
    3. 事件钩子用于日志和监控

    Ralph Loop 最佳实践

    如果你正在使用 AI 编程 CLI(如 Claude Code、Copilot CLI、OpenCode、Codex),以下实践指南将帮助你更高效地使用 Ralph Loop。

    大多数开发者以交互方式使用这些工具:给出任务、观察工作过程、在偏离轨道时介入。这是“人在回路”(Human-in-the-Loop,HITL)模式。

    但 Ralph 提供了一种新方法:让 AI 编程 CLI 在循环中运行,自主处理任务列表。你定义需要做什么,Ralph 负责如何做——并持续工作直到完成。换句话说,它是长时间运行、自主、无人值守的 AFK(Away From Keyboard,离开键盘)编程

    提示:本节提供操作层面的具体技巧,原则层面的建议请参考实践建议部分。

    技巧 1:理解 Ralph 是一个循环

    AI 编程在过去一年左右经历了几个阶段:

    Vibe 编程:让 AI 写代码而不真正检查。你“感受”AI,接受它的建议而不仔细审查。速度快,但代码质量差。

    规划模式:要求 AI 在编码前先规划。在 Claude Code 中,你可以进入规划模式,让 AI 探索代码库并创建计划。这提高了质量,但仍受限于单个上下文窗口。

    多阶段计划:将大型功能分解为多个阶段,每个阶段在单独的上下文窗口中处理。你为每个阶段编写不同的提示:“实现数据库模式”,然后“添加 API 端点”,然后“构建 UI”。这扩展性更好,但需要持续的人工参与来编写每个提示。

    Ralph 简化了这一切。不是为每个阶段编写新提示,而是在循环中运行相同的提示:

    #!/bin/bash
    # ralph.sh
    # Usage: ./ralph.sh <iterations>
    set -e
    if [ -z "$1" ]; then
      echo "Usage: $0 <iterations>"
      exit 1
    fi
    # 每次迭代:运行 Claude Code,传入相同的提示
    for ((i=1; i<=$1; i++)); do
      result=$(docker sandbox run claude -p \
    "@some-plan-file.md @progress.txt \
    1. 决定接下来要处理的任务。这应该是你认为优先级最高的,\
       不一定是列表中的第一个。\
    2. 检查任何反馈循环,如类型检查和测试。\
    3. 将你的进度追加到 progress.txt 文件。\
    4. 提交该功能的 git commit。\
    只处理单个功能。\
    如果在实现功能时,你注意到所有工作都已完成,\
    输出 <promise>COMPLETE</promise>。\
    ")
      echo "$result"
      if [[ "$result" == *"<promise>COMPLETE</promise>"* ]]; then
        echo "PRD 完成,退出。"
        exit 0
      fi
    done

    每次迭代:

    1. 查看计划文件,了解需要做什么
    2. 查看进度文件,了解已完成的工作
    3. 决定下一步做什么
    4. 探索代码库
    5. 实现功能
    6. 运行反馈循环(类型、Linting、测试)
    7. 提交代码

    关键改进:代理选择任务,而不是你

    使用多阶段计划时,人类在每个阶段开始时编写新提示。使用 Ralph 时,代理从你的 PRD 中选择下一步要做什么。你定义最终状态,Ralph 到达那里。

    技巧 2:从 HITL 开始,然后转向 AFK

    运行 Ralph 有两种方式:

    image

    对于 HITL,你观察它做的一切,在需要时介入。

    对于 AFK Ralph,始终限制迭代次数。随机系统的无限循环是危险的。关于如何设置迭代次数限制,详见实践建议-安全机制和资源控制。

    HITL 类似于结对编程。你和 AI 一起工作,在代码创建时审查。你可以实时引导、贡献和分享项目理解。

    这也是学习 Ralph 的最佳方式。你会理解它的工作方式,优化你的提示,并在放手之前建立信心。

    一旦你的提示稳定,AFK Ralph 就能发挥真正的杠杆作用。设置它运行,做其他事情,完成后回来。

    你可以构建通知机制(如 CLI、邮件或消息推送),在 Ralph 完成时提醒你。这意味着更少的上下文切换,你可以完全投入到另一个任务中。典型的循环通常需要 30-45 分钟,尽管它们可以运行数小时。

    进展很简单:

    1. 从 HITL 开始学习和优化
    2. 一旦你信任你的提示,就转向 AFK
    3. 返回时审查提交

    技巧3:定义范围

    为什么范围很重要

    你不需要结构化的 TODO 列表。你可以给 Ralph 一个模糊的任务——“改进这个代码库”——让它跟踪自己的进度。

    但任务越模糊,风险越大。Ralph 可能永远循环,找到无尽的改进。或者它可能走捷径,在你认为工作完成之前就宣布胜利。

    真实案例:某次运行 Ralph 来提高项目的测试覆盖率。仓库有内部命令——标记为内部但仍面向用户。目标是覆盖所有内容的测试。

    经过三次迭代,Ralph 报告:“所有面向用户的命令都完成了。”但它完全跳过了内部命令。它决定它们不是面向用户的,并将它们标记为被覆盖率忽略。

    修复方法:明确定义你想要覆盖的内容:

    image

    如何定义范围

    在让 Ralph 运行之前,你需要定义“完成”是什么样子。这是从规划到需求收集的转变:不是指定每个步骤,而是描述期望的最终状态,让代理找出如何到达那里。

    核心原则:必须定义明确可机器验证的完成条件。模糊的标准会导致循环无法正确退出或产生无意义输出。

    推荐格式:结构化 prd.json

    定义 Ralph 范围有多种方法(Markdown 列表、GitHub Issues、Linear 任务),但推荐使用结构化的 prd.json:

    {
      "branchName": "ralph/feature",
      "userStories": [
        {
          "id": "US-001",
          "title": "新聊天按钮创建新对话",
          "acceptanceCriteria": [
            "点击'新聊天'按钮",
            "验证创建了新对话",
            "检查聊天区域显示欢迎状态"
          ],
          "priority": 1,
          "passes": false,
          "notes": ""
        }
      ]
    }

    Ralph 在完成时将 passes 标记为 true。PRD 既是范围定义,也是进度跟踪器——一个活生生的 TODO 列表。

    提示:关于如何定义完成条件的更多示例和最佳实践,详见实践建议-明确完成标准。

    技巧 4:跟踪 Ralph 的进度

    Ralph 在迭代之间使用进度文件来解决上下文腐烂问题。通过维护 progress.txt 和 prd.json(详见状态持久化与记忆管理),Ralph 可以在每次迭代中:

    1. 读取 progress.txt 以了解已完成的工作和学到的代码库模式
    2. 读取 prd.json 以了解待办任务和优先级
    3. 追加本次迭代的进度和学到的模式
    4. 更新 prd.json 中已完成任务的 passes 状态

    最佳实践:

    • 在 progress.txt 顶部维护“代码库模式”部分,方便后续迭代快速参考
    • 每次迭代只处理一个任务,完成后立即更新状态
    • 记录遇到的坑和解决方案,避免重复错误

    这创建了一个累积的知识库,后续迭代可以快速同步,而不需要阅读整个 Git 历史。

    技巧 5:使用反馈循环

    反馈循环是 Ralph 的护栏。它们告诉代理它是否在正确的轨道上。没有它们,Ralph 可能会产生看起来正确但实际上有问题的代码。

    反馈循环类型

    image

    在你的 Ralph 提示中,明确要求运行这些反馈循环:

    在每次迭代中:
    1. 实现功能
    2. 运行类型检查:`tsc --noEmit`
    3. 运行测试:`npm test`
    4. 运行 Linter:`npm run lint`
    5. 只有在所有检查通过后才提交

    这确保 Ralph 不会提交破坏性代码。

    技巧 6:小步迭代

    Ralph 在小的、可验证的步骤中工作得最好。每次迭代应该:

    • 完成一个功能
    • 运行反馈循环
    • 提交代码

    为什么?因为:

    1. 更容易调试: 如果某次迭代失败,你知道确切的问题所在
    2. 更好的 Git 历史: 每个提交代表一个完整的功能
    3. 更快的反馈: 小步骤意味着更快的迭代周期

    避免让 Ralph 一次处理多个功能。这会导致:

    • 混乱的提交
    • 难以追踪进度
    • 更高的失败风险

    技巧 7:优先处理高风险任务

    不是所有任务都是平等的。有些任务如果失败,会破坏整个项目。其他任务如果失败,只是一个小问题。

    Ralph 应该优先处理高风险任务:

    1. 架构决策和核心抽象: 如果这些错了,整个项目都会受到影响
    2. 模块之间的集成点: 这些是失败风险最高的地方
    3. 未知的未知和探索性工作: 需要快速失败
    4. 标准功能和实现: 风险较低,可以稍后处理
    5. 抛光、清理和快速胜利: 最低风险,适合最后处理

    将 AFK Ralph 保留到基础稳固时。一旦架构得到验证,高风险集成工作正常,你就可以让 Ralph 在低风险任务上无人值守运行。

    尝试一下

    在你的 Ralph 提示中添加优先级指导:

    选择下一个任务时,按以下顺序优先处理:
    1. 架构决策和核心抽象
    2. 模块之间的集成点
    3. 未知的未知和探索性工作
    4. 标准功能和实现
    5. 抛光、清理和快速胜利
    在高风险工作上快速失败。将简单的胜利留到后面。

    技巧 8:明确定义软件质量

    并非所有仓库都是相同的。很多代码是原型代码——演示、短期实验、客户提案。不同的仓库有不同的质量标准。

    代理不知道它在哪种仓库中。它不知道这是可丢弃的原型还是将维护多年的生产代码。你需要明确告诉它。

    要传达的内容

    image

    将此放在你的 AGENTS.md 文件、你的技能中,或直接放在提示中。

    代码库模式比指令更有影响力

    Ralph 会同时参考你的指令和现有代码。当两者冲突时,代码库的影响力更大。

    具体示例:

    // 你的指令:"永远不要使用 any 类型"
    // 但现有代码中:
    const userData: any = fetchUser();
    const config: any = loadConfig();
    const response: any = apiCall();
    // Ralph 会学习这种模式,继续使用 any

    为什么会这样?

    • 指令只有几行文字
    • 代码库有数千行“证据”
    • AI 更倾向于模仿现有模式

    解决方案:

    1. 在 Ralph 运行前清理代码库:移除低质量模式
    2. 使用反馈循环强制执行标准:Linting、类型检查、测试
    3. 在 AGENTS.md 中明确质量标准:让期望可见

    尝试一下

    在你的 AGENTS.md 或 Ralph 提示中明确质量标准:

    ## 代码质量标准
    这是生产代码库。请遵循:
    - 使用 TypeScript 严格模式,禁止 any 类型
    - 每个函数都需要单元测试
    - 遵循现有的文件结构和命名约定
    - 提交前必须通过所有 lint 和类型检查
    优先级:可维护性 > 性能 > 快速交付

    技巧 9:使用 Docker 沙箱

    AFK Ralph 需要编辑文件、运行命令和提交代码的权限。什么阻止它运行 rm -rf ~?你不在键盘前,所以无法介入。

    Docker 沙箱是最简单的解决方案:

    docker sandbox run claude

    这会在容器内运行 Claude Code。你的当前目录被挂载,但其他什么都没有。Ralph 可以编辑项目文件和提交——但无法触及你的主目录、SSH 密钥或系统文件。

    权衡:你的全局 AGENTS.md 和用户技能不会被加载。对于大多数 Ralph 循环,这没问题。

    对于 HITL,沙箱是可选的——你在观察。对于 AFK Ralph,特别是过夜循环,它们是防止失控代理的基本保险。

    技巧 10:控制成本

    Ralph Loop 可能会运行数小时,成本控制很重要。以下是一些实用的成本管理策略:

    成本估算指南

    典型成本范围(以 Claude 3.5 Sonnet 为例):

    • 小任务(5-10 迭代):$5-15
    • 中等任务(20-30 迭代):$15-50
    • 大型任务(30-50 迭代):$50-150

    影响因素

    • 代码库大小(上下文窗口)
    • 任务复杂度(需要多少迭代)
    • 模型选择(GPT-4 vs Claude vs 本地模型)

    成本控制策略

    1. 从 HITL 开始

    • 先用人在回路模式学习和优化提示
    • 一旦提示稳定,再转向 AFK 模式
    • HITL 成本更可控,但仍有巨大价值

    2. 设置严格限制

    # 始终设置最大迭代次数
    /ralph-loop "task" --max-iterations 20

    3. 选择成本效益最优的任务

    • 机械化重构:高效率,低风险
    • 测试迁移:明确标准,易验证
    • 避免创意性任务:需要人类判断

    image

    4. 本地模型的现实

    目前本地模型(如 Llama 3.1)在复杂代码任务上表现仍有差距。但可以考虑:

    • 用于简单任务的预处理
    • 作为成本敏感项目的备选方案

    5. 投资回报视角

    如果 Ralph 能在几小时内完成原本需要几天的工作,即使花费 $50-150 也是值得的。关键是选择合适的任务和设置合理的期望。

    技巧 11:让它成为你自己的

    Ralph 只是一个循环。这种简单性使其无限可配置。以下是一些让它成为你自己的方法:

    交换任务源

    本文中的示例使用本地 prd.json。但 Ralph 可以从任何地方拉取任务:

    image

    关键洞察保持不变:代理选择任务,而不是你。你只是改变该列表的位置。

    更改输出

    不是直接提交到 main,每次 Ralph 迭代可以:

    • 创建分支并打开 PR
    • 向现有 issues 添加评论
    • 更新变更日志或发布说明

    当你有一个需要成为 PR 的 issue 积压时,这很有用。Ralph 进行分类、实现并打开 PR。当你准备好时进行审查。

    替代循环类型

    Ralph 不需要处理功能积压。我一直在试验的一些循环:

    测试覆盖率循环:将 Ralph 指向你的覆盖率指标。它找到未覆盖的行,编写测试,并迭代直到覆盖率达到你的目标。例如,可以将项目的测试覆盖率从 16% 提高到 100%。

    重复代码循环:将 Ralph 连接到 jscpd 以查找重复代码。Ralph 识别克隆,重构为共享实用程序,并报告更改的内容。

    Linting 循环:向 Ralph 提供你的 Linting 错误。它一个一个修复,在迭代之间运行 linter 以验证每个修复。

    熵循环:Ralph 扫描代码异味——未使用的导出、死代码、不一致的模式——并清理它们。软件熵的逆转。

    任何可以描述为“查看仓库,改进某些东西,报告发现”的任务都适合 Ralph 模式。循环是相同的。只有提示改变。

    尝试一下

    尝试这些替代循环提示之一:

    # 测试覆盖率循环
    @coverage-report.txt
    查找覆盖率报告中的未覆盖行。
    为最关键未覆盖的代码路径编写测试。
    再次运行覆盖率并更新 coverage-report.txt。
    目标:至少 80% 覆盖率。
    # Linting 循环
    运行:npm run lint
    一次修复一个 Linting 错误。
    再次运行 lint 以验证修复。
    重复直到没有错误。
    # 熵循环
    扫描代码异味:未使用的导出、死代码、不一致的模式。
    每次迭代修复一个问题。
    在 progress.txt 中记录你更改的内容。

    实践建议

    提示:本节提供原则层面的指导,具体操作技巧请参考 Ralph Loop 最佳实践部分。

    明确完成标准

    无论是在 Claude Code 还是自己实现的 agent loop 模式中,明确可机器验证的完成条件是 Ralph Loop 成功的关键(详见核心原理中关于完成条件的讨论)。

    完成条件示例:

    • 所有测试通过
    • 构建无错误
    • Lint 结果清洁
    • 明确输出标记(如 <promise>COMPLETE</promise>)
    • 测试覆盖率 > 80%
    • 所有类型检查通过

    避免模糊标准:例如“让它好看一点”会导致循环无法正确退出或产生无意义输出。

    示例:

    构建一个 Todo REST API
    完成标准:
    - CRUD 全部可用
    - 输入校验完备
    - 测试覆盖率 > 80%
    完成后输出:<promise>COMPLETE</promise>

    安全机制和资源控制

    始终设置 --max-iterations 保护你的钱包

    /ralph-loop "Task description" --max-iterations 30 --completion-promise "DONE"

    建议的迭代次数:

    • 小任务:5-10 次迭代
    • 中等任务:20-30 次迭代
    • 大型任务:30-50 次迭代

    成本控制策略:

    • 结合成本监控和 token 使用限制策略
    • 优先使用 HITL 模式学习和优化提示
    • 仅在提示稳定后使用 AFK 模式

    场景适用性

    ✅ 适合场景:

    • TDD 开发: 写测试 → 跑失败 → 改代码 → 重复直到全绿
    • Greenfield 项目: 定义好需求,过夜执行
    • 有自动验证的任务: 测试、Lint、类型检查能告诉它对不对
    • 代码重构: 机械化重构、大规模测试迁移
    • 测试迁移: 从 Jest 到 Vitest 等框架迁移

    ❌ 不适合场景:

    • 需要主观判断或人类设计抉择
    • 没有明确成功标准的任务
    • 整体策略规划和长期决策(常规 Agent Loop 更适合)
    • 成本敏感场景:ralph-loop 可能会运行数小时甚至几十个小时

    结论

    Ralph Loop 是一种以持续迭代修正为中心的 agent 运行范式,通过 Stop Hook 和明确完成条件使代理不再轻易退出。它与一般意义上的 agent loop 并不冲突,而是在特定类型任务(可验证目标条件)下的一种强化迭代模式。适当理解二者的适用边界,能帮助开发者在构建自动化代理流水线时更合理选择架构和控制策略。

    参考资料:

    休年假期间关注到去背景领域出了个挺强的 SOTA 模型 BiRefNet

    看论文和 Demo 的效果确实比之前的 RMBG 或者 Segment Anything 要更细腻一些

    尤其是对发丝和半透明物体的处理

    趁着年假就顺手套了个壳做了个在线去背景的网站 https://zerobg.ai

    做这个小网站主要是想测试下 BiRefNet 在实际生产环境中的表现

    尽量简化流程,不用注册,直接上传就能下

    很多同类工具要么收费贵,要么限制分辨率,我这儿目前是尽可能保持原图质量

    目前网站功能还比较单一

    欢迎各位大哥们去体验,看看这个模型的水平到底能不能打

    如果有体验不爽的地方,请尽管拍砖

    有企业版稳定车队嘛?或者有什么国内购买渠道嘛? tb 上用了三天有问题一问店家直接发起退款了

    在数据驱动成为常态的今天,数据采集早已不再是技术门槛问题,而是访问许可问题。随着平台对自动化访问的识别能力不断提升,采集系统能否长期运行,越来越取决于网络行为是否合理。

    数据采集代理正是在这种环境下,成为整个系统的关键基础。如果网络层缺乏可信度,即便采集逻辑再完善,也难以持续输出有效数据。

    为什么采集失败往往源于网络层

    很多采集任务在初期表现良好,但随着规模扩大,访问受限问题频繁出现。这类问题并不一定与采集频率直接相关,而是源于访问来源过于集中或行为模式不自然。
    当请求长期来自可识别的网络结构时,平台会逐步建立风险画像。一旦触发阈值,限制便会成为常态。
    因此,采集系统的稳定性,首先取决于代理网络是否具备真实用户的行为特征。

    数据采集代理的真正作用

    代理在数据采集中的价值,并不是隐藏身份,而是让访问行为显得合理。每一次请求,都应当符合目标平台的流量模型,而不是脱离整体环境。
    基于真实家庭网络的代理,在这一点上具备天然优势。其访问节奏和分布方式,更容易融入正常用户行为中。
    但前提是,这种代理必须被正确管理。无序切换、过度随机,都会破坏行为连贯性,从而引发新的风险。

    稳定性带来的长期收益

    短期内,通过激进切换策略或许可以获取数据,但这种方式难以长期维持。真正有价值的数据采集,往往需要持续观察和长期积累。
    稳定的数据采集代理,可以让系统在较长时间内保持运行状态,从而支持趋势分析和结构化判断。这种能力,本身就是竞争优势。

    降低系统维护成本的关键

    不稳定的代理环境,会迫使团队不断修复采集系统,封禁、重试、替换资源都会消耗大量时间和成本。
    当代理网络本身足够稳定,这些问题就会显著减少。系统可以专注于数据本身,而不是持续应对访问中断。

    长期采集能力的未来价值

    在数据竞争日益激烈的环境中,谁能持续获取高质量数据,谁就拥有更大的决策优势。
    评估数据采集代理时,不应只关注短期表现,而应关注其长期可用性。稳定、真实、可持续,正在成为数据采集代理的核心标准。

    坐标深圳最近发现很多人买 20w 的车感觉都很轻松随意,以前我会觉得说买 10 多 w 的是大众的常态,20w 的车算得上有小钱,但是我现在发现 20w 的车遍地都是,现在的新能源起步就是 20w,我想问一下大家都是全款买的还是贷款买的还是家庭资助的,还是说是单纯的社会发展起来了大家都有钱了

    我快被这个交通银行太平洋信用卡中心烦死了
    每天都打我电话
    我可以确定我没欠钱
    看着都是交通银行太平洋信用卡中心,但是点进去号码还不是固定的
    导致我每次拉黑都是只拉黑了一个号码
    小米手机是不是可以通过关键词拉黑的,没找到

    5499 这个价格太香了,自己是双持党,主力机选了荣耀,收发短信和接打电话的信号不是一般的强。其他常用 APP 在果子生态上,想拿 Air 作为日常娱乐机和备用机,有国区 ID 和外区 ID ,没什么拍照需求。

    借宝地问问大家:

    1.在国内,国内 esim 和境外 esim 能共存吗?

    2.假设 1 成立,如果要把 giffgaff 的卡转成 esim 写进去的话,是不是要物理出去?

    3.假设 1 成立,物理出去把 giffgaff 的 esim 写进去之后,回来是否还能正常收到短信或者漫游流量吗?

    最近在练习呼吸冥想,也在尝试理解和提升一种比较「高级」的能力:
    在冥想过程中,对自己思想的流动有更多一点“可控性”。


    我在做的呼吸冥想(简化版)

    这里用的是一个尽量「无门槛」的版本,更偏实用主义:

    1. 找个可以安静坐 5~10 分钟的位置
    2. 自然呼吸,不刻意加深或放慢
    3. 选择一个感受点作为「锚点」:
      • 鼻腔进出气流
      • 胸腔起伏
      • 或者腹部鼓起 / 收缩
    4. 每次发现思绪跑偏,只做一件事:把注意力带回呼吸
    5. 计时到了就结束,不打分、不评价

    核心就是:

    「发现走神 → 回到呼吸」这个循环本身,就是练习。

    这类基础的呼吸冥想,其实已经涵盖了很多后续进阶练习里的核心原理,只是形式更简单、门槛更低。


    关于对「思想的控制」这件事

    这里说的「高级」冥想,指的是:
    在冥想时,对念头有更高的可控性——不是完全消灭思想,而是:

    • 能更快察觉:现在脑子在想什么
    • 能决定:是继续跟着这个念头走,还是放下,回到呼吸
    • 能不被情绪和自动化的想法瞬间拽走

    很多进阶练习,其实就是在基础呼吸冥想的基础上,进一步训练这几件事,比如:

    • 把注意力从呼吸扩展到:身体感受、当前情绪、念头本身
    • 练习“看见一个念头出现,然后让它离开”,而不是立刻参与进去
    • 观察某些反复出现的思维模式,比如:过度担心、自动自我否定、脑内争辩等

    本质上还是在练:

    “念头出现 → 被意识到 → 被选择如何对待”,而不是自动反应。


    想讨论的问题

    • 有在练冥想、正念或类似练习的朋友吗?
      你们是怎么训练“对思想更有控制力”这件事的?
    • 除了呼吸冥想之外,有没有哪些练习,能比较系统地提升对念头 / 情绪的觉察和调节能力?
    • 对已经能稳定做基础呼吸冥想的人,如果想在「处理念头」这一块更进阶一点,有哪些靠谱的练习方向或材料可以参考?

    欢迎分享自己的实践、工具或踩过的坑,也欢迎从旁观视角,对这种「先把呼吸冥想打底,再慢慢练对念头的掌控」的思路提一些建议。

    往年都会提前放假,延后返工,今年没了
    钱也是,比往年少了一大截
    感觉很糟糕
    裁员并岗,年后活增加了,加量不加价。嗯,2026 年的开头也很糟糕

    作为一个入市多年、踩过不少坑的普通散户,前两年全凭感觉买股票,要么追高被套在山顶,要么错过最佳卖点拍大腿,折腾大半年没找到合适的操作节奏,还耗费了大量时间和精力。后来偶然接触到量化交易,才彻底明白:“用数据说话、用规则约束”,才是降低风险、提升操作效率的关键——但一开始就被“量化门槛高”“API 收费贵”这两个难题劝退,直到偶然发现这个免费股票 API,才算真正迈出了量化入门的第一步,今天就把这份实测可行的经验,毫无保留分享给和我当初一样迷茫的新手。

    先跟大家说句实在话:新手做量化,真的不用一开始就追求复杂的机器学习模型,也不用花大价钱买付费 API。免费版就足够我们完成基础的策略搭建、实时数据接入和历史回测,等后续有了更高需求(比如做高频交易、需要 Level2 深度数据),再考虑升级付费版也不迟,这也是我实测下来,最省钱、最高效的量化入门路径。

    今天不聊虚的,纯个人实操经验拆解,下面教大家使用这款免费股票 API,搭建一个简单易上手、适合新手的量化交易策略,全程避开我踩过的各种坑,保证接地气、可落地。

    一、接入实时数据

    量化交易的核心逻辑是什么?其实很简单:实时获取市场数据 → 根据预设的策略逻辑判断 → 触发对应的交易信号,其中“实时数据接入”是最基础、也最关键的一步——如果数据延迟太高,策略判断就会失真,甚至可能导致不必要的亏损。而 iTick 的免费 API,支持 RESTful API 和 WebSocket 两种推送方式,实时延迟非常低(主要市场延迟<100ms),完全能满足非超高频策略的使用需求,新手也能轻松驾驭。

    我全程用的是 Python(新手首选编程语言,语法简单、网上资料多,遇到问题能快速找到解决方案),下面直接上实测可用的代码,大家复制粘贴后,替换成自己的 API Token,就能直接运行,轻松获取实时股票数据,每一步我都标了详细注释,看不懂的地方慢慢看,不用怕。

    首先,需要安装两个必要的库(打开电脑终端,输入对应命令即可):pip install requests websocket-client,这两个都是 Python 常用库,用于调用 API、接收实时数据,安装过程不会出错,新手放心操作。

    1. 用 RESTful API 获取实时报价

    import requests
    
    # 替换成你自己的iTick API Token
    api_token = "你的API Token"
    # 设定要获取的股票(以A股贵州茅台为例,代码格式:区域.代码,SH=上交所,SZ=深交所)
    url = "https://api.itick.org/stock/quote?region=SH&code=600519"
    # 请求头,必须带上Token,否则会调用失败、报错
    headers = {"accept": "application/json", "token": api_token}
    
    # 发送请求,获取股票实时数据
    response = requests.get(url, headers=headers)
    # 解析数据,转换成JSON格式,方便后续查看和使用
    data = response.json()
    
    # 打印获取到的实时数据(重点看这几个关键信息,新手可直接参考)
    print("股票名称:", data["s"])
    print("实时价格:", data["ld"])
    print("实时成交量:", data["v"])
    print("实时涨跌幅:", data["chp"])

    实测效果跟大家说一下:运行代码后,能瞬间获取到茅台的实时价格、成交量、涨跌幅,延迟非常低,和我们平时用的股票软件上的价格基本同步。新手建议先从单个股票入手,熟悉数据格式和调用流程,再慢慢扩展到多只股票,循序渐进更稳妥。

    2. 用 WebSocket 订阅实时行情

    如果我们的策略需要持续监控多只股票的实时走势(比如同时监控茅台、宁德时代、比亚迪),用 WebSocket 就更合适了,它能实现“实时推送”功能,不用反复发送请求,操作效率更高,也更节省时间。

    import websocket
    import json
    
    # 替换成你自己的iTick API Token
    api_token = "你的API Token"
    
    # 定义消息接收函数,实时接收平台推送的行情数据
    def on_message(ws, message):
        # 解析推送的数据,转换成可查看的格式
        data = json.loads(message)
        # 打印实时行情(可根据自己的需求修改,比如只打印涨跌幅超过1%的股票)
        print(f"股票:{data['s']} | 实时价格:{data['ld']} | 涨跌幅:{data['chp']}%")
    
    # 定义连接函数,建立WebSocket连接(不用修改,复制即可)
    def on_open(ws):
        # 订阅多只股票的实时行情(这里以茅台、宁德时代、比亚迪为例,可自行修改)
        subscribe_msg = {
            "action": "subscribe",
            "types": "quote",
            "params": "SH$600519,SZ$300750,SZ$002594",
        }
        # 发送订阅请求,完成多只股票实时行情订阅
        ws.send(json.dumps(subscribe_msg))
    
    # 建立WebSocket连接,固定格式,不用修改
    ws = websocket.WebSocketApp("wss://api.itick.org/stock",
                                on_open=on_open,
                                on_message=on_message)
    
    # 持续运行,实时接收行情数据(关闭终端即可停止)
    ws.run_forever()

    二、实战搭建交易策略

    成功接入实时数据后,就可以正式搭建量化交易策略了。新手建议从“双均线策略”入手,这个策略逻辑简单、容易理解、风险可控,也是很多资深量化交易者入门时首选的策略,结合 iTick 的实时数据和历史数据,就能快速实现,不用复杂的编程基础。

    先跟大家简单拆解下双均线策略的核心逻辑(不用记复杂公式,理解意思就行,新手也能听懂):
    选取两条均线——短期均线(比如 20 日均线)和长期均线(比如 60 日均线),通过两条均线的“交叉”情况,来判断交易信号:

    • ① 短期均线上穿长期均线(行业内叫“金叉”),说明股票趋势向好,触发“买入”信号;
    • ② 短期均线下穿长期均线(行业内叫“死叉”),说明股票趋势走坏,触发“卖出”信号。

    结合 iTick 获取的实时数据,让程序自动判断信号,避免我们被主观情绪干扰——这也是量化交易的核心优势:理性、纪律性强,不会追涨杀跌,也不会因为贪心或恐慌做出错误决策。

    策略搭建步骤

    1. 获取历史数据:获取某只股票的历史 K 线数据(比如近 3 年的日线数据),用来回测策略——回测非常重要,能帮我们验证这个策略在过去的行情中是否有效,避免盲目实盘操作,新手一定要重视;
    2. 计算均线:用 Python 的 talib 库(专门用于股票技术分析的库,新手直接用即可),计算出短期均线(MA20)和长期均线(MA60);
    3. 生成交易信号:根据两条均线的交叉情况,自动生成买入、卖出信号,不用手动判断;
    4. 接入实时数据:用前面讲的 WebSocket 方法,实时监控股票走势,当触发买入或卖出信号时,及时发出提醒(新手建议先只开启提醒功能,不直接自动交易,避免操作失误)。

    完整实战代码

    import requests
    import websocket
    import json
    import talib
    import pandas as pd
    
    # ---------------------- 第一步:获取历史K线数据(用于回测策略,验证策略有效性)----------------------
    api_token = "你的API Token"
    # 获取茅台近1000条日线数据(limit=100 可自行修改,kType="8"表示日线,固定格式)
    url = "https://api.itick.org/stock/ ?region=SH&code=600519&kType=8&limit=100"
    headers = {"accept": "application/json", "token": api_token}
    response = requests.get(url, headers=headers)
    history_data = response.json()
    
    # 转换数据格式,方便后续计算均线(新手不用修改这部分代码)
    df = pd.DataFrame(history_data["data"], columns=["date", "open", "high", "low", "close", "volume"])
    # 将价格数据转换为数值类型,避免计算时出错
    df[["open", "high", "low", "close", "volume"]] = df[["open", "high", "low", "close", "volume"]].astype(float)
    
    # 计算20日均线(短期)和60日均线(长期),新手可修改timeperiod调整均线周期
    df["MA20"] = talib.SMA(df["close"], timeperiod=20)
    df["MA60"] = talib.SMA(df["close"], timeperiod=60)
    
    # ---------------------- 第二步:生成交易信号(金叉买入,死叉卖出,自动判断)----------------------
    # 初始化交易信号(0表示无信号,1表示买入,-1表示卖出,固定设定)
    df["signal"] = 0
    # 金叉:短期均线上穿长期均线,且前一天短期均线低于长期均线(触发买入)
    df.loc[(df["MA20"] > df["MA60"]) & (df["MA20"].shift(1) < df["MA60"].shift(1)), "signal"] = 1
    # 死叉:短期均线下穿长期均线,且前一天短期均线高于长期均线(触发卖出)
    df.loc[(df["MA20"] < df["MA60"]) & (df["MA20"].shift(1) > df["MA60"].shift(1)), "signal"] = -1
    
    # 打印回测结果(查看过去的交易信号是否有效,新手重点参考这部分)
    print("历史交易信号汇总(仅显示有信号的日期):")
    print(df[df["signal"] != 0][["date", "close", "MA20", "MA60", "signal"]])
    
    # ---------------------- 第三步:接入实时数据,监控交易信号(新手仅开启提醒,不自动交易)----------------------
    def on_message(ws, message):
        data = json.loads(message)
        # 获取实时收盘价、当前日期,用于判断信号
        current_close = data["price"]
        current_date = data["date"]
        # 模拟实时计算均线(这里简化处理,实际可结合历史数据实时更新,新手不用修改)
        # 重点:当实时价格触发金叉/死叉时,打印提醒,新手手动执行交易更稳妥
        # (重要提醒:本文仅为经验分享,不构成投资建议,实盘操作需谨慎)
        if df["MA20"].iloc[-1] > df["MA60"].iloc[-1] and df["MA20"].iloc[-2] < df["MA60"].iloc[-2]:
            print(f"【买入提醒】{current_date} | {data['name']} 触发金叉,实时价格:{current_close}")
        elif df["MA20"].iloc[-1] < df["MA60"].iloc[-1] and df["MA20"].iloc[-2] > df["MA60"].iloc[-2]:
            print(f"【卖出提醒】{current_date} | {data['name']} 触发死叉,实时价格:{current_close}")
    
    def on_open(ws):
        subscribe_msg = {
            "action": "subscribe",
            "token": api_token,
            "symbols": ["SH.600519"]  # 监控茅台的实时行情,可自行修改成其他股票代码
        }
        ws.send(json.dumps(subscribe_msg))
    
    # 启动实时监控,关闭终端即可停止
    ws = websocket.WebSocketApp("wss://api.itick.org/stock", on_open=on_open, on_message=on_message)
    ws.run_forever()

    三、总结

    不知不觉写了这么多,其实总结下来就一句话:新手入门量化交易,不用怕技术复杂,不用怕成本太高,用免费股票 API,从最简单的双均线策略入手,先搞定实时数据接入,再慢慢优化策略、熟悉模拟实盘,一步一个脚印,比盲目跟风、凭感觉交易靠谱太多。

    我自己就是这样过来的,从一开始连 API 是什么都不知道,到现在能熟练搭建简单的量化策略,实时监控多只股票的行情,虽然没有赚到大钱,但至少避开了以前的主观交易坑,交易心态也平稳了很多——其实量化交易的核心,从来不是“战胜市场”,而是“理解市场”,用纪律性约束自己的交易行为,克服贪心和恐慌,这也是我一直坚持的交易理念。

    温馨提示:本文仅供代码参考,不构成任何投资建议。市场有风险,投资需谨慎

    参考文档:https://blog.itick.org/stock-api/global-stock-market-realtime-quotes-for-quantitative-trading
    GitHub:https://github.com/itick-org/

    年纪大了,从二次元回归三次元再回归一次元。
    看看大家有没有推荐的精神食量。

    虽然感觉不爱看书的人会一直不爱看书,
    小时候娱乐匮乏的时候看完一个长篇漫画,
    会有一小段事件的回归现实的落差感,
    估计现在接触太多内容,
    很少会有这种感觉了把!

    希望万能的 v 友能多推荐书籍,
    路上 17 个小时呢,谢谢!

    每天凌晨三点,你的 OLAP 集群仍在空转。

    白天的查询高峰早已过去,但为了应对明天可能到来的流量洪峰,计算节点依然全量在线——只因传统架构无法做到“随用随停”。

    这不是个例。行业数据显示,当前主流 OLAP 系统的平均资源利用率不足 35%。换句话说,企业每在计算上投入 3 元,就有 2 元花在了“等待”和“空跑”上。更棘手的是,这种浪费并非源于管理疏忽,而是架构本身决定的:存算一体、静态规划、强耦合设计,让系统只能按“最坏情况”配置资源。

    在 AI 与实时决策驱动下,企业对 OLAP 系统的期待已从“能查”跃迁至“快、稳、省、易用”。然而,传统 OLAP 架构深陷四大困局:资源僵化、隔离薄弱、成本失控、运维繁重——其静态、耦合、运维密集的设计,已无法匹配动态业务的真实需求。

    破局之道在于重新定义 OLAP 的资源供给方式。而这一方向,早在云原生演进初期就已被预见。

    2019年,UC Berkeley 在论文《A Berkeley View on Serverless Computing》中极具前瞻性地预言:Serverless 将成为云时代默认计算范式。

    • 极致弹性:系统能够根据业务负载自动、无缝地进行扩容和缩容,甚至可以在没有负载时缩容至“零”,彻底消除资源规划的难题。
    • 按需付费:用户只为代码实际运行所消耗的资源付费,代码未运行时不产生任何费用,从根本上杜绝了资源闲置浪费。
    • 资源隔离:提供灵活而强大的资源隔离能力,有效解决性能抖动、故障传染等风险,保障多租户环境下的系统稳定性。
    • 免运维:将基础设施的建设、管理和运维等繁琐工作下沉到平台提供者,用户无需再关注硬件维护、软件升级等非业务核心工作,从而聚焦于创造价值。

    基于 Serverless 的四大支柱,阿里云 Hologres 进一步提出‘Down to Zero’理念,将抽象原则转化为可落地的 OLAP 新范式。

    Down to Zero理念:下一代OLAP的技术基石与实现

    阿里云 Hologres 提出 “Down to Zero” 理念,以 Serverless OLAP 架构实现范式级突破:成本趋零浪费、算力趋零等待、体验趋零摩擦、运维趋零负担。这不仅是优化,而是一次范式级重构。

    • 成本趋零浪费:成本趋近于零浪费,只为实际使用的计算力付费,资源闲置趋零,将可变成本降至极致。
    • 算力趋零等待:瞬间获取海量算力应对峰值,算力用于有效分析,业务无需提前数月规划硬件。
    • 体验趋零摩擦:用户“点击即得”的即时洞察分析体验成为常态,同时查询延迟、调度延迟、启动延迟均趋零,实现“零延迟”。
    • 运维趋零负担:基础设施管理复杂性大幅降低,团队聚焦业务价值,无需容量规划、版本升级、故障恢复。

    “Down to Zero”如何落地?阿里云Hologres的实践路径

    为了实现 Down to Zero 的目标和核心价值,让大数据 OLAP 分析回归“按需而动”的本质,Hologres 推出了名为 Serverless Computing 的云原生解决方案,帮助企业实现计算资源如水电般按需取用,它不仅是企业驱动智能决策的智能引擎的技术架构革新,更是一场算力供给范式的革命性突破。

    • Serverless Computing 资源池:大查询、ETL 自动卸载至共享池,实现负载隔离与冷启动“零延迟”。
    • Adaptive Serverless Computing:AI 自动识别大查询、高负载场景,智能路由至弹性资源,无需人工干预。
    • Serverless 型实例:彻底取消预留计算资源,100% 按需取用,真正实现“零持有成本”。

    Serverless型实例:让OLAP分析回归“按需而动”的本质

    Serverless 型实例,帮助企业实现计算资源如水电般按需取用,从固定支出转向波动可控的“分析即服务”模式,从“人等资源”到“资源随想随用”,从“资源枷锁”到“业务赋能”,进化到全员数据探索的常态。

    Serverless 型实例核心组件包括:

    计算层:

    • 接入节点:免费赠送。负责连接实例、估算请求所需的资源量、发送请求到
    • Serverless 资源池等。Serverless Computing 资源池:可用区级别共享的计算资源池,负责执行用户的请求,按请求单独调度资源。

    存储层:

    • Hologres 独享存储:基于 Alibaba Pangu 存储服务构建,提供高性能、高可靠、高可用、低成本、弹性的存储空间及强大稳定安全的系统服务。

    Hologres Serverless 型实例不再预留任何计算资源,根据业务不断波动的负载需求完全使用远端的 Serverless Computing 资源池,做到真正的“零计算资源”持有成本,100%的即用即取,即用即释放。

    Hologres Serverless 型实例以零计算资源持有成本、零闲置成本、无限弹性边界、零运维负担等实现分析算力的弹性爆发,进一步极致的诠释着 Down to Zero 的成本趋零浪费、算力趋零等待、体验趋零摩擦 、运维趋零负担的核心价值,让 OLAP 分析回归“按需而动”的本质,将算力转化为竞争力,把业务价值交还给用户。

    上述能力并非孤立存在,而是构建于一套完整的 Serverless OLAP 架构蓝图之上。

    一个优秀的 Serverless OLAP 系统 是通过存算分离架构和计算组核心抽象,深度融合了自动弹性、分时弹性、无损弹性伸缩、Query Queue、自动限流、Down to Zero (Serverless Computing、Adaptive Serverless Computing、Serverless 型)等六大核心能力,构建了一个极致弹性、极致隔离、免运维、稳定可靠且高性价比的实时分析平台,将算力转化为竞争力,让OLAP分析回归“按需而动”的本质。

    Serverless OLAP 的本质是让算力供给隐形化,将基础设施转化为具备商业意识的数字伙伴。当资源使用变得如呼吸般自然,当每焦耳能耗都转化为洞察价值,“Down to Zero”便被赋予全新内涵,从技术理想升维为商业哲学,最终数据智慧在“Down to Zero”的管道中自由奔涌。

    阿里云Hologres团队作为国内Serverless OLAP的先行者,以五年躬身探索为基石,撰写万字实战沉淀,首发《Down to Zero, Serverless OLAP 技术白皮书》。这本聚焦“Down to Zero”理念,直击传统 OLAP 成本高、弹性差、运维重等核心痛点,提出下一代分析引擎新范式——让算力按需爆发,资源归零无负担。

    网格线是 Excel 工作表中用于区分单元格的浅色线条。有了网格线,用户可以清晰地看到每个单元格的边界,从而更有条理地阅读和处理数据。但在某些场景下,网格线反而会影响整体观感。本文将介绍如何使用 Spire.XLS for .NET 通过代码的方式显示、隐藏或移除 Excel 工作表中的网格线。

    安装 Spire.XLS for .NET

    首先,你需要将 Spire.XLS for .NET 包中包含的 DLL 文件添加为 .NET 项目的引用。你可以通过下载安装包获取 DLL 文件并手动引用,或者直接通过 NuGet 安装该库。

    PM> Install-Package Spire.XLS

    在 Excel 中隐藏或显示网格线

    具体操作步骤如下:

    1. 创建一个 Workbook 对象。
    2. 使用 Workbook.LoadFromFile() 方法加载示例 Excel 文件。
    3. 通过 Workbook.Worksheets[] 属性获取指定的工作表。
    4. 使用 Worksheet.GridLinesVisible 属性来设置该工作表中网格线的显示或隐藏。
    5. 调用 Workbook.SaveToFile() 方法保存生成的结果文件。

    具体示例代码如下:

    using Spire.Xls;
    
    namespace RemoveGridlines
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 创建一个 Workbook 对象
                Workbook workbook = new Workbook();
    
                // 加载示例 Excel 文档
                workbook.LoadFromFile(@"E:\Files\Test.xlsx");
    
                // 获取第一个工作表
                Worksheet worksheet = workbook.Worksheets[0];
    
                // 隐藏指定工作表中的网格线
                worksheet.GridLinesVisible = false;
    
                // 显示指定工作表中的网格线
                //worksheet.GridLinesVisible = true;
    
                // 保存文档
                workbook.SaveToFile("Gridlines.xlsx", ExcelVersion.Version2010);
            }
        }
    }

    申请临时许可证

    如果你希望移除生成文档中的评估提示信息,或解除功能使用限制,请申请一个 有效期为 30 天的临时许可证。

    摘要:
    印尼征信局推进系统现代化时,遭遇合规成本高企、数据架构承压、服务效率偏低的三重技术挑战,传统架构难以适配业务发展需求。其采用 OceanBase 原生分布式数据库为核心的技术方案,依托在线弹性扩展、混合负载引擎、内置合规特性、全链路本土服务四大技术要点,针对性破解各维度瓶颈,实现了技术层面的核心突破,为征信系统的升级优化筑牢了关键技术基础。

    印尼是东南亚最具活力的数字经济体之一,健全高效的征信体系是其保障金融稳定、促进负责任信贷及推动数字化可持续增长的关键基石。作为印尼头部私营征信机构,印尼征信局(Credit Bureau Indonesia,简称 CBI) 管理着超过 1 亿人口的基础征信数据,并致力于整合电信、电商等领域的海量信息,承担着数据归集、治理与服务输出的重要职责。然而,传统技术架构已成为其提升可扩展性与业务效率的主要障碍。

    依托 OceanBase 原生分布式数据库核心技术及全链路本地化服务能力,OceanBase 成功帮助 CBI 实现了业务效率与服务质量的跨越式升级。

    此次合作不仅有力推动了印尼征信局的业务革新,也标志着 OceanBase 在全球强监管、大体量数据的复杂场景中获得了成功验证。这既是 OceanBase 分布式数据库技术出海的重要里程碑,也为该技术在更广泛场景中的应用提供了实践典范。

    合规、数据与服务:印尼征信局系统现代化的三大技术挑战

    作为印尼数字金融生态的关键数据枢纽,印尼征信局的运营效率直接影响着金融机构业务的及时开展。然而在系统升级前,其在合规、数据与服务三个关键层面均面临显著瓶颈,持续制约着业务响应能力与创新速度。

    01合规成本高企:满足严格监管的沉重负担

    印尼金融服务管理局(Otoritas Jasa Keuangan, 简称 OJK) 为征信场景建立了严格的监管框架,明确要求私营征信机构必须实现私有化部署、构建双活/多活容灾架构,并对数据中心基础设施进行独立运维。与此同时,在数据访问控制、全生命周期治理及操作审计留痕等方面,OJK 亦执行强制性标准。然而,这套组合性要求为运营机构带来了巨大的合规挑战。

    02数据洪流冲击:持续增长下的架构瓶颈

    印尼征信局不仅管理着海量核心信用数据,还需处理日益多样化的数据集。定期数据报送成为常态,数据规模持续增长。原有数据库架构在应对持续的数据洪流时,其存储效率、实时处理能力与大规模检索性能均面临着严峻考验。

    03响应限制业务:低效服务制约市场效率

    图片在系统升级前,印尼征信局核心信用报告 API 的响应效率存在明显瓶颈,难以持续支撑金融机构与数字平台对实时数据服务的业务需求。此外,其现有的开源架构存在运维复杂、维护成本高、扩展性受限等问题,叠加本地团队在分布式数据库管理方面经验尚浅等因素,迫切需要对现有技术体系进行升级。

    破局三重困境:OceanBase 重塑印尼征信核心系统

    为破解上述合规、数据与效能瓶颈 ,印尼征信局采用了以 OceanBase 原生分布式数据库为核心的技术方案。该方案主要从以下四个层面针对性地解决了原有瓶颈:

    01以弹性扩展能力承接数据持续性增长

    OceanBase 具备在线无缝扩容能力,无需传统复杂的分库分表操作,即能灵活应对数据量的持续增长与高并发访问需求,在保障服务零中断的同时,实现资源的按需调配与高效利用。

    02以混合负载引擎保障服务低延迟

    凭借一体化分布式架构,OceanBase 可同时高效处理批量写入与实时查询相混合的业务负载。无论是内部批量报送,还是外部高并发信用查询,系统均能保持稳定低延迟,全面保障征信服务的实时性与可靠性。

    03以内置合规特性降低部署与运维成本

    方案严格遵循 OJK 对私有化部署、多活容灾及全链路审计的强制要求进行构建。同时,通过高效存储与资源弹性机制,在满足强监管要求的同时,实现基础设施成本的整体优化。

    04以全链路本土服务赋能团队长效运维

    OceanBase 提供从方案设计、部署上线到知识转移的全周期本地化服务,旨在系统性提升印尼征信局技术团队的自主运维与管理能力。

    升级核心成效:服务、成本与创新框架的三重提升

    完成与 OceanBase 的核心系统升级后,印尼征信局在服务性能、成本控制及业务拓展三大维度实现系统性突破,整体服务能力迈上新台阶:

    01服务性能实现跨越式飞跃

    面对征信业务固有的高并发请求压力,OceanBase 助力印尼征信局将核心信用服务的响应时间稳定在低毫秒级,系统吞吐能力与并发稳定性大幅提升,推动其服务标准直接对标国际金融级实时数据服务水准。

    02运营效率与成本结构同步优化

    新架构支撑下的无缝弹性扩展,保障了业务持续稳定运行;结合 OceanBase 的高效数据压缩技术,印尼征信局的存储成本显著降低。通过完整的本地化技术赋能与培训,其技术团队的自主运维能力与效率也获得大幅提升。

    03业务创新框架获得坚实支撑

    图片依托稳定可靠的技术底座,印尼征信局已启动面向个人消费者的信用报告 APP 及中小企业信用服务平台两项新业务线的研发。此次合作不仅实现了系统升级,更成为印尼征信局推进业务多元化、加速信用服务体系在印尼乃至东南亚市场拓展的重要支撑。

    让原生分布式数据库从中国实践走向全球舞台

    OceanBase 与印尼征信局的成功合作,不仅完成了分布式数据库在全球强监管金融征信场景的成熟落地验证,更构建了“技术架构适配+全链路本地化服务+生态协同共建”的可复制数据库能力出海模式。作为 OceanBase 全球化战略的关键突破点,该案例成功打通印尼乃至东南亚市场的准入通道,为后续服务更多区域金融机构、征信主体奠定了坚实的技术与品牌基础。

    未来,OceanBase 将持续以技术创新为核心驱动力,深化全球化布局与本地化服务能力建设,助力更多海外企业突破数据管理架构瓶颈;同时依托中国自主研发的分布式数据库技术,为全球数字基础设施建设提供高效、稳定、安全的核心支撑,推动分布式数据库基础软件全球化发展进入新阶段。

    欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

    在 AGI(通用人工智能)爆发的今天,AI 应用如雨后春笋般涌现。对于开发者而言,这既是最好的时代,也是最“贵”的时代。

    部署 LLM(大语言模型)、Stable Diffusion 等 AI 应用时,我们往往面临一个两难的选择:

    • 要速度(预留模式):为了毫秒级 - 秒级的响应,必须长期通过预留模式持有 GPU 实例,但昂贵的空置成本让人心痛。
    • 要省钱(按量模式):为了节省成本选择按量付费,但 GPU 实例的创建和模型加载带来的漫长“冷启动”延迟,又严重伤害用户体验。

    难道性能与成本真的不可兼得?

    阿里云函数计算(Function Compute)推出的CPU 和 GPU 实例浅休眠功能,正是为了打破这一僵局而来。它让实例学会了“浅休眠”,在保留热启动能力的同时,极大降低了实例的闲置成本

    本文将带你深入技术后台,揭秘GPU实例浅休眠这一功能是如何从 0 到 1 实现的。

    什么是 GPU 实例浅休眠?给显卡按下“暂停键”

    在开启浅休眠功能后,当没有请求时,GPU 实例并不会被销毁,而是进入一种“休眠”状态。

    此时,实例依然存在,但 CPU 和 GPU 的计算资源被挂起,用户只需支付极低的休眠费用(约为活跃实例费用的10%-20%,CPU不计费,具体见计费文档

    当请求再次到来时,系统会瞬间“解冻”实例,毫秒-秒级恢复计算能力(视模型大小)。

    技术揭秘:如何实现 GPU 的“浅休眠”?

    在容器技术中,实现 CPU 的暂停(Pause)相对成熟且容易,但要给正在显存中跑着几个 G 大模型的 GPU 做暂停,技术挑战极大。我们通过三项关键技术,实现了对 GPU 资源的精细化管理。

    1. 显存状态的“迁移”

    传统释放 GPU 资源的方式意味着销毁实例,下次使用必须经历完整的冷启动(启动容器、加载模型)。为了解决这个问题,我们设计并实现了显存数据的迁移(Migration)机制

    • 休眠阶段:当实例空闲时,系统会将 GPU 显存中的所有数据(包括模型参数、中间状态等)完整迁移至外部存储保存。
    • 唤醒阶段:当新请求到达时,系统会迅速将存储中的数据回迁至 GPU 显存并重建状态,将实例恢复至休眠前的状态。

    这一过程避免了重复的模型加载,确保实例始终处于待命状态。

    2. 驱动层的透明兼容

    为了让用户无需修改代码即可使用该功能,我们选择在底层进行技术突破。

    FC GPU 实例做到了对框架无感。这意味着,无论是 PyTorch 还是 TensorFlow,现有的 AI 应用无需任何代码改造,即可直接具备浅休眠能力。

    3. 基于请求的自动化调度

    有了“浅休眠”能力后,还需要解决“何时休眠、何时唤醒”的调度问题。依托函数计算以请求为中心的架构优势,我们实现了全自动化的资源管控。

    平台天然感知每个请求的生命周期:

    • 请求到达:系统自动触发解冻流程,毫秒级唤醒 GPU 执行任务。
    • 请求结束:系统自动触发冻结流程,释放 GPU 算力。

    整个过程由平台自动托管,用户无需配置复杂的伸缩策略,即可实现资源的按需分配与极致利用。

    浅休眠唤醒性能

    性能是用户最关心的指标。我们以 ComfyUI + Flux 的文生图场景为例进行了实测:

    GPU 实例从“浅休眠”唤醒的耗时仅约为 500 毫秒 - 2 秒(视模型大小不同而略有差异)。

    考虑到整个文生图生成过程通常持续数十秒,这 1-2 秒的延迟对于用户体验的影响极为有限,不足以降低用户感知的流畅性,却能换来显著的成本下降。

    真实案例:某 OCR 业务降本 70% 实录

    深圳某科技公司主要业务是从专利文本中提取信息,使用 OCR 模型。他们的业务痛点非常典型:

    1. 启动耗时长:容器启动+加载模型+私有数据 OCR识图,全套下来要十几秒
    2. 流量难以预测:请求来去无法预判,“按量模式”的冷启动耗时长无法满足业务延迟需求。如果使用预留实例,大部分时间 GPU 都在空转出现了浪费。

    开启 GPU 实例浅休眠后:

    • 启动延迟明显减少,请求到达后能快速响应;
    • 日常使用成本大幅下降;
    • 服务稳定性不受影响,用户体验保持良好。

    整体成本节省接近 70%。

    如何使用

    开启方式非常简单,函数计算产品控制台已默认支持该功能:

    1. 进入函数的【弹性配置】页签。
    2. 设置【弹性实例】的数量。

    1. 系统将自动激活GPU实例的浅休眠功能。

    计费逻辑

    • 请求执行时:全额收费。
    • 无请求执行时:自动切换至浅休眠计费(GPU 资源视卡型收取 10%-20% 的费用,CPU 不收费

    结语:Serverless AI 的新范式

    Serverless 的核心理念是“按需付费”,而 GPU 昂贵的持有成本一直是阻碍 AI 全面 Serverless 化的大山。

    函数计算 CPU 和 GPU 实例均全面支持浅休眠能力。无论是高算力的 AI 推理(GPU),还是通用的计算任务(CPU),函数计算全系实例均致力助您在 Serverless 的道路上实现极致的降本增效。

    想要降本?现在就是最好的时机。

    了解更多

    FunctionAI 是阿里云推出的一站式 AI 原生应用开发平台,基于函数计算 FC的 Serverless 架构,深度融合 AI 技术,为企业提供从模型训练、推理到部署的全生命周期支持。

    通过 Serverless 架构的弹性特性与智能化资源管理,显著降低 AI 应用的开发复杂度与资源成本,助力企业快速实现 AI 落地。

    1. 开发效率提升:无需关注底层资源,开发者可专注于业务逻辑,模型一键转换为 Serverless API。
    2. 弹性资源调度:按需付费 + N 分之一卡资源分配(如 1/16 卡),GPU 部署成本降低 90% 以上。
    3. 免运维特性:实例闲置时自动缩容至 0,资源利用率优化 60%,实现业务运维转型。

    快速体验 FunctionAI:https://cap.console.aliyun.com/explore

    在AI技术狂飙突进的今天,AI Agent(智能体)已成为最受瞩目的技术范式之一。从ChatGPT的“对话助手”到AutoGPT的“任务执行者”,从单一功能工具到复杂场景的“决策中枢”,AI Agent的进化不仅重塑了人机协作模式,更在重新定义“智能”的边界。本文将从技术演进、核心挑战、未来趋势三个维度,探讨AI Agent的进化之路。

    一、AI Agent的进化阶段:从“被动响应”到“自主决策”
    AI Agent的进化并非一蹴而就,而是经历了从工具化到自主化的渐进式突破。我们可以将其划分为四个阶段:

    1. 基础工具阶段:被动响应,单一任务
      代表产品:早期Siri、Alexa、规则引擎
      特点:基于预设规则或简单NLP模型,仅能完成单一任务(如查询天气、设置闹钟),缺乏上下文理解与自主学习能力。
      局限:依赖人工定义规则,无法处理复杂或模糊指令,泛化能力弱。
    2. 任务自动化阶段:多步骤执行,简单推理
      代表产品:AutoGPT、BabyAGI、HuggingGPT
      特点:通过链式思维(Chain-of-Thought, CoT)与工具调用(Tool Use),将复杂任务拆解为子步骤,并自主调用外部API(如搜索引擎、计算器)完成目标。
      突破:从“单轮对话”到“多轮任务执行”,具备初步的逻辑推理能力。
      局限:依赖外部工具链,长周期任务易出错,缺乏对环境变化的动态适应。
    3. 环境感知阶段:多模态交互,实时决策
      代表产品:Google的SIMA、OpenAI的GPT-4o、Figure 01机器人
      特点:整合视觉、语音、传感器等多模态输入,在物理或虚拟环境中实时感知并决策(如机器人操作、自动驾驶)。
      突破:从“文本世界”迈向“真实世界”,具备空间理解与动态响应能力。
      挑战:多模态数据融合、实时性要求、硬件协同设计。
    4. 自主进化阶段:长期记忆,自我优化
      代表方向:Self-Improving AI Agent、具身智能(Embodied AI)
      特点:通过长期记忆(Long-Term Memory)存储历史经验,结合强化学习(RL)或元学习(Meta-Learning)实现自我优化,甚至具备目标驱动的自主规划能力。
      愿景:从“执行指令”到“主动创造价值”,成为真正的“数字伙伴”。
      核心挑战:记忆效率、安全对齐、可解释性。

    二、AI Agent进化的核心驱动力
    AI Agent的跨越式发展,离不开以下关键技术的突破:

    1. 大语言模型(LLM)的“思维链”升级
      CoT(Chain-of-Thought):通过分步推理提升复杂任务处理能力(如数学解题、代码生成)。
      ToT(Tree-of-Thought):引入树状搜索,探索多条推理路径并选择最优解。
      ReAct(Reason+Act):结合推理与行动,在动态环境中实时调整策略。
    2. 多模态感知与交互
      视觉-语言模型(VLM):如GPT-4V、FLAMINGO,实现图像/视频与文本的联合理解。
      具身智能(Embodied AI):通过机器人或虚拟化身,在物理世界中感知与操作(如Figure 01的“端茶倒水”)。
    3. 长期记忆与上下文学习
      向量数据库(Vector DB):如Pinecone、Chroma,高效存储与检索历史经验。
      检索增强生成(RAG):结合外部知识库,提升回答的准确性与时效性。
      记忆压缩技术:如RecurrentGNN,在有限资源下维护长期上下文。
    4. 自主规划与强化学习
      蒙特卡洛树搜索(MCTS):如AlphaGo的决策框架,探索未来可能性。
      层次化强化学习(HRL):将复杂任务分解为子目标,提升学习效率。
      安全对齐(Alignment):通过RLHF(人类反馈强化学习)确保Agent行为符合人类价值观。

    三、AI Agent的未来挑战与方向
    尽管AI Agent已取得显著进展,但距离真正的“自主智能”仍有漫长道路。以下是未来需突破的关键方向:

    1. 从“短周期任务”到“长周期规划”
      挑战:当前Agent多擅长分钟级任务(如写邮件),但难以处理跨天、跨周的复杂项目(如旅行规划、科研实验)。
      方向:结合世界模型(World Model)模拟未来状态,实现多步前瞻性规划。
    2. 从“单一Agent”到“多Agent协作”
      挑战:复杂场景需多个Agent分工协作(如医疗诊断中的影像分析、病历整理、治疗方案生成)。
      方向:研究多Agent系统(MAS)的通信协议与冲突解决机制。
    3. 从“虚拟世界”到“物理世界”
      挑战:具身智能需解决硬件可靠性、实时感知、能源效率等问题。
      方向:轻量化模型、边缘计算、仿生机器人设计。
    4. 从“技术突破”到“伦理安全”
      挑战:自主Agent可能引发失控风险(如金融交易、军事决策)。
      方向:构建可解释AI(XAI)、紧急停止机制与伦理审查框架。

    四、开发者如何参与AI Agent进化?
    AI Agent的未来属于开发者。无论是研究算法、构建工具链,还是探索应用场景,都有大量机会:
    算法层:优化CoT/ReAct框架、探索新型记忆机制、设计安全对齐方法。
    工具层:开发Agent开发框架(如LangChain、AutoGPT)、多模态数据管道、向量数据库。
    应用层:探索企业自动化(如RPA+AI Agent)、个人助手(如AI Agent+智能家居)、教育娱乐(如AI NPC)。

    结语:AI Agent,智能的下一站
    AI Agent的进化,本质上是人类对“通用智能”的持续探索。从被动工具到自主伙伴,从执行指令到创造价值,这一过程不仅需要技术突破,更需跨学科的协作与伦理的约束。
    未来已来,只是尚未均匀分布。 如果你对AI Agent充满热情,不妨从今天开始:
    尝试用LangChain构建一个简单的任务执行Agent;
    关注多模态大模型的最新进展(如GPT-4o、Gemini);
    思考AI Agent如何解决你所在领域的实际问题。
    智能的进化,终将由你我共同书写。 🚀

    (欢迎在评论区分享你的AI Agent实践或思考!)

    在大数据分析的过程中,海量数据的处理与分析往往是决定最终结果质量的关键。而IP地址作为互联网通讯中每个设备的“身份证”,包含了大量与用户位置、行为、需求等相关的关键信息。对于企业和开发者来说,了解并高效查询这些IP数据,可以帮助他们在众多应用场景中实现精准分析。
     
    例如,在广告投放中,了解IP归属地能够实现精准的地域定向,提高广告的转化率;在安全防护中,IP归属地能够帮助识别可疑用户和潜在威胁,有效提升防御能力;而在网站优化过程中,通过IP地址的归属地查询,可以为不同地区的用户提供定制化内容,提升用户体验。

    image.png
     

    一、IP归属地查询在大数据分析中的实际应用

    1. 广告投放与市场分析

    在进行广告投放时,基于IP地址的归属地查询是实现精准营销的基础。通过查询用户的IP归属地,广告商可以分析用户的地理位置,进而制定更加精确的广告投放策略。比如,一个电商平台可以根据用户的IP地址,精准推送符合当地市场需求的广告内容,从而提高广告的转化率,减少广告浪费。
     

    2. 网络安全与风险管理

    在大数据分析中,IP地址归属地查询对于网络安全管理至关重要。通过对大量用户IP的归属地进行实时分析,企业能够发现潜在的安全威胁。比如,来自于海外的IP访问可能意味着潜在的网络攻击,而对于敏感数据的访问,也可以通过分析IP归属地来判断是否为正常用户请求。这样,企业就能快速识别并阻止不合规的访问请求,保护网络安全。
     

    3. 网站优化与本地化服务

    网站本地化是提升用户体验的有效手段。通过对用户IP的归属地查询,可以为不同地区的用户展示量身定制的内容。例如,针对北美用户推送英语内容,针对亚洲用户推送本地语言内容,不仅提升用户的浏览体验,还能提高网站的访问时长和用户粘性。
     

    4. 数据质量监控与反欺诈

    数据质量的管理是大数据分析中的一项重要工作。IP归属地查询可以帮助开发者识别虚假数据,特别是在反欺诈和风控场景中,准确地识别用户的IP地址,可以及时发现欺诈行为,避免不法分子通过虚假IP地址绕过系统审核。通过精准的IP归属地查询,企业能够有效监控和清理虚假数据,提升数据质量,确保大数据分析结果的可信度。
     

    二、如何高效处理海量IP查询?

    随着数据量的不断增加,如何高效地查询海量IP地址成为了一个亟待解决的挑战。传统的手动查询方式不仅效率低下,而且可能带来数据不准确、延迟等问题。为此,企业和开发者需要借助高效的IP查询工具,自动化批量查询大量IP地址的归属地,并对结果进行进一步的数据分析和处理。
     
    在此过程中,IP数据云作为一种强大的IP地址查询工具,提供了灵活的API接口和强大的查询能力,能够支持开发者快速高效地查询海量IP数据。我们将IP查询集成到应用中,轻松实现了海量数据的归属地查询,大大提高了数据分析的效率。
     

    三、IP数据云的优势与应用案例

    市场上有许多优秀的IP查询服务提供商,在经历了多次使用测试后,我们最终选择了IP数据云作为我们的核心IP地址查询工具。
     

    精准性与数据全面性

    相比其他工具,IP数据云的IP归属地查询不仅涵盖了IP地址的具体地理位置,还能提供详细的运营商信息、ASN、IP风险评分等多维度数据。这些丰富的查询结果让我们能够更加全面地了解每一个IP的背景,避免了单一数据源可能带来的片面性和误差。
     

    实时性和更新频率

    随着全球化业务的开展,我们需要实时查询和更新海量IP数据。IP数据云的数据更新非常迅速,能够为我们提供最新的IP归属地信息和动态变化,确保我们的分析结果始终是准确的。
     

    灵活的API接口

    IP数据云简单易用的API接口,不仅让我们能够高效地批量处理IP数据,还能根据业务需求灵活定制查询功能,极大地提高了我们的工作效率。

    image.png

    因此,在集成了IP数据云的服务后,我们团队进行跨国电商平台的用户数据分析变得更简便高效,也为区域性广告投放和市场分析提供了坚实的依据。我们通过查询不同地区用户的IP,得到了他们的地理位置、网络运营商等信息,这为我们定制广告内容提供了精准依据。特别是在全球化布局中,通过IP数据云,我们可以确保每个地区的用户看到符合其文化背景和需求的广告内容,从而提高了广告的点击率和转化率。
     
    此外,在进行用户安全性分析时,IP数据云的风险评分功能帮助我们识别了潜在的欺诈行为。我们根据IP地址的风险评分,及时发现了多个异常IP,并采取了相应的安全防范措施,有效避免了不法分子的攻击。这一过程极大地增强了我们平台的安全性,减少了可能带来的损失。经过多次实践,我们深刻体会到它在大数据分析中的不可或缺性,成为了我们数据分析和安全防护的得力助手。
     

    四、总结与展望

    在大数据分析的场景中,IP地址归属地查询是一项重要的技术支撑,能够帮助企业和开发者在广告投放、网络安全、数据质量监控等方面实现精准分析。通过使用像IP数据云这样的IP查询工具,能够大大提升大数据分析的效率和精度,帮助用户从海量数据中提取有价值的信息。

    随着技术的不断进步,未来IP查询将更加智能化、自动化,能够为更多行业和场景提供精准的数据支撑。希望企业和开发者能够充分利用IP地址查询技术,在大数据分析中获得更多的洞察与价值。