一、人工智能吞噬了我的工作
在过去的几个月里,我一直在尝试使用人工智能来构建 Drupal 模块。两周前,我发布了一个名为“人工智能 Schema.org JSON - LD 模块”的模块,并写了一篇关于它的博客文章。该模块本质上取代了我“Schema.org 蓝图模块”的主要成果,该蓝图模块的主要作用是通过提供高质量的 Schema.org JSON - LD 标记来增强 SEO。人工智能 Schema.org JSON - LD 模块通过让贡献模块协同工作,使用简单的提示调用人工智能提供商来生成 Schema.org JSON - LD。
这个简单的模块我只用了四天就构建完成,它取代了我花了四年时间开发的 Schema.org 蓝图模块的工作。我本可以对这个由人工智能创建的新模块取代我和我的工作感到不满,但实际上,它只是改变了我对自己工作的看法。
有了人工智能,我更容易探索新想法并承担更具挑战性的任务,同时我知道自己创建的代码和模块对人类和机器来说仍然具有灵活性和可扩展性。在感觉人工智能正在吞噬、取代、消耗我们的工作,还是在改进我们的工作之间,存在着微妙的界限。我们应该对此展开讨论。
二、人工智能对我意味着什么?
我最需要立即考虑的是,我如何看待自己之前构建的东西,看到人工智能如何能够取代它,并愿意认识到人工智能可以以不同的、更好的、更快的方式做事的机会。每个人都需要接受人工智能带来的这一现实:事情可以做得更快,而且有更多的可能性。
我花了一段时间才意识到情况已经发生了变化。我构建了一些非常简单的模块,以了解人工智能编码代理如何规划、记录、构建、测试和维护代码。几周后,我开始看到其中的可能性。
即使在构建人工智能 Schema.org JSON - LD 模块时,我也知道只要我有一个由人工智能生成的计划并要求人工智能生成测试覆盖,大部分代码都可以由人工智能生成。
顺便说一下,我目前正在使用“Superpowers”,它是“一种为你的编码代理提供的完整软件开发方法,基于一组可组合的技能和一些确保你的代理使用这些技能的初始指令”。我并不局限于任何特定的代理技能、插件、工具,甚至大语言模型;我致力于保持开放的态度,以不同的方式做事。
展望未来,我需要一副新的人工智能增强眼镜来规划、执行和实施工作。甚至向别人解释我的工作方式也发生了变化。
我提出的问题正在发生变化。
- 我们要做什么?
具有讽刺意味的是,这个问题人工智能无法回答,因为它没有创造力。 - 我们要怎么做?
- 人工智能有什么建议?
- 我们如何为人工智能分解构建步骤?
- 快速轻松地使用人工智能进行原型设计意味着什么?
我们需要考虑人工智能带来的那些在以前根本不可能的机会所伴随的挑战。
我是一个名为 Drupal 的社区的成员,我们共同协作构建软件。这就是我们成功的秘诀:“你为代码而来,为社区而留”。我们的编码方式现在正在发生变化和发展,我们的社区也必须随之发展。这是我们需要讨论的事情。
三、人工智能对 Drupal 社区意味着什么?
首先,Drupal 社区的“Drupal 人工智能倡议”在规划、集成和实施人工智能方面走在了前列。我的人工智能 Schema.org JSON - LD 模块建立在该倡议的出色工作基础之上,包括“AI Automators”和“Field Widget Actions”,并且值得将“JSON Field”作为另一个关键要素加入其中。
通过 Drupal 人工智能倡议,我们正在探索如何在软件中使用人工智能来增强网站构建体验。我们才刚刚开始思考(并讨论)人工智能如何影响我们的社区以及我们在构建和维护软件方面的协作。
尽管人工智能可以修复我们花了数年时间构建的东西,或者解决我们一直难以解决的问题,但我们很难接受让人工智能在 Drupal 核心中自由运行的想法。
例如,用纯原生 JavaScript 替换所有 jQuery 是人工智能一夜之间就能完成的事情。这一项任务引发了许多问题,促使人们进行讨论,并需要做出决策。
- 维护人员、贡献者和人工智能的工作流程是什么?
- 我们能够为转换提供提示或指导方针吗?
- 我们是否应该在 Drupal 核心中加入一个代理技能来协助转换?
- 我们如何审查这些代码?
- 这一切会变成人工智能的混乱产物吗?
我们需要从这些问题中退一步,认识到人工智能已经到来,并且能够做一些几年前没人能预料到的事情。人工智能正在改变和转变我们作为软件工程师和开发者的工作,我们生产的东西,我们的生产方式,以及我们的思考方式。
第一步可能只是对此持开放态度,认识到新的现实以及随之而来的新可能性。我是一个谨慎乐观的人,当我想到人工智能时,我喜欢用这个词来形容自己。
芝加哥 DrupalCon 的最乐观成果是“Drupal 人工智能学习者俱乐部”,它将人们聚集在一起,讨论他们的人工智能经验,分享他们的设置,并帮助他们提升技能。我喜欢“提升技能”这个词,因为它让人联想到一个规则不断更新、每天都有新版本发布的游戏。
人们将人工智能比作老虎机,但我认为弹珠机是更准确的类比,因为它结合了技能和运气,而老虎机的设计目的是让你输钱。人工智能可能像赌博一样让人上瘾。坦率地说,人工智能对我们社区的影响有很大的社会层面因素,我们需要牢记这一点,并愿意讨论人工智能。我可以预见在 Drupal 社区会有一场关于人工智能焦虑的公开讨论。
四、我该何去何从?
根据我生成人工智能 Schema.org JSON - LD 模块和开发 Schema.org 蓝图模块的经验,有两个方向可以选择。
首先,我是否应该使用人工智能来审查我过去的所有工作,重新思考并重新处理它?我可以使用人工智能来清理它、修复漏洞、升级它、使其更易于维护并编写测试。本质上,使其适应人工智能并与之兼容,这样任何人都可以与人工智能协作。
我需要考虑的第二件事是如何维护一个由人工智能生成的模块,例如人工智能 Schema.org JSON - LD 模块。由于人工智能的帮助,代码完全符合我的编码标准,并且有更好的测试覆盖。新功能会在有人参与的情况下使用人工智能来构建吗?将代码升级到 Drupal 的最新版本很可能会使用人工智能来完成。
但归根结底,这些代码应该完全由人工智能维护吗?我应该鼓励问题队列中的人们使用人工智能来创建问题和合并请求吗?人们应该给我提供我可以用来修复漏洞的提示吗?这是一个棘手的问题,我认为我们必须开始探索。
如果我们要让人工智能为 Drupal 编写代码,它们必须采用测试驱动开发,这是一种理想的方法。有时我们作为开发者不采用测试驱动开发,是因为我们没有时间或耐心。而人工智能有无限的时间和耐心。
关于人工智能编写的代码,我另一个强烈的观点是,人工智能为我编写的每一行代码都要经过我和另一个人工智能的审查。每次我让人工智能复查我的代码或另一个人工智能的代码时,反馈都非常显著,通常能发现低级漏洞和测试覆盖方面的不足。如果我们回顾极限编程,结对编程可以显著减少漏洞,并增进对应用程序的了解。
我怀疑自动化代理能否生成可靠且持久的代码,至少在有人编写一种专为人工智能设计且人类可读的编程语言之前是这样,比如“Code Speak”。然而,即使我们开始使用一种特定于人工智能的编程语言,我们又该如何处理现有的所有代码库呢?
五、我们该何去何从?
在我们社区的各个方面,我们必须认识到人工智能的潜力并考虑其影响。例如,人工智能可以帮助进行文档编写、新成员入职和成员离职处理。
文档编写
文档编写是一件棘手的事情,因为人工智能可以编写大量文档,但这些文档有用吗?我认为每个人都在为此苦恼。与此同时,我们 Drupal 社区一直面临着文档不足的问题。有一些直接的机会,比如让人工智能审查我们所有的 API 文档,使其保持一致且语法正确,而不改变其内容,只是进行改进。我们可以通过为人工智能提供我们希望文档结构化的模板,以及指导方针和要求来改进我们的风格和文档指南:保持简洁、简单,并包含对复杂功能的描述。也许第一步是让人工智能审查人们正在编写的文档并提供反馈。
新成员入职
需要说明的是,新成员入职意味着让人们加入社区。我们能否提供基础技能,帮助人们理解、编写代码和学习 Drupal?我们能否提供提示,引导人们了解 Drupal 的不同系统?我们能否在 Drupal.org 上设置一个代理,审查人类或人工智能生成的代码,解释其工作原理,并找出需要改进的地方?我甚至想问,我们是否愿意鼓励人们“随性编码”他们的第一个 Drupal 模块?
成员离职
我们不常谈论人们离开社区的问题,但我们理解人们的倦怠情绪以及他们转向不同项目的情况。Drupal 能够繁荣发展二十五年的一个秘诀是,我们始终欢迎新成员加入,也能接受成员离开。
通过使用人工智能加强我们的工具和文档,我们将使人们更容易在社区中进出。一个有才华的开发者或非开发者,只要我们通过人工智能提供合适的工具和指导,即使不了解 PHP,也可以做出有意义的“随性编码”贡献。这可能是一个巨大的胜利。
六、我们必须接受这一点
这需要我们去消化、接受和处理很多信息。我将这篇博客文章命名为“人工智能吞噬了我的工作……”,是为了承认这里存在一些焦虑情绪。由于人工智能,软件开发面临着真正的生存威胁。人们的工作和生计受到威胁,这很可怕。与此同时,我们需要接受这种变化。我们必须相互协作、相互支持,将其视为挑战而非威胁。
这里的影响是巨大的。而我仅仅谈论了我们构建的软件。它还包括我们支持的网站和应用程序。事实上,我们构建的网站、这些网站上的信息、它们的用途以及人们与它们的交互方式都将发生彻底改变。
人工智能正在吞噬网站。大语言模型正在消耗我们的信息,然后反馈给我们,并改变一个组织或公司在数字世界中的形象或品牌。
在 Drupal 中,我们需要解决我们的社区、企业主和客户如何应对人工智能的问题。人工智能倡议在这方面做得很好,它支持人工智能驱动的聊天和搜索。与此同时,事情发展得如此之快,我们必须开始认识到这样一种可能性:五年后可能不再有网站。大多数人将使用聊天界面在侧边栏中搜索和呈现信息,而用户永远不会访问源网站。
网站不能对此坐视不管。然而,他们实际上没有选择,因为他们必须应对人工智能正在吞噬他们的网站这一新现实,以及人工智能将控制谁能获得什么信息以及如何链接回你的组织。
我们必须开始讨论这个问题。我将在下一篇博客文章中开启这个话题,文章标题为“人工智能正在吞噬我们的网站,我们需要适应这一点”。

