最近几天,ZCode在AI编程圈的热度一直不低。
7月3日,ZCode同一天连续发布了3.2.3、3.2.4和3.2.5三个版本。其中一项看起来并不“炸裂”的更新,反而更值得Java开发者关注:用户级Skills现在可以通过SSH同步到远程开发环境。
与此同时,Skills重新回到快捷菜单,ZCode还新增了专门用于讲解Skills、插件、MCP和AGENTS.md配置方式的内置Skill。
如果只看功能名称,这似乎只是一次配置体验优化。但把视线放到整个AI编程市场,就会发现Codex、Claude Code、Cursor和ZCode都在做同一件事:把开发者每天重复输入的流程和规范,变成Agent能够自动调用的Skills。
这意味着,AI编程正在从“谁更会写代码”,进入“谁能更稳定地执行团队流程”的阶段。
对于Java团队来说,这可能比模型再提升几个百分点更重要。
Java团队最浪费时间的,不是写代码,而是反复教AI规矩
现在让Agent生成一个Spring Boot接口已经不难了。
真正麻烦的是,每次开始任务前,都要重新告诉它一遍项目规范:
Controller不能直接调用Mapper。
金额必须使用BigDecimal。
数据库写操作要检查事务边界。
MQ消费者必须考虑幂等。
不能修改application-prod.yml。
不能为了让测试通过而删除断言。
修改完成后要运行对应模块的Maven测试。
这些内容,很多Java开发者每天都在不同会话里重复粘贴。
第一次使用Codex时写一遍,换到Claude Code再写一遍,打开Cursor又写一遍。换了一台电脑、进入远程服务器或者新建任务以后,还要继续重复。
这其实暴露了一个问题:团队已经开始使用Agent,但工程规范仍然停留在人的记忆和聊天记录里。
只要开发者忘记写一条,Agent就可能越过这条边界。
Skills的价值,就是把这些反复出现的步骤从临时提示词中拿出来,变成一份可以保存、共享和持续维护的工作手册。
以后开发者不必再输入一大段规范,只需要调用一个Skill:
Agent就应该自动按照团队规定的步骤分析、修改、测试和输出结果。
这才是Skills真正重要的地方。
Skill不是一段更长的Prompt
很多人第一次接触Skills,会把它理解成“保存起来的提示词”。
这种理解只说对了一部分。
一段普通提示词通常只服务当前任务,内容也容易比较随意。Skill则应该描述一套可重复执行的工程方法,包括什么时候使用、先做什么、禁止做什么、执行哪些验证,以及最后交付什么结果。
例如,一个面向Spring Boot代码修改的Skill,可以要求Agent先执行:
然后识别目标模块和调用链,在修改前输出计划;修改Java代码后运行:
如果涉及Mapper XML,还要检查动态SQL、空集合、索引和分页风险;如果涉及DTO、枚举或公共接口,还要检查向后兼容。
最后必须输出:
这已经不是一句Prompt,而是一套小型交付流程。
AGENTS.md、Skill、MCP和Hook,分别解决什么问题?
现在AI编程工具里的概念越来越多,很多团队会把AGENTS.md、Skills、MCP和Hooks混在一起使用。
其实它们解决的问题并不相同。
AGENTS.md更适合保存长期稳定的项目事实和边界。例如项目有哪些模块、常用构建命令是什么、哪些目录不能修改、团队统一使用什么技术规范。
Skill更适合描述重复执行的流程。例如如何新增Spring Boot接口、如何审查一个PR、如何升级依赖、如何分析线上异常。
MCP负责连接外部工具和数据源,例如GitHub、Jira、数据库、浏览器、内部文档或者监控系统。
Hook则更像硬性门禁,用来阻止Agent执行明确禁止的动作。例如修改生产配置、执行危险删除命令,或者跳过必要测试。
可以简单理解为:
Java团队如果把这四层配置清楚,Agent的稳定性会比单纯依赖一段长提示词高很多。
为什么SSH同步Skills是一个重要信号?
现在越来越多开发任务不再只发生在开发者本机。
Java项目可能运行在远程Linux服务器,依赖内网Maven仓库、测试数据库、Redis、Docker和公司VPN。开发者在本机规划任务,却要让Agent进入远程环境执行构建和测试。
问题随之出现。
开发者电脑里已经配置好的Skill,远程环境并不知道。于是同一个任务在本地执行时遵守团队规范,切换到SSH环境后,Agent又开始重新猜测测试命令和项目边界。
ZCode这次增加用户级Skills的SSH同步,解决的正是这种环境断层。
它释放出的信号是:Skills正在从一个本地小功能,变成跟随开发者进入本地、远程和云端环境的基础配置。
不过,Java团队不能因此把所有规范都只放在个人目录里。
用户级Skill适合保存个人通用习惯,例如提交信息格式、日志分析步骤和常用检查清单。真正影响项目交付的团队Skill,仍然应该和代码一起进入Git仓库。
这样无论开发者使用哪台电脑、哪个Agent或哪个远程环境,都能拿到同一版本的执行规则。
一个可以直接落地的Spring Boot Skill
团队可以先从最常用的“安全修改Spring Boot代码”开始。
目录可以设计成:
其中SKILL.md可以这样写:
这份Skill不依赖某个具体业务模块,可以先作为团队通用基线,再为订单、支付、库存和权限模块增加更细的Skill。
例如:
Agent遇到对应任务时,就不再完全依赖临时判断。
Skill里不要塞进所有项目知识
Skills虽然有价值,但也很容易被写成另一份巨大的文档。
有些团队会把架构说明、数据库表结构、代码规范、发布流程和所有历史问题全部放进一个Skill。结果每次调用时,Agent加载大量无关内容,不仅浪费上下文,还可能降低执行准确率。
更合理的原则是:一个Skill只解决一个稳定、重复的工作流程。
长期项目事实放入AGENTS.md。
大量背景资料放入references目录,需要时再读取。
确定性验证逻辑放入scripts目录,让Agent直接执行脚本。
高风险禁止规则交给Hook,不要只靠Skill提醒。
例如,“不得修改生产配置”如果只是写在Skill中,仍然属于软约束。真正重要的项目,可以再增加Hook,只要Agent尝试编辑application-prod.yml,就直接阻止。
Skill负责指导,Hook负责兜底。
Skills还需要测试,不能写完就默认有效
一个Skill存在,并不代表Agent一定会正确调用,也不代表调用以后一定按预期执行。
团队应该像测试代码一样测试Skills。
可以选择十个历史任务,其中包括接口新增、Bug修复、Mapper修改、MQ问题和依赖升级。先在没有Skill的情况下执行,再启用Skill执行,对比以下结果:
如果Skill经常在不该触发时被调用,需要修改description;如果触发正确但执行不稳定,需要调整步骤或增加脚本。
Skill同样应该有负责人、有版本记录,也应该经过代码审查。
否则团队只是把不稳定的Prompt,换成了不稳定的Markdown文件。
Java团队应该先沉淀哪三个Skills?
第一类是代码修改Skill。
它负责统一计划、修改、测试和风险输出流程,适用于大部分普通Spring Boot开发任务。
第二类是PR审查Skill。
重点检查事务、接口兼容、MyBatis SQL、MQ幂等、缓存一致性、生产配置和测试覆盖。它可以让不同Agent使用同一套审查标准。
第三类是故障分析Skill。
要求Agent先读取日志、定位调用链、复现问题并收集证据,在根因明确前禁止随意修改代码。对于Spring Boot启动失败、Bean注入异常和线上接口报错特别有价值。
先把这三个高频流程稳定下来,比一次创建几十个Skill更实际。
AI编程下一步竞争的,不只是模型
Codex官方把Skill定义为可复用工作流,可以包含指令、资源和脚本;Claude Code同样通过SKILL.md加载工作手册,并允许按项目、个人和企业层级分发;Cursor把Skills作为开放标准的一部分,并和Rules、MCP、Hooks、Subagents一起纳入统一配置;ZCode则支持创建、导入外部Agent Skills,以及在SSH环境同步用户级Skills。[1][2][3][4]
这些变化说明,AI编程工具正在形成一套越来越相似的工程基础设施。
模型决定Agent能想多深。
工具决定Agent能做什么。
而Skills决定Agent是否按照团队的方法做事。
对于Java团队来说,真正有价值的资产,可能不再只是代码仓库和开发文档,还包括一套经过验证的Agent工作流程。
最后
过去使用AI编程,开发者之间的差距主要体现在谁更会写Prompt。
但Prompt很难共享,也很难长期维护。一个开发者离开团队后,他积累的使用经验可能仍然留在个人聊天记录里。
Skills正在改变这件事。
它可以把“这个项目应该怎么改”“修改后要跑什么测试”“哪些风险必须检查”变成仓库中的正式文件。新人可以复用,远程Agent可以同步,不同工具也可以围绕同一套方法执行任务。
这对Java团队尤其重要。
因为Java企业项目最有价值的知识,往往不是某一段代码,而是多年积累下来的事务、权限、数据库、消息和发布经验。
当这些经验开始被写进Skills,AI才不只是帮助团
队写代码。
它开始真正学习团队是怎样交付软件的。
文章来自:51CTO
