进而创造,现阶段我们须要办理一个问题:如何去打通工具之间的壁垒,让 AI 赞助研发工具更好地协同,以提高研发效率?

AI 赞助研发策略该当如何演进?

下图是当前 AI 增强的研发工具、平台的紧张构建思路:

当前阶段,我们紧张通过在已有的 DevOps 工具平台上,通过 AI 增强,来为端到端事情流、多角色协同场景供应场景化 Agents,提升协同效率。
而从未来来看, 当前的 AI 赞助研发工具还存在一些问题。

问题 1:速赢和高杠杆领域已经被摘取

去年 5 月,我们在 QCon 上分享《探索软件开拓新工序:LLM 赋能研发效能提升》里,个中我们建议企业该当关注:“速赢和高杠杆领域”,以得到更高的的投入产出比。

云端与 IDE 智能体整合解决对象碎片化实现 AI 全流程自动编码

而在今年这些领域已经被摘取,如在赞助构造化需求、赞助代码天生、赞助代码审查等领域。
大量的企业已经有一系列的“自研”工具,虽然可能短缺一些 最佳实践,但是或多或少已经在试点中,有一些还取得不错的效果。
对付现有的开拓流程而言,我们很难逐一增强,我们还要面临事情利用者缺少干系的 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 侧的智能体编排系统,与云端智能体进行协同,以支持全体研发流程的 自动化。