The `LLMNode` is the "brain" of your agent. It is a resilient, state-aware node that calls a generative AI model (like Google's Gemini) to perform a reasoning task. It automatically formats your prompt with data from the `GraphState` and writes the model's text output back to the state.
Installs into .claude/skills of the current project.
Are you the author of 2697 Llmnode 5292fdfb?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-2697-llmnode-5292fdfb)
# API Reference: `LLMNode`
The `LLMNode` is the "brain" of your agent. It is a resilient, state-aware node that calls a generative AI model (like Google's Gemini) to perform a reasoning task.
It automatically formats your prompt with data from the `GraphState` and writes the model's text output back to the state.
## Key Features
- Resilient: Automatically retries on `429` (rate-limit) errors with exponential backoff.
- Cost Auditing: Automatically logs `prompt_tokens`, `output_tokens`, and `total_tokens` to the `run_metadata` in the history log.
- Stateful: Uses Python's `format()` string method to dynamically populate your prompt with any value from the `GraphState`.
## Example Usage
```python
# The LLMNode reads `task` from the state
planner_node = LLMNode(
model_name="gemini/gemini-2.5-pro",
prompt_template="You are a planner. Your task is: {task}",
output_key="plan", # Saves the result to state["plan"]
next_node=...
)
```
`__init__` Parameters
| Parameter | Type | Required | Description|
|-----------|------|----|---------------|
| `model_name` | `str` | Yes | The name of the model (e.g., `"gemini-2.5-pro"`). |
| `prompt_template` | `str` | Yes | An f-string compatible template. Keys in `{braces}` will be filled from the GraphState. |
| `output_key` | `str` | Yes | The key to save the LLM's text response to in the `GraphState` (e.g., `"draft_answer"`). |
| `next_node` | `BaseNode`| Yes | The next node to run after this one successfully completes. |
| `max_retries` | `int` | No | The number of times to retry on a 429 error. Default: 3. |