从写代码,到创作下一幕

探索 字节跳动 - 火山方舟 的 AI 编程与视频创作活动。

Agent Plan & Coding Plan

一站体验多款热门模型,为 AI 编程与智能体开发提供更多选择。新用户可联系(微信: goo_lvyouyou)免费体验 9.9 agent plan。

Seedance 2.5

让创意,跃然成片。探索 30 秒视频、多模态参考与局部编辑,把脑海中的画面变成下一支作品。

中文

插件管理

从 GitHub 导入并同步工作区插件

开始之前

工作区管理员可以从 GitHub 导入插件市场,并使其中的插件与仓库保持同步。插件市场是一个 JSON 目录,其中列出了要导入的插件。

本页介绍工作区的导入与同步。要通过云端受管配置或系统 config.toml 直接 在本地客户端上配置市场,请参阅 配置插件市场和默认设置。 要为特定项目启用或禁用插件,请参阅为仓库启用或禁用 插件

请使用能够读取插件市场仓库及其引用的任何其他仓库的 GitHub 账户。支持公开和私有 GitHub 仓库。导入前,请完成 GitHub 组织针对仓库访问所要求的所有审批。

导入前请检查仓库内容。新插件最初的安装策略为 Available,并在安装时进行身份验证。新插件市场默认启用每日自动同步。导入会处理所有有效条目,后续同步会自动添加仓库中的任何新插件。

配置插件市场同步

  1. 打开 Admin > Plugins,然后选择 Add > Import marketplace
  2. Source 中输入仓库 URL,例如 https://github.com/example/team-plugins。请仅使用仓库 URL,不要使用分支或文件夹 URL。
  3. 如果插件市场位于子目录中,请在 Path 中输入该目录。例如,对于 team-tools/.agents/plugins/marketplace.json,请使用 team-tools。如果位于仓库根目录,请将 Path 留空。不要输入清单文件名。
  4. 可选择输入 Branch, tag, or commit。将其留空可使用仓库的默认分支。使用分支可以接收后续提交;固定的提交则会停留在该修订版本。
  5. 选择 Import marketplace,并在出现提示时授权 GitHub 访问。对于非常大的插件市场,首次导入最长可能需要一小时。后续的每日同步通常只需几分钟。
  6. 查看 Import results,然后打开每个已导入的插件,配置其安装策略和任何必需的应用。

若要立即请求更新而不等待每日同步,请在 Admin > Plugins > Marketplaces 下打开该插件市场,然后选择 Sync now

支持的格式

所选目录必须包含以下文件之一:

文件 格式
.agents/plugins/marketplace.json 包含 plugins 数组的 Codex 插件市场。
.claude-plugin/marketplace.json 包含 plugins 数组的 Claude 兼容插件市场。
.claude-plugin/plugin.json 不存在插件市场清单时使用的独立 Claude 插件。

在插件市场中,条目可以引用使用 .codex-plugin/plugin.json 的原生插件、Claude 兼容插件、Agent Plugins 1.0 软件包或受支持的技能软件包。

对于 Codex 插件市场,请为同一仓库中的插件使用本地路径:

{
  "name": "team-plugins",
  "interface": {
    "displayName": "Team plugins"
  },
  "plugins": [
    {
      "name": "team-tools",
      "source": {
        "source": "local",
        "path": "./plugins/team-tools"
      }
    }
  ]
}

该路径相对于所选插件市场根目录,而不是相对于 .agents/plugins/

Claude 兼容插件市场可以为每个本地插件使用路径字符串:

{
  "name": "team-plugins",
  "plugins": [
    {
      "name": "team-tools",
      "source": "./plugins/team-tools"
    }
  ]
}

Codex 插件市场条目还支持使用 source: "url" 引用位于 GitHub 仓库根目录的插件,以及使用 source: "git-subdir" 引用位于 GitHub 子目录中的插件。例如:

{
  "name": "team-tools",
  "source": {
    "source": "git-subdir",
    "url": "https://github.com/example/team-tools.git",
    "path": "./plugins/team-tools",
    "ref": "main"
  }
}

Git 源可以选择一个 ref 或完整的 40 字符提交 sha。用于授权的 GitHub 账户必须能够读取每个被引用的仓库。工作区导入目前仅支持 GitHub 仓库。

配置工作区访问权限

GitHub 导入和同步不会应用仓库中的安装或身份验证策略,包括 AVAILABLEINSTALLED_BY_DEFAULTNOT_AVAILABLEON_INSTALLON_USE。工作区管理员需要为每个插件配置这些设置。同步更新或将现有插件转为由 GitHub 管理时,会保留其工作区策略。

使用 Installation policy 为每个符合条件的角色选择 AvailableInstalled。必需的应用也必须启用,并且成员必须有权访问所连接的服务。导入插件不会授予应用访问权限,也不会连接成员的账户。有关角色、应用和操作控制,请参阅插件控制

将现有插件转为由 GitHub 管理

pluginId 添加到现有插件的插件市场条目中:

{
  "name": "team-tools",
  "pluginId": "plugin_0123456789abcdef0123456789abcdef",
  "source": {
    "source": "local",
    "path": "./plugins/team-tools"
  }
}

Admin > Plugins 打开该插件,并复制其 URL 中 /admin/plugins/ 后面的 ID。在插件市场条目中,将 pluginIdnamesource 放在同一级。现有插件必须位于同一工作区中。

这会将已上传或以其他方式处于未管理状态的工作区插件转为由 GitHub 管理。该插件会保留其 ID、共享设置和工作区策略。后续更新将来自 GitHub;无法再通过上传归档文件替换该托管插件。已由其他 GitHub 源管理的插件无法通过此方式接管。

仅限桌面端的插件

任何在 mcp.json.mcp.json 中声明 MCP server的已导入插件都会标记为 Desktop only,并且仅可在 ChatGPT 桌面应用中使用。这包括使用远程 HTTPS URL 的服务器。相同限制也适用于其他受支持的 MCP 配置形式,例如内联服务器声明。

使用 .app.json 引用现有应用

在插件根目录中添加 .app.json。文件名包含开头的点;不支持不带点的 app.json

{
  "apps": {
    "team-tools": {
      "id": "asdk_app_example",
      "required": true
    }
  }
}

asdk_app_example 替换为现有应用的 ID。受支持的应用 ID 以 asdk_app_connector_templated_apps_ 开头。请使用应用 ID,而不是 plugin_... ID。例如,包含 plugin_asdk_app_example 的插件 URL 表示应用 asdk_app_example

team-tools 用于命名此文件中的引用。当插件依赖该应用时,请将 required 设置为 true。你可以添加更多条目以引用其他现有应用。

对于原生插件,请在 .codex-plugin/plugin.json 中将 apps 设置为 ./.app.json。以下是此示例的完整清单:

{
  "name": "team-tools",
  "version": "1.0.0",
  "description": "Use the team's approved tools.",
  "author": {
    "name": "Example team"
  },
  "apps": "./.app.json",
  "interface": {
    "displayName": "Team tools",
    "shortDescription": "Use approved team tools",
    "longDescription": "Connect to the team's existing app.",
    "developerName": "Example team",
    "category": "Productivity",
    "capabilities": ["Read"]
  }
}

请按以下布局放置文件:

team-plugins/
├── .agents/plugins/marketplace.json
└── plugins/team-tools/
    ├── .codex-plugin/plugin.json
    └── .app.json

该引用不会创建应用或授予权限。管理员必须向预期角色开放该应用,成员则必须完成任何必需的身份验证。现有的应用权限、操作控制和服务访问权限仍然适用。

使插件保持最新

新插件市场每天检查更新。打开 Admin > Plugins > Marketplaces,选择该插件市场,然后选择 Sync now,即可立即请求更新而不等待自动同步。

同步可以添加新的插件市场条目并更新现有插件。合并仓库变更之前请先进行检查,因为自动同步会导入任何新插件。

同步后,请查看状态和已保存的报告。Completed — N errors 表示此次同步已完成,但有些插件无法处理。如果现有插件的更新无效,系统会保留其上一个可用版本。在 GitHub 中修复报告的问题,然后选择 Sync now 重试。

从仓库中移除条目不会删除其已导入的工作区副本。它会被标记为 No longer in source。在 ChatGPT 中删除插件市场会删除从中导入的所有插件。

重新连接或更改 GitHub 访问权限

若要重新连接 GitHub 访问权限,请先确认用于导入的 GitHub 账户仍有权访问该仓库及其引用的任何仓库。然后,最初导入该插件市场的管理员应在 ChatGPT 中打开 GitHub 插件并重新连接自己的账户,因为插件市场同步使用该管理员的 GitHub 连接。

若要转移给新所有者,新的工作区管理员应打开 Admin > Plugins > Add > Import marketplace,并使用相同的 SourcePathBranch, tag, or commit 值导入同一插件市场。后续同步将使用其 GitHub 连接。

不要仅为了重新连接或更改所有权而删除插件市场:删除插件市场也会移除从中导入的插件。