进而创造,现阶段我们须要办理一个问题:如何去打通工具之间的壁垒,让 AI 赞助研发工具更好地协同,以提高研发效率?
AI 赞助研发策略该当如何演进?下图是当前 AI 增强的研发工具、平台的紧张构建思路:
当前阶段,我们紧张通过在已有的 DevOps 工具平台上,通过 AI 增强,来为端到端事情流、多角色协同场景供应场景化 Agents,提升协同效率。而从未来来看, 当前的 AI 赞助研发工具还存在一些问题。
问题 1:速赢和高杠杆领域已经被摘取去年 5 月,我们在 QCon 上分享《探索软件开拓新工序:LLM 赋能研发效能提升》里,个中我们建议企业该当关注:“速赢和高杠杆领域”,以得到更高的的投入产出比。
而在今年这些领域已经被摘取,如在赞助构造化需求、赞助代码天生、赞助代码审查等领域。大量的企业已经有一系列的“自研”工具,虽然可能短缺一些 最佳实践,但是或多或少已经在试点中,有一些还取得不错的效果。对付现有的开拓流程而言,我们很难逐一增强,我们还要面临事情利用者缺少干系的 AI 技能,提不出好的问题和需求。
只管,我们可以更多地关注长尾领域,如赞助支配、赞助运维等领域。这些领域的 AI 赞助研发工具还处于低级阶段,但是性价比不一定更高。
问题 2:AI 平台与工具的碎片化加深相似的,如先前的图所示,企业已经购买了或者自建算力、模型平台、模型编排等平台的底层能力,以及大量的知识库, 再到赞助研发的需乞助手、架构助手、测试助手、代码助手等等。就当前而言,企业普遍缺少精良的 AI 工程师,因此主流的办法是外购或者基于开源软件构建。
购买办法。对不同的平台、工具进行大量的前期试点或者评估,再选择最适宜自己的工具。如基于 GitHub Copilot、通义灵码、CodeGeeX 等等。
自建办法。如基于开源 AI 运用开拓平台 Dify、开源的 IDE 插件 AutoDev、Continue、开源的各种赞助研发 ChatBot 等等。
在这种情形下,未贴合企业实际需求的碎片化工具大量存在各个团队中,并且难以协同。碎片化的工具不仅会存在大量重复劳动,还会使得 AI 平台或者工具束之高阁,无法发挥最大的代价。那么,我们该当如何去打通这些壁垒呢?
什么是云端与 IDE 智能体协同?在过去的一年里,我们看到了一些 IDE 智能体的案例:
Bloop。可以利用自然措辞提问,搜索代码,并基于现有代码库天生补丁。
Tabnine - Jira to code。开拓团队可以从 Jira 任务中自动生成功能完备的运用程序。
GitHub Copilot Workspace。结合 GitHub 平台的需求功能(issue)、代码托管、构建、支配平台,实现从需求到代码的自动天生与支配。
……
这些智能体的共同点是:通过结合工具链来获取 IDE 的高下文信息,再结合云真个知识库等,来处理对应的的任务需求。
IDE 智能:如何最大化代码的代价?在 IDE 侧,与智能体干系的能力常日有两类:
本地智能体。直接从本地获取所需高下文,直接与模型进行交互,如常用的 @workspace
功能,用于直接与代码库进行问答。
云端智能体集成/智能体市场。即与云真个智能体进行交互,通过多轮信息通信,供应其所须要的高下文,诸如 AutoDev 自定义的智能体、GitHub Copilot Extension 等。
对付本地智能体来说,其紧张的上风是:速率快,可以直接快速获取本地的高下文信息,不须要网络传输。但是,其缺陷是:无法获取云真个知识库 ,无法获取更多的领域知识。以是,对付一些须要大量领域知识的任务,如需求天生代码、代码审查等,我们须要通过云端智能体来获取更多的知识。
因此,对付 IDE 侧来说,我们须要能动态地供应云端所须要的高下文信息,并供应对应的智能体接口,以支持云端智能体的调用。
云端智能体:内部资产与研发知识的集成如图 1 所示,我们在过去已经构建了一系列的智能体,它们都基于各自领域的特点,供应了所须要的知识与最佳实践。诸如,我们会在需乞助手中,添加所属领域的 知识库,需求编写的最佳实践等等。而事实上,对付这一类需乞助手只有这一些是不足的,代码的现有实现逻辑,会影响新功能的设计。
进而我们会创造:软件研发的各种智能体是你中有我,我中有你的。只是单独的一个智能体是无法完玉成部研发流程的,我们须要将这些智能体进行整合,以支持 全体研发流程。
云端与 IDE 智能体协同的实现在云端,大量企业已经构建了类似于 Dify 的 AI 运用平台,在这些运用平台上,已经可以支持对智能体的编排,因此实现上起来并不困难。但是,对付 IDE 侧来说,我们还须要构建一个类似的智能体编排系统,以支持 IDE 侧智能体的调用。
IDE 智能体编排系统在 IDE 侧,我们须要构建一个智能体编排能力,以支持 IDE 侧智能体的调用。它须要支持:
快速获取 IDE 高下文信息。如当前的代码库、当前的代码、当前的需求等等。
轻量级的高下文处理。诸如对付代码库的搜索、静态代码剖析等等。
与云端智能体的交互。通过 API 调用,获取云端智能体的结果。
与三方工具的集成。如与 Sonarqube、GitHub、Git 等工具的集成,以支持对应的需求、代码库的获取。
数据的安全性。对付代码库、需求等敏感信息,须要进行加密处理。
让用户能够为他们自己的 IDE 创建定制的 AI 智能体,从而构建个性化的 AI 驱动开拓环境。
云端与 IDE 智能体协同实现:Shire 示例Shire 供应了一种简便 AI 编码智能体措辞,能够让大型措辞模型(LLM)与掌握集成开拓环境(IDE)之间自由对话,以实现自动化编程。在 Shire 中,你可以 通过编程措辞的办法,来定义与 IDE 的交互信息处理,以及与远程智能体的交互。
PS:安装办法,Intellij 等 IDE 在插件市场搜索 Shire
如下是一个大略的 Shire 结合数据库信息,与远程智能体天生 SQL 的示例:
---
name: \公众设计数据库\"大众
variables:
\"大众requirement\公众: /any/ { thread(\公众.shire/shell/dify-epic-story.curl.sh\公众) | jsonpath(\"大众$.answer\"大众, true) }
afterStreaming: {
case condition {
default { execute(\"大众gen-sql.shire\"大众, $requirement, $output) }
}
}
---
[干系的数据库设计库提示词]
— User use database: $databaseInfo
- User tables: $tables
Here are the User requirements:
$requirement
在这个示例中,我们通过 thread
函数,调用了一个支配于 Dify 上的远程智能体,获取了干系业务的需求。在 AI 剖析完需求后,再通过 execute
函数, 再调用了一个本地的智能体(即 gen-sql.shire
),天生了 SQL。在 gen-sql.shire
中,我们定义了基本的 SQL 规范,以让 AI 天生的 SQL 更符合 企业规范。
你可以在我们的 GitHub 上找到更多的示例:Shire 示例 ( https://github.com/shire-lang/shire-spring-java-demo ) 。
小结去年,我们在设计开源 IDE 插件 AutoDev 时,构建了一个 AutoCRUD 的智能体。这个智能体可以获取 GitHub、GitLab 上的 issue 作为需求,再结合本地的代码库,自动对代码进行修正。
我们相信,未来的 AI 赞助研发工具该当是:云端与 IDE 智能体协同。即通过 IDE 侧的智能体编排系统,与云端智能体进行协同,以支持全体研发流程的 自动化。