第十八节 插件与扩展
AVL Code 的能力还可以通过插件进一步扩展。
18.1 插件能做什么
- 一次性安装一组技能(skills)。
- 一次性安装一组钩子(hooks)。
- 接入一组外部工具服务(MCP server)。
- 提供专属的助手人设。
- 提供专属的工作区模板。
18.2 插件市场
设置 → 插件 面板分两层:
- 市场视图:可添加 / 切换插件源,浏览插件画廊(按分类、按已披露的能力筛选),一键 安装 / 启用 / 禁用。删除走行内二次确认(不弹模态),避免误删。
- 已装视图:列出当前账号已装插件,启停、卸载、查看版本与作者。两层之间通过面包屑返回。
18.2.1 兼容 Claude Code 插件
AVL Code 内置 CC 插件适配器,可直接消费社区 Claude Code 插件目录:
- 引用写法:
github@claude-plugins-official(指向官方目录)、owner/repo直接 git 拉取,都识别。 - 适配器把 CC 插件结构翻译成 AVL Code 原生格式,无需手工转换。
18.2.2 安装前确认弹窗
每次安装前弹确认弹窗,把以下信息一次摊开供你检视:
- 来源溯源:来自哪个市场、源代码仓库地址、版本号、作者、主页。
- 要执行的命令行:安装脚本会跑什么、装到哪。
- 能力清单:会注册哪些技能 / 钩子 / MCP server,分别需要哪些权限。
- 签名信息:是否有签名、签名是否通过校验。
看清楚再点「安装」,避免装到来路不明的插件。
来源可信一眼可辨:插件卡片的作者旁有来源可信盾牌(与插件商店同款标识),直观标示来源可信状态;模型提供方条目复用其所属插件的品牌图标,「插件」徽标为中性描边样式。
导入身份以签名清单为准:从 zip 导入插件时,插件名取自签名清单(manifest)而非 zip 文件名,文件名无法冒充插件身份;导入与既有插件同名的 zip 时不再静默复用旧目录,避免「导入成功」但内容未更新的假象。
18.2.3 检查更新与升级
插件装完之后也能跟上上游更新:
- 市场可回源刷新:已添加的市场源支持重新拉取(git 源重拉、本地源重新解析),刷新后市场视图会露出各插件的已装版本与「可升级」标记,可从市场行或卡片直接升级。
- 已安装插件「检查更新」:插件列表头提供「检查更新」入口,反查已装插件有没有更新;有更新的插件卡片显示「有更新」徽章与升级按钮。
- 升级更稳妥:版本比对以 semver 为主、差异兜底;升级前先清空插件目录避免旧组件残留;市场缓存采用原子换盘,失败可安全回退到旧缓存。
- 真实进度看得见:市场的安装 / 升级 / 预览 / 更新 / 添加操作显示行内进度条,解析 git clone 的真实下载进度实时反馈;更新 / 检查更新按钮为原地旋转的刷新图标。
18.2.4 开箱即用的典型插件目录
仓库自带 22 个典型插件,装上即用(均带官方品牌图标与签名清单):
- 15 家模型提供方:DeepSeek、OpenRouter、OpenCode Zen、OpenCode Go、MiniMax、小米 MiMo(按量 / Token Plan 两款)、智谱、月之暗面 Kimi、通义千问、豆包、Ollama(本地)、硅基流动、阶跃星辰 StepFun,以及一个 OpenAI 兼容模板(照着改 Base URL / Key 即可接入任意兼容端点)。装上插件 → 填 Key → 即可在模型页选用,术语统一为「模型提供方」。
- 知乎工具集:接官方开放平台 API 的站内搜索 / 全网搜索 / 热榜工具。
- 4 个原生能力示范(安全分析主题):工具集(sec-toolkit)、审计钩子(audit-guard-hooks)、通知通道(notify-channels)、安全分析技能(sec-analysis-skills),分别演示 tools / hooks / channels / skills 四类能力怎么写。
- 2 个 Claude Code 兼容格式示范:安全专家人设(agents + commands)、DevOps 套件(mcp + hooks),演示 CC 插件结构如何被适配器直接消费。
18.2.5 在对话里管理插件(插件管理工具组)
助手可以直接在对话里完成插件生命周期,对应四个工具:
| 工具 | 作用 |
|---|---|
PluginSearch |
搜索市场目录(全局只读) |
PluginList |
列出已装 / 可装清单 |
PluginInstall |
安装并在当前工作区激活 |
PluginUninstall |
卸载并同步清理 |
安装 / 卸载等写入类操作走两步确认:第一步返回 dry_run 预览(能力清单、MCP 真实命令行、签名状态、来源溯源),你同意后才真正落地 — 与外部服务接入的确认闸同款。装 / 卸完成后插件面板实时刷新,无需手动同步。
18.3 启停
每个插件可在 设置 → 插件 中独立启停,停用后只是不再生效,配置仍然保留,可一键恢复。
18.3.1 工作区默认生效
全局安装的插件在每个工作区默认启用(可按需关掉);通过市场装完即在当前工作区自动激活,不再出现「装了不生效」的歧义。
18.4 团队插件市场(可选)
组织管理员可以搭建内部插件市场,统一审核与分发。普通用户在 设置 → 插件 中切换市场源即可看到团队专属插件。
18.5 插件的技能 / 钩子真正生效
- 插件携带的技能会随安装复制进工作区,可通过
skill.list看到、skill.invoke调用;切换工作区、重开工作区、注册表重建之后依然在。 - 插件携带的 hook 脚本随安装就位,hook 根目录环境变量(
CLAUDE_PLUGIN_ROOT)正确指向插件目录,SessionStart / 命中工具时的 hook 都能稳定触发。
18.6 产品公告
AVL Code 会展示官方公告:
- 未打开工作区时:在顶部以横幅形式显示。
- 打开工作区后:以全宽信息条的形式紧贴输入框上方显示。
- 点击横幅 / 信息条弹出详情层,普通公告与提醒按颜色区分。
- 支持逐条标记已读或一次性全部已读;已读状态本地记忆,不会反复打扰。
18.7 用户反馈
新增「意见反馈」入口,三处都能进:
- 设置 → 反馈 tab — 只展示「我的反馈」列表;标题右侧「新建反馈」按钮弹窗提交(在设置里打开不会自动截窗体)
- 顶部全局入口(图标为 ✉ 与问号组合)— 自动截当前窗口作附件
- Header 命令面板(
Cmd/Ctrl+K)
填写:类别、内容、联系方式。登录后实名提交,未登录可匿名提交。
附件:
- 默认自动截取当前窗口作为附件,方便描述问题。可在 设置 → 反馈 → 提交反馈前自动截当前窗口 开关里关掉(默认开启;存量配置自动补开启)。关掉后从顶部喇叭入口打开反馈也只是空附件的弹窗。
- 也可加入自己的文件、会话导出、诊断报告。
- 每个附件自动预检大小:超限的自动跳过、不阻断提交。
- ≤ 1 MiB 的附件自动计算 SM3 摘要做去重,相同内容不会重复上传。
- 非图片附件(日志 / 文档 / 诊断报告等)会用口令为
infected的加密 zip 包装后上传,避免被中间扫描误杀(与业界恶意样本传输惯例一致)。
提交过程:
- 提交时显示实时上传进度条。
- 网络抖动 / 服务端短暂不可用时指数退避自动重试;失败给出真实原因(不是笼统报错),并提供「重试 / 放弃」两个选项。
- 纯文字反馈正常提交:不带附件时不再多发空的附件字段,服务端不会再拒收。
「我的反馈」:查看每条反馈的处理状态与客服回复。
