JetBrains AI 打零工(三)——Junie 常用交互模式分析

1,041 阅读4分钟

1、插件工作区

image-20250608155548661.png

Junie 目前只能通过打开插件,在工作区中使用,一个对话区,一个任务区。

对话区通过提供 Code 与 Ask 两种模式执行 Coding Agent,不再赘述。

还有一个 Brave Mode 相当于超级代理,不需要使用者确认自动执行 agent 任务,包括提交代码、执行系统命令,考虑到安全性和插件成熟度,这个暂时还是建议不要开启。还是回到 Java 使用场景,大规模协作中的代码,不开启这个模式还是理智的。

对话区还可以添加文件,这个相对 AI Assistant 少很多,只有 Project file、Project guidelines、AI ignore file 这几种。这里有个细节,选取到的文件是按照最近打开排序的,当前打开的文件总是排在第一个。添加关联文件很方便。

image-20250608161024814.png

这个关联文件我的切身体感可以不添加,Junie 基本都会分析出需要关联哪些文件,但是手动添加后可以加快执行速度还可以减少使用额度消耗。

下面的任务区就是 Junie 正在执行的任务列表,按照创建时间顺序依次排列,执行状态也清晰可见。一般有四种,对勾的就是已完成,Junie logo 旋转的就是自动执行中,红色标记的就是因为网络、模型等原因意外终止的,黄色标记的就是需要使用者人工介入的比如执行测试、查找文件目录这些。

2、任务执行详情

这个部分就是最关键的任务执行详情页,开始一个任务后 Junie 就会自动提炼出标题作为任务索引。

Junie 提供了丰富的任务执行过程输出,从最开始的执行计划 plan,到获取文件结构 Get structure,执行脚本命令 Terminal,再到编辑与打开文件 Edit、Open,最后到完成任务总结 Done,每一步都告知了 Junie 的操作意图。

image-20250608161653431.png 大部分情况下任务定义清晰这些执行过程是不太需要关注的,直接检查 Done 就可以,但如果需要检查任务执行过程,思考过程都是可以查找到的。

image-20250608164424011.png

3、Junie 配置

Junie 支持的配置相对 AI Assistant 也少很多,但足够作为 Coding Agent 使用。都是围绕 Brave Mode 扩展的,Terminal Rule、RunTest Rule、Build Rule 三种不需要使用者确认可直接执行的规则。

另一个 Project Settings 就是这些规则的存放路径。

image-20250608170002822.png

4、个人喜欢的几点设计

通过任务列表页与任务详情页,Junie 就构建起了一个 Coding Agent 需要与用户交互的全部流程,在整个 IDE 上独立分区,没有侵染代码区域(代码修改也是通过文件比较实现的),非常简洁。

虽然从这个时间节点看很多设计都高度趋同,但从使用者视角依然能感觉到不错的用户体验,比如:

  • 自动关联文件,执行任务能先分析需要使用哪些文件
  • 多任务并行执行,各任务间独立操作,自动处理代码冲突与合并
  • 自动提炼任务标题,描述任务都基于文本与多轮对话,Junie 会在任务列表页自动提炼出标题,这在任务结束后查找、任务执行过程回溯都很方便
  • 自动列出执行计划,一个任务创建先列 plan,然后根据执行过程中调整 plan,除了结果还会把执行思路反馈给使用者,这个在一些复杂任务执行中调整很有用,及时补充 Junie 理解分歧信息,计划都会给出测试安排按照计划执行
  • 执行结果确认,这里不单是确认或是拒绝任务执行结果,还可以基于任务继续执行或者重新执行,并且能单独控制每个修改过的文件确认修改与回滚,与 IDE 反向定位所在目录位置,做代码修改前后比对,没有提交过的文件可以直接添加到 Git 缓冲区

工具从来都缺少不了比较,大火的 Cursor、Windsurf 都提供了支持高阶开发者的编程支持,相对而言,Junie 在产品设计上保守而稳健。细节还可以继续打磨下:

  • 任务详情提供快速导航,能够区分使用者提问与 Junie 生成的任务进度标志,知晓提问与任务的对应关系,因为与 Junie 对话本身也是可以作为工程化的一部分
  • 缺少细粒度调整,一个任务执行过程中发现有不恰当的理解需要及时修正,或者部分采纳任务结果,还没法做到灵活修改