← 最新论文
🤖 AI

Do Not Copy/Paste: Soft Barriers for Copying in AI-Assisted Programming

本文针对未经检查的代码从 AI 对话界面转移的风险,提出将“软障碍”作为一种设计机制来鼓励用户进行验证,并通过 Unicode 扰动和用户研究证明,此类干预可以在破坏复制粘贴行为的同时保持代码的可读性。

原作者: Iyiola E. Olatunji, Alberick Euraste Djire, Jacques Klein, Tegawendé F. Bissyandé

发布于 2026-08-25
📖 1 分钟阅读☕ 轻松阅读

原作者: Iyiola E. Olatunji, Alberick Euraste Djire, Jacques Klein, Tegawendé F. Bissyandé

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代软件开发的格局中,一种新型的人类程序员与人工智能之间的协作已经出现。这些数字助手能够倾听简单的请求,并立即生成解决复杂问题的代码行,充当开发者思维的强大延伸。这种速度是一项巨大的资产,允许快速原型设计和学习。然而,这种便利性在过程中创造了一个微妙但显著的差距:一段代码从创建它的聊天窗口移动到它将被运行的编辑器中的那一刻。这个转换过程通常被称为“交接”(handoff),它发生得如此之快,以至于代码在人类真正理解、测试或审查之前就可以被执行。在教育环境中,这存在着学生绕过编程所需批判性思维的风险;而在专业环境中,这可能导致未经检查的代码进入安全系统。研究人员面临的核心问题是,如何在不简单地禁止这些工具(这会抛弃它们的益处)或完全不加检查的情况下,管理这一转移过程。

卢森堡大学的一个研究小组提出了一种解决这一问题的创新方法,他们建议将代码离开聊天窗口的那一刻视为一个设计机会,而非一个不可避免的意外。研究人员并没有试图拦截代码,也没有试图在事后检测代码是否由机器编写,而是探索了“软障碍”(soft barriers)的概念。这些是内置在代码中的温和、非惩罚性的障碍,使得人们很难简单地将代码复制粘贴到程序中并期望其立即运行。其目的不是阻止用户使用代码,而是引入微小的摩擦,迫使他们停顿、阅读并理解他们即将使用的内容。为了测试这一概念,研究人员开发了一种技术,通过微妙地改变代码中的不可见字符来实现。想象一下,一个句子在人类眼中看起来完全正常,但包含了一些隐藏的、不可见的符号,如果尝试直接运行这段文本,这些符号会让计算机程序感到困惑。这迫使用户去参与文本的处理,对其进行清理或重写,从而自然地引导其对逻辑进行更深入的理解。

研究人员使用四种不同的语言大模型和两组标准的编程问题测试了这个想法。他们为这些问题生成了正确的解决方案,然后应用了这些不可见字符的技巧,以观察会发生什么。他们发现,这些障碍的有效性因所使用的 AI 模型以及所应用的技巧不同而产生巨大差异。对于某些模型,不可见字符完全破坏了代码,使其在没有人工干预的情况下无法运行。而对于另一些模型,这些模型表现出了惊人的鲁棒性,生成的代码尽管存在隐藏字符却依然可以运行。这种不一致性表明,不存在一种适用于所有人工智能的通用技巧。相反,障碍的成功程度很大程度上取决于生成代码的具体技术。研究人员引入了一种衡量这种成功的新方法,关注点不在于代码是否正确,而在于应用障碍后,正确的代码是否变得无法运行。他们的测量结果显示,对于某些模型和技巧的组合,几乎所有的正确解决方案都变得无法运行,从而有效地迫使人类介入。

为了观察这种技术手段是否真的改变了人的行为,该团队进行了一项包含 18 名参与者的小型实验。这些志愿者被要求使用 AI 助手完成编程任务。一半的参与者在使用带有不可见字符障碍的助手,而另一半则使用标准的、未经修改的版本。结果表明,这些障碍确实改变了行为。遇到障碍的参与者不太可能直接将代码复制粘贴到他们的项目中。相反,他们更有可能修改代码、更仔细地阅读代码,并报告说他们感觉对解决方案的理解更深了。有趣的是,增加的难度似乎并未导致明显的挫败感;参与者仍然完成了任务,但他们是通过检查和修复代码的迭代过程来完成,而不是全盘接受。一位参与者指出,这个问题迫使他们在继续进行之前,必须完全理解助手生成的内容。

这项研究并不声称这种方法是一个完美或永久的解决方案。研究人员承认,一个有决心的用户可以很容易地绕过这些障碍,例如向 AI 请求一份干净版本的代码,或者使用软件剔除隐藏字符。其目的不是建立一道无法逾越的墙,而是改变普通使用的默认路径。通过让容易的、不假思索的路径变得稍微困难一些,系统鼓励了更具思考性的参与。作者强调,任何现实世界的应用都需要是透明且经过机构批准的,以确保用户知道代码为何表现出这种行为。最终,这项工作表明,我们将代码从 AI 转移到人类的过程,是软件工程过程中一个被忽视的关键环节。通过将这种交接视为一个设计空间,我们可以构建出不仅能生成代码,还能引导用户走向更好理解和更安全实践的工具。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →