引言
通义灵码,是自己接触的第一款AI 编程助手,作为开发者,也算是一路陪伴着通义灵吗从公测版发布到了现在的2.5版。对于个人来说,通义灵码在不断的成长中,也变得越来越懂开发者了。从最初的代码开发过程中的基础辅助开发,到AI 程序员,再到现在的通义灵码编程智能体,通义灵码的变化,正在深深影响着每一位开发者,当然也包括我自己。
恰逢最近刚接手一个项目功能开发,这个项目也是比较特殊,本来是内网开发,转到外网开发。到了外网之后,过去开发过程中的启动项目,debug就全行不通了,因为没有对应的基础环境可以连了。那么在这种情况下,面对陌生的功能代码,复杂的业务逻辑,唯一能依靠的也就剩下AI 编程助手了,希望可以通过通义灵码来帮助自己在不耽误工期的情况下,快速理解原有业务逻辑,并在此基础上完成新功能的补充。
那么在开始进入工作模式之前,首先来介绍一下我们的通义灵码2.5版本的变化。
通义灵码2.5版
通义灵码2025年4月发布的2.5版,新增智能体模式,具备自主决策、环境感知、工具使用等能力,可以根据开发者的编码诉求,使用工程检索、文件编辑、终端等工具,可以端到端地完成编码任务。同时,支持开发者配置 MCP 工具,编码更加贴合开发者工作流程。
同时,支持同一个会话流中切换智能问答、文件编辑、智能体模式,开发者在会话过程中,无需新建会话即可根据诉求自由切换会话模式。
安装or升级
如果你的本地通义灵码版本不是最新版,你需要通过升级到 2.5.0 或以上版本 后体验,这里我以 IntelliJ IDEA 开发工具演示。
点击 IntelliJ IDEA 开发工具的 【File】-【Settings】-【Plugins】,输入【lingma】,如果你已经安装过通义灵码,这里直接点击【Update】,如果没有安装过直接点击【Install】安装即可
安装或者升级完通义灵码插件之后,重启 IntelliJ IDEA 开发工具,打开项目就可以进行我们的开发了。
模型选择
通义灵码现在已全面支持 Qwen3,Qwen3 采用混合专家(MoE)架构,总参数量 235B,激活仅需 22B。其中参数量仅为 DeepSeek-R1 的 1/3,成本大幅下降,性能全面超越 R1、OpenAI-o1 等全球顶尖模型。Qwen3 还是国内首个“混合推理模型”,“快思考”与“慢思考”集成进同一个模型,对简单需求可低算力“秒回”答案,对复杂问题可多步骤“深度思考”,大大节省算力消耗。
那么既然通义灵码已经全面支持Qwen3,那么这里我们就选择 Qwen3 模型,默认情况下对话框也是最新 Qwen3 模型
日常工作
通义灵码的出现本身就是为了帮助开发者来提高开发效率,提升开发技能,让开发者有更多的时间来专注到业务层面的深研。在日常开发中,最常用的就是智能问答,通过自然语言的方式来生成符合当前场景的代码。
智能问答
在日常工作中,我们可能会遇到各种各样的需求,比如这里我需要在现有的常量类 DtctConstant.java 中增加一个枚举值,用于区分模型类型是测试还是正式,那么我可以直接在代码中输入注释
//增加模块类型枚举值 1 测试 2 正式
输入注释内容后,直接回车,就是日常开发工作中的逐行采纳模式,这里不需要你手写代码,采纳一行之后继续回车,通义灵码会基于当前常量类 DtctConstant.java 中其他常量类的格式为你生成新的同样格式的常量类。这里其实就是用到了通义灵码的上下文能力,在你输入注释的位置生成代码之前,通义灵码会先对现有的其他常量类格式进行学习,那么生成的新的常量类格式就和原有的格式一致,更方便开发者维护和阅读
其实对于java 来说,正常情况下的常量类应该是枚举类型,就像这样,但是在常量类 DtctConstant.java 中的常量格式却是上面那样,而非下图这种 enum 格式,那么在我们通过自然语言注释进行代码生成时,通义灵码自动结合上下文生成代码的能力正体现了通义灵码在细节上越来越懂我们开发者的心中所想
这里如果说生成的的常量类是enum 类型的,那么对于我们当前的常量类 DtctConstant.java 来说,显然是格式不统一,不利于维护,且不能采用。当然除了直接在DtctConstant.java 中输入注释,逐行采纳外,我们也可以直接在通义灵码对话框进行操作。
我们可以直接选中常量类 DtctConstant.java 并输入我们的需求 【增加模块类型枚举值 1 测试 2 正式】
那么通义灵码会结合当前常量类中 常量的定义方式为我们生成格式完全统一的代码结构,最终生成的代码如下,直接插入代码中即可
/**
* 模块类型枚举值
* 1 测试
* 2 正式
*/
public static class ModuleTypeEnum {
/**
* 测试模块
*/
public static final int TEST = 1;
/**
* 正式模块
*/
public static final int PRODUCTION = 2;
/**
* 获取模块类型的名称
* @param type 模块类型编码
* @return 名称
*/
public static String getName(int type) {
switch (type) {
case TEST:
return "测试";
case PRODUCTION:
return "正式";
default:
return "";
}
}
}
上下文
通义灵码的上下文能力就是通过添加如代码文件、目录、图片、gitCommit 等,并提供上下文和用户输入提示词自由组装能力,开发者可以自由组合进行诉求描述。其实就像上面我们在智能问答操作中的第二种方式一样,通过选择文件,然后输入需求描述,获取生成代码
这里我们可以看到现在已经支持截图了,那么我这里刚好有一个截图,截图中只有枚举的值,却没有枚举的中文对应,中文对应我可以通过浏览器js 中获取,具体内容已经获取,下面我们同样需要先选择好对应的常量类文件 DtctConstant.java 选择截图
最终生成的代码就像这样,通义灵码的上下文能力,通过读取截图1中对应属性值,以及对应属性常量key,再读取图2中常量key 对应属性名称,并结合当前常量类格式自动生成符合格式且匹配对应属性值和名称的常量类 ModuleTypeEnum,这种方式在常量属性值较多时,更能明显的提升开发效率,比如这里如果有100个常量值,那么人工匹配值与名称的话,会很耗时,但是通义灵码却可以在谈笑间就生成了,并且我检验了没有任何值与名称匹配错误的情况
public static class ModuleTypeEnum {
// 模块类型常量
public static final int BANK_ACCOUNT = 1;
public static final int FUND_SETTLEMENT = 2;
public static final int FINANC_MANAGE = 3;
/**
* 获取模块类型的名称
* @param type 模块类型编码
* @return 名称
*/
public static String getName(int type) {
switch (type) {
case BANK_ACCOUNT:
return "账户";
case FUND_SETTLEMENT:
return "结算";
case FINANC_MANAGE:
return "贷款";
default:
return "";
}
}
}
行间会话
通义灵码的行间会话(Inline Chat)支持开发者在代码编辑器区域进行对话,开发者可以通过自然语言对话的方式进行单个文件内的代码修改或进行即时提问,具体的唤起方式可以参考官方文档中的操作
比如说这里你需要对选中的代码增加代码注释,那么过去我们的操作是选中代码片段,右键选择【通义灵码】-【生成注释】,随后将生成的注释在编码助手对话框中选择插入到当前代码中
那么现在有了行间会话之后,我们可以直接选中需要修改或者优化的代码片段,唤起行间会话命令窗口,输入需求描述后点击enter 确认
通义灵码会自动对当前选中的代码进行对应需求描述的操作,这里我们的需求是生成注释,那么行间会话在自动生成注释之后,我们可以直接点击【接受】或者【拒绝】,接受之后,根据需求描述进行的相关代码变更操作会自动更新到当前代码文件中,进一步提高了代码的开发效率
行间建议预测
通义灵码的 行间建议预测(NES - Next Edit Suggestion),可以基于当前完整代码的上下文,结合代码修改和光标所在位置,动态预测代码变更,让开发者只需 Tab 一下,即可高效完成代码变更。在使用行间建议预测之前,首先需要开启行间建议预测。
在 IDE 中选择 【Settings】 - 【Lingma】,该功能默认处于关闭状态;启用后,推荐方式默认为 Auto,代码移动 配置项默认为 No。
在开启了行间建议预测之后,在实际开发中验证一下。这里我需要对字段 exportModule 进行判断,输入具体的需求描述
//判断 exportModule 是否包含 , 包含则需以 , 分割并依次赋值
后面的逐行采纳部分就是通义灵码基于我们的需求,并对当前字段进行判断后分割赋值的代码生成记录。整个开发过程也就是简单逐行采纳就可以了,这里看着是不是和代码补全类似,其实这里还不是行间预测
真的行间预测比如说你需要对当前的代码片段增加注释,方便快速理解具体的业务功能,可以直接输入 / 即可自动预测出代码片段的相关业务功能内容并生成注释内容
或者说这里原来已经有了周五的日期判断,我需要再生成一个周六的日期判断,那么再输入了注释之后,通义灵码自动生成了周六日期的判断,我们只需要点击接受即可
再接受了周六的日期判断之后,通义灵码的行间建议预测检测到我们可能也需要周日的日期判断,又继续为我们生成了周日的日期判断,我们可以鼠标悬浮【接受】按钮,选择【接受】or【拒绝】这段代码
在修改代码常量名称时,常量名称修改后,通义灵码会自动检测该常量使用位置,并自动生成新的常量,我们同样可以直接选择接受即可,省心省力
记忆
另外,通义灵码为了让自己变得更懂开发者,通义灵码提供了长期记忆能力,在开发者与通义灵码的对话过程,会逐渐形成针对开发者个人、工程、问题等相关的丰富记忆,并自动进行相关的记忆整理和更新。记忆能力可以帮助通义灵码更好地和开发者互动,随着时间流逝,通义灵码关于开发者的记忆也就越丰富。简单说就是,你使用通义灵码的时间越久,那么通义灵码对你的工作习惯,开发习惯,业务功能等相关的理解就越深刻,在辅助编程时对你提供的帮助也就会更精准,真正的做到专属你的编程助手。
通常情况下,通义灵码会主动记忆开发者与通义灵码的对话信息,逐步形成对开发者个人编码习惯、工程相关的记忆,开发者无需主动触发。我们可以通过点击【个人设置】
在个人设置页面可以看到具体的【记忆管理】相关内容,点击记忆详情tab 页面可以查看我们历史的记忆信息
在记忆详情页面,对于不符合你的操作习惯或者开发习惯的记忆,可以直接鼠标悬浮记忆条目,右侧点击【删除】即可删除不需要的记忆内容。当然如果你觉得费力的话,不用手工删除也是可以的。个人的感觉是,对于刚开始用通义灵码的小伙伴,每天在工作结束之余,可以考虑清理一下这里面你认为回答的和你想要的南辕北辙的问题。这样的话,通义灵码才能在以后的日常工作中,更快的变成那个懂你的小伙伴
那么在以上关于通义灵码2.5版本的功能体验中,主要讲述的是在日常工作中,随时随地都可能会用到的通义灵码的产品功能,使用率也是比较频繁的。那么下面我要讲述的关于智能体,MCP 工具,不是说日常工作中就用不到,而是说也会用到,但是过去还没有用过,所以作为一个新的方向来研究和讲述。
智能体
通义灵码智能体模式具备自主决策、环境感知、工具使用等能力,可以根据开发者的编码诉求,使用工程检索、文件编辑、终端等工具,端到端地完成编码任务。同时,支持开发者配置 MCP 工具,拓宽了 AI 编码助手能力边界,更加贴合开发者工作流程。
与智能体的对话
执行命令
简单来说就像我们过去打包发版,都是需要手工执行 maven 中的clean & install 命令进行打包,就像这样
或者是通过命令行执行
mvn clean install
那么现在我们可以直接在通义灵码对话框切换到智能体模式,然后在对话框中输入【编译并打包项目】
然后通义灵码智能体会自动分析当前项目结构,并根据项目结构生成执行命令,我们可以直接点击【运行】
对于在运行过程中出现的错误情况,智能体会自动分析错误原因,并调整执行命令,我们需要做的只是负责点击【运行】命令即可
智能体会对于在执行中遇到的各种问题进行分析,并实时给出下一步的执行计划,从而来最终实现我们的需求,对于智能体无法解决的问题,也会为我们分析并定位问题的具体原因并提供解决方案
这样按照智能体的每一步规划下来处理之后,最终的效果就是实现我们最初的需求【编译并打包项目】。
介绍项目
像我在文章开篇提到的,遇到了一个陌生项目,工期又紧的情况下,那么如何可以快速上手项目,通义灵码自然是首当其冲。在IDE 开发工具打开项目之后,我们可以先让智能体为我们介绍一下当前项目,输入我们的需求描述【介绍当前项目】
通义灵码会从项目的核心功能、技术栈、核心模块介绍、部署方式、开发环境搭建步骤等多个方面来介绍我们手上的项目,方便我们快速的了解项目的核心功能,主要的模块,技术栈信息,从而为后面的快速投入开发做准备
那么具体的工作上,就是我现在需要理解一下人家原有代码的导出文件逻辑,并在理解导出逻辑的基础上进行功能的改造扩充。那么我可以直接在controller 选中当前方法,并让通义灵码来分析当前方法的业务功能逻辑
在我们选中的具体 BatchExportTaskController.java 的 48-48 行后面虚框中的java 文件,就是通义灵码在开启了行间建议预测之后,根据我们选中的文件,分析出我们可能同时需要关联的文件,需要的话,可以直接点击虚框文件名即可,而不用我们在手工点击【+】搜索对应的文件并选中,这也就是进一步提升了开发效率,节省开发时间
这里我们可以看到,通义灵码智能体会自动分析当前方法的调用,并获取方法实现类内容进行分析,为我们详细分析 exportFile 导出文件方法的具体业务实现。
编写sql
这里我有一个需求,这个需求其实和写代码没有关系,主要是想通过编写sql 来实现更新数据表中指定字段为指定值的操作,那么这里我们的需求整理后描述为 【编写sql 实现建数据表 t_base_counter_party 中字段contacts_org_name 全是字母的数据,字段 in_out_land 更新为 2】下面我们可以看到通义灵码会直接帮我们生成对应的sql语句
并且在执行之前还提示我们先使用select 查询语句来确认当前的正则语法是否符合当前的数据库。另外,通义灵码默认生成的是mysql 适配的sql ,不同的数据库可能略有差别。比如这里我使用的是达梦数据库,执行上面的sql 会报错,那么我可以这样让通义灵码再帮我们改一版
这里我们可以看到,通义灵码自动结合对话上下文,对我们刚才生成的sql进行了适配 达梦数据库的变更,效率很高,亲测sql 完美执行。
当然,通义灵码智能体的对话模式除了可以做到上面这样,你也可以让他进行代码审查,直接添加需要审查的文件夹,输入你的需求
通义灵码智能体会根据你的需求进行简单的分析,那么你可以根据通义灵码列出的评审方面进行选择,这里我选择 代码风格和规范,随后通义灵码智能体会自动读取当前文件夹下的文件并进行代码评审操作。总之就是只要你需要的,你都可以通过自然语言的方式来告诉通义灵码智能体,通义灵码智能体在接收到你的需求后会自动进行后续的操作
各位开发者可以大胆尝试通义灵码智能体的不同应用,这里我来讲述一下如何借助通义灵码智能体来开发一个数独小游戏。
0-1应用开发
通义灵码智能体除了可以帮助我们在工作中提升工作效率,还可以帮助我们实现一些自己的小想法。比如说我自己,个人是比较喜欢小游戏的,尤其是数独小游戏,但是作为java 后端的话,想要做数独小游戏就显得不太现实,毕竟java 主要是做后端管理功能开发, 并不适合这种纯页面无后端交互的操作。那么这里个人作为一个前端小白,也想下载一个VSCode 来做一个数独小游戏,那么说干就干。
VSCode 下载安装
这里我找到了VSCode 的官方下载网址:code.visualstudio.com/Download 在浏览器打开网址后,你可以根据自身电脑不同的操作系统选择不同的vscode 版本,这里我选择 Windows 版本的 vscode 并下载
下载完成后,直接双击VSCodeUserSetup-x64-1.100.0.exe 打开文件,选择同意协议后指定 D盘安装,默认是C盘,但是考虑到系统盘磁盘容易满,影响电脑开机速度,这里我选择 D盘
后面其他的选择默认即可,等待 vscode 安装完成之后就可以看到如下页面
点击【完成】启动vscode,下面我们就需要为我们的vscode 安装通义灵码插件。
插件安装
在打开的vscode 开发工具页面,点击【设置】-【Extensions】,在搜索框中输入【lingma】,点击【Install】
在弹出的弹框中选择【Trust Publisher & Install】开始安装 通义灵码 插件,安装完成后登录阿里云账号就可以了,这里我发现VSCode 的通义灵码默认是英文版,那么我们同样选择智能体【Agent】以及大语言模型【qwen3】
到这里我们的通义灵码就已经安装完成。
数独小游戏
为了让通义灵码可以更准确的实现我们想要的,在对我的想法整理后输入我们的需求【你是一个小游戏开发专家,具有丰富的游戏开发经验,我需要你开发一个数独小游戏,需要支持难,中,易三种难易度切换,锻炼玩家数字敏感性。现在,帮我生成完整的代码吧。】
在我们输入我们的需求后,通义灵码智能体会根据我们的描述进行任务分析,最终确定需要生成三个文件,在文件生成之后,我们点击对话框三个文件右上角的位置【Accept】接受文件后,复制index.html 的本地路径放在本地电脑浏览器就可以看到我们的数独小游戏界面了
这里我们可以在浏览器中看到我们的数独小游戏界面如下,其中数独游戏内部没有展示具体的数独填空格子,打开浏览器的 F12 可以看到具体的报错信息
复制页面报错信息放入通义灵码对话框中,让通义灵码来解决
这里我们可以看到通义灵码智能体在接收到错误信息之后,会自动分析问题并修复对应的文件,在修复文件结束之后,会在右侧展示具体前后文件的代码差异,我们再次点击【Accept】接受文件变更之后,回到浏览器刷新数独小游戏界面
如果还是不行的话,那你就继续获取 F12 控制台的错误信息并放在通义灵码对话框中让智能体自动分析并解决问题就可以了。回到浏览器刷新页面后遇到这样的问题,页面没有加载出来,F12 控制台也没有报错
此时我们同样可以将我们的问题抛给通义灵码智能体,让智能体来自行分析并解决
如果刷新后页面还是空白,那么我们就点击【Retry】,通义灵码会对上面的问题再一次进行分析并处理,处理完成后再次刷新浏览器页面尝试,可以看到我们的数独小游戏成功了
为了让我们玩的更有体验感,我们也可以自己对小游戏进行功能的拓展,比如这里我想给数独小游戏增加一个检查答案的功能,用来确定当前我填入的数字是否是正确的,那么我们继续输入我们的需求【增加 检查答案 功能,在输入具体数字后,点击检查答案 按钮,可以获取当前输入数字正确性的提示。正确则字体颜色变绿,错误则字体颜色变红。】那么通义灵码智能体会继续基于上面的数独小游戏增加新的需求内容
在改造数独小游戏的过程中,可能会遇到报错,那么这里有一个更方便的方式,就是如果你觉得控制台的错误信息复制太费劲,那么你也可以直接将错误信息截图并粘贴在对话框中,输入我们的需求【处理问题】
最后我们得到的数独游戏就像这样了,
MCP
在上面介绍智能体的时候,大家可能会主要到 MCP,智能体可以通过配置MCP 工具让智能体变的更加强大,那么这里我们先来介绍一下什么是MCP?
MCP (Model Context Protocol)是一种开放标准协议,旨在为大语言模型(LLM)提供标准化的外部工具和上下文集成方式。借助 MCP 标准化接口的支持,通义灵码能够灵活扩展与不同数据源或外部系统的连接,使其智能体的能力和场景得到拓展,有效满足用户对于个性化扩展的诉求。
魔塔社区社区上线了千余款热门的MCP服务,具体的大家可以到魔塔社区查看:www.modelscope.cn/mcp
在使用MCP 之前,我们需要先配置MCP 工具。
配置MCP
在通义灵码右上角头像处进入【个人设置】,单击条形框,进入 【MCP 服务】页面
在通义灵码 MCP服务广场大家可以看到目前官方默认推荐的 8 款 MCP 服务,下滑可以点击【查看更多】获取更多MCP 服务,
对于我们需要安装的MCP 服务直接点击右侧的【安装】就可以了,不同的MCP 服务需要配置内容不同,在点击【安装】后的弹窗就可以看到,比如这里是百度地图 MCP 服务安装,需要添加 API_KEY
或者我们也可以通过手动方式添加 MCP Server,点击图中的【+】号,可以选择通过两种方式来手动添加 MCP Server
对于在MCP 广场没有找到的MCP 服务,大家也可以直接到魔塔社区或者其他第三方平台找到对应的MCP 服务安装配置操作。比如魔塔社区的【alibabacloud-devops-mcp-server】 MCP 服务,在该服务的文档介绍中就详细介绍了多种配置方案,包括 通过 NPX 运行 MCP 服务器等
到这里关于MCP Server 的配置操作就介绍完了,大家可以根据需要参考具体的MCP Server 文档配置就好,操作比较简单。
edgeone-pages-mcp
edgeone-pages-mcp 简单理解就是 一个用于将 HTML 内容部署到 EdgeOne Pages 并获取公开可访问 URL 的 MCP 服务。这里我们在上面开发了数独小游戏,但是只能通过本地文件的方式访问,那么这样的话就很不方便,当换了电脑没有具体本地文件的时候就不能玩耍了。那么 edgeone-pages-mcp 的MCP Server 就是可以将 HTML 内容部署到 EdgeOne Pages 并获取公开可访问 URL 的 MCP 服务。在 VSCode 的 MCP 广场输入 edgeone-pages-mcp并点击【Install】 安装该MCP Server
安装完成后,我们可以看到该MCP Server 提供的两个页面发布工具
那么回到通义灵码对话框,在对话框中输入【发布数独小游戏】,智能体会根据需求描述自动获取MCP Server 并发布数独小游戏,对于在过程中出现的部署失败的情况,智能体会自动进行分析并处理
最后发布成功后会生成一个访问链接,我们直接点击链接就可以访问我们的数独小游戏了
部署之后的访问页面如下
到这里,本次关于通义灵码 2.5版本的新功能的探索就大概结束了,对于本文没有涵盖的功能,大家也可以自行探索尝试。总的来说,AI 编程助手的不断发展,正在进一步拓宽着开发者的能力边界。对于过去的我来说,本身不懂前端语法以及 CSS、 JS等,包括VSCode 的使用,那么在有了通义灵码或者说其他的AI 编程助手之后,即使我不懂,我只要有思路,一样可以实现我的想法。特别是在配置了MCP Server 之后,对于开发者来说,只需要描述详细自己的需求,那么通义灵码智能体会自动根据描述来分派到不同的MCP Server 完成整个开发到部署的操作。
最后总结
本次通过体验了在日常工作中通义灵码2.5版本的新功能的表现以及在工作之外的智能体&MCP 工具的边界拓展,相对于上一版的通义灵码2.0版本的AI 程序员,在日常开发过程中的工作效率提升以及在更懂你的编程助手方面,通义灵码2.5版本又有了一个层级的提升。那么本次通义灵码2.5版本的升级,新增的 行间建议预测、行间会话、工程感知、记忆感知、深度适配Qwen3模型,让我们在后续的开发工作中慢慢培养出一个更懂自己更懂开发的通义灵码。
智能体&MCP Server 的加入,使得通义灵码具备自主决策、环境感知、工具使用等能力,可以根据开发者的编码诉求,使用工程检索、文件编辑、终端等工具,这有进一步为我们的开发工作以及创意实现提供了支撑。就像上面我提到的一样,过去我不懂前端技术,想要做个小游戏没有可能,那么现在我只需要提出我的需求,通义灵码从代码开发到部署就可以完全搞定,这就是智能体的便捷。过去的沟通是 开发者和大语言模型直接沟通,现在有了智能体之后,开发者和智能体沟通,智能体再根据开发者需要与不同的MCP Server调用后返回开发者想要的效果,从而进一步提升开发效率,提升开发能力。