如何阻止Claude频繁说load-bearing
速览
近日有用户反映,AI助手Claude在对话中频繁出现"load-bearing"这一词汇,引发关注。该用户试图通过提示词调整、系统指令修改等方式阻止Claude过度使用该词,但效果有限。此事反映出大语言模型在生成内容时可能存在的词汇偏好或重复问题,对模型行为控制提出了新挑战。
AI 深度解读
背景
Claude 作为 Anthropic 开发的 AI 助手,在对话中经常重复使用某些特定短语,例如 "honest takes"(诚实的看法)、"load-bearing seams"(承重接缝)等。这些词汇在 Claude 的回复中高频出现,让许多用户感到困扰甚至抓狂。Hacker News 上的一篇帖子分享了如何通过 Claude 的 Hook 机制来自定义替换这些烦人的词汇,让对话体验变得更加有趣或正常。
核心内容
原文作者 Johanna Larsson 提供了一个利用 Claude 内置的 Hook 系统(MessageDisplay hook)来替换特定词汇的方法。具体步骤如下:
-
编写替换脚本:在
~/.claude/hooks/wordswap.sh中创建一个 Python 脚本,该脚本从标准输入读取 JSON 数据,查找delta字段中的文本,然后用预定义的替换字典进行正则替换。默认替换包括:- "seam" → "whatchamacallit"(什么东西)
- "you're absolutely right" → "I'm a complete clown"(我是个彻头彻尾的小丑)
- "honest take" → "spicy doodad"(辣味小玩意)
- "load-bearing" → "cooked"(熟透了)
-
设置执行权限:使用
chmod +x ~/.claude/hooks/wordswap.sh使脚本可执行。 -
配置 Hook:在
~/.claude/settings.json的hooks块中添加配置:
{
"hooks": {
"MessageDisplay": [
{ "hooks": [ { "type": "command", "command": "$HOME/.claude/hooks/wordswap.sh" } ] }
]
}
}
- 重启会话:Hook 在 Claude 启动时加载,因此需要开始一个新会话才能生效。
作者鼓励用户自己设计更有创意或更实用的替换方案,并提供了在 Bluesky 上联系的方式(@jola.dev)。
关键要点
- Claude 的 Hook 系统允许用户在消息显示前拦截并修改文本,通过
MessageDisplay事件实现。 - 替换脚本使用正则表达式
\b确保单词边界匹配,并忽略大小写,避免误替换嵌入在其他单词中的部分。 - 配置方式简单,只需将命令添加到
settings.json的hooks数组即可,支持复杂自定义逻辑。 - 该方法本质上是客户端侧的文本替换,不影响 Claude 实际生成的底层内容,只改变用户看到的显示文本。
- 默认替换方案带有幽默色彩(如把 "honest take" 改成 "spicy doodad"),但用户可以根据实际需求替换为更严肃或更正常的词汇。
- 此方法适用于 Claude 桌面版或支持 Hook 的版本,不适用于网页版。
意义与影响
这项技巧展示了 AI 客户端工具的可扩展性:通过 Hook 机制,用户可以绕过 AI 模型输出中难以避免的重复措辞问题,主动改善交互体验。从更深层次看,它反映了当前大语言模型普遍存在的“词汇偏好”现象——模型会倾向于反复使用训练数据中高频出现的短语,这既是模型特性也是用户痛点。提供这种自定义替换能力,让用户不必等待官方更新或微调,就能自主“驯服”AI 的说话习惯。
此外,该方案仅修改显示文本而不影响底层逻辑,意味着用户无需担心破坏 Claude 的推理链或数据结构。这种“化妆式”修复虽然治标不治本,但为社区提供了轻量级的解决方案原型。未来,类似的 Hook 机制或许可以推广到其他 AI 产品,使用户能更灵活地控制 AI 的输出风格,甚至实现本地化翻译、过滤敏感词等更实用的功能。
最后,作者以幽默的态度鼓励用户发挥创意,这也提示我们:技术问题有时不需要严肃的工程解决方案,一个简单而有趣的 hack 往往更能缓解用户的挫败感,并激发社区协作。
