Skip to main content
本指南将介绍如何搭建你自己的 插件生态系统:由你的组织维护的插件代码仓库,通过受管清单分发给每个 Devin 会话和 CLI 用户,并通过必填、可选和禁止插件来实现治理控制。 本指南附带两个模板代码仓库:
  • plugin-template — 用于编写单个插件 (或少量插件) 的入门模板。
  • team-marketplace-template — 完整的生态系统模式:一个插件 monorepo,以及一个 元插件,其清单定义了你的基线环境和策略。

1. 编写你的插件

插件就是一个包含 .devin-plugin/plugin.json 清单的目录;除此之外,其他内容都是可选的:
先 Fork plugin-template 作为起点,并参阅CLI 插件参考了解完整格式。请保持 AGENTS.md 简短——因为对所有安装了该插件的人来说,它都会在每次会话中占用上下文。

2. 在本地验证和测试

这两个模板都附带了一个验证器 (node scripts/validate-template.mjs) 和一个 CI 工作流程,并且会在每次提交 PR 时运行该验证器。要进行实际测试,请通过 Devin CLI 从本地文件夹安装:
你也可以在 Customize → Plugins 中将插件文件夹或 .zip 上传到你的个人作用域,然后在云端会话中试用。

3. 将它们托管到同一个 代码仓库 中

把你所在组织的所有插件都放到同一个 代码仓库 里,作为子文件夹 (plugins/<name>/) ,并分别通过各自的 git-subdir source 引用。这个 代码仓库 可以保持为 private:云端会话会通过你的 Git 集成拉取它,而 CLI 用户则会使用自己的 git 凭据拉取 (因此他们也需要拥有该 代码仓库 的访问权限) 。 如需采用这种布局,请 fork team-marketplace-template——然后把其中元插件的 git-subdir URL 更新为指向你的 fork。在该模板中,元插件位于 代码仓库 根目录,因此该 代码仓库 本身就是可安装单元:要求 your-org/your-marketplace 会安装整个基线环境。

4. 使用元插件定义你的基线环境

元插件模式可将你的整个生态系统打包成一个可安装的单元。它本身几乎不包含任何内容,甚至可以完全没有内容——真正起作用的是它的清单。将它放在 代码仓库 根目录,这样 代码仓库 本身就是元插件:

5. 从 Customize 分发

Admin 在组织或企业作用域下,通过 Customize → Plugins → Add plugin → From repository 安装 marketplace 代码仓库——详见 插件指南。此操作会向该作用域的受管清单添加一个 entry:
将 marketplace 仓库设为必需后,会安装其根级元插件,并递归拉取整个基线环境。随后 Customize 会为该作用域建立索引,并列出所拉取的每个 plugin 及其 skills、MCP、钩子和 rules。 此时作用域内的所有人都会自动获得该基线环境——在云端会话、Devin CLI 和 Devin Desktop 中均是如此。请慎重选择作用域:
  • 企业 清单覆盖该企业下的所有组织。
  • 组织 清单覆盖该组织的云端会话,以及以该组织为主要组织的 members 的 CLI/Desktop。
如果基线环境包含需要凭据的 MCP 服务器,请在建立索引后前往 MCPs 选项卡完成设置。对于使用 Organization 访问方式的 OAuth 服务器,请连接一个 service account 供 members 共用;使用 Personal 访问方式时,每位 member 需各自连接自己的账户。如果基线环境的内容缺失,请参照解决索引问题

6. 治理

这三份列表构成了适用于各个层级 (受管清单、代码仓库 配置、插件清单) 的策略语言。优先级更高的层级生效——企业/账户高于组织,组织高于 代码仓库,代码仓库 高于 user——并且较低层级绝不能重新允许被较高层级禁止的内容,也不能禁止其强制要求的内容。 若要将账户限制为仅允许使用一组已批准的内容:
清单自身的必填/可选条目不受其自身 "*" 禁止规则的限制;除此之外均不例外,且更低层级也不能扩大这一豁免范围。该豁免仅适用于直接列出的条目——必填插件的传递依赖并不享受豁免——因此在锁定模式下,请将该元插件拉入的所有内容 (此处为 engineering-baselinesecurity-guardrails) 显式列出。完整语义请参阅依赖和治理

7. 演进

  • 合并到你的插件代码仓库默认分支就等于发布:新会话会自动拉取到更新——参见更新如何逐步推出
  • 团队通过 PR 向 marketplace 代码仓库添加插件;模板的 CI 会在每个 PR 上验证布局。
  • 现有 Claude 插件可直接安装 (Devin 会回退到 .claude-plugin/plugin.json) ,因此你可以在 optionalPlugins 中采用社区插件,而无需将它们纳入仓库。

当前限制

  • 插件会在云端会话、Devin CLI 和 Devin Desktop (使用 Devin Local 时) 中加载;不适用于经典 Cascade agent。
  • 子 Agent (agents/<name>.md or agents/<name>/AGENT.md) 仅会在本地 Devin Agent (CLI 和 Devin Desktop) 中加载,不会在云端会话中加载。
  • 钩子目前采用尽力而为、失败开放的模式——钩子加载或运行失败不会停止会话——因此暂勿依赖它们来实现关键护栏。本地配置请参阅 CLI 钩子参考
  • 治理失败开放:如果在会话开始时无法获取受管清单,则该级别的插件不会被安装,其禁止规则也不会在该会话中强制执行。
  • 来自私有代码仓库的插件内容仅会在 Git 集成能够访问该代码仓库的组织中显示于 Customize;否则会被保留,直到在 Settings → Repositories 中授予该代码仓库的访问权限。

了解更多

  • 插件指南 — Web 应用侧:Customize、作用域、建立索引、MCP
  • CLI 插件参考 — 文件格式、编写、用户级安装
  • Skills — 插件打包的 SKILL.md 步骤