T
traeai
登录
返回首页
The JetBrains Blog

Junie: The JetBrains AI Coding Agent Leaves Beta

8.5Score
Junie: The JetBrains AI Coding Agent Leaves Beta

TL;DR · AI 摘要

JetBrains AI 编程代理 Junie 正式出 beta,支持多种模型并提供计划模式,显著提升开发效率。

核心要点

  • Junie 在 SWE-Rebench 基准测试中排名第一,解决率 61.6%,pass@5 为 72.7%。
  • Junie 支持任意模型,无锁定,用户可自由选择模型以控制成本。
  • 计划模式使 Junie 在编写代码前生成结构化文档,减少错误和资源浪费。

结构提纲

按章节快速跳转。

  1. JetBrains AI 编程代理 Junie 正式出 beta,标志着其从实验阶段进入实际应用。

  2. Junie 能够进行计划、调试、审查 PR 并运行长时间任务,提升开发效率。

  3. SWE-Rebench 测试结果

    Junie 在 SWE-Rebench 基准测试中排名第一,解决率和 pass@5 指标优于其他代理。

  4. Junie 支持任意模型,用户可自由选择模型以控制成本和性能。

  5. 计划模式使 Junie 在编写代码前生成结构化文档,减少错误和资源浪费。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • JetBrains Junie AI 编程代理
    • 核心功能
      • 计划模式
      • 调试与 PR 审查
      • 运行长时间任务
    • 测试表现
      • SWE-Rebench 排名第一
      • 解决率 61.6%
      • pass@5 为 72.7%
    • 模型灵活性
      • 支持任意模型
      • 无锁定机制
      • 成本控制

金句 / Highlights

值得收藏与分享的关键句。

#JetBrains#AI#编程代理#SWE-Rebench
打开原文

Junie:JetBrains AI 编码代理正式发布 | 立即试用

Junie

了解更多

智能代理 AI

JetBrains AI

新闻

Junie:JetBrains AI 编码代理正式发布

Dmitry Savelev

Junie 最初只是一个实验。我们问自己:“如果一个 AI 编码代理不只是猜测你项目中的细节,而是使用你所使用的相同工具,会怎样?”在过去的一年里,这个实验变成了一个每天被开发者使用的工具——在 IDE 和终端中。

今天,JetBrains AI 编码代理正式离开 Beta 阶段。这不是一个重命名或重新包装。Junie 最重要的部分已经稳定、连接良好,并且准备好投入实际工作。Junie 在编码前会进行规划,使用真正的调试器进行调试,在考虑项目上下文的情况下审查 PR,并在你专注于其他事情时运行长时间任务。

在最新的 SWE-Rebench(一个独立的代理基准测试)中,Junie 被评为第一的编码代理。

“SWE-Rebench 每个周期都会生成新的任务,以确保评估的公正性,因此结果会随着每次运行而变化。在这个周期中,Junie 成为了最佳模型-工具组合,解决了 61.6% 的任务,pass@5 达到了 72.7%——这使它领先于其他代理,并且与原始前沿模型具有竞争力。”

Alexander Golubev

Nebius 研究负责人

我们相信,将工作委托给代理应该是一种你可以经常进行的事情,而不仅仅是为了特殊情况。因此,Junie 支持任何模型,没有锁定——这就是你控制成本的方式。从第一天起,你就可以使用前沿实验室的最新模型,或者让 Junie 指向本地运行时。这是让你决定每个任务成本的杠杆。顶级推理模型功能强大但昂贵;较小的模型速度快且便宜。Junie 让你将每个模型放在最适合的位置。成本效率不再只是工具的属性,而是你手中的调节器。

安装 Junie

以下是通用可用性发布带来的内容:

高级计划模式:代理在编码前进行思考

AI 编码代理失败的最常见原因之一是当它们完全错误时却表现出坚定不移的信心——在任何人同意它们要做什么之前就开始实现。你最终会审查一个解决错误问题的 PR,或者在你本会在前 30 秒内拒绝的路径上浪费 token。

计划模式通过将计划作为首要的工件来解决这个问题。

在 Junie 编写代码之前,它会生成一个结构化的文档,包含产品需求、技术设计、交付阶段以及(在请求时)测试策略的标签页。你可以阅读这个文档。你可以在编辑器中直接编辑它。你批准它。然后 Junie 实现它。

这种方法比“更好的提示”更好,原因有几个:

  • 计划是一个真正的文档。它保存在 .junie/plans 中。你可以提交它,它成为任务文档,而不是一个一次性聊天信息。
  • 代理会提出正确的问题。当需求模糊时,Junie 会通过多项选择和自由形式的问题来明确问题,而不是猜测和希望。
  • Junie 在编码前进行计划,这意味着更少的浪费 token 和更少的失败 PR。每个浪费的实现运行都是你支付的 token,以及你无论如何都必须进行的审查周期。在强大的模型上进行计划,在便宜的模型上进行实现。代理不会漫无目的地行动,因此你的账单保持在较低水平。

使用 Shift+Tab 进入计划模式。使用 Ctrl+P 打开计划。当你准备就绪时,点击确认以实现更改。

当出现问题时,大多数编码代理会添加日志语句。Junie则会打开调试器。

在GA版本中,Junie可以像你一样控制IDE的调试器:

  • 启动或加入调试会话。Junie可以启动一个运行配置,调试一个测试,或者接管你已经打开的现有会话。
  • 在任何重要的地方设置断点,包括项目代码、库代码、SDK代码,甚至反编译的.class文件和JAR中的源代码。如果你的IDE可以进入某个代码,Junie就可以在其中设置断点。
  • 检查真实的运行时状态。堆栈帧、线程状态、表达式求值、运行到某一行——Junie收集实际的证据,而不是推测你的代码可能在做什么。

这使得Junie可以使用以前只能手动操作的调试模式:

  • “调试并找出为什么这个测试在第二次迭代时失败。”完全自主——Junie负责整个过程。
  • “准备调试器,我会触发UI流程。”Junie设置断点并等待你操作。
  • “继续我的当前调试会话,并告诉我为什么这个值变成null。”将常规的检查工作交给Junie,而你可以专注于更大的问题。

目前,这在JetBrains IDE中通过AI订阅可以实现端到端的运行。

远程控制:启动一个任务,并从任何地方关注它的进度

有些工作不适合在一个专注的30分钟会话中完成,例如升级Spring Boot、迁移到Java记录,或为遗留服务添加测试覆盖率。这些正是自主代理擅长的任务——而当你不需要一直盯着看时,效果会更好。

从你的笔记本电脑启动一个任务。在会议期间,从手机上查看进度。在喝咖啡时查看PR。Junie异步运行,并且可以从你登录的任何地方访问会话。

无上下文丢失的代码审查

大多数审查工具在PR打开时才第一次看到你的代码库。Junie使用与编写代码时相同的项目上下文进行审查:你的构建、你的测试、你的约定、你过去做出的决策。

  • 三个入口点。你可以从GitHub Actions或GitLab(包括本地部署)触发审查,也可以通过CLI或插件中的/review命令进行触发。你可以选择审查未暂存的更改、已暂存的更改,或与主分支的差异——由你决定。
  • 交互式浏览。Junie会突出显示每一个有意义的更改,解释其背后的设计决策,并在行内提供接受或拒绝的控制。当发现有问题时,可以立即在PR中添加评论。
  • 适应你的关注点。提出后续问题后,Junie会重新排列剩余的审查内容,围绕你关心的内容进行,而不是按字母顺序逐个文件浏览。

深度IDE集成:使用IDE工具的AI编码代理

Junie一直都在JetBrains IDE中运行。今年早些时候,我们向你展示了如何连接它。在Junie的GA版本中,我们基于ACP(代理通信协议)重新构建了这种集成,这也是Junie CLI与你的IDE通信所使用的协议。

  • 一个引擎,多种界面。同一个代理支持AI聊天、专用的Junie工具窗口和Junie CLI。改进一次发布,即可在所有地方看到。
  • 你的IDE,代理的工具箱。Junie使用你的IDE的语义索引、构建配置、测试运行器和调试器,而不是它们的近似版本。
  • 数据库集成。Junie 通过 DataGrip 和 JetBrains 数据库插件连接到您 IDE 中配置的数据库,然后它查询您真实的数据,并在处理代码的同一会话中编写、修复和验证 SQL。

这意味着什么

单独来看,这些功能中的每一个都解决了特定的问题。但它们一起使用时,就改变了代理的作用。

一个理解您的项目、允许您在执行之前批准工作、在您做其他事情时执行、在出现问题时正确调试、使用完整的项目上下文审查您的 PR,并查询真实数据的代理——这才是您可以真正委派任务的代理。

这就是我们设定的 Beta 版退出标准。

入门指南

  • Junie 可在所有 JetBrains IDE 中使用,并且可以通过 Junie CLI 在终端中使用。如果您已经有 JetBrains AI 订阅,所有功能开箱即用。
  • 您也可以使用自己的密钥——享受对 Anthropic、OpenAI、Google 等的访问权限。
  • Junie 连接到本地模型运行时——指向 LiteLLM、LMStudio、Ollama,代理使用您在自己机器上加载的任何模型运行。提示和代码从不对外共享。

安装 Junie,打开您的项目,然后在真实任务上进行测试(也许是一个您一直拖延的任务)。

然后告诉我们什么出错了,什么让您感到惊讶,以及您接下来想看到什么。以上所有功能都来自于这个反馈循环,而且在进入 GA 后,这个过程也不会结束。

尝试 Junie

人工智能代理

Junie

发布

  • 分享
  • Facebook
  • Twitter
  • LinkedIn

上一篇

代理 AI 治理:为问责和控制进行设计

发现更多

#### Junie CLI 现在可以连接到您的 JetBrains IDE

Junie CLI 与 JetBrains IDE 的结合:共享上下文、语义重构、智能搜索和构建配置——您的终端代理刚刚变得聪明得多。

#### Junie CLI,一个与 LLM 无关的编码代理,现已进入 Beta 阶段

Junie CLI,一个与 LLM 无关的编码代理,现已进入 Beta 阶段。随着 Junie CLI 的即将发布,您将能够直接从终端、任何 IDE、CI/CD 以及 GitHub 或 GitLab 中使用 Junie。

Anastasia Krivosheeva

#### 如何使用基于规范的 AI 编码方法

让我们看看 Junie(JetBrains 的 AI 编码代理)如何实现这一点。

Anton Arhipov

#### JetBrains 的代理 AI 时代已经到来

使用 Junie 实现无缝的 IDE 编码和异步开发。软件开发受到了 AI 编码代理的显著影响,这些代理接管了越来越多的重复任务,生成代码的速度更快,用更少的努力完成更多的工作。能够访问快速的编码代理或 IDE 内的 AI 是一件好事……

AI 可能会生成不准确的信息,请核实重要内容

Junie: The JetBrains AI Coding Agent Leaves Beta | The JetBrains Blog | traeai