Recipes 教程
goose recipes 是把某一类任务完整描述清楚的文件。因为所有信息都收在一个文件里,所以它非常适合通过日常文件共享方式传播,也适合放进 git 这类版本管理系统。我们先从一个最简单的 recipe 开始。
最简单的 Recipe
最简单的 recipe,本质上就是一个 prompt。看起来这似乎不算太有用,毕竟 prompt 发 Slack 或邮件也一样能共享;但现实里,用户之所以没法让 agent 做对事情,最常见的原因恰恰是 prompt 太短,而且没有持续迭代。把 prompt 存进文本文件,会同时改善这两个问题。
下面是一个帮用户规划欧洲旅行的 recipe:
title: Trip planner
description: Plan your next trip
prompt: |
Help the user plan a trip to Europe for 14 days.
Create a detailed itinerary that includes:
- places to visit
- activities to do
- local cuisine to try
- a rough budget estimate
你可以在命令行里这样运行它:
goose run --recipe trip.yaml
Extensions
recipe 里有一个专门的部分,用来声明执行期间 goose 可以使用哪些扩展。goose 只会使用你显式列出来的扩展。
假设我们希望旅行期间天气尽量好,那么就可以给 recipe 增加一个天气扩展(下面这个例子使用的是 TuanKiri 基于 MIT License 发布的 weather-mcp-server),再稍微修改一下 prompt,这样 goose 就会在把某个城市放进行程前先检查天气。
title: Trip planner
description: Plan your next trip
prompt: |
Help the user plan a trip to Europe for 14 days. Create a detailed itinerary that includes:
- places to visit
- activities to do
- local cuisine to try
- a rough budget estimate
Ensure that the user has good weather throughout their trip. Optimize their trip based on the forecast in potential locations.
extensions:
- type: stdio
name: weathermcpserver
cmd: /Users/svega/Development/weather-mcp-server/weather-mcp-server
args: []
timeout: 300
description: "Weather data for trip planning"
env_keys:
- WEATHER_API_KEY
Parameters
你也可以通过 parameters 让 recipe 变成动态模板。参数就是在运行 recipe 时由用户提供的变量。每个参数都有数据类型,也有一个 requirement 字段,用来说明它是必填、可选,还是由系统提供。比如,我们可以给这个旅行 recipe 增加旅行目的地和天数两个参数:
parameters:
- key: destination
input_type: string
requirement: required
description: Destination for the trip. Should be a large region with multiple climates.
- key: duration
input_type: number
requirement: required
description: Number of days for the trip.
recipe 使用模板系统,因此你可以在 prompt 里写 {{ destination }} 这样的变量占位符,运行时会被实际值替换。更新完 prompt 之后,你就可以这样运行它,为一个 14 天的非洲之旅生成计划:
goose run --recipe trip.yaml --params destination=Africa --params duration=14
Settings
默认情况下,goose 会沿用你全局配置里的 temperature 和 model,大多数时候这已经足够。但有些任务你可能希望更细粒度控制。例如旅行规划这类更主观的任务,适当提高 temperature 往往更有帮助。可以把它理解成一个创造力旋钮:值越高,结果越多样、越出人意料。如果第一次输出不理想,用户也可以直接重新运行 recipe,得到另一版建议。
你还可以为某个 recipe 指定专属的 AI provider 和 model:
settings:
goose_provider: "anthropic"
goose_model: "claude-sonnet-4-20250514"
temperature: 0.8
可用设置包括:
goose_provider:AI provider,例如"anthropic"、"openai"goose_model:具体模型名称temperature:控制创造力/随机性(0.0-1.0,越高越有创造性)
这些设置会在 recipe 运行时覆盖你的默认 goose 配置。
外部文件
有时候,你会想给 agent 更多信息,但又不想把所有数据都塞进 prompt 里。此时,更好的做法是把额外信息存进单独文件,再让 recipe 指向这个文件。
为此,recipes 内置了一个变量 {{ recipe_dir }},可以让你引用和 recipe 放在一起的文件。比如,你可以从 Kaggle 下载 UNESCO 遗产名录,并在旅行规划 recipe 中使用它。
然后你可以在 prompt 里这样引用:
prompt: |
You can use the \{\{ recipe_dir \}\}/unesco.csv file to
check information on UNESCO world heritage sites to
include in your travel plan.
同时你还要声明一个能够读取文件的扩展:
extensions:
- type: builtin
name: developer
display_name: Developer
timeout: 300
bundled: true
这里我们加的是 Developer 扩展,它允许 agent 读取文件,从中提取相关信息。
查看详细的 10 天欧洲行程示例
基于 UNESCO 世界遗产信息和当前天气预报,下面是一份详细的 10 天欧洲行程:
10 天欧洲冒险之旅行程
这份行程会带你走过法国、意大利和捷克三个兼具文化与风景魅力的国家。你会体验世界级博物馆、UNESCO 世界遗产、美食,以及丰富的本地文化。
第 1-3 天:法国巴黎 🇫🇷
第 1 天:抵达巴黎
- 上午:抵达戴高乐机场,前往酒店
- 下午:沿塞纳河轻松散步,参观巴黎圣母院外观(因修复暂无法完全开放)
- 晚上:在拉丁区晚餐(预算:€30-40)
- 推荐尝试经典法式洋葱汤和红酒炖鸡
天气预报:气温约 27°C,局部多云,体感舒适
第 2 天:巴黎精华
- 上午:参观卢浮宫(预算:€17)
- 下午:游览杜乐丽花园和香榭丽舍大街
- 晚上:傍晚前往埃菲尔铁塔看日落(预算:登顶 €26.80)
- 在特罗卡德罗附近晚餐(预算:€35-45)
- 推荐尝试蜗牛和勃艮第炖牛肉
天气预报:31°C,晴朗
第 3 天:凡尔赛一日游
- 上午:前往凡尔赛宫(UNESCO 世界遗产)(预算:宫殿门票 €21)
- 下午:游览宏伟花园
- 晚上:返回巴黎,在蒙马特晚餐(预算:€30-40)
- 推荐尝试可丽饼和油封鸭
天气预报:30°C,略有降雨概率
第 4-6 天:意大利罗马 🇮🇹
第 4 天:前往罗马
- 上午:从巴黎飞往罗马(预算:€100-150)
- 下午:办理入住,游览西班牙台阶和特莱维喷泉
- 晚上:在特拉斯提弗列区晚餐(预算:€25-35)
- 推荐尝试 cacio e pepe 和 carbonara
天气预报:35°C,晴朗炎热
第 5 天:古罗马
- 上午:参观斗兽场和古罗马广场(联票预算:€16)
- 下午:游览帕拉蒂尼山和大竞技场遗址
- 晚上:在鲜花广场附近晚餐(预算:€30-40)
- 推荐尝试罗马披萨和 saltimbocca alla romana
天气预报:35°C,大部晴天
第 6 天:梵蒂冈
- 上午:参观梵蒂冈博物馆和西斯廷礼拜堂(预算:€17)
- 下午:圣彼得大教堂和圣彼得广场(UNESCO 世界遗产)
- 晚上:在 Prati 区晚餐(预算:€30-40)
- 推荐尝试 suppli(炸饭团)和 osso buco
天气预报:34°C,局部多云
第 7-10 天:捷克布拉格 🇨🇿
第 7 天:前往布拉格
- 上午:从罗马飞往布拉格(预算:€100-150)
- 下午:入住酒店,游览老城广场
- 晚上:在老城区晚餐(预算:€20-30)
- 推荐尝试传统炖牛肉和 svíčková
天气预报:29°C,局部多云,较舒适
第 8 天:布拉格城堡与小城区
- 上午:参观布拉格城堡建筑群(UNESCO 世界遗产)(预算:250 CZK / €10)
- 下午:游览小城区和查理大桥
- 晚上:在伏尔塔瓦河景餐厅晚餐(预算:€25-35)
- 推荐尝试 trdelník 和烤鸭配饺子
天气预报:22°C,可能有雷暴
第 9 天:犹太区与文化地标
- 上午:参观犹太区(Josefov)及其会堂
- 下午:市民会馆和火药塔
- 晚上:体验捷克民俗晚宴和表演(预算:€35-45)
- 推荐尝试捷克啤酒和 kolache 甜点
天气预报:24°C,大部晴天
第 10 天:返程
- 上午:在布拉格精品街区最后购物
- 下午:前往机场返程
天气预报:24°C,舒适晴朗
预算拆解(每人)
住宿(9 晚)
- 巴黎:€120/晚 × 3 晚 = €360
- 罗马:€100/晚 × 3 晚 = €300
- 布拉格:€80/晚 × 3 晚 = €240
- 住宿合计:€900
交通
- 往返欧洲国际机票:€600-800(视出发地而定)
- 巴黎到罗马:€100-150
- 罗马到布拉格:€100-150
- 市内交通(地铁/公交/电车):€15/天 × 10 天 = €150
- 交通合计:€950-1,250
景点和活动
- 巴黎博物馆和景点:€100
- 罗马博物馆和景点:€80
- 布拉格博物馆和景点:€70
- 景点合计:€250
餐饮
- 早餐:€10/天 × 10 天 = €100
- 午餐:€15/天 × 10 天 = €150
- 晚餐:€35/天 × 10 天 = €350
- 零食和饮品:€10/天 × 10 天 = €100
- 餐饮合计:€700
其他
- 旅行保险:€50
- 纪念品和购物:€200
- 预备金:€150
- 其他合计:€400
总预算
- 每人 €3,200-3,500(不含往返欧洲的国际机票)
涵盖的 UNESCO 世界遗产
- 凡尔赛宫及其花园(法国)
- 罗马历史中心(意大利)
- 梵蒂冈城(意大利)
- 布拉格历史中心(捷克)
旅行建议
- 天气:按当前预报,三地都偏暖,温度范围约 20-35°C。布拉格晚上偏凉,建议带一件薄外套。
- 货币:法国和意大利用欧元(€),捷克使用捷克克朗(CZK)。
- 交通:建议在各城市购买公共交通通票以节省费用。
- 预约:卢浮宫、梵蒂冈博物馆和埃菲尔铁塔这类热门景点,建议提前预约。
- 饮水:尤其在罗马高温天气下,建议随身带可重复装水的水瓶。
- 语言:可以提前学几句基础当地语言,但多数旅游区域都能使用英语。
这份行程在历史、文化和美食之间做了很好的平衡,也覆盖了欧洲不同区域的城市体验。天气条件整体非常适合观光,大部分时间会是温暖且晴朗的天气。祝你欧洲之旅顺利!
继续阅读
查看 Recipes 指南,获取更多文档、工具和资源,进一步掌握 goose recipes。