Uses an LLM to generate an execution plan from the user’s input. The plan is a sequence of steps with descriptions and optional detailed instructions.
| |
| ID | nexus.planner.dynamic |
| Dependencies | None |
| Key | Type | Default | Description |
approval | string | always | Approval mode: always (user must approve), never (skip), auto (LLM decides) |
model_role | string | (default) | Model role for plan generation |
max_steps | int | 10 | Maximum number of plan steps |
plan_prompt | string | (built-in) | Custom inline planning prompt |
plan_prompt_file | string | (none) | Path to a custom planning prompt file |
| Event | Priority | Purpose |
plan.request | 50 | Receives plan generation requests |
llm.response | 50 | Receives the LLM’s generated plan |
| Event | When |
plan.result | Plan generated and ready |
thinking.step | Planning reasoning |
io.status | Status updates during plan generation |
- Receives
plan.request with user input
- Constructs a prompt asking the LLM to generate a JSON plan
- Sends
llm.request tagged with Metadata["_source"] so the ReAct agent ignores this response
- Parses the LLM response as JSON steps
- Emits
plan.result with the steps
| Mode | Behavior |
always | User must explicitly approve before execution |
never | Plan is executed immediately |
auto | The LLM includes a risk assessment; low-risk plans skip approval |
nexus.planner.dynamic:
approval: auto
max_steps: 10
model_role: reasoning