Skip to main content
xbot
切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

内置插件

xbot 在仓库的 plugins/ 目录下随附三个内置插件:

插件 ID目录类型用途
xbot.genuiplugins/xbot-genui/Go stdio channel 插件display_html 工具——LLM 生成交互式 UI(图表、3D、动画),在 Web 聊天中流式渲染预览
xbot.git-fancyplugins/xbot-git-fancy/Go stdio 插件Fancy Git 面板——分支、工作区变更、分页提交历史、commit 详情、全宽 Monaco diff tab
xbot.ambienceplugins/xbot-ambience/script 运行时(纯 UI)Web 氛围层——壁纸、毛玻璃效果、动态桌宠挂件、粒子特效

三者都是零依赖(或仅依赖 protocol 包),由 xbot-cli setup 安装到 $XBOT_HOME/plugins/builtin/(版本与 release 对齐)。

安装方式

两种受支持的使用方式:

1. 安装到用户插件目录(生产风格)

# 在仓库根目录执行:构建并安装两个插件
make plugins-install
# → ~/.xbot/plugins/xbot.genui/ 和 ~/.xbot/plugins/xbot.git-fancy/

重载以激活(或重启 xbot):

tui_control(action=reload_plugins)

2. 直接从仓库 checkout 运行(开发模式)

make plugins-build
XBOT_PLUGIN_DIRS="$(pwd)/plugins" xbot

XBOT_PLUGIN_DIRS 环境变量是路径分隔符分隔的额外插件扫描目录列表。 也可以在 config.json 中永久配置仓库路径:

{
  "plugins": {
    "enabled": true,
    "dirs": ["/path/to/xbot/plugins"]
  }
}

已安装到用户目录的副本始终优先:插件发现按 ID 去重,且 ~/.xbot/plugins/ 先被扫描,因此已安装副本会遮蔽仓库版本。

自动发现机制

  1. 启动时,agent 创建 PluginManager(当 plugins.enabled 为 true)并调用 Discover()(见 agent/agent.go)。
  2. Discover() 扫描 plugin.DefaultPluginDirs(xbotHome) 返回的目录—— ~/.xbot/plugins/~/.xbot/plugins/builtin/,加上 XBOT_PLUGIN_DIRS 环境变量条目和 config.jsonplugins.dirs 条目。
  3. 每个包含有效 plugin.json 的子目录都是候选插件;重复(manifest id 相同)会被跳过并记录警告。
  4. ActivateAll() 随后激活所有 activationEvents 包含 onStart 的插件。

Channel 激活(GenUI)

GenUI 插件额外声明了一个 channel providergenui)。channel 插件实例 只有在 config.json 中启用该 channel 时才会被创建:

{
  "channels": {
    "genui": { "enabled": "true" }
  }
}

仅安装插件是不够的——没有 channels.genui 条目,IsEnabled 返回 false, display_html 工具对 LLM 不可见。

插件页面