作者:Nick Zhu
随着人工智能和大型语言模型(LLMs)的不断发展,Agent(“智能代理”)和智能代理化工作流程正在迅速成为AI领域的下一个前沿。这些自主系统带来了巨大的好处,它们可以创建计划、执行单个任务、使用外部工具、与用户互动,甚至自行修复错误。
凭借这些功能,代理化工作流程可以解决一些企业客户在开发周期中经常遇到的复杂、关键任务,甚至是一些极其繁琐的任务。对于使用Java的企业客户来说,升级JDK、框架、依赖项等一直是一个挑战。这些挑战覆盖的范围相当地广,开发者可能会需要经常面对重复且繁琐的场景,例如API签名发生变化等等。我们见过一些企业在将代码库从Java 8升级到Java 17时,花费了几天甚至几周的时间,这是一项巨大的资源和人力投入。
今天,我们很高兴宣布GitHub Copilot upgrade assistant Java的技术预览版。这是一个基于AI的解决方案,它使用智能代理化工作流程和多代理框架帮助您更新Java应用程序。通过安装Visual Studio Code插件,您可以从本地Java项目开始,GitHub Copilot将自动处理大部分升级过程。以下是该产品的一些关键功能。
创建一个智能的计划
GitHub Copilot upgrade assistant for Java会分析您当前的项目,并提示用户输入JDK和Maven路径、分支名称等参数。点击“Start(开始)”后,工具将进一步评估该项目的依赖项,例如Spring Boot和JUnit等框架。您还可以选择生成一个GitHub Issue,记录升级过程中的任务。
您可以在执行计划前,审核即将执行的任务。以下是一个演示。
可视化每一步操作
当升级开始后,工具的信息面板(Dashboard)将成为主要信息中心,您可以在此查看每个任务的实时详情,包括运行OpenRewrite工具的命令、查看选择的配方、审查修改的文件和错误详情、每个步骤日志等。您还可以深入探索每个任务及其子任务的详细信息。
在升级过程中,您可以随时选择暂停、停止、继续,甚至重新启动新的升级计划。该工具在整个升级过程中为用户提供了高度的控制权和透明度。以下是一个演示。
自动修复错误与人机协作
如果在升级过程中出现错误,无论是由OpenRewrite代码转换引入的错误,还是其他原因,GitHub Copilot upgrade assistant for Java将通过动态构建/修复/重试AI循环自动处理这些问题。AI将自动尝试自动解决这些,并通过重新构建项目进行验证。如果问题仍然存在,系统将继续尝试不同的方法,只有在达到指定的尝试次数后才会需要“人类”的协助。工具将提供明确的信号,提示何时需要人工干预,并在工具中提供了人机协作体验的交互。以下是一个演示。
从开发者学习
当用户在升级过程中手动修复错误时,GitHub Copilot upgrade assistant for Java会学习这些修复并将这些模式应用于未来的问题。这些修复会被标记为“使用开发者的指导修复”。企业开发人员会发现随着工具对其代码库问题的适应,升级变得更加简单。以下是一个演示。
分支,Commit与PR流程整合
在操作过程中,GitHub Copilot upgrade assistant for Java将针对新的分支执行本地代码提交。这些提交与特定任务相关联,例如由OpenRewrite转换引起的所有代码更改,或者在错误修复循环期间的更改。
无论是OpenRewrite工具引起的更改,还是AI在动态构建/修复/重试循环中的更改,或是人工干预引起的更改,都会被适当标记,方便您专注于特定的更改。
升级过程总览
升级结束时的总结页面将提供所有重要细节的概览,包括文件更改、更新的依赖项、新的分支中的Commit。错误摘要部分还显示错误是如何解决的,无论是通过AI、开发人员还是通过开发者指导。此外,您还可以直接合并Commit并创建Pull Request!以下是一个演示。
申请技术预览的等候名单
准备好节省Java升级的时间了吗?您可以通过以下链接或者二维码申请技术预览的等候名单:
https://github.com/features/preview/copilot-java-upgrade
早期访问将仅限于选定的用户,但我们鼓励您注册!
AI时代充满了令人兴奋的可能性,我们相信这只是个开始。我们将为复杂的工作流程带来更多支持,帮助客户应对这些任务。人工智能与人类的合作将帮助我们实现创造性解决方案并提高效率,为我们的工作节省数千小时的时间。