Topics

试用 Google 的编码智能体 “Jules”

  • column

“AI 会写代码,那我们是不是都要失业了?”这句玩笑话,现在已经越来越不像玩笑了。GitHub Copilot、CodeX 等工具已经能帮我们写代码,而这次 Google 推出的 Jules,似乎又更上一层楼。

Jules 搭载了 Google 最新的 AI 模型 Gemini 2.0,而它的核心亮点在于“自主性”!

或许有一天,它真的会替我们把所有工作都完成吧?我们满怀期待!下面就来实际测试一下它能做些什么。

Jules 能做什么

Jules 是一款能够自主完成编码任务的 AI 智能体。它不仅限于生成代码,还能实现以下高级自动化功能。

  • 复杂任务的拆解与规划:将给定任务拆分为多个小步骤,并制定实施计划。
  • 代码生成与修改:可跨越多个源文件生成代码,或修改已有代码。
  • Bug 修复与调试:定位代码中的 Bug 并进行修复。
  • 测试的编写与执行:运行现有测试或编写新测试,验证修改是否正常工作。
  • 获取仓库与克隆:从 GitHub 等仓库获取代码,并克隆到虚拟机中开展工作。
  • 创建拉取请求:代码修改完成后,以拉取请求(Pull Request)的形式提交。
  • 异步工作:用户在处理其他工作时,可在后台推进编码任务。
  • 语音摘要(CodeCast):可生成语音内容,对近期的代码活动进行总结。

ChatGPT 的新功能“Codex”有何不同?

什么是 Codex

Codex 搭载了 OpenAI 开发的专用大型语言模型“codex-1”。该模型以最新模型“o3”为基础,针对软件开发进行了优化,是一款融入了资深工程师编码风格与经验知识的智能模型。

主要功能

  • 代码补全、建议与生成(实时)
  • 根据注释生成代码
  • 现有代码中的函数和方法建议
  • 擅长对现有代码库进行修改和扩展

Codex/Copilot主要作为“输入辅助”工具,在编写或修改现有代码时实时提供帮助,定位类似于AI结对编程助手(编码辅助工具)。

另一方面,Jules作为“代理开发者”,最大的不同之处在于能够从项目启动到结束,自主执行范围更广的任务。因此,Jules甚至可能胜任从零开始搭建新项目的初始阶段工作,可以说它更专注于“开发任务的自动化”。

  • 也可以创建新项目:Jules会根据用户下达的任务(例如:“创建一个基础的Web应用”),从零开始创建所需的文件和目录结构,并生成代码。
  • 与GitHub仓库深度集成:Jules会将用户指定的GitHub仓库克隆到虚拟环境中并在其中工作。因此,它不局限于修改单个文件,还能对整个仓库进行结构性修改、添加新文件、删除现有文件等,全面操作整个项目。
  • 自主工作:从项目的初始设置,到文件创建、代码生成、测试执行、创建拉取请求,Jules会自主推进整个流程。

Jules的自主性更高,可以把整个开发任务交给它,定位就像一位“代理程序员”!

实际使用体验!

Jules 的使用方法

Jules 主要通过聊天式 UI发出指令。

1.访问 Jules:可通过 jules.google.com 访问。

2.连接 GitHub 仓库:选择要处理的 GitHub 仓库和分支。本次试用我们准备了“jules-test”仓库。

3.通过提示词下达指令:使用日语也没问题!这次我们尝试用 JS 实现一个时钟。

4.批准实现计划:Jules 会先提出实现计划。用户审阅并批准该计划。它会先制定工作流程,非常清晰易懂!

5.执行编码并确认进度:计划获批后,Jules 会自动开始编码,并汇报工作进度。
虽然需要一点时间,但已生成 index.html、script.js 和 style.css 文件!

6.审阅并批准更改:更改完成后,Jules 会连同变更差异(diff)一并创建拉取请求(Pull Request)。用户审阅并批准后,更改即会合并到仓库中。

提交信息有时真让人犯难吧?它会为你自动总结生成!

点击右下角的 publish branch,即可推送到 tokyo-clock 分支。

拉取分支后……编辑器中已生成文件!

浏览器预览效果如下!

以往的AI功能在输入“用JavaScript实现一个时钟”这样的提示词时,通常只会告诉你实现步骤或代码内容,而这次它甚至可以从创建文件到与git联动,一条龙完成整个工作!

不过,像这次这样简单的实现,全权交给它应该没问题,但对于更大规模的实现,到底能放心交给它到什么程度,实际上怎么样呢……大概就是这种感觉。

接下来我再额外请求它“把装饰做得更华丽一些”。

它提出了几个方案,我这里就交给它来决定了。

它已将背景改为渐变色!

只需创建一个代码仓库,它就能从零生成文件、编写代码,并推送到git,简直太厉害了!堪称代理程序员。

不过目前它仍以测试版形式提供,并设有使用限制(例如每天5个任务)。

此外,创建文件和实现程序需要一些时间,而且输入框也出现过故障,导致内容没有被正确反映。

另外,据说Jules遇到错误时,当时的工作内容不会被提交,因此即使想要保留做到一半的工作差异,也可能无法被应用。

我们请它把这次的JavaScript时钟实现改写为Next.js,它也成功完成了转换,并搭建好了环境。不过在中途遇到了错误,导致Next.js的文件始终没能拉取到本地……。虽然非常方便,但我认为它也存在不少缺点。

总结

如果Jules今后越来越聪明,那么繁琐的重复性工作就可以交给Jules处理,我们或许就能把时间充分用于学习新技术、享受兴趣爱好等事情上!

Jules或许真的能作为工程师的得力伙伴,彻底改变开发的常规方式呢!

图片引用:Jules 官网

撰写本文的人

主要从事标记(Markup)工作,并使用 JavaScript、React 和 Next.js 进行前端开发。看到自己参与的网站顺利上线,我会非常开心!爱好是弹吉他。喜欢猫和烤红薯🐱🍠

Hirappi

前端工程师 / 2022年入职

查看此员工的文章

以稳健的团队体制和迅速的应对能力为傲

Liberogic 的资深团队积极推动项目,因此深受客户好评。
我们致力于合理配置项目经理与总监,确保整个项目顺利推进。 我们采用按需投入的方式,避免不必要的全员投入导致成本增加,合理分配资源、人尽其才。同时,我们在掌握业务内容、制作与提交报价方面的速度也广受好评。

※ 当社不积极开展 SES 类驻场业务,敬请谅解。

您可以使用 Slack、Teams、Redmine、Backlog、Asana、Jira、Notion、Google Workspace、Zoom、Webex 等几乎所有主流的项目管理工具和聊天工具。

Web 方面的烦恼,欢迎随时咨询。

案例分析