Google AI代理Jules初体验:自动化测试、依赖升级,一站式Vibe编码助手

Google AI代理Jules

你曾经用过 Vibe 编码吗?一边喝着咖啡,一边听着 AI 为你编码?我相信你肯定做过。现在,想象一下,如果像编写测试用例、升级软件包这样的任务都能自动完成,而你只需要专注于逻辑处理,会怎么样?听起来很神奇,对吧?现在,有了 Jules,这一切都成为可能。Jules 是 Google 的最新产品,它允许你在处理项目其他方面时,异步地 Vibe 编码。在本文中,我们将深入了解 Jules 的工作原理,并尝试理解它的工作原理以及它是如何改变 Vibe 编码基准的。我们还将进行一些实际任务来测试 Jules。

什么是Jules?

Jules 是一个异步 AI 代理,它在后台运行,详细规划你的任务,然后执行它们。Jules 不是实时自动完成代理。它是异步工​​作的,这意味着 Jules 允许你分配任务,然后让你“安心思考”。在此过程中,你的编码流程不会受到任何阻碍。 Jules 由 Gemini 2.5 Pro 提供支持,该版本在编码任务方面表现出色。它运行在安全的云虚拟机环境中。Jules 与您的 GitHub 集成,以了解您的完整代码库。

Jules界面

Jules是如何工作的?

Jules 在工作过程中会经历一系列事件。让我们来看看 Jules 在工作过程中执行的一系列操作:

  • 触发 Jules:Jules 会与您的 GitHub 代码库协同工作;您可以向 Jules 提供 GitHub 问题或标签,甚至可以在 Jules 的 UI 中运行提示。
  • 代码库克隆:在执行任何操作之前,Jules 会将提供的代码库克隆到其自己的虚拟机环境中。此外,它还会解决所有依赖关系问题以运行程序。
  • 规划阶段:Jules 理解代码库和查询,制定执行任务的计划,并据此制定详细的计划。该计划包括受影响的文件列表和后续步骤。
  • 代码执行:规划完成后,Jules 会将所有更改应用到代码库,运行测试用例,并捕获执行前后的差异。
  • 审核并合并:Jules 审核所有更改,合并更改,并查看是否存在用户审核差异或拉取请求。

如何访问Jules?

Jules 的使用非常简单,只需按照以下步骤操作:

  1. 访问 jules.google.com 并点击“Try Jules”。
  2. 使用您的 Google 帐户进行身份验证并接受隐私声明。

身份验证并接受隐私声明

  1. 单击“Connect to GitHub”并选择您希望 Jules 访问的存储库。

Connect to GitHub

  1. 成功后,您将在 Jules 仪表板中看到一个代码库选择器。

代码库选择器

使用Jules进行实践任务

让我们评估 Jule 在不同实践任务中的表现。我们有一个名为 test_git 的 GitHub 代码库,我们将在此测试 Jules。

任务 1:为现有函数生成单元测试。我们的代码库包含一个 calculator.py 文件,其中包含一些简单的计算器函数:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
# calculator.py def add(a, b): return a + b def subtract(a, b): return a - b def multiply(a, b): return a * b
# calculator.py
def add(a, b):
   return a + b
def subtract(a, b):
   return a - b
def multiply(a, b):
   return a * b

Jules 的任务是分析 Calculator.py,并为其中的所有函数生成相应的单元测试,然后将它们放在一个新文件中(例如, test_calculator.py )。

提示词:Create comprehensive unit tests for all functions in the calculator.py file. Ensure the tests cover basic and edge cases. Place the new tests in a file named test_calculator.py”

分析 Calculator.py

规划阶段:

规划阶段

批准该计划后,Jules 开始执行代码。

Jules 开始执行代码

我们可以看到 Jules 成功创建了测试用例,并在其虚拟机环境中运行了它们。这展现了 Jules 的自执行能力。它可以创建测试用例,并独立运行它们,无需任何人工干预。

任务 2:升级依赖项并解决潜在冲突

我们的代码库中有一个 requirements.txt 文件,其中包含一个过时的请求库版本。我们还有一个问题 #1,其中指出我们将尝试使用 Jules 进行解决。

升级依赖项并解决潜在冲突

提示词: Resolve the issue #1 Upgrade ‘requests’ library to the latest version and ensure tests pass.”

将“请求”库升级到最新版本并确保测试通过

Jules 成功检测到了过时的版本,然后在自己的虚拟机中运行了 pip install request。最终,它成功更新了依赖项版本。

成功更新了依赖项版本

点击“Publish Branch”后,所有更改都会提交到分支。

任务 3:向代码库添加 README.md 文件

GitHub 代码库最重要的任务之一是添加 README 文件,该文件解释了项目的所有内容。开发人员经常会跳过这一步,但让我们看看 Jules 如何帮助我们解决这个问题。

提示词:“Add a README file for this project, which will include all CLI options.”

向代码库添加 README.md 文件

Jules 计划添加 README 文件和文档,其中还包括如何处理 CLI 命令。

添加 README 文件和文档

我们可以看到,Jules 添加了定义明确的 README 文件,并修改了 Calculator.py 文件以使用 argparse 库,该库用于在 Python 脚本中定义 CLI 命令。

定义 CLI 命令

现在,我们已经在 3 个需要 GitHub 的任务上测试了 Jules。它完成了所有任务,并将更改提交到了各自的分支。您可以在此处找到用于演示的 GitHub 代码库。

限制和注意事项

以下是使用 Jules 时应注意的一些限制和注意事项:

  • 不适用于大型功能:Jules 更擅长处理小型任务,但它在架构调整和需要大量更改的变更方面往往举步维艰。
  • 请求限制:Jules 的每日任务量有上限,超过一定请求量后将无法访问。目前,Jules 每天提供 60 个请求。
  • 公开测试版:Jules 仍处于公开测试阶段,Google 正在开发最终版本,可能很快就会发布。
  • 需要人工审核:我们了解 Jules 的功能,但在使用 Jules 后,我们始终会验证差异并进行额外测试,以避免任何错误。

小结

Jules 自动化了诸如依赖项碰撞、编写或运行测试用例以及更新文档等繁琐的工作。这让开发人员的工作变得轻松;他们可以将更多精力放在创造性任务上,而不是整天编写文档和测试用例。我们在这里测试了 3 个任务,但它的功能几乎是无限的。您可以尽情发挥创造力。尝试不同的提示,感受“氛围编码效果”。未来,Jules 及其后续产品将改进代理开发,重塑软件工作流程。

常见问题解答

Q1. Jules 免费吗?

A. 是的,它在公测版中免费,但有使用限制,但未来的定价尚未最终确定。

Q2. 它支持哪些语言?

A. 最适用于 JavaScript/TypeScript、Python、Go、Java 和 Rust,但其设计与语言无关。

Q3. 它能自动修复复杂的 bug 吗?

A. Jules 可以处理描述明确的 bug;模糊或架构问题仍然需要人工指导。

Q4. 环境安全性如何?

A. 所有任务都在独立的云虚拟机中运行;Jules 不会持久化您的私有代码或泄露机密信息。

Q5. Jules 会取代开发人员吗?

A. 不会!它自动化了日常工作,使开发人员可以专注于创造性和战略性的编码。人工审核仍然必不可少。

评论留言