• 简体中文
  • 插件开发

    插件可以提供操作说明、外部工具、消息入口、智能体运行时和 Capsule 界面。业务程序、凭据和文件访问在选定 Desktop / Runner 上执行;声明的 UI 模块在当前客户端运行。服务端管理账户、安装、权限和路由。

    从哪里开始

    第三方本地工具可通过独立包开发、验证、打包和设备本地导入,使用共同的配置与执行链。这个流程无需提交 PR、合入宿主、加入官方目录或接入官方 CI。飞书提供业务工具参考,科学数据提供安装驱动的 Capsule 客户端模块参考。Quickstart 分别验证创建包、安装确认和实际调用。公共第三方下载发布、新平台消息适配和新 Agent Runtime 属于后续能力。

    基本概念

    以一个读取 GitHub issue 的插件为例:作者声明工具,用户安装一个版本,在自己的 Desktop 上配置 GitHub 身份,再批准读取权限。调用时,LiyanLabs 检查这些条件,并把请求发给该设备。

    概念含义例子
    插件(plugin)持续使用的插件身份GitHub 插件
    版本(release)一次发布的文件、清单和能力声明用户安装的具体版本;发布后内容不再修改
    能力(capability)作者声明插件提供什么读取 issue 的工具、使用说明
    安装(installation)一个账户选择的版本和执行设备此账户在工作电脑上安装该版本
    连接(connection)外部服务身份或设备上的命名配置工作用 GitHub token;token 只存设备
    权限(permission)用户允许插件做什么允许读取,发送评论需要审批
    设备(device)实际执行的 Desktop / Runner用户选定且在线的工作电脑

    版本和能力属于作者声明;权限属于用户的许可。声明工具不会自动取得权限。本地 provider 即使没有外部账号,也需要在原生窗口保存真实空 profile;不应制造账号、连接或配置版本。

    本文中的“摘要”(digest)是内容的 SHA-256 校验值,用来确认文件或配置没有变化。“修订”(revision)是状态修改次数;“设备代次”(generation)用于拒绝旧连接的请求;“回执”(receipt)记录设备实际完成了哪次操作。这些是校验机制,不是额外的用户授权类型。

    名称与图标

    作者在 plugin.json 中声明展示信息;用户导入项目目录或 package.tar.gz 时自动读取。安装表单无需另填标识、名称或上传一张独立图标。

    字段示例用途
    namecom.liyanlabs.team-feishu稳定身份;更新时保持不变
    extensions["com.liyanlabs"].displayName团队飞书列表、详情和配置入口显示的名称
    extensions["com.liyanlabs"].iconassets/icon.png包内的公开展示图片

    名称与图标随版本保存。缺少展示名称时显示标识;缺少图标时使用内置品牌或通用图标。修改这些信息后提高版本并重新打包。图片格式、大小和目录要求见 Quickstart。

    能力类型

    类型作者提供什么当前限制
    skill声明的 skills/<key>/SKILL.md,用途为 setup / usage包确认后按安装权限发现和读取;新 CLI 模板包含两种 Skill
    local_provider本地进程提供的工具支持包内 stdio 入口、工具目录与配置声明,无需按 provider 名称修改宿主
    mcpMCP 服务声明插件通用 MCP 聊天执行链尚未接通
    inbound_transport接收外部平台消息的适配需要设备路由、认证和去重
    channel外部会话与 LiyanLabs 聊天的双向连接当前支持专用飞书/GitHub 契约
    agent_runtime本地运行智能体的适配当前限定内置适配器
    client_moduleclientModules 声明、Web / 原生 factory 与 Capsule 视图安装图驱动直接加载;声明平台依赖,业务查询由选定 Runner 执行

    本地工具 provider 没有语言白名单,但须实现私有 bootstrap、stdio MCP 初始化、完整工具发现和调用。Go 是官方模板;Python / Node.js 裸脚本没有自动收集解释器和依赖的打包支持,需交付可直接启动的产物。工具名称、输入 schema 与只读分类必须匹配声明。provider 标签可跨安装重复,一个包内须唯一。

    插件聊天当前只接入本地 provider 连接器;根目录 mcp.json 的 HTTP 声明可以解析,但不代表远程 MCP 已能调用。Channel 仅支持现有飞书/GitHub 契约,Runtime 仅支持 Codex、Claude Agent、OpenClaw、Hermes 内置适配器;新平台仍需宿主实现。

    科学数据的 provider 和 Web / 原生 Capsule 入口是一个插件。UI 直接运行在客户端 JavaScript 环境中,并非隔离沙箱;通过 apply(ctx, config) 注册视图和共享资源,业务调用限定于当前安装的获准只读工具。参考 plugins/science-data/client/。

    第三方交付匹配目标设备的项目目录或 package.tar.gz。导入登记私有版本,之后仍须安装、确认、配置和实际调用。第一方可下载运行包按 Desktop 构建固定、按需取得,不随安装器预装。公共市场、自助远程发布和跨设备自动迁移尚未提供,均不是本地开发前置条件。

    第一方插件

    插件用途本地配置
    com.liyanlabs.codex本地智能体运行时用户已安装的可执行程序和专用 profile
    com.liyanlabs.claude本地智能体运行时按需取得运行包,配置 claude-code profile
    com.liyanlabs.openclaw外部智能体服务openclaw profile
    com.liyanlabs.hermes外部智能体服务hermes profile
    com.liyanlabs.zotero本机文献服务本机 Zotero API
    com.liyanlabs.feishu飞书工具与消息Desktop 扫码或已有应用配置
    com.liyanlabs.githubGitHub 工具与 webhookDesktop 本地 token 配置
    com.liyanlabs.science-data科学数据查询、结构图和 Capsule UI保存空设备 profile,审查权限
    com.liyanlabs.opensdl实验室设备操作OpenSDL 专用 gRPC 适配

    目录来自 service/pkg/core/plugin/builtin/catalog.json;OpenSDL 的独立发行定义在 service/pkg/core/plugin/packageartifact/opensdl.json。可下载的第一方能力统一使用 desktop/scripts/plugin-release-registry.mjs 构建路径。目录可见不表示已安装或设备就绪。Codex 使用用户程序,OpenClaw、Hermes、Zotero 使用已有服务,其余可下载能力由选定 Runner 按需取得。

    安装与运行

    1. 选择在线 Desktop 和具体版本。Desktop 使用自己的 Runner;Web / Mobile 选择在线 Desktop。
    2. 安装包。Runner 验证本地文件,服务端保存设备回执,再确认启用。
    3. 为本地 provider 保存真实设备配置(包括空配置)并审查权限。包内 setup Skill 引导 AI 初始化,原生确认仍由用户完成。首次安装保存启用意图,稍后配置不会自动禁用它。
    4. 检查配置是否完成,以及设备和服务连接是否健康。
    5. 发起业务调用。系统再次检查版本、权限和设备状态,再由绑定的 Runner 执行。

    “已启用”说明包取得执行许可;“配置完成”说明所需配置和权限已保存;“健康”说明当前设备或服务可用。三者分别检查。更新或修复后需要重新启用。

    选定设备离线时,界面应显示不可用。系统不会自动换设备、转到服务器执行或排队等待设备上线。如何恢复见开发与排障。

    源码依据

    2026-10-14 核对实现提交 2bbb7b247e1701d0efc5df8d24447bc6e6795728。本章描述该源码接口,不代表旧安装包已包含新能力;Quickstart 先检查 CLI 命令与模板文件。

    • 作者契约与 CLI:runner/crates/liyanlabs-plugin/、runner/crates/liyanlabs-cli/src/plugin.rs。
    • 安装与模型工具:service/pkg/core/plugin/packagecommand/、service/pkg/worker/wire_toolprep_plugin.go、service/pkg/worker/chatdriver/pluginsurface/。
    • 配置与进程:desktop/electron/src/plugins/device/、runner/crates/liyanlabs-runner/src/plugins/provider/。
    • Capsule:service/pkg/core/plugin/clientmodule/、frontend/shared/src/core/pluginClientModules/。
    • 第一方发行:desktop/scripts/plugin-release-registry.mjs、.github/workflows/plugins.yaml。完整索引见开发与排障。