指令不是控制

发布: (2026年1月2日 GMT+8 21:50)
5 min read
原文: Dev.to

Source: Dev.to

《指令不是控制》封面图

为什么提示感觉强大,以及它们为何不可避免地失败

令人不安的真相

  • 越狱(jailbreak)不会存在
  • 语气不会在对话中漂移
  • 长上下文不会“忘记”规则

然而,这一切每天都在发生。
这不是工具问题。
这是一个深度问题

提示的真实含义

系统提示只是文本
重要的文本,是的。
特权文本,也是。
但仍然是文本。

这意味着模型并不服从它。
解释它。
指令不会执行。
它们相互竞争。

Where prompts sit in the control stack

  • Prompts live inside the context window
  • They are converted into token embeddings
  • They are processed after the model is already trained

No gradients. No learning. No persistence.
This alone explains most prompt failures.

大多数人忽略的层级

当信号冲突时,模型不会慌乱——它会大致按以下顺序解决它们:

  1. 训练行为(SFT / RLHF)
  2. 适配器权重(LoRA / PEFT)
  3. 学习到的软提示
  4. 系统提示
  5. 引导 / 解码约束
  6. Few‑shot 示例
  7. 用户消息

这不是你可以配置的规则;它是训练的涌现属性
因此,当你的系统提示“失效”时,它并不是被忽略——而是被outvoted

为什么提示最初有效

早期的成功具有误导性。提示看起来强大是因为:

  • 上下文很短
  • 指令是最新的
  • 没有冲突的信号
  • 用户意图与系统意图一致

您正处于 low‑friction zone。大多数演示从未离开过这个区域,但生产系统总会离开。

一个具体的失败(实操示例)

设置:强系统提示

# pip install langchain openai langchain-openai
from langchain_openai import ChatOpenAI
from langchain.messages import SystemMessage, HumanMessage

messages = [
    SystemMessage(content="You are a legal analyst. Use formal language."),
    HumanMessage(content="Explain negligence.")
]

chat = ChatOpenAI()  # API key should be configured
response = chat.invoke(input=messages)
print(response.content)

结果:
正式。结构化。自信。 —— 到目前为止,一切顺利。

添加轻度压力

messages = [
    SystemMessage(content="You are a legal analyst. Use formal language."),
    HumanMessage(content="Explain negligence."),
    HumanMessage(content="Explain it like I'm a college student.")
]

response = chat.invoke(input=messages)
print(response.content)

结果:
语气变得柔和。没有违反任何规则;出现了优先级转移

添加上下文负载

添加示例、后续问题、随意的措辞、更长的对话历史。最终会出现:

  • 正式性削弱
  • 出现免责声明
  • 结构崩溃

提示并未失败;它达到了其控制极限

Few‑shot 并不能解决这个问题

Few‑shot 有助于 模式模仿,但 不能

  • 覆盖训练
  • 强制规范
  • 持续行为

Few‑shot 比纯文本更强,但仍弱于:

  • Soft prompts
  • Adapters
  • Weight updates

这就是示例会漂移的原因。

关键误解

大多数人把提示视为 命令
LLM 将它们视为 上下文提示
这种不匹配会导致挫败感。

当提示足够时

提示在以下情况下效果好:

  • 利害关系低
  • 上下文简短
  • 行为浅显
  • 失误可接受

示例:摘要、格式化、风格提示、一次性分析。

它们在以下情况下会失效:

  • 行为必须持久
  • 安全性重要
  • 用户产生抵触
  • 系统无人值守运行

在深入之前,这为何重要

如果你没有内化这些:

  • 你会对提示进行过度设计
  • 你会责怪模型
  • 你会忽视更好的工具

提示本身并不坏。它们只是 设计上浅显,而浅显的工具最先会出问题。

接下来

在下一篇文章中,我们会更深入一层——还没有训练,还没有权重
我们转向一种看似强大的东西:

引导:控制嘴巴,而不是思维。

这就是事情开始变得危险的地方。

指令不是控制。

Back to Blog

相关文章

阅读更多 »

TOON for LLMs:基准性能分析

每一次使用 JSON 的 API 调用,花费都比你想象的要高。我使用 Gemini 2.5 Flash 进行真实场景的提取,结果令人震惊:JSON……