Skip to main content

Agentics

The Agentics component bundle uses LLMs to transform tabular data. Add or fill columns row-by-row with the aMap component, collapse many rows into one with aReduce component, or generate synthetic rows with the aGenerate component.

Define the structure of generated data in the components' Schema table. For example:

ColumnTypeDescriptionRequired
NameStringThe name of the output fieldYes
TypeDropdownstr, int, float, bool, or dictYes
DescriptionStringWhat this field represents and how it should be generatedNo
As ListBooleanIf true, field is a list of -componentthe specified type (e.g. list[str])No

All Agentics components return a DataFrame.

Prerequisites

  1. Install the Agentics package in Langflow's virtual environment:


    _10
    uv pip install agentics-py==0.3.1

  2. Restart Langflow so the Agentics components are available:


    _10
    uv run langflow run

  3. Agentics components require an LLM. Configure your LLM provider API keys as global variables or environment variables. Supported providers include OpenAI, Anthropic, Google Generative AI, IBM WatsonX, and Ollama.

aGenerate component

aGenerate generates synthetic data from a schema or from an example DataFrame. Use it for test data, augmentation, or documentation examples.

For example, this schema definition creates the following DataFrame output:

Schema definition:

  • customer_name (str): Full name
  • email (str): Email address
  • age (int): Age between 18–80
  • purchase_categories (str, As List): List of product categories purchased

Output DataFrame (example, 10 rows generated):

customer_nameemailagepurchase_categories
Sarah Johnsonsarah.j@email.com34Electronics, Books, Home & Garden
Michael Chenm.chen@email.com28Sports, Clothing, Electronics
............

Parameters

NameTypeDescription
Language ModelDropdownSelect the LLM provider and model. Use guided experience.
Input DataFrameDataFrameOptional. Example DataFrame to learn from; only first 50 rows used. If not provided, Schema is used.
SchemaTableDefine columns to generate when no Input DataFrame is provided. See the component's schema definition.
InstructionsStringOptional instructions for generation.
Number of Rows to GenerateIntegerHow many synthetic rows to create. Default: 10.

aMap component

aMap transforms each row of input data using natural language instructions and a defined output schema (one row in, one row out). Use aMap for enriching data with LLM-generated columns such as sentiment, categories, and entity extraction.

Rows are processed concurrently; default batch size is 10. Token usage scales with number of rows.

For example, aMap keeps each input row and fills in sentiment, confidence, and key_topics with the connected LLM.

Input DataFrame:

review_idtext
1Great product, fast shipping!
2Terrible quality, broke after one use

Schema definition:

  • sentiment (str): "positive", "negative", or "neutral"
  • confidence (float): Confidence score 0–1
  • key_topics (str, As List): Main topics mentioned

Output DataFrame:

review_idtextsentimentconfidencekey_topics
1Great product, fast shipping!positive0.95product quality, shipping
2Terrible quality, broke after one usenegative0.92quality, durability

Parameters

NameTypeDescription
Language ModelDropdownSelect the LLM provider and model. Use guided experience.
Input DataFrameDataFrameInput DataFrame (list of dicts or DataFrame). Each row is processed independently.
SchemaTableDefine the structure and types for generated columns. See the component's schema definition.
InstructionsStringNatural language instructions for transforming each row into the output schema.
As ListBooleanIf true, generate multiple instances of the schema per row and concatenate.
Keep Source ColumnsBooleanIf true, append new columns to original data; if false, return only generated columns. Ignored if As List is true. Default: true.

aReduce component

aReduce aggregates all rows in the input DataFrame into a single row following the output schema. Use aReduce for summaries, reports, or consolidated insights. To aggregate rows into a list, set As List to true in the component.

All rows are sent in one request; token usage can be high for large DataFrames. Consider filtering or sampling first.

For example, aReduce takes all input rows and produces a single row with LLM-generated aggregates. It sums revenue into total_revenue, identifies the best-selling product in best_selling_product, and writes a short summary of the sales.

Input DataFrame:

dateproductrevenueunits
2024-01-01Widget A120050
2024-01-02Widget B80030
2024-01-03Widget A150060

Schema definition:

  • total_revenue (float): Sum of all revenue
  • best_selling_product (str): Product with highest units
  • summary (str): Natural language summary

Output DataFrame:

total_revenuebest_selling_productsummary
3500Widget AOver 3 days, Widget A was the best seller with 110 units, generating $2700 in revenue.

Parameters

NameTypeDescription
Language ModelDropdownSelect the LLM provider and model.
Input DataFrameDataFrameInput DataFrame (list of dicts or DataFrame). Required.
SchemaTableDefine the structure and types for the aggregated output. See the component's schema definition.
As ListBooleanIf true, output is a list of instances of the schema.
InstructionsStringOptional instructions for aggregation. If omitted, the LLM infers from field descriptions.

Performance and troubleshooting

  • Token usage: aMap scales with rows; aReduce sends all rows in one call; aGenerate scales with instances. Use smaller batches or sample large datasets to reduce cost.
  • Batch size: Default 10; max 25. Larger batches improve throughput but increase latency per batch.
  • Errors: If Agentics is not found, run uv pip install agentics-py==0.3.1 and restart Langflow. For API/key errors, set the provider’s API key as a global variable or env var. For DataFrame errors, ensure input is a list of dicts or use a DataFrame component output.

See also

Search