尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

N.E.K.O.插件生态入门:SDK架构、插件商城与5个内置插件案例全解析

N.E.K.O.插件生态入门:SDK架构、插件商城与5个内置插件案例全解析 N.E.K.O.插件生态入门SDK架构、插件商城与5个内置插件案例全解析【免费下载链接】N.E.K.OA catgirl who lives with you in real time — reaching out first, sharing your media, and actually getting things done, powered by an embodied emotional engine.❤️一只会主动找你玩的 AI 猫娘。项目地址: https://gitcode.com/gh_mirrors/ne/N.E.K.ON.E.K.O.是一只会主动陪你聊天的 AI 猫娘而她的超能力来自一个强大的N.E.K.O.插件系统——用 Python 编写、通过进程隔离和异步 IPC 与主系统通信的插件框架。本文带你快速看懂N.E.K.O.插件 SDK 架构、插件商城上架流程并深度解析 5 个官方内置插件案例即使你是新手也能轻松上手写出自己的第一个插件。为什么要有 N.E.K.O.插件系统N.E.K.O.的核心体验是实时陪伴她会主动找你、和你共享屏幕与音乐还能真正帮你做事。这些能力被拆成一个个可插拔的功能模块正是插件框架的价值进程隔离每个插件独立运行一个插件崩溃不会拖垮主系统。异步运行时入口使用async def适合处理网络、音乐、搜索等 IO 密集任务。Result 类型用Ok/Err做类型安全的错误处理而不是到处抛异常。跨插件调用通过self.plugins.call_entry(other_plugin:entry_id)让插件互相协作。持久化存储PluginStore提供键值对持久化配合独立的数据目录隔离用户状态。官方插件文档入口见 docs/plugins/index.md完整中文开发教程见 plugin/PLUGIN_DEVELOPMENT_GUIDE.md。N.E.K.O.插件 SDK 架构主进程 独立插件进程理解架构是入门的第一步。N.E.K.O.采用主进程Host 多个独立插件进程的模型通过ZMQ IPC通信┌──────────────────────────────────────────────┐ │ 主进程 (Host) │ │ ┌────────────────────────────────────────┐ │ │ │ Plugin Host (core/) │ │ │ │ - 插件生命周期管理 │ │ │ │ - Bus 系统 (memory, events, messages) │ │ │ │ - ZMQ IPC 传输 │ │ │ └────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────┐ │ │ │ Plugin Server (server/) │ │ │ │ - HTTP API 端点 (FastAPI) │ │ │ │ - 插件注册表 │ │ │ └────────────────────────────────────────┘ │ └────────────────────┬─────────────────────────┘ │ ZMQ IPC ┌──────────────┼──────────────┐ ▼ ▼ ▼ Plugin A Plugin B Adapter D (独立进程) (独立进程) (独立进程)SDK 提供了两种包类型详见 docs/plugins/sdk-reference.md范式导入路径用途运行方式Pluginplugin.sdk.plugin独立功能搜索、提醒、音乐等独立进程Adapterplugin.sdk.adapter对接外部协议MCP、NoneBot 等独立进程 网关管线如何选择99% 的开发者只需要Plugin只有当你想把 MCP 等外部协议请求转发给插件时才用Adapter。SDK 源码结构清晰地分为标准插件入口和适配器入口plugin/sdk/ ├── plugin/ ← 标准插件开发入口绝大多数开发者用这个 └── adapter/ ← 适配器开发入口对接外部协议宿主核心逻辑位于 plugin/core/HTTP API 与注册表位于 plugin/server/。5个内置插件案例深度解析内置插件是最好的活教材它们全部位于 plugin/plugins/。下面精选 5 个代表不同能力的案例。案例一备忘提醒插件memo_reminder这是一个定时备忘录/闹钟插件支持一次性、每日、每周、每小时和自定义间隔提醒。它的清单文件 plugin/plugins/memo_reminder/plugin.toml 展示了标准结构[plugin] id memo_reminder name 备忘提醒 version 0.1.0 entry plugin.plugins.memo_reminder:MemoReminderPlugin [plugin.store] enabled true # 开启键值对持久化它的核心能力是排期一个提醒到点自动推送体现了插件与宿主push_message消息机制的协作。案例二网页搜索插件web_search该插件能根据用户地区自动选择搜索引擎国内百度 / 海外 DuckDuckGo并强调保留用户原始语言以获得更准的本地化结果。源码见 plugin/plugins/web_search/。它展示了插件如何封装外部 HTTP 请求、通过Ok/Err处理失败是 IO 类插件的典型范式。案例三生活助手插件lifekit生活助手是功能最丰富的内置插件之一涵盖地理位置解析、附近发现、菜谱、节假日等能力。它的目录组织非常规范包含routers/路由拆分、tests/测试、locales/国际化与ui/托管界面。学习 plugin/plugins/lifekit/ 可以掌握大型插件的模块拆分与 Router 组合最佳实践。案例四点歌台控制器jukebox_controller这是一个典型的单一入口 动作路由插件通过一个control_jukebox入口用action参数区分play、next、previous、stop、set_volume等操作。它让猫娘能直接控制本地点歌台是音乐播放类插件的参考实现源码见 plugin/plugins/jukebox_controller/。案例五MCP 适配器mcp_adapter与前面 4 个 Plugin 不同它是Adapter类型负责把外部MCP 协议的调用桥接进 N.E.K.O 内部插件体系。通过add_server入口可动态添加 MCP 服务器配置stdio 传输。它是理解外部协议网关管线的关键案例源码见 plugin/plugins/mcp_adapter/。还有更多内置插件可探索网易云音乐 netease_music、应用启动器 app_launcher、我的世界游戏代理 game_agent_minecraft、主动搭话控制 proactive_controller。N.E.K.O.插件商城从开发到上架的完整流程写好插件后可以通过N.E.K.O. 插件商城发布给用户。完整流程见 docs/plugins/cli.md核心步骤如下本地校验uv run neko-plugin check 插件id确认无错误。推送源码把插件目录作为独立 Git 仓库推到代码托管平台等待自动校验通过。提交商城审核填写插件信息、分类与标签提交首个版本审核。发布可安装版本审核通过后运行uv run neko-plugin publish 插件id自动生成可下载的.neko-plugin包并上架。后续更新修改版本号后重复校验 → 提交 → 发布即可无需重新走首审。命令行工具CLI随 N.E.K.O 源码提供无需单独安装源码位于 plugin/neko_plugin_cli/。快速上手创建你的第一个 N.E.K.O.插件跟着 docs/plugins/quick-start.md 走一遍几分钟就能跑起来获取源码若需 clonegit clone https://gitcode.com/gh_mirrors/ne/N.E.K.O cd N.E.K.O准备环境并校验 CLIuv sync uv run neko-plugin --help初始化一个插件直接生成在plugin/plugins/下边开发边运行uv run neko-plugin init hello_world --type plugin --name Hello World编写最小功能在__init__.py中继承NekoPluginBase用装饰器声明入口from plugin.sdk.plugin import NekoPluginBase, Ok, neko_plugin, plugin_entry neko_plugin class HelloWorldPlugin(NekoPluginBase): plugin_entry(idhello, nameHello, descriptionSay hello) async def hello(self, name: str World, **_): return Ok({message: fHello, {name}!})检查、运行、热重载uv run neko-plugin check hello_world校验后在插件管理页启动并触发Hello入口改完代码点Reload即可即时生效。 入门口诀一个plugin.toml声明身份一个neko_plugin类承载功能Ok/Err处理结果store/data持久化状态。小结N.E.K.O.插件生态的核心是进程隔离的 Python SDK 进程间 ZMQ IPC 可上架的插件商城。掌握 SDK 架构后参考 5 个内置插件案例提醒、搜索、生活助手、点歌、MCP 适配器你就能覆盖绝大多数开发场景并通过 CLI 一键把作品发布到插件商城让全世界的主人都能召唤你的插件来陪猫娘玩耍。推荐阅读插件开发快速开始 · SDK 参考 · 最佳实践【免费下载链接】N.E.K.OA catgirl who lives with you in real time — reaching out first, sharing your media, and actually getting things done, powered by an embodied emotional engine.❤️一只会主动找你玩的 AI 猫娘。项目地址: https://gitcode.com/gh_mirrors/ne/N.E.K.O创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表