Workflows 使用户能够定义一系列步骤,引导 Cascade 完成重复性任务,例如部署服务或回复 PR 评论。 这些 Workflows 会保存为 markdown 文件,方便用户及其团队以简单且可复用的方式运行关键流程。 保存后,可在 Cascade 中通过格式为 /[name-of-workflow] 的斜杠命令调用 Workflows。

工作原理

规则通常在提示层面提供持久、可复用的上下文,从而为大型语言模型提供指导。 工作流在此基础上扩展,在轨迹层面提供一组结构化的步骤或提示,引导模型完成一系列相互关联的任务或操作。
要执行工作流,用户只需在 Cascade 中使用 /[workflow-name] 命令调用它。
你可以在一个工作流内调用其他工作流!

例如,/workflow-1 可以包含诸如“调用 /workflow-2”和“调用 /workflow-3”的指令。
调用后,Cascade 会按顺序处理工作流中定义的每个步骤,并按指定执行操作或生成响应。

如何创建 Workflow

要开始使用 Workflows,点击 Cascade 右上角侧边菜单中的 Customizations 图标,然后进入 Workflows 面板。在这里,你可以点击 + Workflow 按钮来创建新的 Workflow。 Workflows 会以 markdown 文件的形式保存在 .windsurf/workflows/ 目录下,包含标题、描述,以及一系列供 Cascade 执行的具体步骤与指令。

工作流发现

Windsurf 会从多个位置自动发现工作流,便于灵活管理:
  • 当前工作区及其子目录:当前工作区及其子目录中的所有 .windsurf/workflows/ 目录
  • Git 仓库结构:对于 Git 仓库,Windsurf 还会向上搜索到 Git 根目录,在父级目录中查找工作流
  • 多工作区支持:当同一工作区中打开多个文件夹时,会对工作流进行去重,并以最短的相对路径显示

工作流存储位置

工作流可以存放在以下任一位置:
  • 当前工作区目录中的 .windsurf/workflows/
  • 工作区任意子目录中的 .windsurf/workflows/
  • 向上直到 git 根目录(适用于 git 仓库)的任意父目录中的 .windsurf/workflows/
当你创建新工作流时,它将保存在当前工作区的 .windsurf/workflows/ 目录中,不一定位于 git 根目录。 每个工作流文件的大小限制为 12000 个字符。

使用 Cascade 生成工作流

你也可以让 Cascade 为你生成工作流!这在处理依赖特定 CLI 工具的一系列步骤的工作流时尤其好用。

示例工作流

工作流有许多用例,例如:

/address-pr-comments

这是我们团队内部用于处理 PR 评论的一个工作流:
1. 检出 PR 分支:`gh pr checkout [id]`

2. 获取 PR 上的评论

 bash
 gh api --paginate repos/[owner]/[repo]/pulls/[id]/comments | jq '.[] | {user: .user.login, body, path, line, original_line, created_at, in_reply_to_id, pull_request_review_id, commit_id}'

3. 对每条评论,执行以下操作。请记住一次只处理一条评论。
 a. 打印如下内容:“(index)。来自 [user] 于 [file]:[lines] — [body]”
 b. 分析该文件及其行范围。
 c. 如果你不理解该评论,不要更改。只需向我请求澄清,或让我自行处理。
 d. 如果你认为可以修改,请在继续下一条评论之前先完成更改。

4. 在处理完所有评论后,总结你的改动,以及哪些评论需要 USER 的关注。

/git-workflows

使用预定义格式进行提交,并通过相应的 CLI 命令创建带有标准化标题和描述的拉取请求。

/dependency-management

基于配置文件(如 requirements.txt、package.json)自动安装或更新项目依赖项。

/code-formatting

在保存文件时或提交前自动运行代码格式化器(如 Prettier、Black)和代码检查工具(如 ESLint、Flake8),以保持代码风格并及早发现错误。

/run-tests-and-fix

运行或补充单元测试或端到端测试,并自动修复错误,以确保在提交、合并或部署之前的代码质量。

/deployment

将应用部署到不同环境(开发、预发布、生产)的步骤自动化,包括必要的部署前检查和部署后验证。

/security-scan

将安全漏洞扫描集成到代码库中,并作为 CI/CD 流水线的一部分或按需触发。