Rule Taxonomy and Evolution in AI IDEs: A Mining and Survey Study
本文通过对 83 个开源项目的 7,310 条规则进行挖掘,并对 99 名从业者进行调查,开展了一项混合方法研究,旨在建立 AI IDE 规则的分类法,揭示了开发者优先级与实际配置之间的差距,同时证明了规则的演进显著提高了软件构件的合规性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你雇佣了一位超级聪明、速度极快、但又有点混乱的私人助手来帮你盖房子。这个助手是一个人工智能(AI),它非常擅长砌砖和刷墙。但有时,它会搞混。它可能会在应该放窗户的地方装上一扇门,或者使用你明确告诉它不要使用的某种木材。
为了解决这个问题,你给了这个助手一本**“规则手册”**。这不仅仅是一次性的便条;它是一份活的文档,将永远伴随整个项目。每当助手开始工作时,它都会阅读这本规则手册,以记住你的房子究竟应该长什么样。
这篇论文深入探讨了现实世界的开发者如何使用这些“规则手册”(在 AI IDE 中被称为**“规则/Rules”**)以及他们如何随着时间的推移来修改这些规则。研究人员观察了 83 个真实的开源项目,并采访了 99 位开发者,以了解实际情况是如何运作的。
以下是研究结果的简要分类:
1. “规则手册”分类法(书里有什么?)
研究人员将数千条规则整理进了一个巨大的文件柜,分为 5 个主抽屉和 25 个小文件夹:
- 架构与设计 (Architecture & Design): 大局观(例如:“使用这种特定的蓝图风格”)。
- 代码实现 (Code Implementation): 细节处理(例如:“像这样编写代码”、“不要使用类”)。
- 工作流与管理 (Workflow & Management): 团队如何协作(例如:“在保存前务必运行测试”)。
- 质量保证 (Quality Assurance): 安全检查(例如:“测试一切”、“严禁安全漏洞”)。
- AI 协作 (AI Collaboration): AI 应该如何表现(例如:“保持简洁”、“不要瞎猜”)。
大惊喜:
开发者所认为的重要事项与他们实际写下的内容之间存在巨大的脱节。
- 他们看重的是: 开发者在调查中表示,“最重要的事情是架构(大局观)和上下文(AI 如何理解项目)”。
- 他们实际写下的是: 真实项目中的规则手册大多充满了低层级的细节,比如“使用这种字体”、“把文件放在这个文件夹里”以及“先运行这个测试”。
- 类比: 这就像雇佣了一位建筑师来设计摩天大楼,却把 90% 的时间都花在给他们写备忘录,讨论该喝哪个品牌的咖啡以及如何整理订书机,而几乎没怎么提到结构钢材。
2. 规则是如何演进的(书是如何变化的?)
规则并不是静止不变的;它们在不断更新。研究人员观察了 1,540 次变更。
- 主要动作: 大多数情况下,开发者是在添加新规则。他们通常不是在重写旧规则,而是在不断堆叠新的指令。
- “为什么”的差距:
- 数据表明: 在观察实际的代码变更时,开发者添加规则主要是为了扩展项目(增加新功能)或丰富上下文(为 AI 提供更多背景信息)。
- 开发者所说: 在调查中,开发者表示他们修改规则主要是为了修复 AI 犯的错误。
- 类比: 这就像一位家长说,“我添加新家务主要是为了帮助孩子们学习新技能”,但孩子们却说,“我们只有在把盘子弄脏之后才会增加家务。” 现实情况是建设性的成长,但感觉上只是在进行损害控制。
- “纠错”习惯: 当开发者试图修复 AI 错误时,他们很少去编辑旧规则。相反,他们会添加一条新规则,说“不要做 X”。这就像是在门旁边贴一个“禁止入内”的告示牌,而不是重新粉刷那扇门。
3. 这真的有效吗?(合规性检查)
研究人员想知道,如果你更新了规则手册,AI 是否真的能更好地遵循新指令?
- 结果: 是的,效果显著。
- 数据: 在规则更新之前,AI 遵循指令的成功率约为 49%。更新后,这一比例立即跳升至 72%。这意味着提升了 23%。
- 限制条件: 这对于具体、易于检查的事项(如“文件名必须以 .ts 结尾”)效果最好。对于模糊、高层级的概念(如“遵循良好的架构原则”),效果则差得多。
- 类比: 如果你告诉助手“始终戴红帽子”,一旦你提醒过,他们就会做得很好。但如果你说“做一个好的领导者”,他们可能仍然会感到困惑。规则手册对于具体的命令非常有效,但对于抽象的哲学理念则效果有限。
研究总结
- 开发者关心大局,但写的是琐事。 他们重视架构,却把时间花在修复格式和工作流细节上。
- “添加而非编辑”策略。 开发者倾向于通过堆叠新规则来解决问题,而不是清理旧规则。这使得规则手册随着时间的推移变得冗长且混乱。
- 更新有效,但仅限于特定事物。 修改规则确实能让 AI 更好地遵循指令,但前提是这些指令必须清晰且具体。
- “负向约束”问题。 开发者经常通过添加“不要做这个”这类规则来修复 AI 错误。这是一种快速修复的方法,但从长远来看,会让规则手册变得杂乱且令人困惑。
简而言之,AI IDE 功能强大,但我们用来控制它们的“规则手册”目前还有点混乱。我们正利用它们来解决眼前的、微小的细节问题,而不是用来引导宏大的、复杂的整体设计;我们是在一块一块地堆砌规则,而不是保持它们的整洁与有序。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。