mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-12 15:10:59 -07:00
90 lines
3.4 KiB
Markdown
90 lines
3.4 KiB
Markdown
# Use Plan Mode with model steering for complex tasks
|
|
|
|
Architecting a complex solution requires precision. By combining Plan Mode's
|
|
structured environment with model steering's real-time feedback, you can guide
|
|
Gemini CLI through the research and design phases to ensure the final
|
|
implementation plan is exactly what you need.
|
|
|
|
> **Note:** This is a preview feature under active development. Preview features
|
|
> may only be available in the **Preview** channel or may need to be enabled
|
|
> under `/settings`.
|
|
|
|
## Prerequisites
|
|
|
|
- Gemini CLI installed and authenticated.
|
|
- [Plan Mode](../plan-mode.md) enabled in your settings.
|
|
- [Model steering](../model-steering.md) enabled in your settings.
|
|
|
|
## Why combine Plan Mode and model steering?
|
|
|
|
[Plan Mode](../plan-mode.md) typically follows a linear path: research, propose,
|
|
and draft. Adding model steering lets you:
|
|
|
|
1. **Direct the research:** Correct the agent if it's looking in the wrong
|
|
directory or missing a key dependency.
|
|
2. **Iterate mid-draft:** Suggest a different architectural pattern while the
|
|
agent is still writing the plan.
|
|
3. **Speed up the loop:** Avoid waiting for a full research turn to finish
|
|
before providing critical context.
|
|
|
|
## Step 1: Start a complex task
|
|
|
|
Enter Plan Mode and start a task that requires research.
|
|
|
|
**Prompt:** `/plan I want to implement a new notification service using Redis.`
|
|
|
|
Gemini CLI enters Plan Mode and starts researching your existing codebase to
|
|
identify where the new service should live.
|
|
|
|
## Step 2: Steer the research phase
|
|
|
|
As you see the agent calling tools like `list_directory` or `grep_search`, you
|
|
might realize it's missing the relevant context.
|
|
|
|
**Action:** While the spinner is active, type your hint:
|
|
`"Don't forget to check packages/common/queues for the existing Redis config."`
|
|
|
|
**Result:** Gemini CLI acknowledges your hint and immediately incorporates it
|
|
into its research. You'll see it start exploring the directory you suggested in
|
|
its very next turn.
|
|
|
|
## Step 3: Refine the design mid-turn
|
|
|
|
After research, the agent starts drafting the implementation plan. If you notice
|
|
it's proposing a design that doesn't align with your goals, steer it.
|
|
|
|
**Action:** Type:
|
|
`"Actually, let's use a Publisher/Subscriber pattern instead of a simple queue for this service."`
|
|
|
|
**Result:** The agent stops drafting the current version of the plan,
|
|
re-evaluates the design based on your feedback, and starts a new draft that uses
|
|
the Pub/Sub pattern.
|
|
|
|
## Step 4: Approve and implement
|
|
|
|
Once the agent has used your hints to craft the perfect plan, review the final
|
|
`.md` file.
|
|
|
|
**Action:** Type: `"Looks perfect. Let's start the implementation."`
|
|
|
|
Gemini CLI exits Plan Mode and transitions to the implementation phase. Because
|
|
the plan was refined in real-time with your feedback, the agent can now execute
|
|
each step with higher confidence and fewer errors.
|
|
|
|
## Tips for effective steering
|
|
|
|
- **Be specific:** Instead of "do it differently," try "use the existing
|
|
`Logger` class in `src/utils`."
|
|
- **Steer early:** Providing feedback during the research phase is more
|
|
efficient than waiting for the final plan to be drafted.
|
|
- **Use for context:** Steering is a great way to provide knowledge that might
|
|
not be obvious from reading the code (e.g., "We are planning to deprecate this
|
|
module next month").
|
|
|
|
## Next steps
|
|
|
|
- Explore [Agent Skills](../skills.md) to add specialized expertise to your
|
|
planning turns.
|
|
- See the [Model steering reference](../model-steering.md) for technical
|
|
details.
|