插件使用
插件系统用于给 AIO Hub 增加额外能力。你可以安装 JavaScript 插件、原生插件或 Sidecar 插件,让新功能出现在服务注册表、工具调用系统或插件自己的 UI 中。
插件类型
| 类型 | 适合用途 | 特点 |
|---|---|---|
| JavaScript 插件 | 文本处理、轻量工具、聊天扩展、简单 UI | 加载快,适合与前端深度集成 |
| 原生插件 | 高性能本地能力、长期驻留服务 | 运行在后端进程内,性能高 |
| Sidecar 插件 | 独立命令行程序、跨语言工具、重型任务 | 与主程序进程隔离,便于复用现有程序 |
如果你只是想扩展 LLM Chat 的上下文处理、设置项或工具能力,优先选择 JavaScript 插件。
准备插件包
一个插件通常至少包含:
manifest.json:插件清单,声明 ID、名称、版本、类型和入口。- 入口文件:例如
index.js、index.ts或后端可执行文件。 - 可选 UI 文件:例如 Vue 组件、样式和图标。
README.md:插件说明。
插件 ID 必须唯一。安装来自他人的插件前,请确认来源可信,尤其是会读取文件、访问网络或执行本地命令的插件。
安装插件
当前插件会从项目或用户插件目录扫描加载。常见流程是:
- 获取插件目录或压缩包。
- 将插件放入 AIO Hub 的插件目录。
- 重启应用,或在开发模式下等待自动加载。
- 打开工具管理、服务注册表浏览器或对应工具,确认插件已出现。
开发模式下,plugins/ 目录中的 JavaScript 插件可以直接参与热重载;生产使用时,插件通常应提供编译后的 ESM 入口。
在 Agent 中使用插件能力
插件可以把方法暴露给 Agent。满足以下条件后,LLM Chat 的工具调用系统就能发现它:
- 插件方法带有清晰的元数据描述。
- 方法标记为可被 Agent 调用。
- 参数结构明确,说明足够让模型理解用途。
- 当前 Agent 的工具调用设置允许使用该工具。
使用时:
- 打开 LLM Chat。
- 选择或编辑一个 Agent。
- 在工具调用配置中启用对应插件工具。
- 根据安全需要设置自动批准或手动审批。
- 在对话中说明目标,让 AI 调用插件完成任务。
建议对会改写文件、访问外部服务、执行耗时任务的插件保留手动审批。
插件 UI
带 UI 的插件可能会出现在独立工具页、设置分组或特定工具的扩展区域。使用时注意:
- 插件 UI 的配置通常保存在插件自己的设置空间。
- 如果插件集成到 LLM Chat 设置中,它会作为额外设置分组显示。
- 禁用或移除插件后,相关 UI 入口会消失,但插件写入的数据不一定自动删除。
更新与移除
更新插件前建议先备份插件目录和重要配置。更新后如果出现异常,可以按以下顺序排查:
- 确认
manifest.json中的版本和入口文件正确。 - 确认插件要求的 AIO Hub 版本与当前应用兼容。
- 禁用插件后重启应用,确认问题是否消失。
- 查看日志管理器中的插件加载错误。
移除插件时,先关闭应用,再删除插件目录。对于原生插件或 Sidecar 插件,这样可以避免正在运行的进程或动态库占用文件。
安全建议
- 只安装可信来源的插件。
- 对文件系统、网络请求、命令执行类插件保持手动审批。
- 定期检查插件目录,移除不再使用的插件。
- 不要把 API Key 写入不可信插件的公开配置中。
- 发现异常请求、异常弹窗或未知服务时,先禁用最近安装的插件。
常见问题
插件安装后为什么看不到?
检查插件目录结构、manifest.json 的 id、type、main 字段,以及当前 AIO Hub 版本是否满足插件要求。还可以打开日志管理器查看加载错误。
插件能被 AI 自动调用吗?
可以,但前提是插件声明了 Agent 可调用的方法,并且当前 Agent 的工具调用设置允许它。你也可以把审批策略设为手动,逐项确认调用。
删除插件会删除它产生的数据吗?
通常不会。插件自己的数据可能保存在用户数据目录下,删除插件目录只会移除插件代码。需要彻底清理时,请同时检查插件说明中的数据目录。
插件和内置工具有什么关系?
插件通过统一服务注册体系接入,Agent 调用时与内置工具使用同一套发现、审批和执行流程。区别在于插件由用户或第三方提供,风险和兼容性需要额外留意。