Skip to content

Langflow Assistant: component_code_search silently returns empty results for invalid column names, making the agent report the component library as empty #13618

@kartikgajjar

Description

@kartikgajjar

Use latest response with better information

Langflow Assistant
6.2K
|
31.6s
It appears the component code search database is currently empty or not populated with any custom components. This means no custom components have been added to this Langflow instance yet.

What's Available
Langflow comes with many built-in components out of the box (listed in my earlier message), but the custom component database that this tool searches doesn't contain any entries at this time.

What You Can Do
Generate a new custom component — Describe what you need (e.g., "a component that calls a REST API and returns parsed JSON") and I'll create one for you.

Use built-in components — Langflow ships with components for:

Models (OpenAI, Ollama, Anthropic, etc.)
Vector Stores (Chroma, FAISS, Pinecone, etc.)
Document Loaders, Text Splitters
Agents & Tools
I/O (Chat Input/Output)
Memory, Prompts, and more
Import custom components — If you have .py files with custom components, you can upload them through the Langflow UI.

Would you like me to generate a custom component for a specific use case?

Reproduction

Ask "list custom components" under Langflow Assistant

Expected behavior

List all custom components.

Who can help?

@Cristhianzl

The bundled Langflow Assistant flow (langflow/agentic/flows/LangflowAssistant.json) exposes a component_code_search tool, implemented by an inline DataFrameKeywordSearch component. The tool has two defects that combine into a confidently wrong agent answer:

  1. Silent failure on an unknown column. The component's search() method contains:

    if column not in df.columns:
        return DataFrame(pd.DataFrame())

    In tool mode, an invalid column argument is therefore indistinguishable from "zero matches". The agent gets an empty result instead of an error it could self-correct from.

  2. The column argument is model-supplied but undocumented. The DataFrame fed by the upstream Directory node has exactly two columns — file_path and text (each file becomes Data(data={"file_path": ..., "text": ...})) — but neither the tool arg description ("Column name to search in") nor the agent's system prompt mentions them. Since the tool is named component_code_search, the LLM naturally guesses columns like name or code, which don't exist.

Observed Behavior

Asked to list components, the assistant called the tool three times:

  • {"column": "name", "keywords": ["custom", "component", "all"]} → empty
  • {"column": "name", "keywords": ["input", "output", "agent"]} → empty
  • {"column": "code", "keywords": ["class", "Component", "build"]} → empty

All three returned empty DataFrames because name/code are not columns. The agent then told the user:

"It appears the component code search database is currently empty or not populated with any custom components."

The index actually contained the full built-in lfx/components tree (the ./src/lfx/src/lfx/components/ sentinel path is correctly rewritten by inject_lfx_components_path).

Expected Behavior

Either of:

  • An invalid column raises a descriptive error the agent can recover from, e.g. Unknown column 'name'. Valid columns: file_path, text, or
  • column is not a tool-mode input at all — it is pinned (e.g. to text) and the model only supplies keywords.

Ideally both.

Steps to Reproduce

  1. pip install langflow==1.10.0, start Langflow, open the Langflow Assistant.
  2. Ask it to list/search available components.
  3. Observe component_code_search calls with guessed column names returning empty, and the assistant concluding the component database is empty.

(Deterministic repro: call the DataFrameKeywordSearch.search with column="code" against the Directory-fed DataFrame — it returns an empty DataFrame instead of erroring.)

Suggested Fix

In LangflowAssistant.json's DataFrameKeywordSearch node:

  • Remove tool_mode: true from the column input and pin its value to text (searching file contents is the useful default for a code-reference tool), and
  • Replace the silent return DataFrame(pd.DataFrame()) for unknown columns with raise ValueError(f"Unknown column {column!r}. Valid columns: {', '.join(map(str, df.columns))}").

Environment

  • Langflow: 1.10.0 (pip install)
  • lfx: 1.10.0
  • Python: 3.13
  • OS: Windows 11

Operating System

Windows 11

Langflow Version

1.10.1

Python Version

3.12

Screenshot

LangflowAssistant.json

Flow File

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingjiraThis issue has been logged in Jira for fix by the engineering team.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions