从灵魂到身体在Clowder AI上构建第一个插件的完整开发指南【免费下载链接】clowder-aiBuild AI teams, not just agents. Hard rails, soft power, shared mission.项目地址: https://gitcode.com/gh_mirrors/cl/clowder-aiClowder AI 是一个 AI 团队协作平台它把 Claude、GPT、Gemini 等多个 AI Agent 编排成一支有身份、有记忆、能协作的团队。这篇 Clowder AI 插件开发指南将带你从零理解它的插件体系并一步步构建出你的第一个插件——给团队中的每一只 AI「猫」装上可以离开网页的身体。先搞懂核心概念灵魂与身体在 Clowder AI 的哲学里核心仓库core保留了「让一只猫成其为猫」的东西——身份、记忆、会话真相这就是灵魂。而插件Plugin是赋予猫身体的机制一个 IM 连接器、一个桌面探针、一个语音包、一个设备控制器。两者通过一份带版本的**插件契约Plugin Contract**相遇。完整的设计思想可以在 plugin-architecture.zh-CN.md 中读到核心分工如下位置拥有核心仓库插件的发现与安装、管理界面、授权、运行插件的Host Broker、审计以及所有用户数据插件仓库插件契约、插件侧SDK与独立运行时、脚手架、官方插件这意味着第一方和第三方插件使用相同的 SDK 和相同的授权通道不存在特权后门。身份、记忆、用户数据永远留在核心里——插件是身体永远不是灵魂。开发前的准备契约、SDK 与四种资源类型契约定义了插件的输入输出clowder-ai/plugin-contract是双方共同消费的机器可读事实来源它定义了三样东西输入信封——每个输入都带两个维度来源从哪里来和认知状态有多可信输出事件流——插件如何把结果发回宿主清单与能力类型——插件声明它拥有什么、被允许做什么插件通过 SDKclowder-ai/plugin-sdk与宿主通信只走受约束的传输层call/callback/event/handshake绝不绕过 Host Broker。一个插件能拥有四类资源在插件清单中你可以声明以下资源类型全部通过同一个共享激活器激活Skill技能——按需加载的提示词包Agent 在任务需要时才加载MCP——通过 Model Context Protocol 暴露给 Agent 的工具面Limb肢体——面向物理或外部设备的控制平面能力Schedule计划任务——绑定白名单工厂的周期性任务绝不是任意脚本实战构建你的第一个插件仓库中的真实插件是最好的老师。我们以微信公众号插件为蓝本它的完整目录位于 plugins/weixin-mp/。第 1 步创建插件目录和 plugin.yaml 清单在plugins/plugin-id/下创建目录并编写清单文件plugin.yaml。参考 weixin-mp 的清单id: weixin-mp name: 微信公众号 version: 1.0.0 description: default: Publish WeChat Official Account articles. translations: zh-CN: 微信公众号文章发布。 icon: megaphone iconBg: #07c160 setupSteps: - 在微信公众平台注册获取 App ID 和 App Secret config: - envName: WEIXIN_MP_APP_ID label: App ID sensitive: false required: true - envName: WEIXIN_MP_APP_SECRET label: App Secret sensitive: true required: true resources: - type: limb path: limbs/weixin-mp.yml - type: skill path: skills/weixin-mp清单是插件的「身份证」它声明了插件叫什么、需要什么配置、拥有哪些资源。⚠️ 记住一条铁律机密绝不落入被 git 跟踪的清单——敏感配置标记sensitive: true凭据由宿主的连接器机密边界管理。第 2 步声明你的资源按需添加resources条目。如果你的插件要暴露一个周期性检查任务比如 GitHub 集成插件的 CI 检查参考 github 插件的清单它声明了 7 个 schedule 资源resources: - type: schedule name: cicd-check factoryId: github.cicd-check - type: schedule name: repo-scan factoryId: github.repo-scan optional: true注意optional: true的用法——非必需的资源可以让用户按需启用。第 3 步实现处理逻辑处理逻辑用 TypeScript 写在插件目录内保持自包含。看 weixin-mp/index.ts 的注释包含声明plugin.yaml、skills/、limbs/和 TypeScript handler 实现。通用的肢体框架位于domains/limb/插件只做自己的业务。你的插件目录最终会长这样plugins/my-plugin/ ├── plugin.yaml # 清单身份 配置 资源声明 ├── index.ts # 插件入口导出 handlers ├── handlers.ts # 业务处理逻辑 ├── limbs/ # 设备控制平面声明可选 └── skills/ # 技能提示词包可选第 4 步接入健康检查如果插件依赖外部设备或 API声明一个healthCheck宿主会在管理界面展示它的就绪状态healthCheck: limbCommand: weixin_mp.check_status第 5 步验证、授权与启用插件不会「写进去就生效」。宿主会走完一条严格的生命周期这是 Clowder AI 插件开发最容易忽略的部分发现——宿主找到插件目录并读取清单校验——清单 schema、目录身份、配置键、摘要、归属边界全部在任何激活控件出现之前检查无效插件会被直接拒绝授权——安装与启用是 Settings 中由本地所有者执行的显式操作每次启用/禁用/配置都会发出审计事件激活——只有该插件自己的资源被激活与其他能力清晰区分重启水合——重启后只有仍启用且仍有效的插件会回来插件开发的三条红线写代码之前先记住插件「绝不会做的事」它们也是代码审查的底线没有任意的同权脚本——能力只来自声明的、由契约定义的资源类型不绕过 Host Broker——插件只能通过契约传输层和授权抵达核心不接管核心——身份、记忆、会话真相和用户数据始终留在核心仓库下一步深入插件框架当你跑通第一个插件建议沿着这些资料继续探索官方插件的完整代码plugins/weixin-mp/、plugins/github/、plugins/video-analysis/插件框架的完整功能规格F202-plugin-framework.md它描述了插件管理器Settings → Plugins的发现、安装、配置、启用的完整用户旅程架构归属说明ownership/cells/plugin.mdAgent 侧的 6 个管理工具plugin_list、plugin_search、plugin_get、plugin_install、plugin_set_enabled、plugin_uninstall模型决定上限平台决定下限。现在给你的 AI 团队造一个身体吧。✨【免费下载链接】clowder-aiBuild AI teams, not just agents. Hard rails, soft power, shared mission.项目地址: https://gitcode.com/gh_mirrors/cl/clowder-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考