# 插件与技能 ## 插件 ### 什么是插件? 插件是在运行时扩展 Neotask 功能的 TypeScript 模块。它们可以添加新的消息频道、代理工具、RPC 方法、CLI 命令、后台服务和技能。 ### 官方插件 **消息频道:** - Microsoft Teams、Matrix、Nostr、Zalo、Feishu/Lark、LINE、Nextcloud Talk、Mattermost、Tlon、Twitch **功能:** - **Voice Call** -- 用于来电/去电的 SIP 电话支持 - **Memory (LanceDB)** -- 带向量相似性搜索的长期记忆 - **MCP Native** -- Model Context Protocol 服务器集成,用于桥接外部工具 **认证提供商:** - Google Antigravity OAuth、Gemini CLI OAuth、Qwen OAuth、Minimax OAuth、VS Code Copilot Proxy ### 插件功能 插件可以注册: - **RPC 方法** -- 客户端可以调用的自定义 WebSocket 方法 - **HTTP 处理器** -- Gateway 上的自定义 HTTP 端点 - **代理工具** -- 具有类型化模式的新工具,代理可以调用 - **CLI 命令** -- 额外的命令行命令 - **后台服务** -- 由 Gateway 管理的长期运行进程 - **技能** -- 与插件捆绑的技能目录 - **自动回复命令** -- 无需 AI 代理参与即可执行的命令 ### 插件安全 Neotask 会在插件运行前进行多层检查: - **签名并验证。** 公共 Construct 目录中的软件包由 Neotask 发布,发布前会自动检查,并使用 Neotask 的发布密钥签名。安装前,Neotask 会用内置于 Neotask 的密钥校验签名,并验证下载文件的 SHA-256 哈希。 - **不运行安装脚本。** Construct 软件包自带依赖,因此安装时绝不会运行包管理器或安装脚本。其他插件安装使用 npm 时,安装脚本处于关闭状态。 - **安装时扫描。** 从 Construct 以外安装的插件会接受危险代码扫描,发现严重问题时会阻止安装。 - **按版本授权。** 只有当您的账户持有该版本的有效授权时,Construct 插件才会加载。已撤销的版本不会加载。 - **代理操作需要审批。** 代理的工具调用(包括插件添加的工具)都会按照您的审批策略进行检查,需要您确认的操作会等待您的批准。代理如果要在 Neotask 自带的安装方案之外安装软件,总会向您显示确切的命令并等待您的批准。 - **可选沙箱。** 您可以让代理的工具在隔离的 Docker 容器中运行,而不是直接在您的电脑上运行。沙箱默认关闭;开启方法请参阅[安全](security.md)。 原生插件在 Gateway 进程内运行,因此从 Construct 以外安装的插件是您选择运行的代码。使用 `plugins.allow` 列出允许加载的插件。 --- ## 技能 ### 什么是技能? 技能是教代理新工作流的模块化功能。每个技能是一个 markdown 文件(`SKILL.md`),包含在相关时注入代理上下文的指令。 ### 技能位置(优先级顺序) 1. **工作空间技能** -- `/skills/`(最高优先级) 2. **托管技能** -- `~/.neotask/skills/` 3. **捆绑技能** -- 随 Neotask 附带 4. **插件技能** -- 与已安装插件打包的技能 5. **额外目录** -- 额外配置的路径(最低优先级) 当多个技能同名时,最高优先级的位置获胜。 ### 技能功能 - **用户可调用** -- 通过斜杠命令直接触发技能(例如 `/docker-build`) - **模型可调用** -- 代理在相关时可以自行调用的技能 - **命令分发** -- 映射到特定工具的技能 - **需求门控** -- 技能仅在满足需求时加载(所需的二进制文件、配置键、环境变量、插件) ### 创建技能 创建一个带有 YAML 前置信息的 `SKILL.md` 文件,定义技能的元数据和指令: **前置信息字段:** - `name` -- 技能标识符 - `description` -- 技能的功能描述 - `homepage` -- 文档链接 - `user-invocable` -- 用户是否可以直接触发 - `disable-model-invocation` -- 防止代理自主调用 - `command-dispatch` -- 要分发到的工具 - `metadata.neotask.requires` -- 先决条件(二进制文件、配置、环境、插件) **正文:** 教代理如何使用技能的 Markdown 指令,包括示例和指南。 ### 技能目录 在[技能目录](/skills)中浏览可用技能。 ### 技能类别 技能涵盖广泛的功能: | 类别 | 示例 | |----------|---------| | **生产力** | 邮件管理、日历、文档生成 | | **开发** | Git 操作、CI/CD、Docker、代码审查 | | **通信** | 消息、通知、公告 | | **媒体** | 图像处理、视频编辑、音频转录 | | **AI 与模型** | 模型切换、提示管理、RAG | | **智能家居** | IoT 设备控制、自动化触发器 | | **工具** | 文件转换、数据转换、网页抓取 |