在人工智能特别是大型语言模型(LLM)高速发展的时代,AI辅助开发已经成为软件工程领域的新范式。然而,面对各种复杂的工具和方法,许多开发者尤其是经验较少或者时间有限的工程师,往往难以掌握有效使用AI代理的技巧。这导致了大量的误用、低效甚至误导性的结果,阻碍了技术的广泛普及和最大化价值的发挥。开源软件(OSS)社区秉持着“让人人有平等机会”的精神,正积极探索如何通过共享和规范化“使用规则”来帮助开发者更好地管理AI辅助开发的上下文,从而实现真正的“公平竞争场地”。 AI辅助开发的核心在于上下文管理,也就是向语言模型输入何种信息,才能让它产生期望的输出。通常来说,每个AI代理背后都有其专用的系统提示(system prompt),这些提示经过精心设计,能够让模型在特定工具或框架内更好地发挥作用。
但系统提示本身往往很难保护,也难以作为核心竞争力,因此大多数团队会选择公开分享。真正的挑战在于,除系统提示外,开发者如何正确组织和传递“上下文”,使得AI代理能够更精准地理解开发意图、正确地调用工具,甚至能够自我修正错误。 不同于传统软件开发的清晰逻辑,AI代理的上下文管理更多依赖于一定的“软技能”,这包括对语言模型的直觉理解和对提示内容的巧妙设计。业内甚至出现了“氛围编码”(vibe coding)这样的说法,虽然听起来有些夸张,但它恰恰反映了上下文管理的复杂性和主观性。很多开发者感到迷茫和无力,难以真正理解如何与AI代理高效互动,也因此无法释放人工智能带来的全部潜力。 针对这一现状,开源社区提出了“使用规则”(Usage Rules)的概念。
其核心思想是,围绕每款软件工具或库,开发者团队能够撰写专门的使用规则文档,明确指示用户在AI代理上下文中应该包含哪些关键信息,以实现最佳的工具配合和效果最大化。使用规则并非传统意义上的通用文档,而是专门针对AI上下文管理设计的指导文件。依托这样的规则,开发者可以避免摸索试错,快速上手,并且能在项目升级和依赖更新时同步调整,保证AI辅助始终处于最佳状态。 这些使用规则通常以Markdown文档的形式存在,比如单个 `usage-rules.md` 文件或者一个专门的 `usage-rules` 文件夹内包含若干说明文件。大小不一、内容丰富的规则帮助不同规模和复杂度的工具都有对应的上下文规范。例如,庞大的框架可以拥有详尽的规则,而简单的库只需几条关键提示亦能大幅提升体验。
更重要的是,这些规则可以分发和同步,用户在更新依赖时马上获得最新的上下文信息,生成的 `AGENTS.md` 或类似文件变成了帮助AI代理理解如何使用工具的“指南针”。 以Elixir语言生态为例,已经有实现了“使用规则”工具包,方便开发者将依赖的规则自动同步到项目文档,并且提供专门的任务(如 `mix usage_rules.search_docs` 和 `mix usage_rules.docs`)以帮助AI代理检索和调用最新的技术文档和代码示例。这样一来,代理再也不需要凭空猜测或者穷尽搜索,而是通过明确的上下文指引直接定位问题和解决方案,极大提升了开发效率和准确性。同时,这种方式避免了依赖复杂的MCP服务器(管理和分发工具的服务),降低了使用门槛,让更多开发者享受到AI赋能的红利。 “使用规则”还有一个显著优势就是可协作性。当某些AI代理在使用某个工具时频繁出现错误或误用,社区成员可以提交PR(拉取请求)来改进规则内容,形成一个持续优化和自我提升的生态。
通过这种开放透明的模式,整个开发社区的AI辅助能力不断进步,消除了信息孤岛和经验壁垒。传统上软件变化迅速,手工维护知识库耗时且难以同步,但使用规则机制架构的实时更新保障了AI代理使用的上下文始终贴合时代发展。 当然,这一实践还远未普及,需要更多语言生态、框架开发者的积极参与和推广。然而,秉承开源社区一贯的理念,“潮水上涨时,总会抬起所有船只”,使用规则无疑为AI辅助开发提供了极具前瞻性的技术路径。它不仅帮助开发者跨越学习曲线,更为AI代理未来的广泛应用奠定了坚实基础。 总的来说,AI辅助开发正在从一场技术革命发展成为全新的人机协作方式。
正确的上下文管理是其中的关键,它决定了AI工具能否真正适配实际场景,释放潜力。开源社区通过提出和实现使用规则,正在创造一个人人可参与、人人受益的公平竞争环境,让不同水平的开发者都能通过AI工具提升生产力。未来,我们期待更多工具和框架能够配备明确、标准化的使用规则,实现知识共享、能力共享,推动软件工程进入一个崭新的智能时代。