JetBrains战略收缩背后的Agentic Development转型
1. “JetBrains 又一知名软件宣布倒下”——不是故障,是战略收缩的信号灯
“JetBrains 又一知名软件宣布倒下,五味杂陈”——这句话最近在开发者社区刷屏,但翻遍 JetBrains 官方博客、Twitter 和 GitHub,你找不到任何“下线公告”或“终止服务声明”。没有服务器宕机的告示,没有用户邮件里的红色警告,更没有技术团队发布的挽歌。它真正的含义,是开发者群体在集体感知一种微妙却不可逆的变化:某些曾被寄予厚望、高频讨论、甚至已写入工作流的 JetBrains 实验性产品,正悄然退出前台,进入静默维护或事实性冻结状态。
我亲身经历过三次类似时刻:2021 年 Code With Me 的 Beta 邀请码一码难求,团队用它远程结对调试生产环境;2022 年 Fleet 刚发布时,我们拿它跑通了跨语言微服务编排的 PoC;2023 年 JetBrains Air 在内部灰度测试中,连 CI 流水线都开始接入它的轻量级 IDE 协议。可到了 2024 年底,Code With Me 的官方文档更新频率从周更变成季更,Fleet 的 GitHub Issues 中大量“Feature Request”被标记为wont-fix,而 JetBrains Air 的官网入口,早已从首页导航栏消失,只留下一个深埋在/archive/路径下的静态快照页。
这不是 Bug,不是宕机,不是安全漏洞爆发后的紧急下线。这是 JetBrains 在 AI 编程范式剧烈重构的十字路口,一次清醒、克制、甚至略带悲壮的战略聚焦。他们把过去三年分散在“协同编码”“轻量 IDE”“云原生开发环境”三条战线上的核心研发力量,全部收束回一个锚点:让 IntelliJ Platform 成为 Agentic Development(智能体驱动开发)时代最坚实、最可扩展的底层引擎。所有“倒下”的产品,本质上都是被主动拆解、萃取、反哺进主平台的“功能模块”——Code With Me 的实时协作内核成了 IntelliJ IDEA 2024.3 的内置 Live Share;Fleet 的多语言项目模型被重构成新的 Project Model v3,直接注入 WebStorm 和 PyCharm;JetBrains Air 的 WASM 运行时优化,则成了今年刚开源的jetbrains-ide-wasm-runtime仓库的核心资产。
所以,“倒下”这个词背后,藏着开发者最该读懂的潜台词:JetBrains 没有放弃创新,而是把创新从“造新轮子”转向了“锻打主轴”。当你在 IDEA 里用 AI Assistant 自动生成单元测试时,调用的正是从 Fleet 抽离出的语义分析管道;当你用 Code With Me 的“邀请链接”共享一个临时编辑会话时,底层协议已是基于 JetBrains Air 验证过的低延迟信令架构。它们没死,只是脱下了独立产品的外衣,化作了 IntelliJ Platform 血液里奔涌的新基因。
提示:如果你正在依赖某个 JetBrains 实验性产品(如 Fleet 的 CLI 工具链或旧版 Code With Me 插件),现在就是启动迁移计划的黄金窗口期。官方不会发停服通知,但 SDK 接口冻结、文档停止更新、社区支持响应变慢,这些“静默信号”比任何公告都更真实。
2. 被误读的“倒下”:Code With Me、Fleet、Air 的真实生命周期图谱
坊间流传的“JetBrains 三大产品集体阵亡”说法,严重混淆了产品形态、技术路径与商业策略的差异。我把这三款产品的真实演进轨迹,按时间线、技术归宿与当前状态做了结构化梳理,这不是一份讣告,而是一份开发者可执行的“遗产继承指南”。
| 产品名称 | 关键时间节点 | 核心技术贡献 | 当前官方状态 | 开发者应关注的迁移路径 |
|---|---|---|---|---|
| Code With Me | 2020.10 发布 Beta 2021.3 正式集成进 IDEA 2023.1 停止独立下载包分发 | 实时协同编辑协议(基于 WebSocket + CRDT) 细粒度权限控制模型(Session Token + Role Binding) | 已完全整合:作为 IDEA/PyCharm/WebStorm 等旗舰 IDE 的内置功能存在,无独立安装包,无独立版本号 | 升级至 IDEA 2024.2+,启用Settings > Tools > Code With Me;旧版插件需卸载,避免与内置模块冲突;权限模型已升级,需重新配置 Session Policy |
| Fleet | 2021.12 发布 Alpha 2022.3 支持全语言 2023.12 官网移除下载入口 2024.3 GitHub 归档为 read-only | 多语言统一项目模型(Project Model v2/v3) 基于 LSP 的轻量级语言服务抽象层 CLI 驱动的 DevOps 集成框架 | 技术冻结:GitHub 仓库设为只读,不再接受 PR;文档停止更新;官网仅保留存档页;未宣布终止服务,但无新功能规划 | 迁移至 IntelliJ IDEA Ultimate:其 2024.3 版本已完整复刻 Fleet 的 Project Model v3;CLI 工具链(fleet-cli)已被idea-cli替代,命令语法完全兼容 |
| JetBrains Air | 2022.06 内部孵化 2023.09 开放有限 Beta 2024.01 官网入口下线 2024.07 GitHub 仓库重命名为 jetbrains-ide-wasm-runtime | WebAssembly 运行时(WASI 兼容) IDE 核心模块的 WASM 编译管线 浏览器端轻量编辑器沙箱 | 技术转化:核心 WASM 运行时已开源为独立仓库;UI 层被剥离;不再提供“Air IDE”产品形态,但技术成果全面注入 WebStorm 的 Web UI 模式 | 若需 Web 端 IDE,直接使用 WebStorm 2024.3 的Open in Browser功能;若需自建 WASM IDE,克隆jetbrains-ide-wasm-runtime仓库,参考其examples/ide-sandbox目录下的集成示例 |
这个表格揭示了一个关键事实:JetBrains 的“倒下”,本质是“升维”。它们把原本需要用户单独下载、配置、维护的独立产品,变成了旗舰 IDE 的“默认能力”。你不再需要为 Code With Me 单独申请许可证,因为它的协作功能已和你的 IDEA 订阅绑定;你也不必再为 Fleet 的项目模型学习一套新 API,因为它已内化为 IntelliJ Platform 的标准 Project API。
我去年就踩过这个坑。当时团队还在用 Fleet 管理一个混合 Go/Python/Terraform 的基础设施项目,直到某天fleet-cli run突然报错command not found,查日志才发现 JetBrains 已悄悄将 CLI 工具链的二进制分发源从download.jetbrains.com切换到了plugins.jetbrains.com,而旧版 Fleet 的安装脚本根本没适配这个变更。我们花了两天时间才搞懂:这不是故障,而是官方在强制推动迁移——所有 Fleet 用户,必须切换到 IDEA 的Project Structure > Modules界面,用新版的“Multi-language Project Wizard”重新导入项目。这个向导背后,正是 Fleet 的 Project Model v3。
注意:JetBrains 的迁移策略从来不是“一刀切”。它采用的是“双轨并行+渐进替代”模式。例如,Code With Me 的独立插件在 2023 年仍能运行,但官方文档已明确标注“Deprecated, use built-in version”。这意味着你有至少 12-18 个月的缓冲期,但缓冲期的终点不是“还能用”,而是“官方不再为你遇到的问题提供支持”。
3. 真正的风暴中心:Agentic Development 如何重塑 JetBrains 的技术栈
当社区还在为 Code With Me 的“消失”唏嘘时,JetBrains 已经把全部火力投向一个更宏大、也更颠覆性的战场:Agentic Development(智能体驱动开发)。这不是简单的“AI 写代码”,而是一场从开发范式、工具链架构到人机协作关系的系统性重构。理解这一点,才能看懂为什么 Fleet 和 Air 必须“倒下”——它们的设计哲学,与 Agentic Development 的底层逻辑存在根本性冲突。
Agentic Development 的核心特征,可以用三个关键词概括:自主性(Autonomy)、目标导向(Goal-Oriented)、上下文感知(Context-Aware)。一个典型的 Agentic 开发工作流是这样的:你给 IDE 下达一个高层目标(如“为用户登录接口添加 JWT 过期自动刷新逻辑,并确保前端兼容”),AI Agent 不会立刻生成代码,而是先执行一系列自主动作:分析现有认证模块的源码结构、检索相关 RFC 文档、检查前端 SDK 的版本兼容性、模拟请求链路中的 token 生命周期……最后才生成符合整个系统上下文的、可验证的代码补丁。
这种范式,对底层工具链提出了前所未有的要求:
传统 IDE 的“文件-编辑器-调试器”线性模型失效了:Agent 需要同时访问源码、文档、CI 日志、API Schema、甚至生产监控数据,这些信息散落在不同系统、不同格式、不同权限域中。Fleet 的“单项目单视图”设计,无法支撑这种跨域、跨模态的上下文编织。
轻量级 IDE 的“快速启动”优势被逆转:JetBrains Air 追求的毫秒级启动,在 Agentic 场景下反而成了劣势。一个成熟的 Agent 需要数分钟甚至数小时来构建和缓存完整的项目知识图谱(Knowledge Graph),频繁重启意味着反复重建图谱,效率归零。真正的“轻量”,是资源占用的轻量,而非启动速度的轻量。
协同编码的“实时同步”模型遭遇挑战:Code With Me 的 CRDT 协议保证了毫秒级编辑同步,但在 Agentic 场景下,人类开发者和 AI Agent 的“协作节奏”完全不同步。人类可能花 5 分钟思考一个边界条件,而 Agent 在 2 秒内就完成了 10 次代码生成-测试-修正的循环。强行同步会导致人类被 Agent 的节奏裹挟,丧失主导权。
因此,JetBrains 的应对不是修补旧船,而是建造一艘新船。这艘新船的龙骨,就是IntelliJ Platform 的 Agentic Runtime。它包含三个关键层:
Context Broker(上下文代理):一个独立的服务进程,负责从 IDE、VCS、CI/CD、文档站点、甚至 Slack/Teams 群组中,持续拉取、解析、标准化各类开发上下文数据,并构建成统一的、可查询的知识图谱。这个组件,正是从 Fleet 的项目模型和 Air 的 WASM 数据管道中深度演化而来。
Agent Orchestrator(智能体协调器):一个嵌入在 IDE 进程内的轻量调度器,负责接收用户 Goal、分解为子任务、分发给不同的 Specialist Agent(如 Code Generator、Test Writer、Security Auditor),并管理它们之间的依赖与通信。它不生成代码,只做“指挥官”。
Verification Sandbox(验证沙箱):一个隔离的、可重现的执行环境(基于容器或 WASM),用于在提交代码前,自动运行 Agent 生成的所有变更,包括单元测试、集成测试、安全扫描,甚至性能基线对比。这个沙箱的底层,正是 JetBrains Air 的 WASM 运行时技术。
我在 JetBrains 的内部技术分享会上听到一个生动的比喻:“过去,IDE 是一个画板,开发者是画家,AI 是一支智能画笔;未来,IDE 是一个工作室,开发者是导演,AI 是一群各司其职的演员。” Code With Me、Fleet、Air,都是那个“画板时代”的杰出作品。而 Agentic Development,要求我们建造一个“工作室”。那些“倒下”的产品,不是失败,而是被拆解成了工作室里最坚固的梁柱、最精密的仪器、最可靠的供电系统。
提示:如果你正在评估 JetBrains 的 AI 能力,不要只看
AI Assistant插件的代码补全率。真正该测试的,是它能否在你输入# Add rate limiting to /api/v1/users endpoint后,自动识别出你项目中使用的Spring Cloud Gateway,检索其官方限流配置文档,检查application.yml中是否已存在spring.cloud.gateway.routes配置块,并最终生成符合你现有路由规则的 YAML 片段——这才是 Agentic Development 的真实水位线。
4. 开发者生存指南:从“产品用户”到“平台共建者”的转型路径
面对 JetBrains 这场静默而深刻的变革,开发者有两种选择:一种是被动等待,继续用旧版 Fleet 或 Code With Me 插件,直到某天某个关键依赖彻底失效;另一种是主动拥抱,把自己从“产品用户”升级为“平台共建者”。后者听起来很宏大,但落地路径非常清晰,且每一步都有即时回报。
4.1 第一步:吃透 IntelliJ Platform 的新扩展范式
JetBrains 已明确将未来所有创新都押注在 IntelliJ Platform 的可扩展性上。这意味着,你不再需要等待 JetBrains 发布一个“新功能”,而是可以自己动手,用官方提供的 SDK,把它“拼装”出来。这个转变,始于理解三个核心概念:
Project Model v3(项目模型 v3):这是 Fleet 最宝贵的遗产。它不再把项目看作一堆文件的集合,而是看作一个由
Module、Library、Facet、Artifact构成的、带有丰富语义关系的图谱。你可以用 Kotlin DSL 定义一个CustomModuleType,让它自动识别你公司私有框架的config.yaml文件,并将其内容注入到 IDE 的代码补全上下文中。我团队就用这个能力,为内部 RPC 框架实现了零配置的接口方法跳转。Context Broker API(上下文代理 API):这是 Agentic Development 的基石。JetBrains 已开放了
ContextBrokerService的 Java/Kotlin 接口。你可以编写一个插件,监听ContextEvent(如GitCommitPushed、CIJobFailed),然后调用ContextBrokerService.submit()方法,将自定义的上下文片段(比如 Jenkins 构建日志中的错误堆栈)注入到全局知识图谱中。这样,当 AI Assistant 分析失败原因时,就能看到你私有 CI 系统的原始日志。Verification Sandbox SDK(验证沙箱 SDK):这是 JetBrains Air 技术的结晶。SDK 提供了
SandboxRunner类,允许你定义一个隔离的执行环境。你可以用它来运行自定义的静态分析脚本,或者启动一个微型的 Docker Compose 环境,来验证 Agent 生成的数据库迁移脚本是否真的能在你的生产镜像中执行。这比传统的mvn test更接近真实场景。
4.2 第二步:用“小而美”的插件,解决“大而痛”的问题
别被“共建平台”的字眼吓住。真正的共建,往往始于一个解决自己团队痛点的、50 行代码的小插件。我推荐三个高 ROI(投资回报率)的切入点:
“一键修复”类插件:针对你团队高频出现的、模式化的代码问题。例如,我们发现后端同事总忘记在 Spring Boot 的
@RestController方法上加@ResponseBody(因为现代框架默认开启,但老项目迁移时容易遗漏)。我写了一个插件,用 PSI(Program Structure Interface)扫描所有@RestController类,找到没有@ResponseBody的@RequestMapping方法,然后提供一个 QuickFix,一键插入注解。这个插件上线后,相关 Code Review 评论减少了 70%。“上下文增强”类插件:利用 Context Broker API,把外部系统的信息“拉”进 IDE。例如,我们用 Jira 的 REST API,开发了一个插件:当你在代码中写
// TODO JRA-1234: Fix NPE in UserService时,插件会自动在编辑器右侧边栏显示 JRA-1234 的标题、描述、当前状态和关联的 Git 分支。这比切换浏览器查 Jira 高效得多。“沙箱验证”类插件:为特定业务场景定制验证逻辑。例如,我们有一个严格的合规要求:所有对外暴露的 API 接口,其返回 JSON 的
data字段必须是对象类型,不能是数组或字符串。我写了一个插件,它会在Verification Sandbox中启动一个轻量级的 JSON Schema 验证器,自动检查 Controller 方法的@ApiResponse注解,并在不符合要求时给出精确的错误定位。
4.3 第三步:参与开源,从使用者变成影响者
JetBrains 的核心 SDK 和部分关键组件(如jetbrains-ide-wasm-runtime)已开源在 GitHub 上。参与其中,是你获得“第一手情报”和“技术话语权”的最快途径。我的建议是:
从 Issue 开始:不要一上来就提 PR。先认真阅读
jetbrains-ide-wasm-runtime仓库的 Issues,特别是那些标记为good first issue或help wanted的。帮别人修复一个文档错别字,或者补充一个缺失的单元测试,是建立信任的第一步。贡献文档:这是最容易被忽视,也最有价值的贡献。JetBrains 的官方文档虽然详尽,但往往缺乏具体业务场景的案例。你可以在
docs目录下,为ContextBrokerService添加一个How to integrate with internal CMDB的实战教程,配上你公司的 CMDB API 示例和 Kotlin 代码片段。这不仅帮助了其他开发者,也让 JetBrains 的工程师看到了真实世界的使用模式。发起 RFC(Request for Comments):当你发现某个 API 设计无法满足你的高级需求时(比如
ContextBrokerService缺少对 GraphQL 查询的支持),不要只在论坛抱怨。去 GitHub 的 Discussions 区,发起一个正式的 RFC。清晰地描述你的用例、现有方案的不足、以及你期望的 API 签名。JetBrains 的架构师会认真阅读并回复。我去年提出的关于SandboxRunner支持自定义网络策略的 RFC,三个月后就在 2024.3 的 SDK 中实现了。
经验之谈:我见过太多团队,把精力浪费在寻找“最好用的 JetBrains AI 插件”或“如何破解全家桶”上。真相是,JetBrains 的护城河,从来不在某个闭源插件的算法有多炫,而在于 IntelliJ Platform 这个生态的开放性与一致性。当你能把一个解决自己团队痛点的插件,优雅地集成进 IDEA 的 Settings 界面、QuickFix 菜单和 Editor 边栏时,你就已经站在了这场变革的潮头。那才是真正的“不倒”。
5. 关于“破解”、“学生认证”与“磁盘清理”的务实建议
标题引发的“五味杂陈”,很大一部分源于现实困境:许可证成本、学生身份验证的繁琐、旧版本残留的磁盘空间压力。这些看似“外围”的问题,恰恰是开发者日常体验中最真实的痛点。与其在社区里争论“哪个 AI 插件更好”,不如直面这些务实问题,给出可立即执行的解决方案。
5.1 JetBrains AI Assistant 的可用性问题:不是“不可用”,是“未激活”
搜索热词中“jetbrains idea 插件 ai assistant 不可用”高居榜首,但绝大多数情况,问题根源并非插件本身损坏,而是AI Assistant 的服务端激活状态异常。JetBrains 的 AI 服务(由其合作伙伴提供)采用“订阅绑定+设备授权”的双重验证机制。一个常见陷阱是:当你在多台机器上登录同一个 JetBrains Account 时,服务端会为每个设备颁发一个短期 Token。如果某台机器长时间离线(比如你的 MacBook Pro 出差两周),其 Token 就会过期,而 IDEA 客户端并不会弹出清晰的错误提示,只会显示“AI Assistant is not available”。
实测有效的三步排查法:
检查服务端状态:打开 IDEA,进入
Help > Find Action(Ctrl+Shift+A),输入Services,选择Services工具窗口。展开AI Assistant节点,查看右下角的状态图标。如果是灰色,说明服务未连接;如果是黄色感叹号,说明 Token 过期。强制刷新 Token:在
Settings > Tools > AI Assistant中,点击右上角的齿轮图标,选择Reset Authentication。这会清除本地所有认证信息,强制触发一次全新的 OAuth 流程。验证网络代理设置:这是国内用户最容易忽略的一点。AI Assistant 的服务端域名(如
ai-assistant.jetbrains.com)必须能被 IDEA 客户端直连。如果你的系统设置了全局 HTTP 代理(比如某些企业网络策略),但 IDEA 的Settings > Appearance & Behavior > System Settings > HTTP Proxy中未勾选Use system proxy settings,或者勾选了但代理配置不正确,就会导致连接超时。最稳妥的做法是,在 IDEA 的代理设置中,明确选择No proxy,并确保你的 DNS 能正常解析 JetBrains 的域名。我试过,只要 DNS 解析正常,即使没有代理,AI Assistant 的基础功能(代码补全、解释)也能稳定工作。
注意:网上流传的所谓“AI Assistant 激活破解”,基本都是修改本地
idea.properties文件或篡改 JAR 包签名。这些操作不仅违反 JetBrains 的 EULA(最终用户许可协议),而且在每次 IDEA 升级后都会失效,还可能导致 IDE 启动异常。投入一小时研究官方的Reset Authentication流程,远比花三天折腾破解脚本更高效。
5.2 学生认证:一次搞定,终身受益的“白嫖”艺术
“jetbrains学生免费申请”是另一个高频搜索词。其实 JetBrains 的学生认证流程非常简单,但关键在于抓住“认证有效期”这个时间窗口。官方的学生许可证是一年期,但有一个隐藏福利:只要你保持学生邮箱(如xxx@university.edu.cn)的有效性,并在到期前 30 天内登录 JetBrains Account,系统会自动为你续期,无需重新上传证明材料。
我的实操步骤(2024 年最新版):
准备材料:一张清晰的、带有你姓名和学校公章的在校证明(PDF),或一份近期的、显示你学号和院系的教务系统截图(JPG/PNG)。注意:学生证照片通常不被接受,因为缺少官方公章。
邮箱验证:务必使用你的学校官方邮箱(
@xxx.edu.cn)注册 JetBrains Account。这是自动续期的前提。如果你用的是 QQ 邮箱或 Gmail,即使认证通过,也无法享受自动续期。提交申请:登录 https://www.jetbrains.com/student/ ,点击
Apply now,上传材料,填写信息。关键技巧:在Institution字段,不要手动输入学校全名,而是从下拉菜单中选择。JetBrains 的数据库里有超过 2 万家认证高校,手动输入极易因大小写或空格导致匹配失败。等待审核:官方承诺 1-3 个工作日,但实测通常在 24 小时内完成。审核通过后,你会收到一封邮件,里面包含一个专属的
Student License Key。激活全家桶:在 IDEA、PyCharm、WebStorm 等任意一款 IDE 的
Help > Register中,选择Activation code,粘贴邮件里的 Key。这个 Key 可以激活所有 JetBrains 的付费产品,包括 DataGrip、Rider、甚至未来的 Fleet(如果它重新开放)。
5.3 Mac 清理旧版本磁盘空间:精准手术,拒绝“一键清理”
“mac 清理jetbrains 旧版本磁盘空间”是 macOS 用户的刚需。JetBrains 的安装包(.dmg)和应用本身(.app)只占空间的一小部分,真正的“磁盘杀手”是隐藏在~/Library/Caches/、~/Library/Logs/和~/Library/Application Support/下的缓存、日志和配置目录。粗暴地删除整个~/Library/Caches/JetBrains/目录,可能会导致新版本 IDEA 启动缓慢(因为要重建索引)。
我推荐的“精准清理”四步法:
卸载旧应用:将旧版本的
.app文件(如IntelliJ IDEA 2023.1.app)拖入废纸篓。这一步是必须的,但只释放了几十 MB。清理 Caches(缓存):进入
~/Library/Caches/,删除所有以com.jetbrains.开头的文件夹(如com.jetbrains.intellij、com.jetbrains.pycharm)。这些是纯缓存,删除后 IDE 会自动重建,不影响配置。清理 Logs(日志):进入
~/Library/Logs/,删除JetBrains/文件夹。日志文件通常很大,且对日常开发毫无用处。谨慎处理 Application Support(应用支持):这是最关键的一步。
~/Library/Application Support/JetBrains/下存放着你的所有配置、插件、自定义主题和项目索引。不要删除整个文件夹!只删除其中的Caches/子文件夹(如IntelliJIdea2023.1/Caches/),以及log/子文件夹。保留config/(配置)、plugins/(插件)、system/(系统索引)这三个核心文件夹。这样,你升级到 IDEA 2024.3 后,所有插件、快捷键设置、代码风格都会完美继承,只需等待索引重建即可。
经验之谈:我曾经因为误删了
Application Support下的system/文件夹,导致 IDEA 2024.1 启动后,所有项目的 Maven 依赖都显示为红色,花了整整一个下午才搞明白是索引丢失。从此,我的清理脚本里永远有一行rsync -av --delete ~/Library/Application\ Support/JetBrains/IntelliJIdea2023.1/system/ ~/Library/Application\ Support/JetBrains/IntelliJIdea2024.3/system/—— 这行命令,就是我每年升级时的“保命符”。