Skip to main content
View source

CrewAI Agent

View as Markdown

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

ConnectionRequiredDescription
llmyesLLM used by the standalone agent.
toolnoTools available to the agent through control-plane invocation.

CrewAI Manager

ConnectionRequiredDescription
llmyesLLM used by the manager agent.
toolnoCross-cutting tools available to the manager itself through control-plane invocation.
crewaiyesConnected CrewAI Subagent nodes to describe and delegate to.

CrewAI Subagent

ConnectionRequiredDescription
llmyesLLM used when the Manager delegates to this subagent.
toolnoTools 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 inLane outDescription
questionsanswersCrewAI Agent: run the standalone crew and emit its result.
questionsanswersCrewAI 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.

FunctionDescription
<nodeId>.run_agentCrewAI Agent: run the standalone agent for a delegated query and return its agent result.
<nodeId>.run_agentCrewAI 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)

FieldTypeDescriptionDefault
advanced_modebooleanAdvanced Mode
Expose CrewAI Agent and Task configuration directly.
false
agent_crewai.agent_config_headernullAgent Confignull
agent_crewai.task_config_headernullTask Confignull
agent_descriptionstringAgent description
What does this agent do? Describe its purpose and capabilities, this helps parent agents select and invoke it correctly.
""
backstorystringBackstory
Background context for this agent's persona. Maps to CrewAI Agent(backstory=...).
expected_outputstringExpected Output
Description of the expected output format. Maps to CrewAI Task(expected_output=...).
goalstringGoal
What this agent is trying to achieve. Maps to CrewAI Agent(goal=...).
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
rolestringRole
Agent role name (e.g. 'Financial Analyst'). Maps to CrewAI Agent(role=...).
task_descriptionstringTask
What this agent should do. If blank, the incoming question is used. Maps to CrewAI Task(description=...).

CrewAI Manager (services.manager.json)

FieldTypeDescriptionDefault
advanced_modebooleanAdvanced Mode
Expose CrewAI manager Agent configuration directly.
false
agent_descriptionstringAgent 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.
""
backstorystringManager Backstory
Background context for the manager's persona. Maps to CrewAI Agent(backstory=...).
goalstringManager Goal
What the manager is trying to achieve. Maps to CrewAI Agent(goal=...).
instructionsarrayInstructions
Additional instructions to guide the manager's delegation strategy.
planningbooleanCrew 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_callbooleanRequire 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)

FieldTypeDescriptionDefault
advanced_modebooleanAdvanced Mode
Expose CrewAI Agent and Task configuration directly.
false
agent_crewai_subagent.agent_config_headernullAgent Confignull
agent_crewai_subagent.task_config_headernullTask Confignull
backstorystringBackstory
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_outputstringExpected Output
Description of the expected output format. Maps to CrewAI Task(expected_output=...).
goalstringGoal
What this sub-agent aims to achieve when delegated to. Maps to CrewAI Agent(goal=...).
instructionsarrayInstructions
Additional instructions to guide this sub-agent when the Manager delegates to it.
rolestringRole
Sub-agent role name (e.g. 'Financial Analyst'). The Manager uses this name when routing delegation. Maps to CrewAI Agent(role=...).
task_descriptionstringTask
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