documentation/blog/2025-09-26-subagents-vs-subrecipes/index.md
When you're working on complex projects with goose, you'll often need to break work into multiple tasks and run them with AI agents. Goose gives you two powerful ways to do this: subagents and subrecipes. Both can run multiple AI instances in parallel, but they work differently. Picking which one to use can be confusing, so we're going to guide you to a decision.
I've been using both approaches, and the choice between them depends on what you're trying to accomplish. Let me break down when to use each method and show you real examples.
<!--truncate-->Subagents are temporary AI instances that you create with natural language in your prompt and tend to be one-off tasks and then disappear.
Subrecipes are pre-written files full of instructions that define reusable workflows you can run repeatedly with customized parameters.
The TL;DR: subagents are for quick, one-off delegation. Subrecipes are for structured, repeatable processes.
Also, both are still in 'experimental' status, so there's always a possibility their features and capabilities will change over time.
Subagents excel when you're in a goose session and just want task delegation without setup overhead. Here's how simple they are to use:
Build a simple task management web app doing these 3 tasks in parallel:
- one task writes the backend API code (Node.js/Express with basic CRUD operations for tasks)
- one task writes comprehensive tests for the API endpoints
- one task creates user documentation explaining how to use the API
Each task should work independently and complete their part simultaneously.
Goose automatically spawns three independent AI instances, and each works on a different component. You get real-time progress tracking and they all work in parallel from that prompt. You're off and running: no setup, no configuration files, just natural language instructions.
Subrecipes solve the reusability problem. While main "parent" recipes can be in YAML or JSON, subrecipes can only be written in YAML format. These files define structured workflows with parameters, validation, extensions to use, and even allow you to pick a different provider/model to use for the work.
For detailed subrecipe examples and implementation guides, check out our subrecipes blog post and advanced recipe tips video on YouTube.
Use subagents when:
Use subrecipes when:
Both of these features share some limitations. We've already mentioned the experimental and evolving nature, but there are a few more important ones to note:
Subrecipes and subagents run their tasks in isolation and do not share state with one another. This isolation helps prevent conflicts and keeps tasks self-contained. If you do need to share information between the processes, you will have to be very explicit about this in your prompts and instructions.
Neither can spawn additional similar workers: subagents can't create more subagents, and subrecipes can't call other subrecipes. This prevents runaway processes but limits deep nesting.
Whether you're using subagents or subrecipes, you can only run up to 10 concurrent parallel workers total. This is not user-configurable, but this limit keeps resource usage manageable; this may limit very large-scale parallelism.
My recommendation: start with subagents to experiment and understand your workflow needs. They're easier to get started with because you don't need to write configuration files first.
Once you identify patterns you want to repeat, you can convert that subagent workflow session into a recipe and subrecipe structure. This gives you the best progression from experimentation to production.
The choice depends on your specific needs and workflow requirements. Quick tasks that won't be repeated favor subagents. Complex workflows with multiple steps or customization favor subrecipes.
Your workflow requirements should drive the decision.
Share your subagent prompts or subrecipe ideas with us on our Discord community or GitHub discussions.
<head> <meta property="og:title" content="How to Choose Between Subagents and Subrecipes in goose" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://goose-docs.ai/blog/2025-09-26-subagents-vs-subrecipes" /> <meta property="og:description" content="When you need to break complex work into multiple AI tasks, should you use subagents or subrecipes? Learn the key differences and when to use each approach." /> <meta property="og:image" content="https://goose-docs.ai/assets/images/subrecipes-vs-subagents-19bca16b86a951e4618be8ab6ce90fb2.png" /> <meta name="twitter:card" content="summary_large_image" /> <meta property="twitter:domain" content="goose-docs.ai" /> <meta name="twitter:title" content="How to Choose Between Subagents and Subrecipes in goose" /> <meta name="twitter:description" content="When you need to break complex work into multiple AI tasks, should you use subagents or subrecipes? Learn the key differences and when to use each approach." /> <meta name="twitter:image" content="https://goose-docs.ai/assets/images/subrecipes-vs-subagents-19bca16b86a951e4618be8ab6ce90fb2.png" /> </head>