交互式管理插件
要在dcode 会话中浏览市场和管理插件:
- 运行
/plugins打开插件管理器。 - 从其市场选项卡添加市场。支持来源包括:
- 格式为
owner/repo的 GitHub 仓库,可选后跟@branch-or-tag。 - HTTPS Git 仓库 URL,可选后跟
#branch-or-tag。 - 提供 marketplace JSON 文件的服务 HTTPS URL。
- 本地 marketplace 目录或 JSON 文件。
- 格式为
- 从市场安装插件。
- 运行
/reload在不重启会话的情况下激活新安装的插件技能、MCP 服务器和钩子。具有Python 扩展的插件需要/restart重建智能体图。
/reload 或启动新会话后,会排除其技能、MCP 服务器和钩子。Python 扩展会保留在当前图中,直到您运行 /restart 或启动新会话。
删除市场会卸载其插件并删除管理的缓存数据。当市场来自本地目录或文件时,Deep Agents Code 会保留原始来源。运行 /reload 或启动新会话将删除应用于活动会话。
使用智能体发现插件
智能体可以搜索配置的市场目录以查找缺失的功能并报告可用插件。 询问智能体关于可用、已禁用或尚未安装的插件。它通过dcode plugin list --json 和 dcode plugin marketplace list --json 以当前配置文件读取本地目录,不会搜索互联网上的未连接市场。
自动更新插件
Deep Agents Code 可以在首次提示后后台更新已安装的插件。更新仅适用于通过其自己的清单选择参与的已启用插件。插件作者通过将此块添加到该插件的plugin.json 中选择参与:
/reload。要全局禁用自动插件更新,请在 config.toml 或环境中的 DEEPAGENTS_CODE_PLUGIN_AUTO_UPDATE=false 中设置 [plugins].auto_update = false。
从命令行管理插件
使用dcode plugin 进行脚本和基于终端的管理。插件 ID 使用格式 plugin-name@marketplace-name。
plugin list 和 plugin marketplace list 接受 --json。安装插件后,在活动交互式会话中运行 /reload 或启动新会话。
使用插件技能、MCP 服务器和钩子
插件技能命名空间化以防止与项目、用户和其他插件技能冲突。使用其插件 ID 和技能路径调用技能:/plugin-name:skill-name 形式并将其扩展为规范 /skill: 命令。嵌套技能目录会将每个目录添加到命名空间中。例如,skills/review/security/SKILL.md 来自 quality@acme-tools 变为 /skill:quality@acme-tools:review:security。
已启用的插件还可以贡献 MCP 服务器。Deep Agents Code 在插件加载时将这些服务器与您的常规 MCP 配置合并。使用 /mcp 查看可用服务器和工具。
插件钩子使用与用户和项目钩子相同的生命周期事件和处理器格式。插件管理器列出每个插件声明的事件。启用插件是其钩子的唯一同意门槛:工作区信任适用于项目钩子,不适用于插件钩子。
创建插件
Deep Agents Code 插件是一个包含任何支持组件的目录:.codex-plugin/plugin.json。当组件使用默认位置时,清单是可选的。如果插件只包含一个技能,您可以将 SKILL.md 放在插件根目录,而不是创建 skills/。
定义插件清单
当存在时,.claude-plugin/plugin.json 或 .codex-plugin/plugin.json 必须包含一个 name。您还可以声明版本和自定义组件路径:
skills、mcpServers 和 hooks 字段接受路径字符串或路径数组。mcpServers 和 hooks 也可以包含内联配置对象。每个组件路径必须以 ./ 开头,保留在插件根目录内,不包含 ..。
当未声明自定义路径时,Deep Agents Code 发现:
skills/下的技能,或当不存在skills/目录时的根SKILL.md。- 根
.mcp.json文件中的 MCP 服务器。 hooks/hooks.json中的钩子。
添加技能
将每个技能组织为包含SKILL.md 的目录:
添加 MCP 服务器
将标准 MCP 服务器定义放在.mcp.json 或在插件清单中用 mcpServers 内联声明。MCP 服务器和钩子命令支持这些路径变量:
${CLAUDE_PLUGIN_ROOT}或${PLUGIN_ROOT}:已安装插件目录。${CLAUDE_PLUGIN_DATA}或${PLUGIN_DATA}:插件的可写数据目录。${CLAUDE_PROJECT_DIR}:活动项目目录。
添加钩子
在hooks/hooks.json 放置钩子文档,声明相对 hooks 路径,或在插件清单中内联定义钩子。钩子命令接收上述路径变量。有关配置和事件参考,请参阅钩子。
添加 Python 扩展
Python 扩展需要
DEEPAGENTS_CODE_EXPERIMENTAL=1。version。每个入口必须以 ./ 开头并保留在插件根目录内。更改已安装的插件扩展后,重启 dcode。有关设置函数、支持注册、信任模型和安全行为的详细信息,请参阅Python 扩展。
创建市场
市场是一个包含名称和plugins 数组的 JSON 目录。将其存储在市场根目录下的以下路径之一:
.claude-plugin/marketplace.json.agents/plugins/marketplace.json.agents/plugins/api_marketplace.json
name 和 source。它还可以包含 description 和 author。本地源路径必须以 ./ 开头并保持在市场根目录内。当所有本地插件共享不同的基本目录时,设置 metadata.pluginRoot。
市场条目还可以使用外部 Git 源:
github、url 和 git-subdir。远程 URL 必须使用 HTTPS。作为直接 JSON URL 添加的市场不能包含本地相对插件源,因为仅下载目录文件。当目录引用同一源树中的插件目录时,使用 Git 仓库或本地目录。
通过添加其目录、安装插件并启动新会话或运行 /reload 来测试本地市场:
参考文档
官方原文:src/oss/deepagents/code/plugins.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。