Skip to main content
插件目前处于封闭测试阶段。要申请访问权限,请联系 support@cognition.ai。后续版本中的行为和配置可能会有所调整。

什么是插件?

插件是将一组技能——以及可选的规则、钩子和 MCP 服务器——打包在一起形成的单元,便于统一安装和复用。技能通常位于单个 仓库 中,而插件则是一种可移植的来源 (例如 GitHub 仓库、git URL、仓库 的子文件夹,或已上传的 .zip) ,你可以在整个 组织 或企业范围内统一要求使用。 托管插件允许管理员在 Devin Web 应用中集中安装插件,使其对整个 组织 或企业中的所有人生效——无需逐个用户设置。这既适用于云端 Devin 会话,也适用于已登录该账户的 Devin CLI 用户 (企业级/账户级配置也会同步到 CLI——请参阅云端会话与 CLI) 。安装插件后,其中的技能会自动提供给 Devin,并可作为 /<plugin>:<skill> 命令使用。 本页介绍插件在云端 (Web 应用) 侧的使用。有关插件文件格式以及 CLI 的用户级安装流程,请参阅 CLI 插件参考

在哪里配置它们

前往 设置 → Marketplace。该页面有两个选项卡:
  • Marketplace — 浏览并安装插件 (包括 Devin 官方目录,以及你的组织或企业添加的任何插件) 。安装插件会将其作为必填插件添加到所选作用域的清单中,因此该作用域内的所有人都会自动安装它。
  • 配置 — 以 JSON 格式编辑原始插件清单,并以文件夹或 .zip 的形式上传你自己的插件 (也可以在编辑器中构建) 。
访问权限受限:
  • 组织管理员 (具有组织设置访问权限) 管理 org 清单。
  • Enterprise 管理员 (具有企业设置访问权限) 还可以管理共享的 enterprise 清单。

清单

清单是一个 JSON 文档,包含三个列表:
  • requiredPlugins — 为作用域内的所有人安装 (会递归安装,包括其依赖的所有插件) 。
  • optionalPlugins — 一个允许列表,用于认可插件但不自动安装;可用于为被禁条目设置例外。
  • forbiddenPlugins — 一个拒绝列表,包含插件标识或 glob 模式 (例如 acme/*,或使用 "*" 实现完全锁定) 。
requiredPlugins / optionalPlugins 中的每个条目都是一个来源——可以是字符串简写,也可以是一个对象: 同一代码仓库的所有 GitHub 表示形式 (owner/repo、HTTPS URL、.git URL、SSH 形式) 都对应同一个插件标识。 清单会按原样存储;Agent 会在安装时验证完整来源。

治理规则

forbiddenPlugins 条目会与插件标识进行匹配:
  • 精确标识,写作 owner/repo 或 git URL。同一代码仓库的所有 GitHub 形式 (owner/repo、HTTPS URL、.git URL、SSH 形式) 都对应同一个标识。
  • glob 模式——任何包含 * 的条目。* 可匹配任意字符序列 (包括 /) :acme/* 匹配 acme 的所有 GitHub 代码仓库,*/secrets 匹配任意所有者下名为 secrets 的代码仓库,https://gitlab.com/acme/* 则匹配该路径下的任意代码仓库。
  • 单独的 "*",它会匹配其他所有内容 (即完全锁定) 。
这些列表按 deny 优先生效:
  • Deny 优先。 只要任何一个活动中的清单或已安装插件禁止某个插件,该插件就会被阻止。如果没有任何规则禁止任何内容,就不会有插件被阻止。
  • 自身覆盖例外。 清单 (或插件) 自身的 requiredPluginsoptionalPlugins——以及对于插件而言,插件本身——不受其自身 forbidden 列表的限制。因此,"forbiddenPlugins": ["*"] 加上 "optionalPlugins": ["acme/approved"] 的含义是“只允许此清单列出的内容;禁止其他所有内容”。该例外仅适用于这些直接条目,不包括必需插件的传递依赖——在锁定模式下,需要将这些内容显式列出。
  • 不允许跨作用域重新放行。 一个清单或插件的允许列表,不能重新放行被另一个清单或插件禁止的内容。`“forbiddenPlugins”: [”*”]“ 这种完全锁定,无法从更低作用域绕过。
强制执行发生在两个时间点:
  • 安装时——如果要安装的插件已被阻止 (或其必需插件无法满足,或其名称与已安装插件冲突) ,安装会被拒绝。
  • 加载时——如果某个插件在安装后才被阻止,它仍会保留在磁盘上,但其技能会在会话开始时被跳过,并显示一条警告,指出是哪个禁止方导致的。
除了这些规则外,托管清单还采用分层机制——企业/账户级高于组织级,高于仓库级和用户级插件配置。高层级优先:低层级绝不能禁止高层级要求的插件,也不能重新允许高层级禁止的插件。因此,组织级禁用无法阻止企业级要求的插件,但企业级禁用会覆盖组织级要求。

添加你自己的插件

插件其实就是一个目录,其中包含 .devin-plugin/plugin.json 清单文件,以及一个存放普通技能skills/ 文件夹:
除了技能之外,插件还可以附带:
  • Rules — 位于插件根目录的 AGENTS.md 会作为一条始终生效规则注入到每个会话中——无论是云端会话还是 CLI 都一样。rules/ 文件夹中的 Markdown 文件也会被加载,并遵循各自的 trigger frontmatter——请参阅 CLI 插件参考
  • Hooks — 位于插件根目录的 hooks.json 会注册在会话中运行的生命周期钩子。云端会话会为除 SessionStartSessionEnd 之外的每个事件运行 command 钩子——因此 PreToolUsePostToolUsePermissionRequestUserPromptSubmitStopPostCompaction 都可以使用;prompt 类型的钩子仅适用于 CLI/本地环境。
  • MCP 服务器 — 位于插件根目录的 mcp_config.json 会声明 MCP 服务器 ("mcpServers": { "<name>": { … } }),这些服务器会在安装了该插件的每个会话中加载。它们目前还不会显示在 MCP 设置界面中,但其工具可供 Devin 使用。插件的 MCP 配置可以设置 OAuth Client ID 和作用域,但绝不能设置 OAuth 客户端密钥——包含该密钥的服务器配置会在激活时被拒绝。
  • Custom subagentsagents/<name>.md (或 agents/<name>/AGENT.md) Profile。这些目前仅在本地 Devin Agent 中加载——即 Devin CLI 和 Devin Desktop——不适用于云端会话。
插件是安装单位:安装一个插件时,会同时安装它的所有技能 (以及其 requiredPlugins 中的所有内容) ——你不能只安装某个插件里的单个技能。如果你想将技能分别提供,请把它们拆分为独立的插件。完整的 plugin.json 格式和本地编写流程,请参阅 CLI 插件参考 根据插件所在的位置,可通过以下任一方式添加: 一个仓库 (或一个 git-subdir 子文件夹) 就是一个插件。单个仓库可以通过子文件夹托管多个插件,并分别通过各自的 git-subdir 条目引用。

上传插件包

配置选项卡中,已上传的插件部分支持你以文件夹或 .zip 文件的形式上传插件,或直接在编辑器中构建插件。保存后,它会作为必填插件添加到清单中 (为作用域内的所有人安装) ;删除后,则会移除该引用。对于你不想 (或无法) 托管在 Git 仓库中的插件来说,这是一个不错的选择。

使用私有 skills 仓库

让清单直接指向私有仓库——通常不需要把它预先放进你的环境快照里。凡是 Devin 已经能通过你的 Git 集成访问到的私有仓库,都可以自动安装。使用 git URL 形式,或使用 git-subdir 从共享仓库的子文件夹安装插件。 (同一清单涵盖的 CLI 用户会使用各自本地的 git 凭据来拉取,因此他们也需要拥有该仓库的访问权限。) 如果无法通过你的 Git 集成访问该仓库,可以将其作为插件包上传 (见上文) ,或者在环境设置期间克隆它,再通过本地路径引用。

更新如何生效

  • 清单变更 (设置 → Marketplace) 会在下一个会话中生效。
  • 插件变更——当插件跟踪的分支合并了更新后,几小时内就会自动应用到新会话。将插件固定到某个 commit SHA,即可自行控制更新;在 CLI 中,devin plugins update 会立即刷新。
  • 正在运行的会话会保留其启动时加载的内容——更新绝不会在会话运行过程中生效。

兼容性

Claude 插件也可用:如果没有 .devin-plugin/plugin.json,Devin 会改为使用 .claude-plugin/plugin.json。当两个清单都存在时,以 Devin 的为准。

作用域与继承

托管清单最多可存在于两个层级:
  • 独立账户只有一个适用于所有人的 账户 清单。
  • 企业有一个共享的 企业 清单,每个子组织都会继承它,其下还会叠加一个按 组织 划分的清单。Marketplace 视图会同时显示这两者;企业管理员可以选择在企业作用域安装插件 (全局生效) ,而组织管理员则可以仅在自己的组织内安装。
它们位于整个插件层级的最上方,高于任何仓库级或用户级的插件配置:
  1. 企业 / 账户 清单 (本页)
  2. 组织 清单 (本页)
  3. 仓库级插件配置 (仓库的 .devin/config.json)
  4. 用户级插件——用户通过 CLI 为自己安装的插件,它们仅适用于其本地 Devin Agent,且绝不会在云端会话中加载
以更高层级为准:较低层级永远不能允许被较高层级禁止的插件,也不能禁止被较高层级要求的插件 (请参阅治理规则) 。

云端会话与 CLI

云端 Devin 会话和 Devin CLI 都遵循 enterprise/account 清单:必需的插件会自动安装,禁用规则也同样适用于登录该账户的 CLI 用户。 org 清单仅适用于 云端会话。CLI 在账户级进行身份验证,不具备组织上下文,因此组织级的必需项和禁用项不会作用于 CLI 用户。凡是你需要在 CLI 中 (或账户级) 强制执行的内容,都应放在 enterprise/account 清单中;而 org 清单则用于为云端会话添加组织特有的内容。

了解更多

  • Skills — 插件内置的 SKILL.md 步骤
  • CLI 插件参考 — plugin 文件格式、编写方式和用户级安装
  • Playbooks — 附加到会话的可复用提示模板