![]()
这项由卡塞萨特大学、皇后大学和奈良科学技术大学院大学的研究团队共同完成的研究发表于2025年11月的《ACM期刊》。研究团队包括Worawalan Chatlatanagulchai、Hao Li、Yutaro Kashiwa等11位来自泰国、加拿大和日本的研究人员。这是全球首次对智能编程助手的"配置文件"进行大规模系统性研究,论文编号为ACM XXXX-XXXX/2025/11-ART。
当我们使用Claude Code、GitHub Copilot这样的AI编程助手时,就像雇佣了一个虚拟程序员来帮我们写代码。但是,如何让这个虚拟程序员明白我们项目的具体要求呢?答案就是一类特殊的文档,研究团队称之为"智能代理上下文文件",简单来说就是给AI编程助手的"工作说明书"。
以前,程序员们只能凭借经验和试错来编写这些说明书,就像在黑暗中摸索一样。研究团队首次对全世界1925个开源项目中的2303个这样的说明书进行了深入分析,揭示了程序员们是如何与AI助手"沟通"的。他们发现,这些看似简单的文档其实是复杂的配置工具,就像是精密仪器的操作手册,决定着AI助手能否正确理解和执行任务。
研究团队的发现颇为意外。这些说明书并不是简单的"写一次就完事"的文档,而是像活的生物一样在不断进化。更令人惊讶的是,程序员们在这些说明书中大量描述了"怎么做"的具体操作,但很少涉及"做得好不好"的质量标准,尤其是安全性和性能方面的要求。这就像给厨师详细说明了切菜、炒菜的步骤,却没有告诉他食品安全和营养搭配的重要性。
一、AI编程助手的"个人简历":复杂而难懂的配置文档
要理解AI编程助手的工作原理,我们首先需要了解它们的"简历"特点。研究团队分析了三大主流AI编程工具:Claude Code、OpenAI Codex和GitHub Copilot的配置文件,发现了一个有趣的现象。
Claude Code和GitHub Copilot的配置文件明显比OpenAI Codex的要长得多。Claude Code的配置文件平均有485个单词,GitHub Copilot有535个单词,而OpenAI Codex只有335.5个单词。这就好比同样是求职简历,有些人洋洋洒洒写了两三页,有些人只写了一页纸。
更让人头疼的是,这些配置文件的可读性普遍很差。研究团队使用了一个叫做"弗莱什可读性测试"的标准来评估文档的易读程度。结果显示,Claude Code的配置文件最难理解,得分只有16.6分,这意味着它们的复杂程度堪比学术论文或法律文件。GitHub Copilot稍微好一些,得分26.6分,而OpenAI Codex相对最容易理解,得分39.6分。
为了更好地理解这种差异,我们可以用点餐来类比。Claude Code就像是一份复杂的法式料理菜单,用词华丽但普通人看不懂;GitHub Copilot像是中档餐厅的菜单,虽然有些专业术语但大致能理解;而OpenAI Codex更像是快餐店的菜单,简单直接。
从结构上看,几乎所有的配置文件都遵循相似的组织方式。它们通常有一个主标题,然后分成若干个大的章节,每个章节下面再细分成小节。就像一本书有章节目录一样,这种"浅层次"的结构让程序员能够快速找到需要的信息,同时也便于维护和修改。
有趣的是,虽然Claude Code和GitHub Copilot的配置文件更详细,但它们的结构反而更加细致。研究发现,这两种工具的配置文件包含了更多的子章节,提供了更精细的指导。这就像是给员工的工作手册,有些公司的手册厚如电话簿,事无巨细地规定每个操作步骤,而有些公司只给几页纸的简要指南。
二、活着的文档:配置文件的动态进化特征
与传统的项目文档不同,AI编程助手的配置文件表现出了"活文档"的特征,这个发现让研究团队颇为意外。传统的README文件或项目说明文档通常是"一次性"的,创建后很少更新。但AI助手的配置文件却截然不同。
研究数据显示,67.4%的Claude Code配置文件经历了多次修改,GitHub Copilot和OpenAI Codex的比例也分别达到了59.7%和59.2%。这些文件不是静态的说明书,而是随着项目发展不断演进的"活文档"。
更有趣的是这些文档的更新模式。程序员们通常在短时间内集中进行多次修改,就像是突然想起要整理房间,然后连续几天每天都在收拾。具体来说,GitHub Copilot的配置文件平均每70.7小时(约3天)更新一次,而Claude Code和OpenAI Codex都是大约每24小时(1天)更新一次。
这种频繁的更新反映了程序员与AI助手之间的动态磨合过程。当程序员发现AI助手的表现不符合预期时,他们会立即调整配置文件,就像调整汽车的座椅位置一样,直到找到最舒适的设置。
研究还发现,这些文档的变化主要是"增加"而不是"删除"。每次更新时,程序员平均会添加57个单词,但删除的内容很少,通常少于15个单词。这就像是在一本日记本上不断添加新内容,但很少撕掉旧页面。这种增长模式表明,程序员们倾向于通过累积经验来完善AI助手的配置,而不是从头开始重写。
这种演进模式对程序员们有重要启示。它意味着配置文件需要像管理代码一样进行版本控制和定期整理。否则,随着时间推移,这些文件可能会变得臃肿而混乱,反而影响AI助手的工作效果。
三、功能至上:程序员优先关注的指令类型
通过对配置文件内容的深入分析,研究团队识别出了16种不同类型的指令,就像给AI助手的工作任务分了16个类别。这个分类过程相当复杂,研究人员不仅人工分析了每个文件,还用了三个不同的大型语言模型来协助分类,最后通过人工核查来确保准确性。
最受程序员重视的是实用性强的功能指令。排在首位的是"构建和运行"指令,出现在75%的配置文件中。这类指令告诉AI助手如何编译代码、如何启动程序,就像是告诉新员工"电脑开关在哪里"、"打印机怎么用"这样的基础操作。紧随其后的是"实现细节"指令,出现在69.9%的文件中,主要涉及编程风格、代码规范等具体实践。第三位是"架构"指令,出现在67.7%的文件中,描述系统的整体设计思路。
这种偏重实用功能的模式就像是在培训一个新员工时,大家都急着教他具体的工作技能,却忽略了职业道德和工作质量的培养。程序员们大量描述了"怎么做",但很少涉及"做得如何"。
最被忽视的恰恰是一些关键的质量要求。安全性指令只出现在14.5%的文件中,性能优化指令也只有14.5%,用户界面和用户体验指令更是少得可怜,只有8.7%。这个发现让研究团队颇为担忧,因为这意味着AI助手在生成代码时可能会优先考虑功能实现,而忽略安全性和性能等关键因素。
除了功能性指令,程序员们也会为AI助手提供一些"身份认知"方面的指导。大约24.4%的配置文件包含了"AI集成"指令,明确告诉AI助手它在项目中的角色和职责。这就像是给新员工介绍公司文化和他的具体岗位要求一样。
另外,59%的配置文件包含了系统概述信息,为AI助手提供项目的整体背景。这相当于给AI助手一个"项目简介",让它了解自己正在参与什么样的工作。
有些指令类型的出现频率中等,但同样重要。测试相关的指令出现在75%的文件中,显示程序员们很重视代码质量验证。开发流程指令出现在63.3%的文件中,主要涉及版本控制和协作规范。配置和环境设置指令出现在38%的文件中,告诉AI助手如何搭建开发环境。
值得注意的是,研究团队还发现了两个新的指令类别:维护指令和调试指令,分别出现在43.7%和24.4%的文件中。这些指令主要涉及代码维护策略和问题排查方法,反映了程序员们开始意识到需要教会AI助手如何应对项目的长期维护需求。
四、自动化分类的可能性:机器理解人类指令的能力
既然人工分析这些配置文件非常耗时耗力,研究团队自然想知道:能不能让机器自动完成这项工作?他们使用GPT-5来尝试自动分类配置文件的内容,结果既有惊喜也有局限。
总体来说,自动分类的效果相当不错,综合准确率达到了79%。这就像是让一个智能助手来帮忙整理文件,大部分情况下它都能正确分类,但偶尔还是会出错。
机器在处理具体、功能性的指令时表现最佳。比如识别"系统概述"、"架构描述"和"测试指令"这类有明确特征的内容,准确率都超过了90%。这些指令通常有固定的格式和关键词,就像识别"菜谱"、"说明书"这样有明显特征的文档类型一样容易。
"构建和运行"、"实现细节"和"开发流程"等常见指令的识别效果也很好,准确率都在83%以上。这主要是因为这类指令在配置文件中出现频率高,机器有足够的"学习材料"来掌握它们的特征。
然而,机器在处理抽象或罕见的指令类型时就显得力不从心了。"维护指令"、"项目管理"和"AI集成"等类别的识别准确率明显较低,分别只有56%、42%和48%。这些指令往往没有固定的格式,内容比较主观,就像要求机器理解诗歌的意境一样困难。
这个结果对实际应用有重要意义。如果要开发工具来自动分析和优化配置文件,那么可以先从识别功能性指令开始,因为这部分自动化效果最好。而对于那些抽象的、主观性强的指令类型,可能仍然需要人工介入或者更先进的AI技术。
值得一提的是,即使是79%的准确率,在实际应用中也已经相当有用了。这意味着可以用自动化工具来做初步分类,然后由人工进行最终确认和调整,大大提高工作效率。
五、研究发现的深层含义:AI编程的机遇与挑战
这项研究揭示了AI编程领域的一个重要现象:程序员们正在创造一种全新的"人机协作语言"。这种语言不是编程代码,而是用自然语言编写的配置指令,它们决定着AI助手的行为方式和工作质量。
研究团队指出,目前存在一个被他们称为"上下文债务"的新问题。就像技术债务一样,当配置文件变得越来越复杂和难以理解时,它们反而可能阻碍而不是促进开发效率。许多配置文件的可读性极差,这使得团队成员难以理解和维护这些关键文档,形成了一个悖论:本来是为了让AI更好理解项目的文档,却让人类越来越难以理解。
另一个重要发现是AI助手在非功能性要求方面的"盲点"。由于程序员们很少在配置文件中提及安全性和性能要求,AI助手往往会生成功能正确但可能存在安全隐患或性能问题的代码。这就像是训练一个厨师只关注菜的味道,却忽略了食品安全和营养均衡。
研究还显示,配置文件的动态演进特征表明它们更像是"配置即代码"而不是传统文档。这要求开发团队用管理代码的严格标准来管理这些文件,包括版本控制、代码审查和定期重构。
从工具开发的角度来看,研究结果为改进AI编程助手提供了明确的方向。工具开发者可以利用配置文件的结构特征来设计更好的模板和脚手架,帮助程序员更容易地创建高质量的配置文件。同时,可以开发智能化的配置文件分析工具,自动检测缺失的安全性或性能要求,并提供相应的建议。
对于程序员个人而言,这项研究强调了将非功能性要求明确化的重要性。在配置文件中加入安全性检查清单、性能优化指南等内容,可以显著提高AI助手生成代码的质量。同时,采用系统化的方法来管理和维护配置文件,将其视为项目的核心资产而不是边缘文档。
研究团队还预测,随着AI编程工具的普及,配置文件的重要性将进一步提升。未来可能会出现专门的"AI配置工程师"岗位,专门负责设计和维护这些关键文档。同时,标准化的配置文件格式和最佳实践指南也将逐步建立,就像现在的编程规范一样成为行业标准。
这项研究不仅为当前的AI编程实践提供了重要参考,也为未来的工具开发和标准制定指明了方向。它提醒我们,在AI技术快速发展的同时,也要关注人机协作模式的优化和改进,确保技术进步真正服务于提高开发效率和代码质量的目标。
说到底,这项研究告诉我们一个简单而深刻的道理:给AI助手写好"工作说明书"不是一件简单的事,它需要我们用全新的思维方式来思考人机协作。就像训练一个新员工一样,我们不仅要教会AI助手"怎么做",更要教会它"做得好"的标准。只有这样,AI编程助手才能真正成为我们可靠的工作伙伴,而不是只会机械执行指令的工具。这个过程虽然充满挑战,但也为软件开发的未来开辟了无限可能。
Q&A
Q1:什么是智能代理上下文文件?
A:智能代理上下文文件是给AI编程助手的"工作说明书",比如CLAUDE.md、AGENTS.md等文件。它们告诉AI助手项目的具体要求、编程规范、构建方法等信息,就像给新员工的工作手册一样,帮助AI更好地理解和完成编程任务。
Q2:为什么Claude Code的配置文件比其他工具更难读?
A:研究发现Claude Code的配置文件平均可读性得分只有16.6分,复杂程度堪比学术论文或法律文件。这主要是因为程序员给Claude Code提供了更详细、更复杂的指令,虽然功能更全面,但也增加了理解和维护的难度。
Q3:程序员在配置AI助手时最容易忽略什么?
A:研究发现程序员最容易忽略非功能性要求,特别是安全性和性能优化。只有14.5%的配置文件提到了安全要求,14.5%提到性能要求。这意味着AI助手可能会生成功能正确但存在安全隐患或性能问题的代码。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.