📢 转载信息
原文链接:https://machinelearningmastery.com/practical-agentic-coding-with-google-jules/
原文作者:Matthew Mayo
介绍谷歌Jules
如果你对智能体编码(agentic coding)感兴趣,那么很有可能你已经听说过Google Jules。如果还没有,现在是时候了解它了。Jules 是由谷歌 DeepMind 开发的一款自主、异步的智能体编码助手,它利用 Gemini 系列模型,旨在直接与现有代码库集成,并自主执行开发任务。
你可以将 Jules 视为你高度专业化的、异地的开发承包商。Jules 不是让你或你的团队直接在本地 IDE 中使用的。相反,你将整个 GitHub 仓库交给这位承包商 —— 我知道,我知道……这有点令人不安。然后,Jules 会在一个隔离的云虚拟机(VM)中安全地复制该仓库,并在其专家编程知识(付费客户可获得 Gemini 3 的指导;否则使用有使用限制的 Gemini 2.5)的指导下研究整个项目。接着,它会起草详细的计划,执行修改请求,测试这些更改,最后提交一个拉取请求(Pull Request)供你检查和批准。它还会利用 README.md 或 AGENTS.md 等文件来获取项目上下文和环境提示。
这种流程允许你委托复杂的编码和开发任务,而 Jules 不会干扰你的日常工作,从而确保安全性和质量控制。
让我们总结一下 Jules 运行的重要点:
- 自主的、智能体式的操作: Jules 确实是一个自主智能体,它能够阅读代码并理解意图,超越了副驾驶或代码补全助手的作用。它是一个真正的智能体服务,专为工作委托而设计,允许用户外包明确的任务指令,例如提高测试覆盖率或进行精细的代码现代化改造。
- 异步工作流程: Jules 在云虚拟机内部异步运行。这使得开发人员可以在其工作的同时专注于其他任务。这种非阻塞方法允许你分配任务后继续处理代码库中的其他工作,避免打断你当前的流程。
- 全面的代码库上下文: Jules 不仅仅关注代码片段。它会分析复杂的、多文件的项目,并致力于理解现有代码库的完整上下文,以便对更改进行智能推理。这种能力对于处理整个仓库中的复杂、多步骤操作至关重要。
- 音频变更日志和摘要: Jules 能够提供最近提交的音频摘要(音频变更日志),将项目历史转化为用户可以听到的上下文变更日志。你喜欢 NotebookLM 的音频概述吗?Jules 将这种感知能力带到了你的代码库中。
在与 Jules 交互方面,你有几种选择。首先是 Jules 工具 CLI,这是一个命令行界面(包含 jules 命令),允许开发人员从终端与其智能体交互。这支持脚本编写和自动化,并有助于将来自其他 CLI 工具的输出通过管道传输给 Jules(例如,直接将你的仓库问题列表发送给 Jules (gh issue list) 或使用 jq 从中提取任务列表并直接将其发送到 CLI 以创建新的智能体任务)。
还有 Jules API,它允许通过编程方式进行更深入的定制。借助 API,你可以集成更多工具和服务,如 Slack 或 Jira,从而可以向 Jules 发送消息任务或为其分配工单,实现 Bug 修复、功能实现和 CI/CD 流水的自动化。如果直接添加来自 GitHub 问题的触发能力,你将拥有一个强大的方法集来参与你的智能体开发工作流程。
使用 Google Jules 处理现有的 GitHub 仓库
使用 Google Jules 的过程通常涉及初始设置、任务提示,以及后续的人工审查和批准。让我们使用我自己的一个玩具仓库进行快速演练。
步骤 1:初始访问和身份验证
访问官方 Google Jules 网站并点击“试用 Jules”(Try Jules)。使用您的 Google 帐户进行身份验证并接受隐私声明。
通过身份验证试用 Jules
身份验证后,您的屏幕应如下所示:
步骤 2:连接到 GitHub
点击“连接到 GitHub 帐户”(Connect to GitHub Account),选择您希望 Jules 访问的特定仓库。
连接到 GitHub 以获取奖励
步骤 3:选择仓库和分支
设置完成后,从 Jules 仪表板或选择器中选择目标仓库和分支。
选择目标仓库和分支
我选择了一个用 Java 实现的简单键/值数据库,它只利用了该语言的内置数据结构。
步骤 4:提示任务
编写详细说明所需任务的提示(例如,代码重构、Bug 修复、生成单元测试)。任务也可以通过 GitHub issue 或标签触发。Jules 推荐用于针对 GitHub.com 上的源代码执行明确的、可以驱动无人值守批处理工作的指令。
详细提示所需任务
在这里,我们将看到 Jules 如何将代码库从 Java 转换为 Python。
步骤 5:生成、审查和批准计划
点击给我一个计划(Give me a plan)。Jules 将分析代码库和查询,推导出详细的计划,并列出受影响的文件。在执行之前、期间和之后,您可以修改所显示的计划。在审查了拟议的计划和推理后,通过点击批准计划(Approve plan)开始实施。
鉴于我要求 Jules 完成的工作量较小,我选择了在没有正式批准流程的情况下提交和运行任务的选项。
步骤 6:执行和验证
Jules 将仓库克隆到其安全的云虚拟机环境中,应用所有更改,运行相关的测试用例,并捕获差异。
在做其他事情时,Google Jules 正在辛勤工作
步骤 7:审查更改并发布
最后,是时候审查已实施的更改(差异/diff)了。
审查 Google Jules 实施的更改
批准后,点击发布分支(Publish branch)。Jules 在原始仓库中发布功能分支,并自动打开一个针对主分支的拉取请求,以供最终合并。
检查 Jules 创建的拉取请求
当然,Jules 做到这一切很棒,但它有效吗?我下载了生成的代码并运行了测试。对我来说看起来不错。
实际操作的结果
关于智能体式开发的实用技巧和注意事项
在使用智能体编程工具时,有一些事情需要注意,以最大限度地提高实用性和安全性。
理想用例
首先,Jules 将擅长某些任务,例如文档改进、代码重构、Bug 修复、生成单元测试和精细的代码现代化。例如,假设你项目中使用的 API 已更新。这是将 Jules 派上用场的绝佳人选。
大型任务的迭代式提示
对于像大规模应用现代化或重构这样的复杂挑战,最好遵循采取非常小的步骤并在继续之前不断确认现代化组件处于可运行状态的建议。这是使用 AI 进行任何任务的好建议,在智能体场景中更是如此。这种方法也有助于抵消 Jules 在处理复杂架构大修方面的局限性。
审查与控制
可见的工作流程和用户可控性的重要性怎么强调都不过分。开发人员在执行前必须始终审查计划,并在审查最终的拉取请求(差异)以确保其符合项目标准,因为 Jules 不会直接修改仓库。
实践中的上下文窗口限制
尽管语言模型理论上具备大上下文能力,但它们通常在超出特定 token 限制的提示和上下文方面表现不佳,这可能成为大型企业代码库的障碍。
在探索 Google Jules 和智能体编码时,需要记住这些只是需要注意的一些具体事项。
总结
这篇内容介绍了如何使用 Google Jules 进行智能体编码。我们涵盖了 Jules 是什么、如何使用它,以及在使用它时需要注意的事项。
尽管 Google Jules 和智能体编码仍处于起步阶段,但有各种理由相信它们的作用只会随着时间的推移而增长。任何没有认真关注这一领域的机器学习从业者、数据科学家、工程师或开发人员——无论他们是否已经采用这些工具和实践——长期来看都可能会让自己面临市场失败的风险。
如果你对智能体编码的有效性或能力有疑虑,请从小处着手并衡量结果。它不是万能药,但也不是一无是处。不妨试试 Google Jules,以便涉足智能体 AI 的世界,或者为现有的编码工作流程注入超级动力。无论哪种方式,都很难想象你会为此后悔。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区