专为 JetBrains IDE 设计的强大且轻量级的插件管理容器
核心特性 • 快速开始 • 应用场景 • 项目结构 • 版本日志
JTools 通过提供热插拔功能彻底改变了插件开发体验,允许开发者在不重启 IDE 的情况下安装、更新和卸载插件,显著提升开发效率。
| 特性 | 描述 |
|---|---|
| 🔌 热插拔支持 | 无需重启 IDE 即可即时安装和卸载插件 |
| 📦 拖拽安装 | 将插件文件拖入面板即可立即安装,右键菜单轻松卸载 |
| 🚀 多语言开发 | 全面支持 Java、Kotlin 和 JavaScript 插件开发 |
| 📂 自定义存储 | 可配置插件安装目录,按产品和版本自动隔离 |
| 📋 集成日志 | 内置日志控制台,支持软换行输出 |
| 🤖 智能体对话 | 内置智能体入口,支持流式输出、推理块展示与工具调用折叠日志 |
| 📊 Token 消耗 | 对话面板按会话展示 Token 累计消耗,使用 K 单位并可查看输入/输出和上次请求明细 |
| 🧭 供应方管理 | 多供应方配置(OpenAI/Anthropic),支持 Base URL、Header、代理 |
| 🎛️ 供应方选择 | 对话中可选供应方,并按供应方维护模型列表与默认模型 |
| 🧩 供应方模板 | 支持 OpenAI Compatible 接入类型与厂商模板,预置端点和参数建议 |
| 🌍 广泛供应方覆盖 | 内置 OpenAI、DeepSeek、GLM、OpenRouter、SiliconFlow、DashScope、Gemini、Ollama、Anthropic 模板 |
| 🧰 函数调用 | 聚合插件与系统工具并增加唯一标识,避免名称冲突 |
| 📦 插件管理 | 支持本地/URL/批量安装与卸载的工具调用 |
| 🧪 开发测试 | 开发面板可暴露当前插件实例的工具调用用于调试 |
| 📎 附件工作流 | 对话支持本地文件和图片附件,具备模型能力校验、剪贴板支持与上传优化 |
| 🖼️ 多模态输入 | 可按模型开启图片、音频、视频、文件附件能力,并自动抽取可读文件文本 |
| 🧠 Skills 管理 | 支持导入或编辑本地 SKILL.md 技能,按会话挂载并暴露资源 |
| 📚 Skills 资源 | references/examples/scripts 等资源可随技能挂载,并通过工具读取 |
| 🔗 Skill 运行时集成 | Skills 与内置工具、插件工具共享同一个 AgentScope Toolkit |
| 🛠️ 系统工具套件 | 内置插件管理、文件浏览、技能管理、MCP 管理等 JTools 系统工具 |
| 🧩 结构化 MCP CLI 工具 | 单一 cli 工具聚合 MCP 服务配置、连接测试、资源读取和工具调用,doc 返回全部 MCP 命令参数说明 |
| 🔌 MCP 客户端 | 基于官方 MCP Java SDK 管理并调用外部 MCP 服务,支持 stdio/SSE/streamable HTTP 与连接测试 |
| 🛡️ 智能体权限 | 按对话配置访问范围与危险操作策略,统一管控文件、命令、插件、Skills、MCP 和动态工具 |
| 🎚️ 模型调优 | 提供独立模型调优面板,可配置流式输出、多模态能力和高级参数 |
| 🧾 参数建议 | 支持保存供应方默认参数与推荐参数,让模型配置更容易复用 |
| 💾 会话持久化 | 跨项目保留会话、启用技能、草稿附件与当前上下文 |
| 🧠 运行时状态 | 会话运行时可保留记忆、工具状态与规划上下文,适合多步骤任务 |
| ⚙️ 智能体限制 | 可配置最大工具调用轮次并限制工具返回长度,避免超大上下文 |
| 📂 文件列表 | 文件列表支持 maxEntries 并返回截断信息 |
| 🌐 HTTP WebFetch | WebFetch 支持 GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS、查询参数、请求头、请求体、表单参数、超时和 Web 工具代理 |
| 🧭 AI 浏览器工具 | 支持临时 JCEF 浏览器会话,用户可选择显示或隐藏运行,智能体可读取页面、观察元素 ref、点击、输入、等待、截图并在完成后销毁窗口 |
| 🔧 动态 SDK 管理 | 自动解析 IDEA、Maven 和 Gradle 项目的 SDK 依赖 |
| 🌐 Web 集成 | JavaScript 插件支持灵活的网页集成 |
| 🪟 多实例支持 | 支持同时打开同一插件的多个实例 |
| 📐 分割面板视图 | 支持左右面板分割,更好地组织工作空间 |
| 🎯 全家桶支持 | 兼容 IntelliJ IDEA、WebStorm、PyCharm、GoLand、PhpStorm 等 |
- 打开 JetBrains IDE →
Settings/Preferences→Plugins - 搜索 JTools
- 点击
Install并重启 IDE
或者从 JetBrains Marketplace 下载安装。
- 从右侧边栏打开 JTools 面板
- 拖放插件文件或使用内置开发工具
- 开始享受热重载开发体验!
- 快速原型开发 - IntelliJ 插件的快速原型开发和测试
- 轻量级工具 - 创建轻量级实用工具,无需完整插件开销
- Web 工具集成 - 开发集成到 IDE 中的自定义 Web 工具
- 团队工具分发 - 构建团队专用开发工具,便于分发
- IDE 内 Agent 工作台 - 在同一个面板里管理模型、技能、MCP、附件和工具调用
- 多模型协同接入 - 通过供应方模板快速接入 OpenAI Compatible 服务并做模型级调优
- 供应方接入更完整 - 现在不只是 OpenAI/Anthropic,还覆盖 DashScope、Gemini、Ollama 和多种 OpenAI Compatible 厂商模板。
- 附件能力更细 - 图片会按上传体积自动优化,可读文本文件会自动抽取内容,附件按钮也会根据模型能力动态显示。
- Skills 更像本地知识包 - 可以直接导入
SKILL.md目录,连同references、examples、scripts一起挂到会话里。 - Skill 工具链更一致 -
SkillBox由上层传入同一个 AgentScopeToolkit,技能工具组和运行时工具注册在同一容器中。 - 工具侧闭环更强 - 智能体不只会调用插件工具,还能调用 JTools 自带的技能管理、MCP 管理、文件浏览和插件运维工具。
- 权限边界更清楚 - 每个对话可选择只读、项目、完全访问,并可对危险写入、命令、插件、Skills、MCP 操作设置自动、确认或拒绝策略。
- 会话上下文更稳 - 会按项目保留当前会话、技能启用状态、草稿附件和部分运行时上下文,适合连续协作。
- Token 消耗可见 - 提示词选择器旁会显示当前会话累计 Token,用 K 单位压缩展示,悬停可查看输入、输出和上次请求用量。
- Web 工具分工更清楚 -
WebFetch负责直接 HTTP/API 请求,WebSearch负责搜索,browser_open等浏览器工具负责需要渲染、分页点击或可视化观察的页面操作。 - 浏览器操作更可观察 - AI 浏览器支持 snapshot/ref 操作、文本/selector 等待和临时截图,智能体可以先观察页面结构再点击、输入或翻页。
- 浏览器生命周期更可控 - AI 浏览器按需动态创建工具窗口,同一项目复用一个浏览器会话,任务完成后可销毁,并沿用 Web 工具代理设置。
- LLM 链路更直接 - 模型调用重构为直接 OkHttp 客户端 + 符合 WHATWG 规范的 SSE 解析,统一的
ModelCancel令牌可即时中断流式输出和并发工具调用。 - MCP 工具更聚合 - MCP 服务配置、连接测试、资源读取与工具调用收敛到同一个结构化
cli工具,并由doc一次性返回命令参数说明。 - 上下文更贴合环境 - 系统提示词会带上操作系统信息、系统默认编码和 JetBrains 项目文件编码,写文件时按该编码输出。
JTools/
├── plugin/ # 主插件模块
├── sdk/ # SDK 模块 (供插件开发使用)
├── plugin-example/ # 插件开发示例
└── gradle/ # Gradle 配置
- JDK: 17+
- Gradle: 8.x
- IntelliJ Platform: 251 - 263.*
- Kotlin: 2.2.10
- 🐛 用户 Shell 环境丢失修复 - bash 工具此前以 login shell 执行命令,只加载
.zprofile/.bash_profile而不读.zshrc/.bashrc,导致 sdkman、nvm、fnm、gvm 等版本管理器配置的工具找不到,或拿到全局版本而非版本管理器选定的版本 - 🔄 用户环境解析与缓存 - 首次执行命令时用交互式登录 shell 解析一次完整用户环境并缓存复用,后续命令直接注入,不重复执行 rc 初始化;解析失败不写入缓存,下次调用自动重试
- 🧭 按 Shell 声明探测策略 - 环境探测方式改由各 shell 自行声明:zsh/bash 读取 rc 文件,PowerShell 加载
$PROFILE(执行命令时仍保持-NoProfile),cmd 与 POSIX sh 无可靠机制因而不探测 - ♻️ 环境刷新参数 - bash 工具新增
refresh_env参数,命令报 command not found 或用户刚安装工具、刚修改 shell 配置时可强制重新解析环境后执行,无需重启 IDE - 📝 工具描述职责分离 - 工具描述只说明工具身份、所用 shell 和能力边界,参数使用约定全部下沉到各自的参数描述
- 📦 版本元数据同步 - 插件版本号升级到
v1.1.5.3,并同步 SDK Helper 版本元数据到1153
- 📎 运行中追加附件 - 进行中的对话支持在追加消息弹窗中选择或粘贴图片与文件;附件与文字可独立或组合发送,并按真实 Provider 消息顺序进入模型上下文和会话历史
- 🖼️ 追加附件展示与打开 - 追加消息卡片展示图片缩略图和文件信息,支持点击预览图片或在 IDE 中打开文件;弹窗支持附件去重、移除和发送前检查
- 🛑 停止层级语义恢复 - 有工具执行时停止按钮只取消当前工具,并将“用户手动取消”结果返回模型继续本轮对话;没有工具执行时才终止整个模型回复
- 📐 对话内容宽度约束 - Markdown、表格、代码块、长链接、工具详情及追加消息统一限制在消息区域内,超宽内容改为换行或局部滚动,避免撑开对话布局
- 📦 版本元数据同步 - 插件版本号升级到
v1.1.5.2,并同步 SDK Helper 版本元数据到1152
- 💬 运行中追加消息 - 进行中的对话队列项支持继续追加用户消息;追加内容按独立用户消息投递,无需停止当前模型请求或重新排队
- 🔁 工具循环继续条件修复 - 下一轮现在由“存在工具调用或待处理追加消息”共同决定;即使模型未调用工具,只要有追加消息也会继续请求模型
- 🧾 追加顺序精确持久化 - 模型日志记录追加消息元数据及实际 Provider 消息顺序,恢复历史时保留工具调用、工具结果和追加消息的真实先后关系
- 🛑 取消边界收敛 - 停止会话时同步取消模型与工具请求,并原子关闭追加入口、清空尚未投递的追加消息,避免取消后继续进入模型上下文
- 🎨 追加消息折叠展示 - 用户消息卡片提供追加消息总览和单条两级展开/收起;大量消息及超长正文改为区域内滚动,并修正小数秒被误显示为裸数字的问题
- 📦 版本元数据同步 - 插件版本号升级到
v1.1.5.1,并同步 SDK Helper 版本元数据到1151
- ✨ 输入框润色 - 对话输入框新增「润色」按钮,调用指定 Agent 对当前输入内容生成多个候选版本,可预览后回填
- 🧩 润色虚拟工具动态注册 - 新增
submit_polish_results虚拟工具,仅在润色任务执行期间按次注入,不进入全局工具注册表,也不出现在 Agent 工具配置清单中 - ⚙️ 全局设置支持下拉选项 - 全局配置项新增
select类型,新增「输入框润色 Agent」配置,从已启用 Agent 中选择,默认「不启用」时对话界面不显示润色入口 - 🔁 配置保存即时生效 - 全局设置保存后主动通知对话面板同步状态,润色入口无需重开面板即可出现或消失
- 🎭 润色遵循 Agent 人格 - 润色指令改为要求严格遵循该 Agent 的角色设定、能力画像与工作方法,移除与人格冲突的「风格各异」措辞,多个候选只在用词句式上区别
- 📖 润色结果完整查看 - 结果改为 Element Plus 原生标签页切换 + 大预览区(高度
min(56vh,560px)、内部滚动、文本可选中),底部显示当前方案字符数,需点击「应用到输入框」才回填,避免误触 - 🗂️ 润色不污染会话历史 - 润色不写入会话消息、不进入对话队列,以
chat_polish类型记录到模型日志,可在模型日志中追溯 - ⚡ 润色中断不卡界面 - 取消动作放到后台线程执行,避免在 EDT 上关闭 HTTP 连接导致界面卡顿;运行中任务可随时中断
- 🛡️ 润色失败显式暴露 - 模型未按约定调用提交工具时直接报错并提示检查该模型是否支持工具调用,不解析回答正文凑结果
- 📦 版本元数据同步 - 插件版本号升级到
v1.1.5.0,并同步 SDK Helper 版本元数据到1150
- 🧩 插件面板跨分屏拖拽 - 迁移更完善的双栏拖拽实现:拖出即从源分屏移除、幽灵标签随鼠标跟随、目标分屏按落点高亮占位并所见即所得插入
- 🧭 分屏布局收敛 - 统一
refreshSplitterLayout管理左右分屏挂载、分隔条与空/内容页切换,修复移动标签后分隔条不显示的问题 - 📚 read_project_files 支持 VFS URL - 可直接读取
find_project_files/find_project_classes在include_global=true时返回的jar://、jrt://、file://路径,用于查看依赖或 SDK 源码 - 🏷️ 内容来源标记 - 读取结果区分
content_kind为project或external,便于判断是否项目内文件 - 📝 IDE 工具描述重写 - 按各工具真实能力重写 9 个 IDE 项目工具的描述,补齐批量、未保存内容、索引来源、边界约束等信息
- 🔗 对话链接外部浏览器打开 - 对话框内的 URL 改为交给系统外部浏览器打开,避免在 JCEF 内跳走整个对话页无法返回;前端拦截
<a>点击、JCEF 层onBeforeBrowse兜底(仅拦真实用户手势触发的外链,放行初始加载与内部导航) - ⚡ 停止对话卡顿修复 - 停止动作整体放到后台线程,避免在 EDT 上触发 OkHttp 关闭与日志写回导致界面卡顿
- ✂️ 工具输出截断保留 - 工具输出超过 8KB 时不再整段丢弃,改为保留前 8KB 并在末尾附截断说明与下一步提示(按 UTF-8 字符边界安全截断)
- 🔄 bash 新增 refresh_vfs 参数 - bash 执行后可选刷新 VFS(默认关闭),改动磁盘文件且随后要用
read_project_files读取时传true,避免读到 IDE 缓存旧内容 - 🧩 工具参数兼容字符串化 JSON - IDE 项目工具的数组/对象参数兼容部分模型序列化成 JSON 字符串(如
"[{...}]")的情况,解析结果确实是数组/对象才接受,否则仍报清晰错误 - 📐 统一为行区间 - 文件上下文选区改为上报
startLine/endLine,read_project_files移除offset_ranges只保留line_ranges,消除 offset 与行号两套口径及其互斥报错 - 🔢 数值参数 0 视为未指定 -
max_lines、max_results、max_results_per_query、timeout_secs、max_bytes、max_response_bytes等下界为 1 的可选参数传0时取默认值,不再被夹成 1 导致只读一行或超时一秒;context_lines的0仍是合法值 - 📦 版本元数据同步 - 插件版本号升级到
v1.1.4.9,并同步 SDK Helper 版本元数据到1149
- 📁 文件上下文开关 - 对话输入区可开启文件上下文,开启后会将当前编辑器打开文件路径附加到用户消息开头
- ✂️ 选区 offset 上下文 - 有选区时附带
startOffset/endOffset;支持多文件、同文件多光标/块选多处选区;发送前缀全部带上 - 🏷️ 单标签汇总展示 - 多处选区合并为一个 chip(如
xxx.md 等2个文件 · 4处),悬停 tooltip 列出全部路径与 offset - 🗂️ 项目维度开关 - 文件上下文开关按项目路径独立持久化,互不影响
- 📖 read_project_files 支持 offset - 读取工具新增
offset_ranges,可直接按编辑器选区 offset 读取内容,与line_ranges二选一 - 🛡️ 编辑器 read-action 修复 - 同步文件上下文时在 read-action 内访问选区/文档,避免 EDT Timer 线程异常
- 🧰 工具详情轻量化 - 工具调用详情由
LanguageTextField改为JBTextArea,避免维护 Editor dispose - 🎨 图标与交互 - 新增文件上下文图标按钮;chip 支持关闭;切换文件/选区实时刷新
- 🔢 版本元数据同步 - 插件版本号更新为
v1.1.4.8,并同步 SDK Helper 版本元数据到1148
- 🧩 供应商自定义请求头 - 供应商配置支持维护自定义 Header 列表,随供应商请求一起发送
- 💾 provider_config 持久化 - 请求头存储于
providers.provider_config.custom_headers,无需新增数据库字段 - 🔐 鉴权优先级保护 - 自定义头禁止覆盖
Authorization,系统 API Key / Anthropic 鉴权头优先 - 📜 请求头列表固定高度 - 列表固定约 5 行可视高度,超出后内部滚动,避免把下方配置整体顶下去
- 📡 运行时全链路生效 - 对话请求与远程模型列表获取都会带上供应商自定义请求头
- 📦 版本元数据同步 - 插件版本号升级到
v1.1.4.7,并同步 SDK Helper 版本元数据到1147
- 💬 对话发送按钮 - 在输入框右下角增加主题色“发送”文字按钮,支持点击发送,并保留 Cmd/Ctrl+Enter 快捷发送
- 🎨 发送按钮主题适配 - 发送按钮颜色跟随 IDE 主题强调色(
--jb-accent),悬停/禁用态同步适配浅色与深色主题 - ✍️ 输入区交互优化 - 去掉对话输入框、Agent 描述/扩展提示、角色与人格等文本框右下角拖拽拉高,避免布局抖动
- 📐 最大化编辑弹窗修复 - 修复扩展提示、角色与人格最大化编辑时高度塌陷与双滚动条问题,仅保留编辑区内一条滚动条
- 🧭 字数统计与最大化按钮布局 - 扩展提示的最大化入口移到标签行,避免与右下角字数统计重叠
- 📦 版本元数据同步 - 插件版本号升级到
v1.1.4.6,并同步 SDK Helper 版本元数据到1146
- 🔧 LLM 链路深度重构 - 模型调用改为直接 OkHttp 客户端 + 符合 WHATWG/EventSource 规范的 SSE 解析器,流式与非流式请求走统一执行器
- ⏹️ 统一取消令牌 - 新增
ModelCancel,一个令牌即可中断当前流式请求、底层连接和所有已注册的并发工具调用 - 🧩 结构化 MCP CLI 工具 - 新增
cli工具聚合 MCP 管理(mcp.list/get/create/update/delete/test/tools/resources/read_resource/call),并提供doc命令返回全部 MCP 命令的完整参数说明 - 🔌 MCP 客户端持久化 - 基于官方 MCP Java SDK(
1.1.3)管理外部 MCP 服务,支持 stdio/SSE/streamable HTTP,服务配置入库持久化并可连接测试 - 🖼️ 附件统一预览 - 输入区草稿附件与聊天记录附件统一交互:图片点击预览大图,文件点击在 JetBrains 中打开
- 🧭 提示词环境上下文 - 系统提示词补充操作系统信息、系统默认编码与 JetBrains 项目文件编码,明确要求模型按该编码输出文件内容
- 🐛 消息删除修复 - 修复聊天消息删除按钮点击无效的问题(改用按角色清理会话消息的服务方法,而非会对
chat_turn抛异常的模型日志删除) - 🐛 工具错误根因暴露 - 工具调用失败时展开 cause 链暴露真实原因,不再被 MCP SDK 外层包装信息(如 "Client failed to initialize by explicit API call")掩盖
- 🎨 Agent 配置默认值 - 新建 Agent 时内置工具默认全选,蒸馏配置的 Agent 下拉可选中自身
- 🎨 技能管理与工具列表 - 技能管理新增「新增技能」按钮(刷新列表旁),工具调用列表限高约 4 行并支持溢出滚动
- 📦 版本元数据同步 - 发布版本提升至
v1.1.4.5,并同步 SDK Helper 版本元数据到1145
- 🧭 AI 浏览器工具增强 - 在
v1.1.4.3浏览器工具链基础上新增browser_snapshot、browser_click_ref、browser_type_ref、browser_click_text、browser_wait_for_text、browser_wait_for_selector、browser_screenshot和browser_press - 🔎 可观察浏览器操作 -
browser_snapshot会返回可操作元素 ref,智能体优先通过 ref 点击和输入,页面变化后可等待文本/selector 并重新观察,减少盲猜 CSS selector - 🧾 浏览器工具提示词优化 - 浏览器工具描述明确推荐
open -> snapshot -> ref 操作 -> wait -> snapshot/read -> close的操作流程,CSS selector 工具作为低优先级兜底 - ✅ 浏览器动作反馈 -
browser_click/browser_type等操作会返回 found/ok 状态,便于智能体判断元素是否真实命中 - 📦 版本元数据同步 - 发布版本提升至
v1.1.4.4,并同步 SDK Helper 版本元数据到1144
- 🌐 HTTP WebFetch -
WebFetch改为面向接口和静态资源的直接 HTTP 客户端,支持 GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS、查询参数、请求头、原始请求体、表单参数、超时控制、响应头、内容元数据和 Web 工具代理 - 🧭 AI 浏览器工具 - 新增临时 JCEF 浏览器工具链,包含
browser_open、browser_read、browser_click、browser_type、browser_scroll、browser_show、browser_hide和browser_close - 👁️ 显示/隐藏浏览器运行 - 打开浏览器前智能体必须询问用户希望显示运行还是隐藏运行;显示运行会动态创建
AI Browser工具窗口,隐藏运行则保持浏览器会话不展示 - 🧹 浏览器生命周期清理 - 同一项目内复用浏览器会话,动态浏览器工具窗口仅在需要时注册,导航后移除 JCEF load handler,项目释放时自动清理浏览器会话
- 🌐 浏览器代理对齐 - 浏览器工具使用与 WebFetch / WebSearch 相同的 Web 工具 HTTP/SOCKS 代理设置;如果 JCEF 已提前启动导致代理无法初始化,会返回需要重启 IDE 的明确错误
- 🧰 工具参数序列化 - 工具调用转发时保留嵌套对象和数组参数,确保 headers、query params、form params 等结构化参数能正确传递
- 🛠️ 模型管理工具栏修复 - 修正 SDK 模型列表面板布局,恢复右侧新增/刷新工具栏显示,避免按钮被布局挤出可视区域
- 📊 智能体 Token 消耗 - 在提示词选择器旁新增当前会话 Token 累计消耗展示,按 K 单位显示,并在悬停提示中展示输入、输出和上次请求明细
- 📦 版本元数据同步 - 发布版本提升至
v1.1.4.3,并同步 SDK Helper 版本元数据到1143
- 🛠️ 模型管理工具栏修复 - 修正 SDK 模型列表面板布局,恢复右侧新增/刷新工具栏显示,避免按钮被布局挤出可视区域
- 📊 智能体 Token 消耗 - 在提示词选择器旁新增当前会话 Token 累计消耗展示,按 K 单位显示,并在悬停提示中展示输入、输出和上次请求明细
- 📦 版本元数据同步 - 发布版本提升至
v1.1.4.2-fix,SDK Helper 版本元数据仍保持1142
- 🎨 设置页重构 - 设置页改为分组卡片与滚动布局,拆分基础设置和 Web 工具设置,提升插件目录、日志、仓库、代理和搜索引擎配置的可读性
- 🌐 Web 工具代理配置 - 新增 WebFetch / WebSearch 专用 HTTP/SOCKS 代理设置,代理主机、端口和类型会持久化并在网页抓取、搜索请求中生效
- 🔍 搜索引擎配置 - 新增 WebSearch 搜索引擎管理,可新增、编辑、删除和拖拽排序搜索引擎,地址支持
{query}占位符并兼容旧引擎 ID - 🧭 搜索引擎收敛 - WebSearch 移除内置 Google 搜索,默认使用 Bing,并保留 Baidu 作为回退;旧配置中的 Google 引擎会在归一化时自动清理
- 🕒 当前时间工具 - 新增
jtools_get_current_time只读工具,可按指定 IANA 时区或 UTC 偏移返回yyyy-MM-dd HH:mm:ss时间、查询时区和系统时区 - 🧠 Skill 代码执行增强 - Skill 运行时扩展上传资源类型、assets 目录和 Windows 脚本支持,补充跨平台命令白名单与代码执行提示
- 🧾 Raw Markdown 显示 - 支持在智能体回复任意位置识别 fenced
markdown/mdraw 区块,保留内部嵌套的 markdown/json/yml/xml fence 而不再重新解析,长行自动软换行,右上角复制按钮会复制 raw 原文并提示成功 - ✨ 流式渲染稳定性 - 降低 Markdown 流式输出时整段 HTML 重绘频率,并跳过未变化内容的重复渲染,减少大段内容输出时的闪烁
- 🧹 搜索解析清理 - 移除 Google 专用结果解析与调试输出,减少触发 Google 人机识别和无效搜索页解析的可能
- 📦 版本元数据同步 - 发布版本提升至
v1.1.4.2,并同步 SDK Helper 版本元数据到1142 - 🧩 智能体工作台调优 - 围绕 Web 工具、技能执行和模型接入进一步打磨当前会话的交互一致性,提升日常使用时的连贯感
- 🌐 网页读取增强 -
fetch改为基于 HtmlUnit 渲染页面,支持 JavaScript 后的正文提取,并返回最终 URL、内容类型、渲染 HTML 与截断状态 - 🔍 搜索引擎回退 - 网页搜索从 DuckDuckGo 单一路径升级为 Bing、Baidu、Google 多引擎回退,并使用 Jsoup 解析真实结果
- 🧭 域名过滤优化 - 搜索结果按规范化域名执行 allow/block 过滤,支持子域名匹配并过滤搜索页、脚本链接等噪声结果
- 🧠 Skill 代码执行支持 - SkillBox 启用临时工作目录、脚本/数据资源上传和受限 Shell 工具,
scripts/、data/等资源可直接进入技能运行时 - 🧹 工具面收敛 - 移除自定义 Skill 资源读取工具和环境变量读取工具,资源读取改由 SkillBox 内置能力承接,减少敏感信息暴露面
- 🧾 工具详情可复制 - 工具调用详情弹窗改为聚焦只读 JSON 编辑器,参数和返回值支持快捷键快速选中与复制
- 📦 版本元数据同步 - 发布版本提升至
v1.1.4.1,并同步 SDK Helper 版本元数据到1141
- 🔗 SkillBox Toolkit 透传 -
SkillBox构造时改为接收上层 AgentScopeToolkit,让技能工具与运行时工具共享同一个工具容器 - 🧠 Skill 运行时对齐 - 智能体对话每次请求创建一个
Toolkit,用它解析已启用 Skills,再将插件/系统工具注册到同一实例中 - 🔌 依赖版本对齐 - AgentScope 运行时依赖同步到
1.0.12 - 🎯 IDE 兼容范围 - 最大支持的 IntelliJ Platform build 提升至
263.* - 📦 版本元数据同步 - 发布版本提升至
v1.1.4.0,并同步 SDK Helper 版本元数据到1140
- 🛡️ 智能体权限控制 - 对话级新增访问范围与危险操作策略,工具执行被拒绝时会发送通知提示
- 🧰 工具权限覆盖 - 权限检查覆盖内置工具、文件操作、Shell/PowerShell 命令、Skills、MCP、插件管理、环境变量和动态注册工具
- 📂 路径与读取安全 - Unix/Windows 完整路径会直接解析,项目外路径需要完全访问;
read_file改为带offset/limit的受限读取,避免一次性撑爆上下文 - 🔍 实时文件搜索 -
glob_search直接扫描文件系统,外部复制进来的文件不再依赖过期缓存结果 - 🎨 输入区权限布局 - 提示词、访问范围、危险操作移到输入区顶部横向排列,并提供简短标签、完整提示和可滚动权限说明弹窗
- 🧹 运行时清理 - 移除未使用的 PDF 文本抽取链路和冗余辅助代码,并同步发布元数据到
v1.1.3.8/ SDK Helper1138
- 🧰 工具面收缩 - 收敛 MCP 管理工具为
jtools_mcp_update_server+jtools_mcp_query的 upsert/聚合查询模型,并移除多组低频冗余工具以降低 schema/token 开销 - ✍️ 写入会话上限统一 -
jtools_append_write_session的参数 schema、提示文案和运行时限制统一为单次最多2048个字符 - 🎛️ 参数分层生效 - 重构请求参数映射链路,按“供应方默认值 -> 模型通用参数 -> 厂商定制参数”分层应用,让模型级设置可以正确覆盖供应方默认值
- 🧭 Max Tokens 回退语义 - 供应方
maxTokens改为可选回退值,不再强制写死默认值;Anthropic 发送前校验也改为接受“模型级值或供应方默认值”任一来源 - 📦 版本元数据同步 - 发布版本提升至
v1.1.3.7,并同步 SDK Helper 版本元数据到1137
- 🎨 输入区卡片化 - 将底部输入区重构为统一的 composer 卡片,空闲态使用中性边框,聚焦时高亮,并与消息区拉开更清晰的层级
- 🔒 流式提示词锁定 - 模型输出期间禁用系统提示词选择器和管理按钮,避免请求进行中出现仍可点击编辑的提示词控件
- 🧭 请求态一致性 - 统一收敛请求中的 UI 开关逻辑,使选择器、操作按钮和输入框在发送中与恢复后保持一致的启停状态
- 🌐 供应方代理贯通 - 将供应方代理配置接入 OpenAI Compatible、DashScope、Anthropic 和 Gemini 的客户端创建流程,已配置代理可真正作用到模型请求
- 🔀 HTTP/SOCKS 路由支持 - 构建 SDK 传输层时按供应方配置选择 HTTP 或 SOCKS 代理,统一覆盖不同客户端的出站请求链路
- 🧩 Anthropic 代理兼容性 - 为自定义 Anthropic 模型补充供应方状态注入与 Java/Kotlin 间的代理类型桥接,降低代理场景下的初始化问题
- 📝 系统提示词管理 - 对话面板新增系统提示词选择器和管理入口,支持维护默认/自定义提示词并按会话切换
- 🔒 提示词保护与同步 - 默认提示词显式只读,保存/删除按钮按状态禁用;提示词改为按 ID 持久化和同步,新增后编辑保存可稳定生效
- 📚 Skills 导入兼容性 - 引入本地 Markdown/YAML frontmatter 解析器,提升
SKILL.md导入兼容性,减少对 AgentScope 解析实现的耦合 - 🎨 图标主题补齐 - 新增系统提示词管理入口图标,并统一弹窗工具栏图标尺寸与留白,补齐深色主题资源
- 📋 粘贴附件体验 - 优化剪贴板内容识别逻辑,仅在存在真实文件 URI 时按附件处理;纯文本粘贴会稳定回退到输入框
- 🧠 流式文本保真 - 流式输出与增量计算不再忽略仅包含空格或换行的片段,减少回复格式丢失
- 📎 附件上下文补全 - 文件附件上下文新增原始路径信息,便于模型区分同名文件并定位来源
- 🔌 版本依赖同步 - 升级 AgentScope 至
1.0.11,并同步 SDK 版本元数据到1.1.3.4
- 🧰 工具调用卡片 - 将工具日志重构为按调用分组的卡片列表,显示时间、状态与完成计数,执行过程更清晰
- 🔍 工具详情查看 - 新增参数/返回值弹窗 JSON 查看器,长内容无需挤占对话流即可直接检查
- 🧠 事件解析稳定性 - 改进推理、工具调用与工具结果 block 的解析和参数序列化,减少调用匹配错乱与渲染兜底不准的问题
- 📦 渲染状态兼容性 - 新增工具渲染条目状态持久化,并同步对齐 1.1.3.3 的 SDK 版本元数据
- 📝 Skills 配置体验 - 调整资源路径编辑区布局,收紧标签与输入框间距,并对齐单行表单高度
- ✅ 工具调用默认值 - OpenAI 和 Anthropic 模型参数面板中的工具调用能力默认勾选
- 🧠 推理与工具日志 - 补强 Anthropic/OpenAI 的推理内容、工具调用和工具结果渲染兜底,减少只显示结果不显示调用的问题
- 🔌 原生供应方依赖 - 补充 Anthropic 与 Gemini 原生 SDK 依赖,完善对应供应方运行时支持
- 📂 文件工具重构 - 文件读取改为
jtools_get_file_char_count+jtools_read_file_chunk分段读取,写入改为会话式open/append/commit/discard - 🛡️ 写入与命令确认 - 文件写入会话与脚本命令执行均在操作前弹窗确认,降低误操作风险
- 🧰 系统工具增强 - 新增当前项目查询、目录读取、目录创建、项目感知路径解析等系统工具能力
- 📎 附件工作流 - 新增模型感知的文件/图片附件能力,支持剪贴板粘贴与媒体上传优化
- 🖼️ 多模态输入 - 新增按模型维度控制图片/音频/视频/文件能力,并可抽取可读文件内容作为上下文
- 🧠 Skills 管理 - 新增本地
SKILL.md导入、手动编辑、按会话启用与运行时资源挂载 - 📚 Skills 资源 - 新增资源列举与读取能力,导入技能可暴露
references、examples、scripts等文件 - 🎚️ 模型调优 - 新增按模型维度配置流式输出、多模态能力与 OpenAI/Anthropic 高级参数
- 🧩 供应方模板 - 扩展供应方配置,支持 DashScope/OpenAI Compatible/Anthropic/Gemini/Ollama 接入类型、厂商模板与参数建议
- 🛠️ 系统工具套件 - 新增技能增删改查、会话技能开关、MCP 管理等内置工具能力
- 💾 会话持久化 - 按项目保存当前会话、草稿附件与启用技能状态
- 🎛️ 模型参数面板 - 新增模型参数面板,支持更细粒度控制
- 🧾 格式化输出 - 优化响应格式输出,展示更清晰
- 🧭 供应方管理 - 新增多供应方配置(OpenAI/Anthropic),支持 Base URL、Header、代理
- 🎛️ 供应方选择 - 对话支持供应方选择,并按供应方管理模型列表/默认模型
- 🔌 SDK 升级 - OpenAI/Anthropic 调用切换为官方 SDK,完善流式与工具调用
- 🔌 MCP 客户端 - 新增外部 MCP 服务支持,覆盖 stdio/SSE/streamable HTTP 传输
- 🧭 MCP 配置 - 新增多服务管理界面,支持工具/资源/提示列表与刷新
- 📶 可用性监控 - 后台定时检测并显示状态,失败通过通知提示
- 🧰 工具栏体验 - 使用 ActionToolbar 图标按钮并修复可用状态切换
- 🤖 智能体对话 - 新增会话历史,支持新建/重命名/删除管理
- 🎛️ 模型管理 - 模型选择与管理迁移到对话面板
- ⏹️ 请求控制 - 新增停止按钮可终止当前回复
- 🔗 Base URL - 修复首次打开设置时已保存地址被预设覆盖的问题
- 🤖 智能体对话 - 新增智能体入口,支持流式输出、推理块展示与工具调用折叠日志
- 🧰 函数调用 - 聚合插件与系统工具并增加唯一标识,避免名称冲突
- 📦 插件管理 - 新增本地/URL/批量安装与卸载工具调用
- 🧪 开发测试 - 开发面板可暴露当前插件实例的工具调用用于调试
- 🎨 对话体验 - 优化输入体验(软换行、边框、Shift+Enter 发送)并增加重复工具调用拦截
- ⚙️ 智能体限制 - 新增最大工具调用轮次配置,并限制工具返回内容长度以避免超大上下文
- 📂 文件列表 - jtools_list_files 支持 maxEntries 并返回截断信息,避免超大输出
- 🧩 分屏增强 - 支持向右/向下分屏并移动的操作流程
- 🖱️ 拖拽体验 - 同分屏排序与跨分屏拖拽优化,支持拖拽预览与目标高亮
- 🧱 稳定性 - 修复分屏拖拽导致的内容丢失、灰色区域等问题
- 🪟 弹窗重构 - 移除 DialogWrapper 支持,改用 JFrame 实现,提升弹窗稳定性和兼容性
- 🌐 JS 插件 SDK - JS 插件新增 JTools SDK 自动注入,提供简化的 API 调用
- 📁 相对路径支持 - JS 插件现支持标准相对路径加载静态资源,无需协议前缀
- 📚 API 文档 - 新增
help()函数获取完整的 JS 插件 API 文档 - 🔧 新增 JS API - 新增 50+ 个 API(文件操作、剪贴板、对话框、系统命令、通知等)
- 💾 缓存增强 - 缓存新增
getOrDefault、keys、exists、size、setAll方法 - 📝 类型定义 - 新增"生成类型定义"功能,导出
jtools-sdk.d.ts支持 IDE 代码提示
// 日志
JTools.log.info("Hello World")
// 文件操作
await JTools.file.read("/path/to/file.txt")
await JTools.file.write("/path/to/file.txt", "content")
// 对话框
const name = await JTools.dialog.input("请输入名称")
const file = await JTools.dialog.chooseFile()
// 缓存
await JTools.cache.global.set("key", "value")
await JTools.cache.project.get("key")
// 通知
JTools.notifyInfo("标题", "内容")
// 获取帮助文档
await JTools.help()- 🎉 IDE 兼容性 - 全面支持 IntelliJ IDEA 2025.3 及相关 JetBrains 产品
- 📂 存储隔离 - 插件存储目录按 JetBrains 产品类型和版本自动隔离,防止不同 IDE 安装之间的冲突
- 🔧 SDK 增强 - 新增支持函数,提供 JTools 版本和 JetBrains 产品信息
- 🎉 IDE 兼容性 - 全面兼容 IntelliJ IDEA 2025.2 及以上版本
- 🪟 多实例 SDK - SDK 完全适配多实例插件支持,实现多个插件窗口间更好的资源管理
- 🎯 JetBrains 全家桶 - 扩展支持整个 JetBrains IDE 系列
- 📐 分割面板 - 插件面板支持分割视图功能(左右分割)
- 📋 日志控制台 - 新增日志控制台启用/禁用开关
- 🪟 多实例支持 - 插件可通过重载
supportMultiOpens函数支持多实例 - 🔄 面板重构 - 重构
showPanel和closePanel函数,解决多实例资源回收问题 - 🐛 Bug 修复 - 修复拖动安装时
openProject回调中 logger 参数错误 - ✨ 项目关闭处理 - 新增项目关闭时自动调用已打开面板的
closePanel函数
- 📝 JS 模板 - JS 插件开发新增项目模板
- 📦 JS 打包 - JS 插件开发新增打包功能
- 🔧 原生开发 - 优化原生插件开发运行逻辑
- 🧹 清理优化 - 优化插件卸载后的清理流程
- 📋 日志控制台体验 - JTools 日志控制台使用软换行模式
- 📌 Since 注解 - SDK 新增
@Since注解 - 📂 文件操作 - Helper 类新增文件选择和保存对话框函数
- 📝 编辑器集成 - Helper 新增
openInEditor函数 - 🔧 工具栏支持 - Helper 新增
createActionToolbar函数 - 🔄 API 变更 - IPlugin 入参函数名从
projectLocation改为locationHash - ✨ 操作按钮 -
actionButton函数新增isSelected参数
- 🔔 通知功能 - Helper 类新增
notify函数 - 📋 系统日志 - Helper 新增
getSysLogger函数 - 📝 语言文本框 - Helper 新增
languageTextField函数 - 🔍 兼容性检查 - IPlugin 新增
support函数
- 🎨 图标更新 - 更新多个插件图标
- 🔗 仓库链接 - 在设置面板新增插件仓库连接
- 🔧 生命周期优化 - 优化插件卸载、安装和删除逻辑
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT License 许可证。
- 作者: lhstack
- 邮箱: lhstack@foxmail.com
- GitHub: https://github.com/lhstack
如果这个项目对你有帮助,请给一个 ⭐️ Star!