CrewAI Agent
A RocketRide family of CrewAI nodes for a standalone agent, a manager that delegates work to CrewAI subagents, and subagents used only by that manager. Choose the Agent for one task, or the Manager and Subagent pair when work needs named specialists.
About CrewAI
CrewAI is a framework whose Agent, Task, and Crew objects organize language model work and tool use. These nodes use those objects with RocketRide-provided LLM and tool connections instead of configuring a model provider in CrewAI.
What it does
The standalone CrewAI Agent receives a question, builds a one-agent sequential
crew, and sends its result to answers; it can also serve as a parent agent's
tool. The CrewAI Manager collects descriptors from connected CrewAI Subagents,
builds a hierarchical crew, and returns its synthesized result on the same
lane or as a tool result. A Subagent is not directly runnable: the Manager
builds its Agent and Task and uses the Subagent's own LLM and optional tool
connections while delegated work runs. Choose the Agent for an independent
task and the Manager plus Subagents for explicit division of work.
Connections
CrewAI Agent
| Connection | Required | Description |
|---|---|---|
llm | yes | LLM used by the standalone agent. |
tool | no | Tools available to the agent through control-plane invocation. |
CrewAI Manager
| Connection | Required | Description |
|---|---|---|
llm | yes | LLM used by the manager agent. |
tool | no | Cross-cutting tools available to the manager itself through control-plane invocation. |
crewai | yes | Connected CrewAI Subagent nodes to describe and delegate to. |
CrewAI Subagent
| Connection | Required | Description |
|---|---|---|
llm | yes | LLM used when the Manager delegates to this subagent. |
tool | no | Tools available to this subagent through control-plane invocation. |
The Manager stops with an error if no Subagent is connected or if none respond
to its describe fan-out. A Subagent's tool connection belongs to the
delegated specialist, not to the Manager.
Lanes
| Lane in | Lane out | Description |
|---|---|---|
questions | answers | CrewAI Agent: run the standalone crew and emit its result. |
questions | answers | CrewAI Manager: run the hierarchical crew and emit its result. |
CrewAI Subagent declares no lanes. Wire it to a Manager's crewai connection;
a direct question is rejected as an invalid use of the subagent.
As a tool
The CrewAI Agent and CrewAI Manager each register
<nodeId>.run_agent, using their own pipeline node ID as the prefix. The
CrewAI Subagent is not a tool and exposes no run_agent function.
| Function | Description |
|---|---|
<nodeId>.run_agent | CrewAI Agent: run the standalone agent for a delegated query and return its agent result. |
<nodeId>.run_agent | CrewAI Manager: run the manager and its connected subagent crew for a delegated query and return its agent result. |
Both functions require an object with a non-empty query: string and accept
an optional context: object. Context is encoded as a
RocketRide.agent.tool_context.v1 entry, and the result is
{content, meta, stack} rather than an answers-lane write. Non-object
input, a blank query, or non-object context raises ValueError. When an
agent description is configured, it is prepended to the registered tool
description that a parent agent sees.
Configuration
Each variant has the default profile. Begin by wiring the LLM and, where
applicable, the Manager-to-Subagent and tool connections; use Advanced Mode
only after the basic role is clear. Empty advanced text fields fall back to the
drivers' built-in goal, backstory, and expected-output text where that driver
uses those fields.
Agent description
CrewAI Agent and CrewAI Manager expose this field to parent agents through
their run_agent tool descriptions. Describe the actual job, inputs, and
expertise of the standalone agent or of the manager-and-crew as a whole, so a
parent can decide when to delegate. A specific value such as “Coordinates
research and fact-checking specialists” is useful; leave it empty when nothing
will call the node as a tool.
Instructions
Instructions are appended as a bullet list to the CrewAI Agent's backstory. For a Manager, they guide its delegation strategy through the manager backstory; for a Subagent, they become part of the specialist's backstory. Use short, durable constraints such as “cite the evidence supplied by tools,” rather than duplicating the role and task text configured in Advanced Mode.
Require tool call
This setting is off by default on the Agent and Manager. Enable it when a response must be based on at least one real tool invocation, rather than an answer produced without external work. For a Manager, tool invocations made by delegated Subagents count toward the same guard. Leave it off when a valid answer may require no tool call.
Advanced Mode
Advanced Mode is off by default and reveals the CrewAI Agent and Task fields. Turn it on only when the default Assistant/Specialist behavior and built-in fallbacks are insufficient. It does not make a Subagent independently runnable: that node remains a Manager-only component.
Agent and task fields
For the standalone Agent, Role, Goal, Backstory, Task, and
Expected Output map to the CrewAI Agent and Task built for each question.
When Task is blank, the incoming question becomes the task; when it is set,
the question is appended as User request: context. Set Task when each run
has a stable assignment, and leave it blank for a general-purpose assistant.
For a Subagent, Role is the specialist name the Manager gives to CrewAI;
Goal, Backstory, Task, and Expected Output define the delegated
Agent and Task. A blank Subagent Task becomes {user_request}, while a
configured task can use CrewAI template variables such as {user_request}.
Use a unique, descriptive Role and a task that names the specialist's output;
the Manager uses the descriptor to assemble its crew.
For the Manager, Manager Goal and Manager Backstory configure its delegator Agent. Set them when the Manager needs a particular delegation policy or domain framing; otherwise it uses its built-in management goal and backstory.
Crew Planning
This Manager-only option is off by default. When enabled, CrewAI runs a planner
before the hierarchical crew and supplies the resulting plan to tasks; it also
adds an LLM call. Enable it only when the connected LLM reliably returns the
JSON CrewAI's planning conversion requires: a prose plan can make the whole run
fail with Failed to get the Planning output.
Notes
Manager execution
The Manager invokes describe on each explicitly connected Subagent, then
creates an Agent and Task for every descriptor. It gives the manager
allow_delegation=True and each specialist allow_delegation=False; the
specialist tasks have their direct tool lists cleared so the manager delegates
rather than using a specialist's tools itself. The Manager prefers the last
completed task's cleaned output to avoid returning its whole hierarchical
ReAct trace.
Runtime and progress
All CrewAI kickoffs share one daemon-thread asyncio loop because the driver
treats CrewAI's process-wide internals as unsafe across multiple threads.
Concurrent kickoffs can still interleave at await points. A process-wide
listener forwards relevant CrewAI events to the initiating run as thinking
SSE messages; stream chunks and terminal formatter events are intentionally
not forwarded.
Tool execution
The CrewAI LLM wrapper delegates through the node's llm connection and
reports no native function-calling support, so CrewAI uses its ReAct tool path.
Each connected tool is wrapped with an argument schema made from its declared
JSON input schema; exceptions from a wrapped tool are returned to CrewAI as an
object containing error and type.
Upstream docs
Schema
CrewAI Agent (services.agent.json)
| Field | Type | Description | Default |
|---|---|---|---|
advanced_mode | boolean | Advanced Mode Expose CrewAI Agent and Task configuration directly. | false |
agent_crewai.agent_config_header | null | Agent Config | null |
agent_crewai.task_config_header | null | Task Config | null |
agent_description | string | Agent description What does this agent do? Describe its purpose and capabilities, this helps parent agents select and invoke it correctly. | "" |
backstory | string | Backstory Background context for this agent's persona. Maps to CrewAI Agent(backstory=...). | |
expected_output | string | Expected Output Description of the expected output format. Maps to CrewAI Task(expected_output=...). | |
goal | string | Goal What this agent is trying to achieve. Maps to CrewAI Agent(goal=...). | |
instructions | array | Instructions Additional instructions to guide the agent. | |
require_tool_call | boolean | Require 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 |
role | string | Role Agent role name (e.g. 'Financial Analyst'). Maps to CrewAI Agent(role=...). | |
task_description | string | Task What this agent should do. If blank, the incoming question is used. Maps to CrewAI Task(description=...). |
CrewAI Manager (services.manager.json)
| Field | Type | Description | Default |
|---|---|---|---|
advanced_mode | boolean | Advanced Mode Expose CrewAI manager Agent configuration directly. | false |
agent_description | string | Agent description What this manager + its sub-agent crew does. Used by parent agents that call this manager as a tool via <nodeId>.run_agent to decide when to invoke it. | "" |
backstory | string | Manager Backstory Background context for the manager's persona. Maps to CrewAI Agent(backstory=...). | |
goal | string | Manager Goal What the manager is trying to achieve. Maps to CrewAI Agent(goal=...). | |
instructions | array | Instructions Additional instructions to guide the manager's delegation strategy. | |
planning | boolean | Crew Planning Run CrewAI's planner before the crew executes, adding a step-by-step plan to each task. Off by default: the planner requires the LLM to return JSON matching CrewAI's plan schema, and a model that answers in prose instead fails the whole run with Failed to get the Planning output. It also costs one extra LLM call per kickoff. Enable only with a model that reliably emits well-formed JSON. | false |
require_tool_call | boolean | Require tool call Require at least one tool call (including calls delegated to sub-agents) before answering. When on, a run that answers without any tool invocation fails with a guard error. Use for determinism-critical pipelines where an ungrounded or narrated answer must never be delivered. Off by default. | false |
CrewAI Subagent (services.subagent.json)
| Field | Type | Description | Default |
|---|---|---|---|
advanced_mode | boolean | Advanced Mode Expose CrewAI Agent and Task configuration directly. | false |
agent_crewai_subagent.agent_config_header | null | Agent Config | null |
agent_crewai_subagent.task_config_header | null | Task Config | null |
backstory | string | Backstory Background context for this sub-agent's expertise. Helps the Manager and the sub-agent's own LLM reason about when it's the right choice. Maps to CrewAI Agent(backstory=...). | |
expected_output | string | Expected Output Description of the expected output format. Maps to CrewAI Task(expected_output=...). | |
goal | string | Goal What this sub-agent aims to achieve when delegated to. Maps to CrewAI Agent(goal=...). | |
instructions | array | Instructions Additional instructions to guide this sub-agent when the Manager delegates to it. | |
role | string | Role Sub-agent role name (e.g. 'Financial Analyst'). The Manager uses this name when routing delegation. Maps to CrewAI Agent(role=...). | |
task_description | string | Task What this sub-agent does when delegated to by the Manager. The user's request is passed as additional context at run time. Maps to CrewAI Task(description=...). |
Dependencies
crewai>=1.14.1,<2