research_plan in your template. This gives you control over how structured or exploratory your research workflow should be.
How Research Plans Affect Execution
Without a Research Plan
When no research plan is provided, the agent operates dynamically:- Agent analyzes the prompt and creates a research strategy on the fly
- Multiple research iterations may occur as the agent explores the topic
- Agent decides when sufficient information has been gathered
- More exploratory, suitable for open-ended questions
Example: Dynamic Research
With a Research Plan
When a research plan is provided, the agent follows your predefined structure:- Agent follows the predefined steps in order
- Structured, predictable execution
- Progress is tracked per step (NOT_STARTED, IN_PROGRESS, COMPLETED, SKIPPED, FAILED)
- Better for standardized reports and consistent outputs
Example: Structured Research
Processing Streaming Responses
Workflows with and without a research plan emit the same sequence of typed SSE events. The full reference for every public message type — including a canonical Python handler that dispatches ontype — lives in the Concepts section:
Streaming responses
All 11 message types, their fields, when each is emitted, and a copy-paste handler.
Grounding and citations
How
GROUNDING references map to spans of the answer text.Workflows wrap each event’s typed payload in a
delta field, so dispatch on
event["delta"]["type"]. The Research Agent uses an analogous message field.
Everything else about the message types is identical between the two services.Model Selection
Both approaches support model selection viamodel_name:
base- Default, balanced performancepro- Enhanced reasoning
When to Use Research Plans
Next Steps
Creating Templates
Learn template anatomy and best practices
Example Templates
Ready-to-use financial analysis templates