乐于分享
好东西不私藏

50 万行代码用正则检测情绪?就像大脑用脊髓反射——Claude 的医学启示

50 万行代码用正则检测情绪?就像大脑用脊髓反射——Claude 的医学启示

2026 年 3 月 31 日,Anthropic 的一个打包失误,让 Claude Code 的 51.2 万行源码在 npm 上公开。
开发者们逐行审视,然后在 src/cli/print.ts 里看到了这样一段代码:
const frustrationPatterns = [/\bffs\b/i,           // for fuck's sake  /\bshitty\b/i,/\bwtf\b/i,/\bshit\b/i,// ...还有几十个];if (frustrationPatterns.some(p => p.test(userInput))) {  trackFrustrationEvent();}
没有 AI 模型,没有情感分析 API,就是最原始的正则表达式。
作为一名医疗行业从业者,看到这段代码,我第一时间想到的不是技术,而是脊髓反射

一个医学类比
当你手碰到烫的东西,会发生什么?
刺激(烫)→ 感受器 → 传入神经 → 脊髓 → 传出神经 → 效应器(缩手)
整个过程不需要大脑参与。
为什么?
因为大脑太慢了。
从手到大脑,信号传递需要 150-300ms,再加上大脑处理时间,等反应过来,手已经烫伤了。
脊髓反射弧,只要 30-50ms。
快,可靠,够用。

Claude Code 的选择
现在,让我们看看 Claude Code 面临的选择。
它需要检测用户是否生气了。
方案 A:AI 情感分析(大脑皮层)
用户输入 → 调用情感分析 API → 等待 200-500ms → 解析响应 → 判断情绪类型 → 触发相应逻辑每次调用都要钱,日均 10 万次 = 每月$500+用户隐私:文本要上传到第三方依赖:API 挂了怎么办?
方案 B:正则匹配(脊髓反射)
用户输入 → 正则匹配(<1ms)→ 记录事件- 零延迟- 零成本- 零隐私风险(本地处理)- 零依赖
Claude Code 的工程师选了方案 B。
就像手碰到烫的东西,用脊髓反射,不用大脑思考。

他们想检测什么?
很多人误解了这段代码的目的。
它不是要分析用户的”喜怒哀乐”——那是大脑皮层的工作。
它只关心一件事:用户是不是生气了?
用户生气 → 可能对工具不满意 → 需要改进体验              ↓        或者需要记录反馈
看它的匹配词:ffsshittywtfshit
它不检测”不高兴”这种委婉表达,它检测的是带脏话的挫败感。
为什么?
因为人说脏话时,大概率是真的生气了。就像缩手反射,不需要区分”是开水还是热油”,只需要知道”烫,要缩手”。

不完美,但够用
有人说:”万一用户代码里有这些词呢?”
答案是:误报也没关系。
挫败感检测不是关键路径,是辅助功能。
误报 → 多记录一些数据 → 不影响核心功能漏报 → 少记录一些数据 → 也不影响核心功能
它不需要 100% 准确,它只需要抓住”可能有问题”的时刻。
这就像膝跳反射:
  • 会误报(你紧张时肌肉紧绷,敲一下也可能跳)
  • 会漏报(有些人反射弱)
  • 无法区分刺激强度
但没关系,它只是一个筛查工具,不是诊断工具。

工程与医学的共通之处
Claude Code 源码里,这种”简单方案”不止一处:
功能
预期方案
实际方案
医学类比
情绪检测
AI 情感分析
正则表达式
脊髓反射
记忆系统
向量数据库
Markdown 文件
长期记忆(海马体→皮层)
跨进程通信
消息队列
文件系统”邮箱”
突触传递
配置管理
数据库
CLAUDE.md 文本文件
基因表达(DNA→RNA→蛋白)
为什么?
因为工程师和医生明白同一个道理:

医疗行业的启示
作为医疗从业者,这个案例对我们有什么启发?
1. 不要为了用 AI 而用 AI
现在医疗 AI 很火,但:
错误思路:"我们有 AI 技术,所以所有问题都用 AI 解决"正确思路:"这个问题需要什么方案?恰好 AI 适合?那就用 AI。恰好规则引擎适合?那就用规则引擎。"
例子:
  • 心电图自动分析 → AI 适合(模式识别复杂)
  • 体温超过 38.5℃报警 → 规则引擎足够(不需要 AI)
  • 影像科辅助诊断 → AI 适合(图像识别复杂)
  • 处方配伍禁忌检查 → 规则引擎足够(知识库查询)
2. 简单方案往往更可靠
正则表达式:发明于 1950 年代所有编程语言支持行为可预测性能稳定容易调试AI 情感分析:依赖第三方服务行为黑盒性能波动难以调试
就像医疗设备:
  • 水银血压计:简单,可靠,用 100 年
  • 电子血压计:功能多,但需要校准,容易坏
急诊科喜欢哪个?一目了然。
3. “够用就好”是工程美德,也是医疗美德
完美主义:"筛查工具必须 95% 准确"→ 需要复杂模型→ 成本高、延迟高、隐私风险实用主义:"筛查工具能抓住明显异常就行"→ 简单规则→ 成本低、延迟低、隐私友好
例子:
  • 新生儿筛查:简单、快速、便宜,准确率够用就行
  • 阳性结果 → 进一步检查(基因检测、影像学)
  • 而不是直接给每个新生儿做全基因组测序
4. 接受不完美
正则方案会误报,会漏报,无法区分愤怒程度。
但这些问题,影响核心功能吗?
不影响。所以,接受不完美。
就像临床路径:
  • 不可能覆盖所有病例
  • 不可能 100% 准确
  • 但能覆盖 80% 的常见情况
  • 剩下 20%,医生介入
80/20 法则,是工程和医学的共同智慧。

结尾:凌晨 3 点的正则表达式
开发者在凌晨 3 点,翻着 51 万行源码,期待看到各种黑科技。
然后他们看到了正则表达式。
有人失望,有人嘲笑,有人沉思。
我想到了脊髓反射。
人类的大脑,有 860 亿个神经元,是宇宙中最复杂的结构之一。
但当你手碰到烫的东西,缩回来的反射弧,只需要脊髓水平的几个神经元。
不需要大脑参与。
因为:快,可靠,够用。
51 万行代码的项目,情绪检测用正则。
就像人类的手,碰到烫的东西,用脊髓反射。
不是大脑不够强,是这个问题,不需要大脑。
这大概就是工程智慧,也是医学智慧。

— END —
2026 年 4 月 3 日作者:医院信息科工作者