近日,阿里通义智能计算实验室在Visual Studio Code扩展市场推出了一款全新的AI助手工具——SmartVscode。凭借实验室自主研发的应用程序智能控制框架App-Controller,SmartVscode 实现了“通过自然语言直接控制VS Code”的创新功能,极大地优化了用户在使用VS Code时的交互体验,并显著提升了开发效率。目前 SmartVscode的核心技术均已开源。
App-Controller开源地址:
https://github.com/alibaba/app-controller
smart-vscode-extension开源地址:
https://github.com/alibaba/smart-vscode-extension
01SmartVscode的开发背景
Visual Studio Code(VS Code)是一款功能强大的开源代码编辑器,以其高度的扩展性和友好的使用体验而广受欢迎,现已跻身全球前三大最受欢迎的开发工具之列,成为无数程序员的必备利器。然而,随着VS Code功能的日益丰富及其独特的使用技巧,许多新手程序员需要花费大量时间阅读说明文档才能熟练掌握VS Code。即便是经验丰富的老用户,有时候也需频繁查阅资料才能实现对应的功能。例如,当用户想快速运行一个简单的Python程序时,他必须先花费许多时间了解如何在VS Code中安装对应的Python插件,如何配置相关的启动项等知识。
随着大模型的迅速发展,传统搜索引擎的地位逐渐被边缘化,取而代之的是通过向大模型提问来获得对应解决方案的便捷方式。如今,许多程序员已经习惯通过与大模型互动来了解如何高效使用VS Code。
用户们不断向大模型询问操作方法,并按照指导一步步完成指定任务。然而,在享受这份便捷的同时,一个新的想法浮现:既然大模型能够教开发者们如何操作VS Code,为什么不进一步,让它直接帮助开发者们完成相应的需求呢?
于是,SmartVscode应运而生。
02SmartVscode能做什么
SmartVscode的目标是让大模型能够全面控制VS Code,从而带来两大核心能力。
能力一:通过自然语言轻松控制VS Code
用户可以通过自然语言指令,方便地控制和修改VS Code。例如,打开某个难以查找的页面,精准快速地调整设置中的某项配置等。无需记忆复杂的操作步骤,只需告诉SmartVscode你想做什么,它便会为你完成。
下面,将展示这一项能力的几个典型示例:
样式更改
用户输入想要更改的样式,SmartVscode会自动地完成查找配置,修改配置等步骤。
使用Python编写快速排序代码
在这里,SmartVscode将会帮助自动化地完成:检测Python的插件是否安装,选择对应的Python解释器,打开文件书写快排代码,执行对应的代码等步骤。
能力二:利用VS Code的强大功能开发应用程序
SmartVscode不仅让大模型全面控制VS Code,还赋予用户利用VS Code内部丰富功能开发各类应用程序的能力。简而言之,大模型充当“大脑”,VS Code作为“工具”,而SmartVscode则是连接二者的桥梁。用户可以通过自然语言的描述,让大模型借助VS Code这一强大工具来帮助用户直接实现各种奇思妙想的应用程序。典型示例:
井字棋游戏开发
用户输入一段关于井字棋游戏的描述,SmartVscode会自动完成创建文件,编写代码,执行程序等步骤。
03如何使用SmartVscode插件
- 在VS Code扩展市场搜索并下载SmartVscode插件。
- 打开VSCode左侧边栏中的SmartVscode对话窗口,并在设置中输入你的通义模型或OpenAI模型配置。
- 在对话框中输入你的任务描述,等待SmartVscode执行并展示结果。
04SmartVscode背后的技术支持:App-Controller
SmartVscode的实现离不开通义智能计算实验室自主研发的App-Controller框架的支持!
把目光放在更远处!不仅仅是VS Code,在日常的工作和学习中,大模型如同无所不知的导师,为我们对各类工具(例如Word、Photoshop等)的问题进行答疑。例如“如何强制删除空白页”或“如何在Photoshop移除图片背景”的具体实践问题。
然而,在享受这份便利的同时,一个念头跃然而出:既然大模型能够教导我们操作方法,为何不能跨越界限,直接执行这些任务呢?考虑到大模型卓越的推理与学习能力,构建一座桥梁,让它们直接与工具对接,化身为“工具指挥官”,岂不是更为高效?与其耗费时间逐一研读各类工具的繁琐手册,不如让大模型作为中介,实现操作的自动化,为用户节省宝贵的时间和精力。
试想这样一个未来场景:基于大模型,这些智能的AI助手,不仅能够指点迷津,揭示解决方案,更能无缝融入工作流程,直接操控各种应用程序,完成一系列复杂任务。这将彻底改变人机交互的模式,开启一个既高效又直观的全新交互时代。在这样的未来里,技术的边界被重新定义,人类与人工智能的合作将达到前所未有的深度与广度,共同探索未知,创造无限可能。
05什么是App-Controller?
App-Controller宛如一根神奇的指挥棒,赋予应用程序理解并执行自然语言命令的能力,瞬间缩短用户意图与复杂功能实现之间的距离。它是一个基于大型语言模型(LLM)和代理(Agent)的创新API编排框架,通过运用LLM的高级推理功能,实现对应用程序API接口的整合与协调。
- App-Controller允许应用程序响应和执行基于自然语言的指令,极大提升了用户体验,并简化了应用程序与用户的交互流程。
上图展示了 App-Controller 如何增强应用程序的交互能力。具体而言,图片分为两部分,左半部分描述了传统完成任务的问答和执行流程,右半部分展示了引入App-Controller后的完成任务的流程。
传统流程中,当用户需要在应用程序中完成某项任务却不知道该如何操作时,他首先需要向大模型咨询操作步骤,然后根据指引一步步执行对应的操作,最终完成任务。
引入 App-Controller 后的流程中,用户仅需使用自然语言向应用程序输入需求,便可得到执行结果。这背后的原理是应用程序在 App-Controller 的协助下借助大模型理解用户意图并编排需要执行的命令。
- 任何应用程序厂商仅需在 App 上实现通信接口并且向 App-Controller 提交其支持的 API 清单,框架便能独立地探索并识别出完成用户指令所需的最佳 API 调用顺序。
App-Controller 的核心竞争力在于其高度自动化的 API 编排逻辑以及易用的数据交互模式,这些都大幅降低了应用开发商在引入智能化过程中遇到的复杂性和开发周期,加快了应用程序功能的扩展与精进。此外,它还搭载了一个高度抽象化、极具弹性的 HTTP 交互接口,进一步促进了应用程序的互联互通。最终,App-Controller 的愿景是为用户和开发者带来一种更加自然、直觉化且效率高的操作模式,赋予应用程序以无与伦比的适应力,以满足用户各种多样化的需求。
- 🔥 增强易用性:允许用户可通过简单的自然语言命令来直接控制你的应用程序,无需学习复杂的界面或命令集,即可使用提供的服务或内容。
- 🛠️ 轻松集成:开发者只需注册其应用程序的 API 清单,App-Controller 会自动负责后续的识别和编排工作,无需复杂编码工作。
- 🚀 异步与并发处理:通过采用现代异步技术,App-Controller 强化了其对并发请求的支持,确保即使在多用户或多任务的高负载环境下,应用程序也能保持高效和响应迅速。
- 🌐 强大的 API 交互接口:App-Controller 设计了一套用户友好、稳固的 HTTP API 接口,这意味着与应用程序的交互可以无缝自由,同时确保数据传输的高效率和安全性。
- 🤖 支持多种大型语言模型:App-Controller 能够很好地与多种大型语言模型进行集成,这意味着开发者可以根据需求和场景选择最适合的模型,以实现最优的自然语言理解和处理能力。
- 📚 丰富的文档资源:App-Controller 提供了详尽的文档,其中包括快速入门指南、API参考手册、最佳实践案例和常见问题解答,帮助开发者轻松上手并充分利用框架的所有功能。
- 💾 任务流的持久化:任务流程可以持久存储在数据库中,这项功能方便了任务的监控和管理,使得开发者可以随时查看任务的状态和历史记录。
- 🛢️ 智能缓存机制:通过先进的缓存技术,App-Controller 能够优化性能和响应速度。它智能地存储频繁请求的结果,减少了对外部大模型的调用次数(即将推出)。
- 🌟 Token优化:App-Controller 的优化算法能够智能的评估消息的可用性,降低令牌(token)的使用量,减少因API调用导致的开销(即将推出)。
06为何我们需要App-Controller?
面对大模型直接执行用户需求的这一前沿趋势,面临着一系列亟待解决的挑战:
- 🔬 任务的精妙编排:如何确保大模型不仅能够深刻理解用户的真正需求,还能精准无误地调度各类工具和功能,协同完成复杂的任务序列?
- 🧪 垂域的精准适配:每个应用程序都有其独一无二的领域特性与需求,如何在保持大模型广泛适用性的同时,实现针对特定领域的微妙调整与优化?
- 🔎 效率与精度的双重考验:在追求任务执行的高准确率之余,如何平衡资源利用,确保整个过程既高效又不失准度,是提升用户体验的关键所在。
鉴于上述普遍存在的挑战,构建一个统一的基础架构,而非依赖各个应用程序厂商独立解决显得尤为重要。App-Controller这一框架旨在为所有应用程序提供一个标准化、高效的接入层,使之能无缝整合自然语言处理能力。它不仅显著减轻开发者在集成自然语言控制功能上的负担,还通过标准化接口和预先优化的模块,也极大提升了终端用户的互动体验,标志着向更智能、更流畅的人机交互模式迈出的重要一步。
07开放讨论:探讨多种技术路线的优劣
在智能化应用控制领域,技术路线的选择至关重要。可以从输入类型和输出类型两个维度对这些技术路线进行分类,并分别分析它们的优势和面临的挑战。
分类 |
类型 |
优势 |
挑战 |
输入类型 |
纯视觉输入 |
跨应用能力强,避免应用程序端主动集成。 更加适应多样化的使用场景。 |
需要昂贵的视觉模型,增加硬件和计算成本。 视觉模型的逻辑推理能力弱,难以处理复杂指令。 |
输入类型 |
纯文本输入 |
实现成本相对较低,文本处理技术成熟。 更适用于与环境交互较少的任务。 |
需要应用程序进行深度集成 丰富上下文场景下模型开销增大 |
输入类型 |
视觉+文本输入 |
兼具视觉和文本的优点,提升交互的灵活性和准确性。 输入信息更为全面。 |
需要应用程序协助集成。 同时处理视觉和文本数据,系统复杂性增加。 |
输出类型 |
原子API(例如键鼠API) |
避免应用程序端主动集成,能够快速扩展到多个应用程序中。 实现简单,适应性强。 |
对模型探索与试验能力要求高,难以处理深层次操作。 受限于原始应用程序框架,任务完成需要更多的步骤。 |
输出类型 |
原子API+扩展性API |
集成复杂API后,模型能够实现更加快速、一键直达的操作体验。 更容易实现深层次操作。 |
需要应用程序端进行API集成,开发成本高,初期适配工作量大。 集成API需保持更新和维护。 |
综上所述,对于具备丰富功能和足够规模的应用程序而言,尽管集成复杂API需要较高的初期投入,但它能够显著提升用户体验,实现更高效和直观的操作。因此,选择原子操作结合扩展性API的技术路线,是追求卓越用户体验和高效操作的理想选择。
08能力局限语持续改进
尽管AppController在智能控制和多应用扩展方面展现出强大的潜力,但也必须正视当前存在的几项能力局限:
大模型推理能力的限制:
受限于当前大语言模型的推理能力,SmartVscode在处理某些复杂或细致的任务时可能会出现错误。这些错误包括误解用户指令、执行不准确的操作等。研究团队正在持续优化模型的训练和指令解析算法,以减少错误发生的频率,并提升操作的准确性。
模型推理速度:
目前,模型的推理速度有时无法满足实时操作的需求,导致用户在执行任务时可能会体验到一定的延迟。为了解决这一问题,研究团队正在优化模型的响应速度,通过更高效的算法和更强大的缓存机制,力求在未来版本中实现更快速的推理与响应。
VS Code功能支持的有限性:
目前,SmartVscode已经基本覆盖了VS Code的常用基础功能,然而,对于一些复杂或高级的功能支持仍在开发中。研究团队深知开发者对高级功能的需求,并正在积极扩展对VS Code更多复杂功能的支持,确保用户能够全面利用SmartVscode提升开发效率。
尽管存在上述局限,研究团队始终坚持持续改进和创新,正在不断探索和优化,致力于克服当前的挑战,提升整体性能和用户体验。未来,研究团队将通过定期更新和迭代,逐步解决这些问题,确保SmartVscode成为VS Code开发者不可或缺的智能助手。
09欢迎关注
如果你对SmartVscode项目感兴趣,欢迎访问开源地址并进行加星star,里面提供了更加详细的文档介绍!
App-Controller开源地址:
https://github.com/alibaba/app-controller
smart-vscode-extension开源地址:
https://github.com/alibaba/smart-vscode-extension