跳转到内容

大模型里的“知识的诅咒”

“知识的诅咒”说的是:当你已经知道一件事后,就很难再站在“不知道的人”的视角去解释它。

最近我发现,大模型之间也有类似的问题。


我做了一个 SSH 客户端 Termark:https://www.termark.app。里面有一个 AI 助手,可以帮用户分析终端输出、生成排查命令,并在确认后执行。

ai.png

我自己测试时,用 DeepSeek-V4-Flash 和 GPT-5.4-mini 处理常规需求都没问题。为了安全,Termark 对 AI 执行命令做了白名单:明确安全的只读命令可以放行,其他命令需要用户审计。

问题出在一次用户反馈里。

用户说:“只是查看日志,为什么也要审计?”

我一开始没想明白。查看日志通常就是 tailgrepjournalctl,按理说应该能直接通过白名单。

后来用户截图我才发现,他的 AI 生成了类似这样的内容:

bash
# 查看最近 100 行日志
tail -n 100 /var/log/nginx/error.log

命令本身没问题,但前面多了一行注释。Termark 识别的是可执行命令,不是一整段带注释的脚本。解析到 # 开头的内容时,系统无法确认它是安全命令,于是按保守策略拦截。

安全上没错,体验上就显得别扭。


更有意思的是,我之前让顶级模型帮我写系统提示词时,它列了很多“重要规则”, 但它没有写一条很简单的规则:

只输出可执行命令,不要在命令块里写注释。


所以我现在把这条直接写进了提示词(当然也改进了白名单识别逻辑):

prompt.png

这种规则看起来很蠢,但放到真实产品里就很必要。

Termark 使用文档