插件

一个包里同时带技能、命令、子代理、MCP 服务器和钩子;安装账本归引擎所有。

插件是打包分发的能力集合,一个插件里可以同时带技能、斜杠命令、子代理、MCP 服务器和钩子。

  • 市场档:从插件市场浏览并安装。每行「装了会多出什么」是引擎用真正加载时那套解析器算出来的,所以不会出现「市场页写的和装完实际有的不一样」。
  • 已安装档:启用/禁用开关。注意插件启停是应用级的,没有项目作用域——启用后所有会话可见。
  • 已装列表里的「已加载 / 加载失败」是某一条会话的运行时状态,不是全局属性:同一个插件可以在新会话里好的、在旧会话里还是旧状态。

它的安装与生效机制:

  • 账本归引擎所有:~/.klaus/plugins/installed_plugins.json 里每条记录带名字、来源、安装路径、安装时间和启用位。已登记的市场目录在 ~/.klaus/plugins/known_marketplaces.json
  • 安装分两段:客户端先把包取到一个暂存目录(本地复制,或 git 拉取——支持仓库地址、owner/repo 简写、以及只拉仓库里某一个子目录),再交给引擎校验、复制进它自己的存储区、写账本。无论成败暂存目录都会被清掉,所以安装失败不会留下半个插件。
  • 启停改的是账本里的启用位;插件带来的东西是在会话启动时绑定的,所以改完要开新会话(少数情况下引擎会回报需要重启)。
  • 卸载同时删账本行和存储区里的那份副本。内置的那几个(比如浏览器)标为内置来源,可以停用但卸不掉。
  • 插件里的技能/命令/子代理/MCP/钩子由引擎自己从账本加载并标上来源,客户端不再重复报一遍(否则插件里的钩子会每个事件触发两次)。