Skip to main content

什么是插件?

插件将技能——以及可选的规则、钩子、MCP 服务器和子 Agent——打包成一个单元,以便安装和复用。有关文件格式和插件可包含的内容,请参阅插件参考 插件是贯穿云端 Devin 会话Devin CLIDevin Desktop 的共享自定义层:插件只需安装一次,其中的技能便可在你使用 Devin 的任何地方作为 /<plugin>:<skill> 命令使用。插件可以在三个级别安装: 本页介绍 Web 应用侧的内容:Customize 页面、在各作用域下安装、建立索引、MCP,以及支撑这一切的托管清单。

Customize 页面

Plugins 位于 Customize 页面,可从侧边栏的 Customize 进入 (该页面取代了原先的 Settings → Plugins、Settings → Marketplace 和 Settings → Connections → MCP 服务器页面;旧链接会自动跳转) 。页面包含五个选项卡:
  • Plugins — 所有已安装的内容,按作用域分组,并可通过 Browse marketplace 安装更多内容。
  • Skills — Devin 按需加载的 skills,来自已安装的 plugins 和你的代码仓库。
  • MCPs — 为 Devin 提供内置工具之外能力的 MCP 服务器。详见下文 MCPs
  • Hooks — 在 session 中的特定时点自动运行的命令。
  • Rules — Devin 在每个 session 中都会遵循的长期指导。
通过作用域选项卡可切换 PersonalOrganizationEnterprise,具体取决于你的访问权限。每个作用域展示的都是生效内容,即经过治理后实际适用的内容。若要更改代码仓库级内容 (在代码仓库 .devin/config.json 中声明的 skills、rules 和 plugins) ,请直接编辑该代码仓库中的文件。 谁能更改哪些内容:
  • Personal — 任何人都可更改自己作用域内的内容。
  • Organization — 具有组织设置访问权限的成员。
  • Enterprise — 具有企业设置访问权限的成员。
点击任意 plugin 可打开其详情面板,其中包括:它的 skills、MCPs、hooks、rules 和 subagents;所跟踪的 ref 或已 pin 的 SHA 及路径;它安装在哪些作用域中、哪些内容依赖它;它的权限;以及——在你有相应权限时——连接其 MCPs、更改其依赖项、卸载它,或 (对于上传的 plugin) 将其删除等操作。

安装插件

从 marketplace 安装

在 Plugins 选项卡中点击 Browse marketplace。marketplace 是一个统一的列表,其中既包含 Devin 官方 marketplace (CognitionAI/devin-marketplace,通常每个集成对应一个插件,例如 Linear、Notion、Datadog 或 Snowflake) ,也包含你的组织或企业自行添加的插件。每张卡片都提供一个安装菜单,列出你有写入权限的所有作用域,并显示该插件已安装在哪些位置 (“Installed for me”、“Installed at organization”……) 。 首次安装某个插件前,Devin 会显示一条安全提示:安装后,Devin 就能运行该插件的规则、钩子和 skills (若插件带有 MCP 服务器,还能通过它们访问外部数据) ,因此请仅在你信任该插件并已核实其来源的情况下继续。官方 marketplace 插件会有相应标识。 安装完成后,会弹出 toast 确认安装的作用域;如果该插件附带的 MCP 服务器需要凭据或授权,还会提供 Connect MCP,让你立即完成设置。 Enterprise admin 可以对所有组织隐藏官方 marketplace (Show official marketplace plugins 开关) ,也可以在 Marketplace availability 中控制组织能看到哪些 marketplace MCP 服务器。

从仓库、.zip 文件或编辑器安装

Plugins 选项卡上的 Add plugin 菜单还支持另外三种来源,每种都可以安装到你有写入权限的任意作用域: 上传和创建的插件之后可以在其详情面板中编辑。删除插件会永久移除其文件——这些文件没有其他副本。请勿在插件文件中放置 secrets,请改用 secret 引用

通过 CLI

devin plugins install <source> 默认会将插件添加到你的个人作用域,因此它会随你一起在云端会话和你的其他设备上生效。传入 --local 则仅在当前机器上安装。参见 CLI 命令

让 Devin 来做

在云端会话中,你可以让 Devin 把某项内容保存为个人 skill、Rule、钩子或 MCP 服务器,也可以让它帮你安装 plugin。Devin 会以卡片形式提出该变更,由你批准或拒绝;批准后的变更会进入你的个人作用域,并在后续 session 中生效。

插件如何进入会话 (云端 ↔ 本地同步)

每个作用域背后都有一份存储在 Devin Cloud 中的托管清单 (参见清单) 。无论在哪里安装,都会写入该清单,而每个界面都会读取它:
  • 云端会话在启动时获取企业级、组织级和个人级清单,并将由此得到的插件安装到会话机器上,同时也会安装其克隆的代码仓库中声明的插件。
  • 登录后,Devin CLIDevin Desktop 会获取同样的清单,因此你在网页端安装的插件会出现在你的电脑上,而你在电脑上执行 devin plugins install 安装的插件也会出现在你的下一个云端会话中。来自私有代码仓库的插件会使用你本地的 git 凭据获取,因此你本人需要拥有该仓库的访问权限。企业可以完全关闭 CLI 插件 (企业设置中的 Devin CLI plugins) 。
  • 个人用户 (不属于任何组织) 只有个人作用域。
正在运行的会话仍沿用启动时加载的内容;变更将从下一个会话开始生效。 插件安装与 MCP 身份验证是两个独立的步骤。请在 Customize → MCPs 中连接云端 MCP;对于在 CLI 中运行的插件 OAuth 服务器,请使用 devin mcp login。同步插件并不意味着所有设备共享同一套凭据。

Indexing

Devin 会为每个作用域的插件维护一份索引:克隆每个插件的 source,读取其清单和内容,解析依赖,并应用治理规则。Customize 页面会展示索引结果——包括插件及其 skills、MCP、钩子和 Rules,以及被 policy 阻止的内容——状态行则显示每个作用域上一次建立索引的时间。
  • 触发条件 —— 安装、移除或编辑插件都会自动排入一次重新索引。向插件的 source 仓库推送 changes 后,可通过 Plugin settings → Reindex plugins 刷新索引。
  • 运行过程中 —— 一次 run 可能处于 scheduled、queued、starting 或 indexing 状态。过于频繁的重新索引会被分散执行,上传 bundle 的保存操作可能需要稍等一会儿才会排队。插件 MCP 在其 configuration 建立索引后即可连接。
  • 结果 —— 打开 Plugin settings(齿轮菜单)可查看上次建立索引的时间以及存在的 issue。刷新 failed 时,上一次成功的结果可能仍然可见;因此插件出现在 list 中并不代表最近一次刷新已成功。
  • 仓库访问权限 —— 从某个代码仓库建立索引的插件内容,只会在通过 Git integration 拥有该仓库访问权限的组织中显示。若没有权限,该作用域的内容将不予显示,并提示 Plugin repos unauthorized;此时请在 Settings → Repositories 中授予该仓库权限。不予显示的作用域中的治理规则(其 forbid 项)仍然生效。
  • network policy —— 索引任务运行在一台继承了你的组织会话 network policy 的 machine 上,因此插件 source 必须在该 policy 下可访问。
会话本身不会等待索引:它们会在启动时直接获取并安装插件。

解决索引问题

  1. 在需要该插件的组织中打开 Customize → Plugins。选择其 PersonalOrganizationEnterprise 作用域,然后打开 Plugin settings,查看问题描述及其中指出的插件或作用域。
  2. 如果某次 run 处于计划、排队、启动或建立索引状态,请等待其完成。如果该插件从未建立索引,或其 source 自上次建立索引后发生了变化,请选择 Reindex plugins
  3. 对于失败的 run 或缺失的内容,请参照下表对应的修复方法。保存或 commit 修正后,选择 Reindex plugins 并再次检查结果。修改共享清单或代码仓库权限可能需要 Admin 操作。
索引成功后,打开该插件的详情,确认预期的 skills、Rules、钩子或 MCP 已出现。如果某个 MCP 仍需授权,请完成连接操作。要使用变更后的插件内容,请启动新 session。如果 CLI 安装的版本已过期,请使用 devin plugins update 更新;在 Customize 中重新建立索引则会刷新网页端列表。使用 --local 完成的安装仅保留在该设备上。 如果索引持续失败,或某次 run 长时间停留在排队或建立索引状态而无进展,请联系支持团队,并提供组织和作用域、插件 source 与 ref、上次建立索引的时间、准确的错误信息,以及该问题的截图。

MCPs

MCP 服务器在 Customize 的 MCPs 选项卡中管理,同样支持上述三个作用域。该选项卡包含两类条目:
  • 来自插件 — 由已安装插件声明的 MCP 服务器。连接设置 (URL、transport、所需凭据) 归插件所有,以只读方式显示;但你仍可启用、停用、连接或卸载它。大多数官方 marketplace 插件都由一个 MCP 服务器构成,并可选附带 skills。
  • 独立 — 单独安装的 MCP 服务器:自定义服务器 (Add custom MCP) 以及从旧版 MCP marketplace 安装的服务器,该 marketplace 仍可从此选项卡进入。
连接。 需要 API key 的插件 MCP 会打开 Connect 面板,其中已列出待填写的 secrets;使用 OAuth 的会打开提供商的授权流程;两者都不需要的,插件安装完成后即可直接使用。你可以从安装 toast、插件详情面板或该 MCP 所在行发起连接。 共享连接与按成员连接。 对于在组织或 enterprise 作用域安装的 OAuth MCP,服务器的 Access 设置决定连接的共享方式:Organization 访问表示该作用域内所有人共用一个连接——此时请使用 service account,而不是个人登录账户——而 Personal 访问则由每位 member 各自授权自己的账户。对于不支持按成员访问的服务器,若每位 member 都需要各自的凭据,请在个人作用域安装该插件 (或该 MCP) 。如果多位 member 正在逐个连接同一个 marketplace MCP,admin 可以为整个组织安装一次,声明该 MCP 的插件都会复用这个连接。 Enterprise MCPs。 Enterprise admins 只需配置一次服务器——包括为经由客户网络路由的 MCP 流量配置私有 CA 证书 bundle——并选择哪些组织可以使用。若某个组织自行安装了同一服务器,则会覆盖 enterprise 层级的配置。 关于 transport 类型、自定义服务器字段以及各服务器的设置说明,请参阅 MCP 服务器

清单

每个作用域背后都有一份托管清单 —— 一个包含三个列表的 JSON 文档。Customize UI 会替你编辑它;在 Plugins 选项卡上通过 Plugin settings (齿轮图标) → Edit manifest 可以直接查看和编辑:
  • requiredPlugins — 为作用域内的所有人安装 (会递归安装,包括其依赖的所有插件) 。从 UI 安装会在此处添加一个条目。
  • optionalPlugins — 一个允许列表,用于认可插件但不自动安装;可用于为被禁条目设置例外。
  • forbiddenPlugins — 一个拒绝列表,包含插件标识或 glob 模式。
清单会按原样存储;Agent 会在安装时验证完整来源。有关每个条目可采用的来源形式以及完整的依赖和治理语义,请参阅插件参考。

治理

这三个列表是各个层级——enterprise、organization、repository (.devin/config.json) 和 personal——通用的策略语言,且层级越高权威性越强:enterprise 可以强制要求某个 plugin,任何 organization、repo 或 user 都无法将其移除;也可以禁止某个 plugin,任何更低层级都无法将其恢复。被策略阻止的 plugin 会显示在 Plugins 选项卡的 Installed but blocked 下,其 skills 会在 session 开始时被跳过,并给出一条警告,指明是哪一方禁止的。 若要将 enterprise 限定为一组已批准的 plugin,请禁止 "*",并在 requiredPlugins/optionalPlugins 中列出已批准的 plugin (及其依赖) ;具体示例参见设置你的插件生态系统,完整规则参见继承与层级

作用域与继承

  • 独立账户拥有一份账户清单 (在 Customize 中显示为 Organization) ,以及每位成员的个人清单。
  • Enterprise 拥有一份 enterprise 清单,由其下所有子组织继承;其下一层是各 organization 级别的清单,再下一层是个人清单。

更新如何生效

  • 清单变更 (安装、移除、清单编辑) 会在下一个会话中生效,适用于所有界面。
  • 插件内容变更——当插件跟踪的分支合并了更新后,会自动应用到新会话 (云端会话在启动时获取;CLI 在执行 devin plugins update 时刷新) 。Customize 会在下一次建立索引后显示新内容——点击 Reindex plugins 可立即拉取。
  • 正在运行的会话会保留其启动时加载的内容——更新绝不会在会话运行过程中生效。

固定 插件

"owner/repo" 形式 (或带 ref) 编写的 插件 会跟随某个分支或标签,因此同一份清单在不同时间可能解析到不同的内容。Customize 会将这类条目标记为 Plugin source not pinned。若要将 插件 锁定到确切内容,请使用带 sha 的对象形式:
被 pin 的插件在你修改 SHA 之前不会发生任何变化。ref (分支或标签) 与 sha 互斥——同一个 条目 不能同时设置这两项。这些字段同样适用于 urlgit-subdir 来源形式。上传的插件始终固定在你所上传的内容上。如果两个 作用域 将同一个插件固定到不同的 SHA,索引会报告 pin 冲突。

插件环境变量

requiredPluginsoptionalPlugins 条目中添加 env,即可在云端会话中配置命令钩子。凭据请引用 Devin Secrets;其他值可以使用字面量字符串。
启动新的云端会话以应用更改。每个依赖项都需要单独的清单条目和 env

支持的引用方式

该密钥必须可供该会话访问。对于现有的键值密钥,请在末尾添加 /ENTRY,例如 secret:org:AWS_CREDS/ACCESS_KEY_ID 插件 MCP 配置以 ${NAME} 的形式引用 secrets;成员在该 server 的详情面板中填写对应值,配置中直接写入的任何字面值都会被剔除。

了解更多