📢 转载信息
原文链接:https://www.kdnuggets.com/agentic-ai-coding-with-google-jules
原文作者:Shittu Olumide
Image by Author
# 引言
如果你在过去几个月里一直在编写代码,我敢肯定你一定注意到了一个转变。人工智能不再仅仅是建议代码片段;它已经超越了这一点,开始采取行动。开发者正从像Copilot这样的辅助工具转向能够理解目标、规划一系列步骤并独立执行这些步骤的代理系统。
Google Jules正处于这一浪潮的前沿。它不是一个驻留在你IDE中的聊天助手;它是一个完全异步的编码代理。你告诉它需要修复、更新或测试什么,它就会在远程执行工作,包括克隆你的仓库、在安全的云虚拟机中编辑代码、运行测试,并为你打开一个用于审查的拉取请求(Pull Request)。
这种差异是微妙而深刻的:Jules不会等你打字。它根据你的意图和代码库的上下文独立行动。它会阅读你的文档、运行构建、在触碰任何代码前展示其计划,甚至会在diff视图中解释每一项更改。当你专注于架构或设计时,Jules会默默处理那些占用开发者大部分时间维护性任务,例如版本升级、不稳定的测试、遗忘的文档字符串(docstrings)以及低影响的错误。
# Jules 有何不同?
大多数AI编码工具仍然存在于你的编辑器内部。它们在你的逐行监督下自动补全函数、建议补丁或重构小片段。Jules不这样做。它将整个工作流程移出你的本地环境,并在云端异步运行。
当你给Jules分配一项任务,比如“将应用升级到Next.js 15并迁移到App Directory”,它不只是预测。它会从GitHub拉取你的仓库,设置一个虚拟机,安装依赖项,编写和测试更改,并在对主分支进行任何修改之前提供一个计划和diff。
这种端到端的完整工作流程使Jules与像Copilot或Cody这样的建议型助手区分开来。它不是帮助你更快地写代码;它是在帮助你完成你根本不想做的那些工作。
该平台围绕四个核心理念构建:
- GitHub 原生集成 — Jules像团队成员一样处理Issue、分支和Pull Request。你甚至可以通过向Issue添加
jules标签来直接为其分配任务。 - 云执行环境 — 每项任务都在一个干净的Ubuntu虚拟机中运行,预装了Node.js、Python、Go、Rust、Java和Docker。无需本地设置,没有依赖漂移问题。
- 透明化推理 — Jules会向你展示其计划,解释每一步,并在合并前生成diff。你会确切地看到它的思考过程。
- 异步自主性 — 一旦启动,即使你关闭浏览器,Jules也会继续工作。完成后你会收到通知。
# Jules 的架构
Jules是一个围绕大型语言模型Gemini 2.5 Pro和一个基于云的执行层包装起来的工作流系统。它结合了结构化自动化与代理推理,意味着每个步骤(计划、编辑、测试、PR)都是可观察、可追溯且可逆的。
Image by Author
以下是它在后台的实际工作方式:
- 任务初始化: 当你描述任务(“为auth.js中的parseQueryString添加一个测试”)时,Jules会创建一个与你的GitHub仓库和分支相关联的会话。它会从README.md或AGENTS.md等文件中获取仓库元数据和环境提示。
- 环境设置: Jules在云中启动一个短暂的Ubuntu虚拟机。它会自动安装你的依赖项或运行你定义的设置脚本 —
npm install,pytest,make build,任何你指定的内容。所有操作都在隔离环境中运行,因此你的仓库保持安全。 - 推理与规划: 使用Gemini 2.5 Pro,Jules会分析代码库和你的提示,生成一个计划:修改哪些文件、修改哪些函数、创建哪些测试。它会在执行前展示此计划供你审查。你可以直接在界面中编辑或批准它。
- 代码生成与测试: 批准后,Jules会在虚拟机内部执行每一步。它会编写或修改代码,运行测试套件,验证输出,并将所有结果记录在活动信息流中。你可以在此观察Jules“大声思考” — 解释它为何更改了每个文件。
- Diff 和审查: 每一项编辑都附带一个Git diff。你可以展开它,审查补丁,并下载或复制代码片段。Jules会用自然语言解释每一项更改,并通常将其链接回导致该更改的计划步骤。
- 提交和PR创建: 最后,Jules将更新后的分支推送到GitHub并打开一个Pull Request,你(或你的CI管道)可以进行审查和合并。你始终是仓库的所有者 — Jules仅作为助手提交。
整个系统异步运行。你可以在Jules完成构建或测试运行时关闭笔记本电脑、去喝咖啡或处理其他分支。完成后,它会发送一个浏览器通知或更新UI。
# Jules 入门
Jules的设计目标是让第一次点击就感觉毫不费力。你不需要安装或配置任何东西;它完全在云端运行,以GitHub作为入口点。典型的入职流程如下所示。
// 1. 登录并连接到GitHub
访问 jules.google 并使用你的Google帐户登录。接受隐私声明后,系统会提示你连接GitHub帐户。Jules只处理你明确授予访问权限的仓库,因此你可以选择连接所有项目或仅连接少数项目。
连接后,你会在选择器中看到你的仓库列表。选择一个,Jules会自动检测其分支、README和构建上下文。
Image by Author
// 2. 编写清晰的任务提示
Jules的核心是提示框,你可以在其中描述你希望完成的工作。你可以输入简单的英文指令,例如:
在utils.js中为parseQueryString添加一个测试
要直接从GitHub分配任务,只需向Issue添加标签 'jules'。Jules会自动拾取它,生成计划,并开始准备虚拟机。
你甚至可以附上图片(如UI模型图或Bug截图)以提供更多上下文。Jules将这些用作视觉提示,而不是提交到你仓库中的资产。
// 3. 审查计划
在编写任何代码之前,Jules会向你展示其推理过程,即它打算采取的步骤的结构化分解。你可以展开每个步骤,留下评论,或直接在聊天中请求调整。一旦你批准了计划,Jules就会在一个新的虚拟机中开始执行。
Image by Author
// 4. 观察Jules工作
在活动信息流中,你会看到Jules正在进行的操作的实时日志 — 安装依赖项、修改文件、运行测试或生成diff。你可以走开;它是异步设计的。
完成后,你会收到一个摘要,显示:
- 更改的文件
- 总运行时间
- 添加或修改的代码行数
- 带有提交信息的创建的分支
Image by Author
然后,你可以点击发布PR,Jules就会打开一个GitHub Pull Request,其中已经推送了他们的更改。一旦你对它满意,就可以审查和合并PR了。
# Jules CLI
虽然Web应用程序提供了可视化的仪表板,但Jules Tools CLI将相同的功能直接带到了你的终端中。它轻量级,并能顺利地集成到你日常的开发工作流程中。你可以使用它来启动任务、检查进度或拉取结果,而无需离开编辑器或CI/CD管道。
// 1. 安装和登录
Jules Tools可以通过npm获得。使用以下命令全局安装:
npm install -g @google/jules
安装后,使用你的Google帐户登录:
jules login
将打开一个浏览器窗口进行身份验证,确认后,你将可以完全访问你的Jules会话。
// 2. 检查仓库和会话
CLI允许你查看所有已连接的GitHub仓库和活动的会话。
# 列出已连接的仓库 jules remote list --repo # 列出活动或过去的会话 jules remote list --session
这反映了你在Jules仪表板上看到的内容,但以终端形式呈现,非常适合自动化检查或在无头服务器上工作时使用。
// 3. 创建新会话
启动新的编码任务同样简单:
jules remote new --repo . --session "为utils/添加TypeScript定义"
此命令告诉Jules获取当前仓库,启动一个安全的云VM,并开始规划。你会收到一个会话ID作为返回值,你可以用它来监控或稍后拉取更改。
// 4. 将结果拉回本地
一旦Jules完成任务并创建了Pull Request,你可以将产生的结果更改带回到本地环境:
jules remote pull --session 123456
这对于CI系统或希望离线审查更改后再合并的团队很有用。
// 5. 启动TUI
如果你更喜欢可视化界面,只需输入:
jules
这将启动终端用户界面(TUI),一个极简的仪表板,可以在终端内实时显示会话、任务及其进度。它是自动化和可见性的完美结合。
# 选择适合你工作流程的Jules计划
Jules旨在与你的编码工作流程一起扩展,从单人调试到企业级敏捷开发。它提供三个级别,每个级别都针对不同的工作负载进行了优化,但都由相同的Gemini 2.5 Pro模型提供支持。
付费计划通过Google AI Plans管理,目前仅对个人@gmail.com帐户可用。谷歌已确认Workspace和企业套餐即将推出。
| 计划 | 最适合 | 每日任务量 | 并发任务量 | 模型访问 | 备注 |
|---|---|---|---|---|---|
| Jules | 试用真实世界的代码自动化 | 每天15个任务 | 每次3个 | Gemini 2.5 Pro | 免费起步,适合业余或测试项目 |
| Jules in Pro | 需要日常交付的开发者,追求持续工作流 | 每天100个任务 | 每次15个 | 对最新Gemini模型的更高访问权限 | 包含在Google AI Pro计划中 |
| Jules in Ultra | 高级用户或大规模代理工作流程 | 每天300个任务 | 每次60个 | 优先访问最新的Gemini版本 | 包含在Google AI Ultra计划中 |
一旦你用完了每日配额(在滚动24小时内计算),你仍然可以查看和管理现有会话;但是,你将无法启动新的会话,直到限制重置。当这种情况发生时,Jules会显示一个工具提示或“升级”提示。
每个计划都强制执行自己的并发限制,这决定了最多可以同时运行的虚拟机数量。超出限制只会使任务排队,确保安全并行执行而不会发生冲突。
每个Jules会话都会启动一个具有真实计算成本的安全虚拟机。限制确保了稳定性、隔离了工作负载,并保护了仓库数据免受过度使用或滥用。它们也有助于谷歌为即将到来的多代理升级基准测试性能。
# 隐私、安全和数据处理
当一个AI系统运行你的代码时,信任不是可选的;它是决定一切的关键。Jules从一开始就考虑到了开发者的隐私。每个仓库、任务和环境都以隔离方式处理,并且你的任何私有数据都不会用于模型训练。
在实践中,这意味着:
- 短暂的、隔离的虚拟机: Jules运行的每个任务都发生在一个临时的云VM中。一旦任务完成,无论成功还是失败,环境都会被销毁。没有持久化的容器,没有共享卷,也没有长期运行的进程。这种沙盒模型保护你的仓库免受泄漏或不同运行之间的交叉污染。每个新任务都从干净的状态开始。
- 明确的仓库访问权限: Jules只能访问你通过GitHub授权的仓库。要停止某个仓库的工作,只需通过GitHub应用程序设置撤销其访问权限即可。
- 不使用私有代码进行训练: 与一些静默收集上下文的助手不同,Jules不会对私有仓库进行训练。你的提示、diff和提交仅用于该会话的执行,绝不会用于改进模型。这一点是谷歌对代理系统方法的核心:模型可能通过聚合学习得到改进,但绝不会通过你的个人或公司代码。
- 安全执行和依赖项处理: 所有构建都在一个完全沙盒化的环境中进行。你可以通过活动信息流或日志检查运行的每个命令。如果发现某些操作有风险,你可以随时暂停或删除任务。
- 透明的日志和完全的可审计性: Jules执行的每一个操作,例如计划创建、diff生成、测试、提交或PR,都会被记录下来。你可以稍后下载或审查这些日志以供合规或审计使用。
# 总结
软件开发正在进入一个代理阶段,人工智能不再仅仅是协助,而是参与其中。Google Jules是这一转变最明确的例子之一。
它直接与GitHub集成,安全地在自己的VM中运行任务,通过测试验证其输出,并在合并任何内容之前展示其推理过程和diff。无论你是修复错误、重构功能还是清理依赖项,Jules都为你提供了一种在不走捷径的情况下加快速度的方法。
对于探索自动化或厌倦了维护开销的团队来说,这正是下一代AI工具的起点。请在 jules.google 上亲自探索,体验一下与真正与你协作的代理一起编程的感觉。
Shittu Olumide 是一名软件工程师和技术作家,热衷于利用尖端技术来构建引人入胜的叙述,对细节有着敏锐的洞察力,并擅长简化复杂的概念。你也可以在Twitter上找到Shittu。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区