作者: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将自动尝试自动解决这些,并通过重新构建项目进行验证。如果问题仍然存在,系统将继续尝试不同的方法,只有在达到指定的尝试次数后才会需要“人类”的协助。工具将提供明确的信号,提示何时需要人工干预,并在工具中提供了人机协作体验的交互。以下是一个演示。