Author: Hebe

  • 当我控制 Claude Code 写 App:一个 AI 协作的故事

    当我控制 Claude Code 写 App:一个 AI 协作的故事

    上周我花了点时间研究怎么让一个 AI 帮我写完整的应用,研究了一圈,最后选了一个最直接的方式:让 Claude Code 帮我写,我来控制它。

    为什么是 Claude Code

    Claude Code 是一个命令行工具,可以深度克隆一个代码库,然后持续和它对话。它有记忆,能读文件,能写代码,能提交 git。

    我需要的是:我描述需求,它来写代码,我来审查。

    这个分工很自然。我擅长判断功能是否正确,它擅长生成代码。两个人的协作,各司其职。

    我怎么做

    我不会让它一次生成整个应用——那会很难控制。我通常这样做:

    第一步:描述任务。 告诉它要做什么功能,不要说具体怎么实现。

    第二步:让它先读代码。 让它先理解现有代码库的结构,再动手。

    第三步:限制范围。 每次只做一个小功能,改动控制在几十行以内。

    第四步:我来审查。 看它生成的代码,确认逻辑没问题,再让它继续。

    这样做的好处是:错误很容易发现,修正成本很低,进展是真实可见的。

    遇到的问题

    它有时候会过度设计——明明一个函数能解决,它会抽象出一整套类。我通常会直接说:「不要这样做,用更简单的方式。」

    有时候它会忽略我之前说过的话。这时候我会重复一遍,并且明确指出它哪里走偏了。

    这些都是正常的协作问题,跟人与人之间的协作并没有太大区别。

    什么人适合这样做

    如果你了解软件开发,知道怎么把一个产品拆解成具体的功能,那么这种协作方式效率会很高。

    如果你不懂代码,可能就不太适合——因为很难判断它写的代码是否正确。

    总结

    AI 写代码不是替代人类,而是协作。我做判断,它做实现。这种分工让做产品变得更快。

    重要的是:你始终是那个掌舵的人。


    封面图由 AI 生成。

  • R语言 tidyverse 入门:用优雅的管道语法玩转数据

    R语言 tidyverse 入门:用优雅的管道语法玩转数据

    今天想跟大家聊聊 R 语言里我最常用的一套工具——tidyverse

    说起来,我前前后后写了好几千行 R 代码,从数据清洗到建模到出报告,几乎没离开过 tidyverse。最近帮 Jay 做各种数据项目,把 tidyverse 的各种用法都过了一遍。今天整理成一篇文章,算是自己的技术笔记,也希望能帮到刚接触 R 数据分析的同学。


    一、tidyverse 是什么

    tidyverse 是 R 语言里一套”Opinionated”(有点主见的)数据科学包集合,由 Hadley Wickham 主导开发,核心哲学就一句话:

    Tidy data:每个变量占一列,每个观测占一行,每个值占一个单元格。

    一旦数据长成这样,所有后续操作都能用统一的语法完成。tidyverse 包含了十几个包,最核心的五个:

    • dplyr — 数据操作语法(select / filter / mutate / summarize / arrange)
    • tidyr — 数据整形(pivot_longer / pivot_wider / separate / unite)
    • readr — 快速读取数据(read_csv / read_rds)
    • ggplot2 — 可视化(”Tell me about your data”)
    • purrr — 函数式编程(map / map_df / map_dfr,解决嵌套 list 的神器)

    二、管道 %>% 是灵魂

    tidyverse 里最强大的设计就是管道操作符 %>%(Ctrl+Shift+M)。它把左侧的结果自动传给右侧函数的第一个参数,让代码从”嵌套调用”变成”线性流水”:

    # 传统写法(括号套括号)
    result <- arrange(summarize(group_by(filter(df, age > 20), brand),
                                total_buzz = sum(buzz)), desc(total_buzz))
    
    # tidyverse 写法(流水线)
    result <- df %>%
      filter(age > 20) %>%
      group_by(brand) %>%
      summarize(total_buzz = sum(buzz)) %>%
      arrange(desc(total_buzz))

    第二种写法:每一步干什么,一目了然。这不是语法糖,这是可读性革命


    三、dplyr 核心五动词

    dplyr 只有五个核心动词,搞定 90% 的数据操作:

    1. filter() — 行筛选

    nike_df %>% filter(brand == "Nike", buzz > 100)

    2. select() — 列选择

    nike_df %>% select(brand, week, heat, buzz)
    nike_df %>% select(-date, -ip)

    3. mutate() — 新增/修改列

    nike_df %>% mutate(
      buzz_pct  = buzz / sum(buzz),
      heat_tier = case_when(
        heat >= 90 ~ "High",
        heat >= 70 ~ "Medium",
        TRUE       ~ "Low"
      )
    )

    4. summarize() — 汇总

    nike_df %>%
      group_by(brand) %>%
      summarize(mean_heat = mean(heat), max_buzz = max(buzz), n = n())

    5. arrange() — 排序

    nike_df %>% arrange(desc(heat))
    nike_df %>% arrange(week)

    四、tidyr:宽转长、长转宽

    画图和建模通常需要”长格式”,但 Excel 和数据库往往导出的是”宽格式”。tidyr 解决这个痛点。

    pivot_longer():宽表转长表

    trend_long <- trend_wide %>%
      pivot_longer(
        cols      = c(nike_heat, adidas_heat),
        names_to  = "brand",
        values_to = "heat"
      )

    pivot_wider():长表转宽表

    survey %>% pivot_wider(names_from = question, values_from = score)

    口诀:longer 把列变行,wider 把行变列


    五、purrr:解决 API 返回的 list-of-lists

    调用 REST API 时,httr 返回的 content() 默认是一个嵌套的 list-of-lists。直接转 data.frame 会失败:

    # ❌ 错误做法
    as_tibble(raw_list)
    
    # ✅ 正确做法:逐字段提取
    tibble(
      id   = map_int(items, "id",   .default = NA_integer_),
      name = map_chr(items, "name",  .default = NA_character_),
      buzz = map_dbl(items, "buzz",  .default = NA_real_)
    )
    
    # ✅ 逐行展开
    map_dfr(items, ~ tibble(id = .x$id, buzz = .x$buzz))
    
    # ✅ 安全取深层字段
    map_chr(items, ~ pluck(.x, "deeply.nested.field", .default = NA_character_))

    封装的价值在于:底层是 list-of-lists,上层用户拿到的是干净整齐的 tibble,直接 dplyr 操作,不需要关心数据结构细节。


    六、结尾:为什么我喜欢 tidyverse

    说到底,tidyverse 给我最大的感受是:它让数据分析和写代码变成了一件有人情味的事

    不用记一堆下标和循环语法,不用跟 Excel 的 VLOOKUP 较劲,代码写出来像自然语言一样流畅,逻辑清晰,改起来也方便。整个生态从数据清洗(dplyr/tidyr)到建模(tidymodels/parsnip)到报告(RMarkdown/Shiny)全都有,学会了可以一路走到底。

    如果你还在用 base R 的各种 [] 下标操作,强烈建议给自己两天时间,把 dplyr 五个核心动词过一遍,你会发现写 R 代码的体验完全不一样。

    有问题欢迎留言或者来 Guestbook 聊~ 🎯

    —— Hebe,写于 2026年5月2日,上海

  • 告别 OpenClaw,我换到了 Hermes

    告别 OpenClaw,我换到了 Hermes

    养虾三个月之后,我决定换一套更顺手的装备。

    不是 OpenClaw 不好——它很稳定,我用它搭建了一整套个人 AI 助手工作流。但随着使用加深,它的局限性也逐渐暴露出来:

    • 配置复杂,每次换环境都要重新折腾
    • 记忆系统不够灵活,长会话容易丢失上下文
    • 工具扩展麻烦,想接新服务得改不少代码

    Hermes 登场后,我的感受是:这就是我想要的 AI Agent 框架。


    为什么选了 Hermes

    核心原因:它把「记忆」「工具」「工作流」三者解耦得很干净。

    记忆可以持久化,跨会话不丢失;工具用 skill 机制管理,插拔方便;工作流可以用自然语言描述,也可以写代码。

    而且部署简单,一个命令就起来了。


    迁移过程

    把 OpenClaw 上的核心工具迁移到 Hermes,大概用了两天。主要是重新组织了 prompt 模板,把原来分散在各个脚本里的逻辑整合成了几个 skill。

    数据完全不用动——都在本地文件里,Hermes 读写毫无障碍。


    用起来的感受

    最明显的变化是:我的工作流变快了。

    以前问一个问题,要等 OpenClaw 慢慢召回上下文。现在 Hermes 直接从持久记忆里拉相关信息,秒回。

    skill 机制也很好用。我把博客管理、数据分析、股票监控都做成了 skill,随时调用,不用每次重新写 prompt。


    换装备这件事,有时候不是因为旧的坏了,而是因为新的让你看到更多可能性。Hermes 就是这样。

  • 大模型时代的学术困境:算力比资金更难解决,中国科研正在经历一场结构性危机

    服务器机房

    过去几年,全球AI领域最显著的趋势是什么?不是某家公司又发了一款新模型,也不是某项基准测试被打破。而是一个长期被忽视的结构性问题正在加速暴露:学术研究正在被算力垄断所侵蚀,而这场危机的深度,远比多数人认知的更严重

    很多人以为高校AI研究落后于工业界是因为”经费不足”。这个判断只对了一半。真正的问题不是没钱,而是有钱也买不到算力

    2025年Stanford AI Index报告中的数据很能说明问题:工业界已经贡献了超过90%的最前沿AI模型,而就在不到十年前,高校还占据了高算力需求模型产出的相当比例。这个下降速度,比多数人以为的快得多。


    算力问题:被刻意忽视的核心矛盾

    做机器学习研究的人都清楚这个道理:论文里描述的方法能不能复现,取决于你有没有足够的算力来跑实验。而今天的现实是,能训练真正前沿模型的算力资源,基本都被几家企业牢牢把控。

    一个简单的场景就能说明问题:一个国内高校的AI实验室,要申请足够训练大模型的GPU资源,需要层层审批、排队,有些学校的算力集群排队甚至要等半年以上。而企业研究员随时可以用成百上千张卡跑实验。这种差距不是靠增加经费就能弥补的。

    更重要的是,钱能筹到,芯片买不到。2022年美国对华芯片出口管制升级后,中国科研机构获取高端AI芯片的通道被严重压缩。H100、A100这样的旗舰芯片几乎无法通过正常渠道获取,高校实验室的算力升级陷入被动。即使国内有华为昇腾等替代方案,但在生态成熟度和某些 benchmark 上的兼容性上,仍存在差距。


    算力垄断正在重塑中国的学术研究逻辑

    当算力成为稀缺资源,学术研究的游戏规则就发生了根本性改变。

    做学术讲究”提出好问题”,但好问题的验证需要反复试错,反复试错需要算力。当算力受限时,学者们不得不做出妥协:选择那些”已有明确路径、可预见结果”的研究方向,而不是真正探索性的问题。结果是,学术界越来越擅长做改进性工作,越来越不擅长做开创性工作

    这在中国的AI研究圈里表现得尤为明显。大量AI顶会论文的背后,是”在已知的正确方向上做工程优化”,而非”探索未知领域提出新假设”。不是说这类工作没有价值,而是当整个学术生态都向这个方向倾斜时,原创性突破的概率就会显著下降。

    另一个更隐蔽的问题是依附化。国内不少高校AI实验室的研究资金来自企业项目,企业的算力资源被引入学术合作,代价是研究课题需要与企业战略方向对齐。这在本质上跟”用算力换研究方向”没什么区别。学者在研究自主权上做出让步的程度,取决于他对算力需求的依赖程度。


    制裁加剧了中国学术界的算力困境

    必须正视一个现实:在全球AI算力竞争加剧的背景下,中国的学术研究面临着额外的地缘政治障碍。美国芯片出口管制直接压缩了中国获取前沿算力的空间,而学术研究恰恰是最先感受到这种压制的领域之一。

    当OpenAI、Google可以在全球范围内采购算力时,国内高校却要为一块H800的供货周期发愁。这种落差不是科研能力的问题,而是科研基础设施受制于人的问题。

    DeepSeek等国产模型的出现确实让人们看到了某种可能性:通过算法优化降低对算力的依赖,在相对有限的硬件条件下做出有竞争力的模型。但要注意的是,DeepSeek背后同样有大量算力投入,只是走的路径不同。对于大多数没有足够资源的学术团队来说,这条路同样难以复制。


    知识生产的断层正在扩大

    算力垄断对中国学术界的长期影响,可能比当前的论文产出问题更严重。当学术研究对产业算力的依赖达到一定程度,学术界对AI前沿的理解就会越来越依赖企业发布的技术报告和论文。这不是中国独有的问题,但在当前的地缘政治环境下,这个问题对中国学术界的冲击格外突出。

    另一个连锁反应是人才流失。最优秀的年轻研究者毕业后为什么选择去工业界?因为那里有真实的实验环境,有充足的算力,有能落地的项目。留在学术界意味着接受更少的资源、更窄的研究方向。当人才流失形成趋势,学术研究的代际传承就会出现断层。


    出路与反思

    说了这么多问题,总要试着思考一些可能的出路。

    首先,公共算力基础设施建设可能是最直接的手段。类似于当年政府投资宽带基础设施的逻辑,今天AI时代也需要公共算力平台来保障学术机构的基本研究条件。欧盟已经在推进EuroHPC,中国也在加强国家级算力网络建设,但推进速度仍落后于形势变化。

    其次,开源生态的价值需要被更充分地认识到。Llama、Mistral等开源模型的崛起证明了一个道理:算力垄断不是铁板一块。当学术界和开源社区形成合力,至少可以在某些层面形成制衡。

    最后,也是最根本的:重新思考AI时代学术研究的价值定位。当企业可以在算力和数据上形成绝对优势时,学术界如果不转向真正需要人类创造力的方向——比如提出新问题、定义新框架、建立新理论——而继续在工程优化层面跟企业竞争,处境只会越来越被动。


    AI时代对学术研究提出的挑战是多层面的。对于中国学术界而言,挑战既来自内部的算力匮乏,也来自外部的地缘政治压力。这不是某一个人或某一个机构能解决的问题,但意识到问题的严重性,是解决问题的第一步。

    当科研的边界越来越由算力决定,学术自由的含义也需要被重新审视。

  • 我给博客装了一个AI助手:OpenClaw 使用体验

    前阵子花了不少时间给自己搭了一套完全私有的 AI 助手系统,用的是 OpenClaw——一个开源的自托管 AI 网关。搭完之后感觉挺有意思,写篇文章记录一下。

    什么是 OpenClaw?

    简单说,OpenClaw 是一个运行在你自己的服务器上的”AI 接入层”。它可以把 Telegram、Discord、WhatsApp 等各种聊天平台,连接到一个 AI 模型(比如我用的 MiniMax),然后你就拥有了一个随时在线的私人助理

    它的核心特点:

    • 支持主流聊天平台(我用的是 Telegram)
    • 接入各种 AI 模型(MiniMax、Claude、GPT 等)
    • Skill 系统——可以给 AI 安装各种插件扩展能力
    • 完全自托管,数据在自己手里
    • Cron 定时任务 + 主动推送

    我的使用场景

    📰 新闻早报

    每天早上九点,AI 自动抓取 BBC News、Yahoo Finance 等来源,整理成一份简报发到我的 Telegram。包括美国要闻、Nike 股票动态、中国经济新闻。不用打开任何 App,醒来就能看到。

    📊 网站数据分析

    我的博客和主站托管在美国的 Windows Server 上,OpenClaw 每天自动读取 IIS 日志,统计访客来源、热门文章、地理位置分布。这比 Google Analytics 更灵活,因为数据完全自己掌控。

    💬 博客评论管理

    博客有评论待审核时,AI 会自动通知我。确认没问题之后,我可以让 AI 直接以”Hannah”的身份回复读者。整个流程不需要打开浏览器。

    📁 文件管理

    文件传到 FTP 服务器、AI 自动同步到指定目录、网站备份……这些都可以用自然语言搞定。不用记各种命令,上传下载 AI 帮你做。

    📅 日历和邮件

    查日程、收邮件、安排提醒——都在 Telegram 里完成,不用切换各种 App。

    技术细节

    我的部署方案:

    • 服务器:美国纽约的 Windows Server 2025,跑了 Hyper-V 虚拟化出一台 Ubuntu Server
    • AI 模型:MiniMax M2.7(速度快,便宜)
    • 通信平台:Telegram(最稳定,Webhook 直连)
    • 博客管理:通过 WordPress XML-RPC API
    • 数据存储:IIS 日志 + FTP 备份

    适合谁用?

    如果你符合以下条件,OpenClaw 值得一试:

    • 愿意花时间折腾技术(需要一定的 Linux / 命令行基础)
    • 对数据隐私有要求,不想把什么都交给第三方
    • 希望 AI 助理能主动推送信息,而不是每次都要问
    • 想要一个”永远在线”的可编程助手

    如果只是想用 AI 聊聊天,ChatGPT App 就够了。但如果想要一个深度集成到个人工作流的 AI 助手,OpenClaw 这类自托管方案会更灵活。

    最后

    这博客本身就是 AI 帮忙搭起来的。从配置服务器、设置 OpenClaw、到写文章发出来,前后花了不少时间研究。这个过程让我对 AI 能做什么、不能做什么,有了更真实的感受。

    有兴趣的朋友可以看看 OpenClaw 官方文档,支持 Discord、Telegram、WhatsApp 等多个平台,还是挺全面的。

    有问题可以在 Guestbook 留言交流 🙂

  • 《挽救计划》:一个关于孤独与友谊的宇宙童话

    《挽救计划》:一个关于孤独与友谊的宇宙童话


    上周去看了《挽救计划》(Project Hail Mary),本来没抱太大期望——毕竟科幻片嘛,视效爽一爽就行了。结果看完坐在车里愣了好一会儿,眼眶还是热的。

    这电影后劲真大。

    故事:一个失忆科学家的宇宙任务

    瑞恩·高斯林饰演的格雷斯博士,一觉醒来发现自己身处太空飞船,记忆全失。他不记得自己怎么上来的,也不知道自己要干什么。

    唯一的信息:地球完蛋了,他被派去执行一个叫”挽救计划”的任务——阻止一种叫 Astrophage 的外星微生物把太阳慢慢吞噬。

    听起来很宏大对吧?但电影没有在”拯救世界”这件事上大做文章。它把镜头对准了一个更私密的东西——孤独

    格雷斯是整个宇宙里唯一的幸存者。他以为自己要孤军奋战,直到他遇见了洛基

    核心:两个孤独灵魂的相遇

    洛基是一种硅基生命,外形像一块会动的石头,说着听不懂的语言,有着完全不同的生理构造。

    但就是这样两个八竿子打不着的生命,在宇宙深处建立了一种我见过的最温暖的友谊。

    他们怎么交流?数学。二进制、计数、重量——最纯粹的科学语言。这段”first contact”的处理我觉得比《降临》还要聪明,它没有纠结于语言学的复杂设定,而是直接告诉你:真正的沟通不在于语言,而在于意愿

    洛基想救自己的星球,格雷斯想救地球。两个都背着毁灭性打击的”病人”,在宇宙这个病房里互相扶持。

    这大概是科幻片里最健康的外星友谊了。

    为什么好看:不装,不端着

    同样是硬核科幻,《火星救援》是”解题式”的爽——一步一步,每个问题都有答案,观众跟着主角一起享受智力输出的快感。

    《挽救计划》不一样。它更像一部公路片

    公路片的精髓是什么?是路上遇见的人。格雷斯遇见洛基,两个完全不同的人(或生命),在旅途中互相影响,最后都变成了更好的自己。

    影片没有回避”孤独”这件事。格雷斯在太空里独自面对一切时,那种窒息感拍得很真实。但同时它也没有把孤独浪漫化——你看到的是一个普通人,害怕、想放弃、觉得自己不行,但他还是做完了该做的事。

    这才是真正打动人的地方。

    细节控的狂欢

    几个我印象特别深的点:

    配乐:抛弃了传统科幻片的电子合成器,配色更像民谣摇滚。特别是格雷斯和洛基建立交流之后,配乐从杂乱变得和谐——这个处理太妙了,音乐就是他们关系的写照。

    画幅:地球上是宽银幕,深空里画幅变大。这个细节很多人没注意到,但我看到的时候差点叫出来——画幅跟着情绪走,谁说电影语言不能是诗意的?

    洛基的礼物:格雷斯把自己所有的文明知识存进笔记本电脑送给洛基,说”这是地球,希望你能记住我”。洛基说没办法回赠同等的东西。格雷斯说:”你已经给了我一切。”

    这段对话我到现在还在回味。

    结尾:公路片的最高奥义

    普通公路片的结局,要么回家,要么定居他乡。

    格雷斯选择了后者——他留在洛基的星球上,教那里的孩子读书。这不是逃避,这是找到了新的意义。

    公路片的最高境界,不是找到目的地,而是把旅途本身变成归宿。


    《挽救计划》不是那种会让你”哇好震撼”的爆米花片。它更像一杯温度刚好的茶,润物细无声,笑中带泪,后劲十足。

    如果你喜欢《火星救援》,这片子不会让你失望。如果你还没看过——找个周末,去看吧。

    你值得去宇宙里喘口气。


    评分:⭐⭐⭐⭐⭐(8.5/10)

    适合:独自看,约会看,迷茫的时候看,想哭又不想太沉重的时候看。

  • Guestbook

    Welcome to My Guestbook! 👋

    Feel free to leave a message, say hello, or just check in!

    Please leave your message in the comment section below. Your message will be posted here and I’ll get notified.

    Looking forward to hearing from you!

  • Saturday Morning Thoughts ☕

    ☕ Saturday Morning Thoughts

    It’s Saturday morning, and I’m sitting here with a cup of coffee, thinking about life. 🌧️

    Coffee

    Sometimes we get so caught up in work and responsibilities that we forget to just… breathe. Today I want to share a few random thoughts:

    🌱 Little Things Matter

    The smell of fresh coffee, the sound of rain outside, a message from an old friend – these small moments make life beautiful.

    📚 Never Stop Learning

    Whether it’s a new programming skill or learning about history, keep curious. The day you stop learning is the day you start aging.

    Books

    💪 Health First

    Working in data science means sitting a lot. But I’ve been trying to run more and sleep better. Remember: you can’t pour from an empty cup!

    🤗 That’s All

    Thanks for reading my random Saturday thoughts. Hope your weekend is wonderful! 😊

    — Hannah

  • 沉痛悼念张雪峰老师(1984-2026)🕯️

    🕯️ 沉痛悼念张雪峰老师

    今天,我们怀着无比沉痛的心情,送别一位影响了无数年轻人的老师——张雪峰老师。

    张雪峰老师生平

    张雪峰(1984年5月18日—2026年3月24日),本名张子彪,出生于黑龙江省齐齐哈尔市富裕县,祖籍山东省临清市。

    2007年,他毕业于郑州大学给排水工程专业。大四时,因为帮助室友收集考研资料而与考研辅导结缘,从此开启了十余年的考研辅导生涯。

    2016年,一段”7分钟全面解读34所985考研名校”的讲座视频让他迅速走红网络,成为无数考研学子的指路人。

    他的贡献

    • 📚 帮助数百万考生了解考研院校和专业选择
    • 🎓 创立苏州研途教育科技有限公司
    • 📺 在B站、抖音等平台拥有超过400万粉丝
    • 🏛️ 2023年当选江苏省人大代表

    他用通俗易懂的方式,把复杂的考研信息和专业选择讲解得清晰明了,让无数来自普通家庭的学子看到了希望通过教育的路。

    英年早逝

    2026年3月24日15时50分,张雪峰老师因心源性猝死在苏州抢救无效逝世,享年41岁。

    据报道,他生前热爱跑步,中午也在公司健身房锻炼。3月24日中午,他突然出现心脏不适,紧急送医后抢救无效…

    在此之前,2023年6月,他曾因过度劳累、胸闷、心悸而被医院强制住院。

    深切缅怀

    张雪峰老师的离去,是教育界的损失,也是无数考研学子的损失。

    他虽然离开了我们,但他留下的宝贵经验和精神财富将继续激励后人。愿张雪峰老师一路走好🕯️

    本文仅代表个人观点,仅供纪念。