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

工作原理

规则通常在提示级别提供持久、可复用的上下文,从而为大型语言模型提供指导。 工作流将这一概念扩展到轨迹级别,以结构化的步骤或提示序列,引导 AI 模型完成一系列相互关联的任务或操作。
要执行工作流,用户只需在 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 工具、包含一系列步骤的工作流尤其适用。

示例工作流

Workflows 有诸多用例,例如:

/address-pr-comments

这是我们团队用于处理 PR 评论的一个内部 Workflow:
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)。From [user] on [file]:[lines] — [body]"
 b. 分析对应文件及行范围。
 c. 如果不理解该评论,不要修改代码。只需向我请求澄清,或让我来实现。
 d. 如果确定可以修改,请在继续下一条评论之前完成修改。

4. 处理完所有评论后,总结你所做的更改,以及哪些评论需要用户(USER)关注。

/git-workflows

使用预定义的提交格式,并通过合适的 CLI 命令创建带有标准化标题和描述的 pull request。

/dependency-management

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

/code-formatting

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

/run-tests-and-fix

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

/deployment

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

/security-scan

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