mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
79 lines
2.8 KiB
Markdown
79 lines
2.8 KiB
Markdown
# Model steering (experimental)
|
|
|
|
Model steering lets you provide real-time guidance and feedback to Gemini CLI
|
|
while it is actively executing a task. This lets you correct course, add missing
|
|
context, or skip unnecessary steps without having to stop and restart the agent.
|
|
|
|
> **Note:** This is a preview feature currently under active development. It is
|
|
> only available on the preview channel.
|
|
|
|
Model steering is particularly useful during complex [Plan Mode](./plan-mode.md)
|
|
workflows or long-running subagent executions where you want to ensure the agent
|
|
stays on the right track.
|
|
|
|
## Enabling model steering
|
|
|
|
Model steering is an experimental feature and is disabled by default. You can
|
|
enable it using the `/settings` command or by updating your `settings.json`
|
|
file.
|
|
|
|
1. Type `/settings` in the Gemini CLI.
|
|
2. Search for **Model Steering**.
|
|
3. Set the value to **true**.
|
|
|
|
Alternatively, add the following to your `settings.json`:
|
|
|
|
```json
|
|
{
|
|
"experimental": {
|
|
"modelSteering": true
|
|
}
|
|
}
|
|
```
|
|
|
|
## Using model steering
|
|
|
|
When model steering is enabled, Gemini CLI treats any text you type while the
|
|
agent is working as a steering hint.
|
|
|
|
1. Start a task (for example, "Refactor the database service").
|
|
2. While the agent is working (the spinner is visible), type your feedback in
|
|
the input box.
|
|
3. Press **Enter**.
|
|
|
|
Gemini CLI acknowledges your hint with a brief message and injects it directly
|
|
into the model's context for the very next turn. The model then re-evaluates its
|
|
current plan and adjusts its actions accordingly.
|
|
|
|
### Common use cases
|
|
|
|
You can use steering hints to guide the model in several ways:
|
|
|
|
- **Correcting a path:** "Actually, the utilities are in `src/common/utils`."
|
|
- **Skipping a step:** "Skip the unit tests for now and just focus on the
|
|
implementation."
|
|
- **Adding context:** "The `User` type is defined in `packages/core/types.ts`."
|
|
- **Redirecting the effort:** "Stop searching the codebase and start drafting
|
|
the plan now."
|
|
- **Handling ambiguity:** "Use the existing `Logger` class instead of creating a
|
|
new one."
|
|
|
|
## How it works
|
|
|
|
When you submit a steering hint, Gemini CLI performs the following actions:
|
|
|
|
1. **Immediate acknowledgment:** It uses a small, fast model to generate a
|
|
one-sentence acknowledgment so you know your hint was received.
|
|
2. **Context injection:** It prepends an internal instruction to your hint that
|
|
tells the main agent to:
|
|
- Re-evaluate the active plan.
|
|
- Classify the update (for example, as a new task or extra context).
|
|
- Apply minimal-diff changes to affected tasks.
|
|
3. **Real-time update:** The hint is delivered to the agent at the beginning of
|
|
its next turn, ensuring the most immediate course correction possible.
|
|
|
|
## Next steps
|
|
|
|
- Tackle complex tasks with [Plan Mode](./plan-mode.md).
|
|
- Build custom [Agent Skills](./skills.md).
|