Skip to main content
View source

LlamaIndex

View as Markdown

A RocketRide agent node that answers questions with a LlamaIndex ReAct loop — reasoning step by step and calling connected tools until it reaches an answer.

About LlamaIndex

LlamaIndex is an open-source framework for building LLM applications over your own data. It is best known for its retrieval and indexing toolkit and for ReAct-style agents, which interleave reasoning with tool use so a model can gather what it needs before answering.

What it does

Takes a question on the questions lane, reasons about it step by step, calls whatever tools are connected to it, and emits the final answer on the answers lane. Because the reasoning loop is plain text (the model writes Thought / Action / Action Input), it works with any LLM that can follow the format — native function-calling support is not required, which makes it a good fit for local or smaller models. It can also be invoked as a tool by a parent agent, so it works as a specialist inside a larger agent hierarchy.

Example pipelines

Answer questions using an HTTP tool

chat → agent_llamaindex → response_answers

The agent_llamaindex node on the canvas with an LLM and an HTTP Request tool connected

Download example.pipe

llm_anthropic is wired to the llm channel and tool_http_request to tool. A question arrives on chat, the agent decides when to call the API, reads the response, and returns a grounded answer.

Research agent over your own documents

chat → agent_llamaindex → response_answers

Swap the HTTP tool for store_qdrant: the agent searches the vector store on demand rather than every question being forced through retrieval, then answers from what it found.

Specialist inside a larger agent

An agent_rocketride node with this node connected on its tool channel. Fill in Agent description so the parent knows when to delegate; it calls <nodeId>.run_agent and gets the sub-agent's answer back.

Connections

ConnectionRequiredDescription
llmyesLLM the agent reasons with
toolnoTools available to the agent during its reasoning loop

Without tools the node still works — it becomes a single-shot question answerer. Tools are what make the ReAct loop worth using.

Lanes

Lane inLane outDescription
questionsanswersSend a question, receive the agent's final answer

As a tool

When connected to a parent agent, the node exposes one function:

FunctionDescription
<nodeId>.run_agentRun this agent on a query and return its answer

Input is {query: string, context?: object}query must be a non-empty string. The optional context object reaches the sub-agent as a context entry of type RocketRide.agent.tool_context.v1. Output is {content, meta, stack}, where stack is the list of reasoning steps taken. When invoked as a tool the answer returns to the caller instead of going out on the answers lane.

The configured Agent description is prepended to this function's description, so it is what a parent agent reads when choosing between sub-agents.

Configuration

The default profile needs nothing set — connect an LLM and the node runs. The three fields shape how it behaves: what a parent agent is told about it, what guidance its prompt carries, and whether ungrounded answers are allowed.

Agent description

Only matters when this node is connected to a parent agent as a tool. The parent reads this text alone when deciding whether to delegate — it cannot see the instructions, the tools, or the LLM. Write it specific and action-oriented: "Searches internal documentation and answers with citations" gets picked; "helper agent" never does. Leave it blank if nothing calls this agent as a tool.

Instructions

Each line is appended to the built-in ReAct prompt, which already handles the reasoning scaffolding. Use it for domain rules and tone ("prefer primary sources", "answer in the user's language") — not for restating how to use tools, which the loop already covers. Adding a great deal here works against smaller models, whose instruction-following degrades as the prompt grows.

Require tool call

Off by default. When on, a run that produces an answer without invoking at least one tool fails with a RocketRide.agent.guard.v1 error instead of returning the text.

This guards against a real failure mode: weaker planning models sometimes narrate a tool chain in prose — describing searches they never ran — and produce a plausible but ungrounded answer. Turn it on for determinism-critical pipelines where an ungrounded answer must never be delivered. Note that it counts real tool invocations only; internal local reads do not satisfy it. Leave it off for agents that can legitimately answer from the model's own knowledge.

Notes

The reasoning loop

The node uses llama-index-core for the ReAct scaffolding (ReActChatFormatter, ReActOutputParser) but drives the loop itself: each turn it formats the ReAct prompt, calls the host LLM with Observation: as a stop word, and parses the model's Thought / Action / Action Input or final Answer. Tool execution goes through the host's control-plane call_tool, not through LlamaIndex — connected tools are wrapped as metadata-only FunctionTools whose descriptions carry each tool's input JSON schema.

The loop runs up to 10 iterations. If no final answer arrives within that budget the node returns "Agent stopped after reaching the maximum number of reasoning steps." Output that can't be parsed as a ReAct step is treated as a direct answer (a leading Thought: is stripped so scaffolding doesn't leak to the reader). A tool call that raises isn't fatal — the error is fed back to the model as the observation ({tool, error, type}) so it can recover.

Progress and traceability

Progress streams over the thinking SSE lane ("Starting LlamaIndex agent...", "Calling <tool>..."), and every tool step (action, action_input, observation) is recorded in the returned reasoning stack.

Upstream docs

Schema

FieldTypeDescriptionDefault
agent_descriptionstringAgent description
What does this agent do? Describe its purpose and capabilities, this helps parent agents select and invoke it correctly.
""
agent_llamaindex.profilestringProfile"default"
instructionsarrayInstructions
Additional instructions to guide the agent.
require_tool_callbooleanRequire tool call
Require the agent to invoke at least one tool before answering. When on, a run that answers without calling any tool fails with a guard error. Use for determinism-critical pipelines where an ungrounded or narrated answer must never be delivered. Off by default.
false

Dependencies

  • llama-index-core