插件开发范式

插件开发范式

按修改目标选择依赖、资源、配置、API、日志与验证规范;不必通读全部指南。

本目录面向业务 Plugin 和 Part 作者。先定位要改的声明或方法,读对应一页中的相关章节,再检查真实调用方;不要先阅读 Host 的安装配置或框架内部设计。

插件基本功

依赖声明、配置、Part 是插件模型的一部分;ctx.events、ctx.logger、ctx.effects 是 Core 自带能力。它们不要求安装 servicesPreset()、HTTP 或 Workbench。

常见任务入口首先掌握的写法与边界
调用其他插件依赖与组成必需依赖用 constructor;可选增强用 plugins.use()
发布和订阅通知事件宿主广播用 ctx.events;provider 协议用具名 EvtChannel
写日志与诊断日志ctx.logger;人读插值、查询字段和 lazy 分别选择
初始化、订阅、连接和后台任务生命周期init() 和 ctx.effects;部分失败也必须释放已取得资源
声明和更新设置配置configs.use(schema);保存与实际应用是不同阶段
拆分内部资源与局部配置PluginPart随父插件启停;普通 helper 足够时不用 Part
编写和验证插件行为插件测试实现前确定成功、失败与清理的验证边界,使用真实 test host

第一次写插件从无额外服务的最小示例开始。修改已有代码时,直接读本次主题,不要求依次通读所有基础页。

能力存在不等于外部效果已经配置。 ctx.logger 一直可用,但 console、store、OTLP 输出由 Host 配置;配置声明一直可用,但跨重启保存由 Host 选择。基础 API 的用法与部署设置分别维护。

设计原则:涉及对应内容时,在实现前阅读

根据本次改动选择相关章节,用于实现和 review。

本次涉及的内容应读指南实现前明确
新增或修改 Plugin 方法、RPC、DTO 或资源返回值API 契约调用边界、校验、返回值语义和资源所有权
设计预期失败、恢复分支或多步错误组合失败契约与 Better Result调用方怎样恢复、沿用什么契约、是否需要组合器;阅读不等于必须采用 Result
后台任务、并发、取消、重试或在途合并异步组合与生命周期任务和额度由谁持有,取消与停止后什么工作仍在运行

@pluxel/async 是独立工具包,不是 Core 自带服务。设计原则同样适用于未采用该包的代码;根据实际需求选工具,不为统一写法引入依赖。

按需扩展:先确认安装前提

默认服务器组合可能已经安装部分服务,但这不是任意 Plugin/Context 的保证。先确认当前 Host 的 services;只有新增需求才修改宿主。其他 Plugin 提供的业务能力则通过依赖图声明。

增量需求入口前提
对外 HTTP / WebSocketHTTPHost 安装 Elysia 服务并接入 carrier
命令目录、MCP tool、文本参数Commands定义 Command 使用独立包;目录与载体另选安装
数据库 schema、迁移和查询DatabaseHost 显式安装 Database 与 backend
私有凭据与条件写入VaultHost 安装 Vault,按记录判断是否可写
Node module 与 worker taskNode artifacts选择对应服务与构建产物
管理页面Workbench可选 UI 能力;关闭时业务仍能独立运行
现成网络、认证、缓存、渲染能力官方插件核对公开状态,安装并声明 provider 依赖

什么时候转到其他文档

  • 要安装服务、决定运行哪些插件、绑定部署输入或配置日志输出:转到 Host 配置教程的对应章节。
  • 要定位源码、执行静态检查或操作运行实例:转到开发与验证。
  • 要改 Core、Host、编译器或包边界:转到仓库工程入口,不要把业务写法当作内部实现规范。

完成修改时按提交检查核对相关设计和实际验证结果。

最后更新于

本页目录