Skip to content
FunCoding

Search

Search docs, Skills and MCP

扩展 Workflows

发现静态脚本元数据,按名称调用并核对更新同意与内容绑定权限。

This page has not been translated into English yet. The original Chinese version is shown below.

原生扩展可附带保存的 JavaScript workflow。它们只有在 tools.workflowsEnabled 启用后才出现,该开关默认关闭;安装同意界面仍会列出附带脚本。

元数据决定名称

脚本需包含静态元数据,例如:

export const meta = {
  name: 'deep-research',
  description: 'Research the requested question and collect evidence.',
  whenToUse: 'When a task needs several independent evidence checks.'
};

这只是元数据片段,不是完整执行脚本。文件名可以不同,调用使用 meta.name。name 必须小写字母开头,仅字母、数字、连字符,最多 41 字符。description 和 whenToUse 的展示超过 500 字符会缩短。

gcp 扩展该 workflow 注册为 gcp:deep-research。交互 /gcp:deep-research 直接启动;无头与 ACP 的同一命令先请求模型按名称运行,再进入审批。

模型发现与精确调用

只有声明 whenToUse 才进入模型可选列表。没有它仍可由用户直接调用、按名称要求执行,或由另一个 workflow 调用 workflow('gcp:deep-research')。

tools.workflowNameOnly 或 QWEN_CODE_WORKFLOW_NAME_ONLY=1 可禁止模型编写任意脚本后执行,只允许已命名 workflow 路径。但这不等于自动批准,仍需规则或正常审批。

名称冲突

扩展 workflows 始终有所有者前缀,不会直接覆盖项目或个人的裸名 workflow。同扩展有同名 Skill 时,Skill 保留 /gcp:deep-research,workflow 斜杠入口变成 /gcp.gcp:deep-research;按原名配置 slashCommands.disabled 仍可移除两者。

用户或项目命令最后加载,若占用同名斜杠入口,workflow 仍可通过 workflow 函数按注册名调用。不要用斜杠入口被覆盖来判断脚本完全不可达。

文件发现边界

只读取声明目录的直接 .js 子文件,不递归子目录;路径必须在扩展内部。超过 256 KiB 或没有有效 meta 的脚本会警告并跳过,同名 meta 只保留先发现项。

link 扩展跳过 symlink 文件和目录;已安装副本中适用的链接已经物化为文件。默认 workflows/ 下编辑会自动发现,其他声明路径需 /reload-plugins 或重启。

Claude 插件显式声明 workflows 时,转换保留相对路径并只发现声明项,即使另带 workflows/ 目录也不会读取未声明脚本;没有声明时才使用默认目录。

安装与执行批准不同

增删脚本、名称/描述变化或代码变化,更新时再次请求同意;仅代码变化也会列出对应文件。每次运行仍经过 workflow 审批,并展示脚本开头。不可信目录和 Bare 模式隐藏这些 workflows。

界面生成的“始终允许”规则绑定内容哈希,如 Workflow(name:gcp:deep-research,sha256:3f2a9c1d0b4e5f67),脚本改动后失效。手写不带 sha256 的 Workflow(name:gcp:deep-research) 允许该名字所有版本,应明确两者的更新边界。