JetBrains 宣布在 PyCharm 中集成一项新的 Jupyter 技能,使 AI 代理能够在实时 Jupyter 内核中执行工作,而不是通过命令行中的子进程运行命令。据该公司介绍,这种方式可以在单元格之间保留变量、数据、训练好的模型和导入状态,同时防止 .ipynb 文件损坏,并减少长时间运行任务中的不必要等待。
这项技能旨在解决使用编程代理处理 Jupyter Notebook 时经常遇到的问题。将 Notebook 文件作为普通文本处理,可能会导致 JSON 结构被修改并损坏;而在子进程中运行代码,则会在进程结束后丢失内核状态。因此,代理会丢失训练好的模型、已加载的数据框或已导入的库,也无法检查或重新使用这些状态。此外,输出内容可能会一直缓存到执行结束,这使得监控长时间训练变得不切实际。
技能如何在 PyCharm 中工作
该技能通过一个名为 execute_tool 的 MCP 封装,将 PyCharm 针对 Notebook 和实时内核的功能提供给代理。这个封装支持创建、修改和读取 Notebook,运行单元格,等待长时间运行的操作完成,在运行期间检查内核,以及控制内核的生命周期。
代理会在单元格中编写真实的 Python 代码,然后直接在内核中运行,使变量、模型和数据能够像手动使用 Notebook 时一样跨单元格持续存在。运行长时间任务时,wait_cell_execution 工具会等待单元格完成或达到安全限制,而不是按照固定计时器反复查询。此外,代理只会读取流式输出中的新增部分,而不是每次都重新发送不断增长的完整单元格输出。
成本测试与结果
JetBrains 使用机器学习基准 MLGym 中的 12 项任务测试了这项技能,任务涵盖分类、回归和强化学习,每项任务都要求加载数据、训练模型、评估模型并保存结果。该公司比较了三种模式:仅使用 Bash、仅使用 Jupyter 内核,以及结合使用内核和 Bash。
在 Claude Opus 5 的情况下,通过内核执行这些任务的成本为 59.09 美元,而通过 shell 执行的成本为 67.06 美元,低约 12%。该公司表示,内核使用的令牌数量更多,但由于能够保持提示缓存处于活动状态,成本反而更低;缓存读取占输入的 98%,而 shell 模式下为 82%,其中缓存读取的计费成本相当于新建缓存成本的十二分之一。
结果表明,收益取决于模型和任务。在需要保持状态的长时间任务中,Claude Opus 的收益最明显;而在短任务以及使用 Codex 模型时,shell 的成本更低,因为 Codex 已经能够高效使用缓存。在这些情况下,这项技能的主要价值在于改善工作流程,而不是降低成本。
使用限制与可用性
JetBrains 表示,其中一项名为 Titanic 的任务受到基准污染的影响,因为代理能够查看测试集,并利用它选择最终模型。该公司称,这个问题出现在三种模式中;排除该任务后,使用 Opus 时内核的成本仍比 shell 低 10%,为 56.34 美元,而 shell 为 62.65 美元。
这项技能不会自动保证保存输出;在一次实验中,一名代理训练出表现良好的模型后结束了任务,却没有保存提交文件。该公司建议在上下文文件(例如 CLAUDE.md)或其他技能中加入明确指令,在达到所需指标后立即保存模型。该公司还强调,这项工具只能减少运行过程中的浪费,并不能将薄弱的机器学习方法转变为强大的解决方案,因为部分任务仍可能需要人工干预。
用户可以在 PyCharm 2026.2.1 的 AI Chat 中试用这项技能,只需要求代理处理 Notebook、创建 Notebook、加载数据集或开始训练即可。该开发环境还支持浏览和管理技能,从公共 GitHub 仓库等存储库中添加外部库,或导入为 Claude Code 或 Codex 准备的预设技能。