跳到主要内容

可复用配方

配方把工具、目标和指令打包成可复用工作流,他人(或未来的你)可以一键启动。

创建配方​

  1. 点击左上角的 按钮打开侧边栏
  2. 在侧边栏中点击 Recipes
  3. 点击 Create Recipe
  4. 在打开的对话框中按需填写配方字段:
    • Title and description
    • Instructions that tell goose what to do
    • Initial prompt to pre-fill the chat input
    • Advanced Options (expand to access):
      • Activities to display as clickable buttons for users
      • Parameters to accept dynamic values
      • Model and provider to specify which provider and model the recipe should use
      • Extensions to select which tools are available
      • Response JSON schema for structured output in automations
      • Subrecipes to attach existing subrecipes or create a new one inline
  5. 完成后,你可以:
    • 复制配方链接以与他人分享配方
    • 点击 Save Recipe 把配方保存到配方库
    • 点击 Save & Run Recipe 保存并立即在新会话中运行配方

编辑配方​

  1. 点击左上角的 按钮打开侧边栏
  2. 在侧边栏中点击 Recipes
  3. 找到你想编辑的配方并点击 按钮
  4. 在出现的对话框中编辑以下任何内容:
    • Title and description
    • Instructions that tell goose what to do
    • Initial prompt to pre-fill the chat input
    • Advanced Options (expand to access):
      • Activities to display as clickable buttons for users
      • Parameters to accept dynamic values
      • Model and provider to specify which provider and model the recipe should use
      • Extensions to select which tools are available
      • Response JSON schema for structured output in automations
      • Subrecipes to attach existing subrecipes or create a new one inline
  5. 完成后,你可以:
    • 复制配方链接以与他人分享配方
    • 点击 Save Recipe 保存更改
    • 点击 Save & Run Recipe 保存并立即在新会话中运行配方
编辑正在使用的配方

你也可以在会话中使用配方时访问编辑对话框:只需点击应用底部的 按钮。发送第一条消息后该按钮会出现。

使用配方​

  1. 使用直接链接或手动输入 URL,或从配方库打开配方:

    直接链接:

    1. 点击与你分享的配方链接

    手动输入 URL:

    1. 把配方链接粘贴到浏览器地址栏
    2. 按 Enter 并点击 Open Goose.app 提示

    配方库:

    1. 点击左上角的 按钮打开侧边栏
    2. 在侧边栏中点击 Recipes
    3. 在配方库中找到你的配方
    4. 点击你想打开的配方旁边的 Use

    斜杠命令:

    1. 在任何 goose 聊天会话中输入自定义斜杠命令
  2. 首次运行配方时,警告对话框会显示配方的标题、描述和指令供你审查。如果你信任配方内容,点击 Trust and Execute 继续。除非配方发生变化,否则不会再次为同一配方提示你。

  3. 如果配方包含参数,在 Recipe Parameters 对话框中输入你的值并点击 Start Recipe。

    参数是配方中使用的动态值:

    • 必需参数用红色星号(*)标记
    • 可选参数显示可以更改的默认值
  4. 配方会自动提交,goose 开始执行。如果配方包含提示词,它会作为第一条消息发送。如果没有,你可以点击活动气泡或发送提示来开始。

隐私与隔离
  • 每个人都有自己的私有会话
  • 用户之间不共享数据
  • 你的会话不会影响原始配方创建者的会话

验证配方​

配方验证只能通过 CLI 使用。

分享配方​

使用配方链接或配方文件与 goose 用户分享你的配方。

隐私与隔离

每个接收者在使用你分享的配方时都会获得自己的私有会话。用户之间不共享数据,你的原始会话和配方不受影响。

通过配方链接分享​

你可以通过配方链接与桌面版用户分享配方。

从配方库复制深层链接以与他人分享:

  1. 点击左上角的 按钮打开侧边栏
  2. 在侧边栏中点击 Recipes
  3. 找到你想分享的配方并点击 按钮复制链接

有人点击链接时,它会用你的配方配置打开 goose 桌面版。他们也可以使用你的配方链接导入配方以供将来使用。

通过配方文件分享​

你可以通过直接发送配方文件与桌面版或 CLI 用户分享配方。

在 goose 桌面版中,你可以导出配方文件或复制其内容以与他人分享。

  1. 点击左上角的 按钮打开侧边栏
  2. 在侧边栏中点击 Recipes
  3. 找到你想分享的配方并点击 按钮
  4. 选择分享方式:
    • 要把配方下载为 .yaml 文件:选择 Export to File,选择下载位置,然后点击 Save
    • 要把配方的 YAML 内容复制到剪贴板:选择 Copy YAML

其他桌面版用户可以把配方导入到他们的配方库。

调度配方​

通过按计划运行来自动化 goose 配方。创建计划时,你会配置:

  • 名称:计划的描述性名称
  • 来源:要运行的配方
  • 执行模式:配方在后台运行(无窗口,保存结果)还是在前台运行(如果 goose 桌面版正在运行则打开窗口,否则在后台运行)
  • 频率和时间:何时运行配方(例如每 20 分钟,每周五上午 10 点)。你的选择会转换为 goose 使用的 cron 表达式。

从配方库调度:

  1. 点击左上角的 按钮打开侧边栏
  2. 在侧边栏中点击 Recipes
  3. 找到你想调度的配方并点击 按钮
  4. 点击 Create Schedule
  5. 在出现的对话框中配置计划。对于 Source,你的配方链接已经提供。
  6. 点击 Create Schedule

从调度器视图调度:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Scheduler
  3. 点击 Create Schedule
  4. 在出现的对话框中配置计划。对于 Source,选择 .yaml 或 .yml 文件,或提供配方链接。
  5. 点击 Create Schedule

管理已调度的配方

你已调度的配方列在 Scheduler 页面中。 点击一个计划以查看细节、查看上次运行时间,并对已调度的配方执行操作:

  • Run Schedule Now 手动触发配方
  • Edit Schedule 更改调度频率
  • Pause Schedule 停止配方自动运行

在 Schedule Details 页面底部,你可以查看由已调度配方创建的会话列表,并打开或恢复每个会话。

核心组件​

配方需要这些核心组件:

  • 指令:定义代理的行为和能力

    • 充当代理的使命声明
    • 让代理准备好执行任何相关任务
    • 如果没有提供提示词则为必需
  • 提示词(可选):自动开始对话

    • 没有提示词时,代理等待用户输入
    • 适用于特定的即时任务
    • 如果没有提供指令则为必需
  • 活动:显示为可点击气泡的示例任务

    • 帮助用户理解配方能做什么
    • 让开始变得容易

高级功能​

自动重试逻辑​

配方可以包含重试逻辑,自动多次尝试完成任务,直到满足成功标准。这对以下情况特别有用:

  • 需要确保成功完成的自动化工作流
  • 可能需要多次尝试的开发任务,例如运行测试
  • 需要验证和清理的系统操作

基本重试配置:

retry:
max_retries: 3
checks:
- type: shell
command: "test -f output.txt" # Check if output file exists
on_failure: "rm -f temp_files*" # Cleanup on failure

工作原理:

  1. 配方按提供的指令正常执行
  2. 完成后,成功检查验证结果
  3. 如果验证失败且仍有重试次数:
    • 运行可选的清理命令
    • 代理状态重置为初始条件
    • 配方执行重新开始
  4. 过程继续,直到成功或达到最大重试次数

完整的重试配置选项和示例见配方参考指南。

用于自动化的结构化输出​

配方可以强制结构化 JSON 输出,使它们非常适合需要可靠解析和处理代理响应的自动化工作流。主要好处包括:

  • 可靠解析:为脚本、自动化和 CI/CD 流水线提供一致的 JSON 格式
  • 内置验证:确保输出符合你的要求
  • 易于提取:最终输出显示为单行,便于简单解析

结构化输出特别适用于:

  • 开发工作流:代码分析报告、带通过/失败计数的测试结果,以及带部署就绪状态的构建状态
  • 数据处理:带计数和验证状态的结果,带结构化发现的内容分析
  • 文档生成:一致的元数据和结构化项目报告,供进一步处理

结构化输出配置示例:

response:
json_schema:
type: object
properties:
build_status:
type: string
enum: ["success", "failed", "warning"]
description: "Overall build result"
tests_passed:
type: number
description: "Number of tests that passed"
tests_failed:
type: number
description: "Number of tests that failed"
artifacts:
type: array
items:
type: string
description: "Generated build artifacts"
deployment_ready:
type: boolean
description: "Whether the build is ready for deployment"
required:
- build_status
- tests_passed
- tests_failed
- deployment_ready

工作原理:

  1. 配方按提供的指令正常运行
  2. goose 用匹配你 schema 的 JSON 调用 final_output 工具
  3. 输出对照 JSON schema 验证
  4. 如果验证失败,goose 会收到错误细节并必须纠正输出
  5. 最终验证过的 JSON 作为输出的最后一行出现,便于提取

自动化用法示例:

# Run recipe and extract JSON output
goose run --recipe analysis.yaml --params project_path=./src > output.log
RESULT=$(tail -n 1 output.log)
echo "Analysis Status: $(echo $RESULT | jq -r '.build_status')"
echo "Issues Found: $(echo $RESULT | jq -r '.tests_failed')"
信息

结构化输出在 goose CLI 和 goose 桌面版中运行的配方上都受支持。但是,创建和编辑 json_schema 配置必须在配方文件中手动完成。

包含的内容​

配方捕获:

  • AI 指令(目标/目的)
  • 建议的活动(供用户点击的示例)
  • 已启用的扩展及其配置
  • 项目文件夹或文件上下文
  • 初始设置(但不是完整对话历史)
  • 运行配方时使用的模型和提供商(可选)
  • 重试逻辑和成功验证配置(如果已配置)

为保护你的隐私和系统完整性,goose 排除:

  • 全局和本地记忆
  • API 密钥和个人凭据
  • 系统级 goose 设置

这意味着如果配方依赖这些元素,其他人可能需要提供自己的凭据或记忆上下文。

了解更多​

查看配方指南,获取更多文档、工具和资源,帮助你掌握 goose 配方。