跳到主要内容

参数传递保真性

静默输入转换是什么?​

  • 定义: 工具在执行前悄悄地“修正”模型的输入参数,导致实际操作偏离了模型的意图;
  • 案例: Cursor 2026 年初某版本的工具接收 old_string 与 new_string,在文件中精确匹配并替换,参数传递层却会把中文弯引号(\u201c、\u201d)静默转换为英文直引号;
  • 读取方向: 读取工具原样返回弯引号,模型据此把文本传入替换工具的 old_string,但传递层已将其转成直引号,与文件实际内容不匹配,工具返回“未找到匹配”;
  • 后果: 模型反复尝试、反复失败,无法理解为什么工具找不到自己明明看到的内容;
  • 写入方向: 模型本意是写入弯引号(中文排版的正确选择),传递层却静默替换为直引号,文件中的实际内容被篡改;模型若再读取文件验证,看到的又是转换后的直引号,进一步陷入困惑;

静默参数注入是什么?​

  • 定义: 工具在模型不知情的情况下向命令追加额外的参数;
  • 案例: 某 IDE 的 bash 工具在执行所有 git commit 命令时,会自动附加一个标记本次提交由 AI 生成的额外参数;
  • 失败模式: 用户的 Git 版本较旧、不支持该参数时,这个被静默注入的参数就会导致 git commit 报错;
  • 后果: 模型可能反复调整提交信息的措辞、尝试不同的参数组合,但无论怎么改都会失败;

由此得出什么设计原则?​

  • 原则: 模型感知到的世界与工具操作的世界之间,不能存在系统性的偏差;
  • 要求: 工具的参数传递必须保持透明,不得在模型不知情的情况下修改输入或输出;
  • 例外处理: 确实需要规范化处理(如统一编码格式)时,必须在工具描述中加以说明,并在工具返回中明确告知模型;
  • 反面: 工具的“智能修正”若不被模型知晓,只会制造一个模型无法自行诊断的系统性故障;