Plugin Specification

插件规范

为 LokoSpace 开发插件,扩展 Agent 的技能、工具与 MCP 能力。

插件是什么

LokoSpace 插件是扩展 Agent 能力的代码包。每个插件声明自己能提供的技能、工具或 MCP 服务器,例如"外贸开发信助手"或"产品 PPT 生成器"。插件运行在沙箱进程中,默认无网络访问,需用户显式授权。

插件能做什么

  • 注册新的 Skill,让 Agent 掌握特定任务能力
  • 封装常用工具,例如文件格式转换、图表生成
  • 打包 MCP 服务器配置,连接外部 SaaS
  • 添加自定义面板,展示任务进度或数据看板

插件形态

一个插件通常包含 manifest.json、入口代码、README 和图标。开发完成后通过 CLI 打包为 .fbplugin 文件,即可安装到本地或提交到 Loko Mart 市场。

manifest.json

每个插件根目录必须包含 manifest.json,声明插件名称、版本、权限、入口文件、依赖与技能列表。LokoSpace 在安装插件时会解析 manifest 并提示用户授权。

完整 manifest 示例

{
  "id": "com.clofuture.email-assistant",
  "name": "外贸开发信助手",
  "version": "1.2.0",
  "description": "根据客户画像自动生成多语言开发信",
  "author": "Deploy the Future",
  "entry": "dist/index.js",
  "permissions": ["fs.read", "network"],
  "runtime": "node",
  "skills": [
    {
      "id": "generate-cold-email",
      "name": "生成开发信",
      "description": "根据客户行业和痛点输出开发信模板"
    }
  ]
}

字段说明

  • id:插件唯一标识,建议用反向域名风格
  • name / description:在市场和权限弹窗中展示
  • entry:插件入口文件路径
  • permissions:声明需要的沙箱权限
  • skills:本插件提供的技能列表

沙箱与权限

插件默认运行在独立进程中,无法直接访问主进程与网络。需要的权限(文件读写、网络、剪贴板、屏幕截图等)必须在 manifest 中声明,用户安装时一次性授权。

权限类型

  • fs.read / fs.write:读取或写入本地文件
  • network:访问外部网络服务
  • clipboard:读取或写入剪贴板
  • screen:截取屏幕内容
  • shell:执行本地命令

权限控制

即使用户授权了权限,LokoSpace 仍会针对敏感操作进行二次确认。例如写入系统目录、访问剪贴板历史等行为会弹出实时提示。你可以在设置中查看每个插件的权限使用情况。

TypeScript SDK

我们提供 @lokospace/sdk,包含技能注册、上下文读取、工具调用、日志上报等 API。插件使用 TypeScript 编写,编译为 CommonJS 后发布到 Loko Mart 市场。

Skill 开发示例

import { definePlugin, registerSkill } from '@lokospace/sdk';

export default definePlugin({
  async setup(ctx) {
    registerSkill('generate-deck', async ({ product, audience }) => {
      const slides = await ctx.llm.chat(
        '为以下产品生成 8 页产品方案 PPT 大纲',
        JSON.stringify({ product, audience })
      );
      const ppt = await ctx.tools.call('ppt-builder', { outline: slides.text });
      ctx.logger.info('PPT 生成完成', { slides: ppt.slideCount });
      return { filePath: ppt.filePath };
    });
  },
});

SDK 核心模块

  • ctx.llm:调用本地或云端大模型
  • ctx.fs:读写本地文件
  • ctx.tools:调用其他插件或系统工具
  • ctx.logger:写入审计日志
  • ctx.ui:注册自定义面板或通知

CLI 工具

使用 npx @lokospace/cli 可以初始化插件模板、本地调试、打包与发布。CLI 会模拟 LokoSpace 运行环境,让你在没有完整桌面客户端的情况下也能开发插件。

常用命令

npx @lokospace/cli create my-plugin
cd my-plugin
npm install
npx @lokospace/cli dev
npx @lokospace/cli build
npx @lokospace/cli publish

命令说明

  • create:根据模板创建新插件
  • dev:启动热重载调试环境
  • test:运行插件单元测试
  • build:编译并打包 .fbplugin
  • publish:提交到 Loko Mart 市场审核

发布到 Loko Mart

插件打包为 .fbplugin 文件后,可通过开发者后台提交审核。审核通过后,所有 LokoSpace 用户都能在资源市场中搜索、安装并使用你的插件。

审核标准

  • manifest.json 完整且字段符合规范
  • 插件代码无恶意行为与过度权限申请
  • README 包含功能说明与使用示例
  • 提供至少一个可运行的示例任务
  • 版本号遵循 SemVer 规范

分发与更新

审核通过后,插件会出现在 Loko Mart 市场中。用户安装后,LokoSpace 会自动检测更新并提示升级。你可以在开发者后台查看安装量、评分和错误报告。