Files
langflow/agents-tools.html
github-merge-queue[bot] ae772b7b05 deploy: c03074300f
2025-07-30 01:21:28 +00:00

142 lines
43 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-Agents/agents-tools" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.1">
<title data-rh="true">Configure tools for agents | Langflow Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.langflow.org/agents-tools"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Configure tools for agents | Langflow Documentation"><meta data-rh="true" name="description" content="Configure tools connected to agents to extend their capabilities."><meta data-rh="true" property="og:description" content="Configure tools connected to agents to extend their capabilities."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/agents-tools"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/agents-tools" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/agents-tools" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Configure tools for agents","item":"https://docs.langflow.org/agents-tools"}]}</script><link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SLQFLQ3KPT"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-SLQFLQ3KPT",{})</script>
<link rel="search" type="application/opensearchdescription+xml" title="Langflow Documentation" href="/opensearch.xml">
<script>!function(){var e="analytics",t=window[e]=window[e]||[];if(!t.initialize)if(t.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{t.invoked=!0,t.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"],t.factory=function(n){return function(){if(window[e].initialized)return window[e][n].apply(window[e],arguments);var r=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(n)>-1){var i=document.querySelector("link[rel='canonical']");r.push({__t:"bpc",c:i&&i.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}return r.unshift(n),t.push(r),t}};for(var n=0;n<t.methods.length;n++){var r=t.methods[n];t[r]=t.factory(r)}t.load=function(n,r){var i=document.createElement("script");i.type="text/javascript",i.async=!0,i.setAttribute("data-global-segment-analytics-key",e),i.src="https://cdn.segment.com/analytics.js/v1/"+n+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(i,a),t._loadOptions=r},t._writeKey="60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",t.SNIPPET_VERSION="5.2.0",t.load("60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG"),t.page()}}()</script>
<script>window.__SCROLL_TRACKING_CONFIG__={selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Docs.langflow.org - Heading Viewed",properties:{element_type:"heading"}},{selector:".ch-codeblock",eventName:"Docs.langflow.org - Codeblock Viewed",properties:{element_type:"code",language:"helper:codeLanguage"}}]}</script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@550;600&amp;display=swap">
<script>!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/datastax/langflow_org_web/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}()</script>
<script defer="true">!function(){const e=e=>{if(window.gtag&&e.purposes&&"analytics"in e.purposes&&"targeted_advertising"in e.purposes){const n=!0===e.purposes.analytics?"granted":"denied",t=!0===e.purposes.targeted_advertising?"granted":"denied",a={analytics_storage:n,ad_personalization:t,ad_storage:t,ad_user_data:t};window.gtag("consent","update",a)}};window.ketch&&window.ketch("on","consent",e)}()</script><link rel="stylesheet" href="/assets/css/styles.e756ed1e.css">
<script src="/assets/js/runtime~main.46cc88d4.js" defer="defer"></script>
<script src="/assets/js/main.9e5db23c.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link" data-event="Docs.langflow.org - Social Clicked" data-platform="github"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link" data-event="Docs.langflow.org - Social Clicked" data-platform="x"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link" data-event="Docs.langflow.org - Social Clicked" data-platform="discord"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Welcome to Langflow</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/about-langflow">Get started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-overview">Flows</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/agents">Agents</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/agents">Use Langflow agents</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/agents-tools">Configure tools for agents</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/mcp-client">Model Context Protocol (MCP)</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-keys-and-authentication">Develop</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployment-overview">Deploy</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-components">Components reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-reference-api-examples">API reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/contributing-community">Contribute</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/release-notes">Release notes</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/troubleshoot">Support</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-ad">
<a href="https://www.langflow.org/desktop" target="_blank" class="menu__link">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1645_37)">
<path d="M12 17H20C21.1046 17 22 16.1046 22 15V13M12 17H4C2.89543 17 2 16.1046 2 15V5C2 3.89543 2.89543 3 4 3H10M12 17V21M8 21H12M12 21H16M11.75 10.2917H13.2083L16.125 7.375H17.5833L20.5 4.45833H21.9583M16.125 11.75H17.5833L20.5 8.83333H21.9583M11.75 5.91667H13.2083L16.125 3H17.5833" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1645_37">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>
<div class="sidebar-ad-text-container">
<span class="sidebar-ad-text">Get started in minutes</span>
<span class="sidebar-ad-text sidebar-ad-text-gradient">Download Langflow Desktop</span>
</div>
</a>
</li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Agents</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Configure tools for agents</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Configure tools for agents</h1></header><style>[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }</style>
<!-- -->
<p>Configure tools connected to agents to extend their capabilities.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="edit-a-tool-components-actions">Edit a tool component&#x27;s actions<a href="#edit-a-tool-components-actions" class="hash-link" aria-label="Direct link to Edit a tool component&#x27;s actions" title="Direct link to Edit a tool component&#x27;s actions"></a></h2>
<p>To edit a tool&#x27;s actions, in the tool component, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Edit Tools</strong> to modify its <code>name</code>, <code>description</code>, or <code>enabled</code> metadata.
These fields help connected agents understand how to use the action, without having to modify the agent&#x27;s prompt instructions.</p>
<p>For example, the <a href="/components-data#url">URL</a> component has two actions available when <strong>Tool Mode</strong> is enabled:</p>
<table><thead><tr><th>Tool Name</th><th>Description</th><th>Enabled</th></tr></thead><tbody><tr><td><code>fetch_content</code></td><td>Fetch content from web pages recursively</td><td>true</td></tr><tr><td><code>fetch_content_as_message</code></td><td>Fetch web content formatted as messages</td><td>true</td></tr></tbody></table>
<p>A Langflow Agent has a clear idea of each tool&#x27;s capabilities based on the <code>name</code> and <code>description</code> metadata. The <code>enabled</code> boolean controls the tool&#x27;s availability to the agent. If you think an agent is using a tool incorrectly, edit a tool&#x27;s <code>description</code> metadata to help the agent better understand the tool.</p>
<p>Tool names and descriptions can be edited, but the default tool identifiers cannot be changed. If you want to change the tool identifier, create a custom component.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-an-agent-as-a-tool">Use an agent as a tool<a href="#use-an-agent-as-a-tool" class="hash-link" aria-label="Direct link to Use an agent as a tool" title="Direct link to Use an agent as a tool"></a></h2>
<p>The agent component itself also supports <strong>Tool Mode</strong> for creating multi-agent flows.</p>
<p>Add an agent to your flow that uses a different OpenAI model for a larger context window.</p>
<ol>
<li>Create the <a href="/simple-agent">Simple agent starter flow</a>.</li>
<li>Add a second agent component to the flow.</li>
<li>Add your <strong>OpenAI API Key</strong> to the <strong>Agent</strong> component.</li>
<li>In the <strong>Model Name</strong> field, select <code>gpt-4.1</code>.</li>
<li>Click <strong>Tool Mode</strong> to use this new agent as a tool.</li>
<li>Connect the new agent&#x27;s <strong>Toolset</strong> port to the previously created agent&#x27;s <strong>Tools</strong> port.
The new agent will use <code>gpt-4.1</code> for the larger tasks of scraping and searching information that require large context windows.
The previously created agent will now use this agent as a tool, with its unique LLM and toolset.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Agent as a tool" src="/assets/images/agent-example-agent-as-tool-0e0b6761f97ce60d6b2476dc4188d37c.png" width="4000" height="2600" class="img_ev3q"></p>
<ol start="7">
<li>The new agent&#x27;s actions can be edited to help the agent understand how to use it.
Click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Edit Tools</strong> to modify its <code>name</code>, <code>description</code>, or <code>enabled</code> metadata.
For example, the default tool name is <code>Agent</code>. Edit the name to <code>Agent-gpt-41</code>, and edit the description to <code>Use the gpt-4.1 model for complex problem solving</code>. The connected agent will understand that this is the <code>gpt-4.1</code> agent, and will use it for tasks requiring a larger context window.</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="components-as-tools">Add custom components as tools<a href="#components-as-tools" class="hash-link" aria-label="Direct link to Add custom components as tools" title="Direct link to Add custom components as tools"></a></h2>
<p>An agent can use <a href="/components-custom-components">custom components</a> as tools.</p>
<ol>
<li>
<p>To add a custom component to the agent flow, click <strong>New Custom Component</strong>.</p>
</li>
<li>
<p>Enter Python code into the <strong>Code</strong> pane to create the custom component.</p>
<p>If you don&#x27;t already have code for a custom component, you can use the following code snippet as an example before creating your own.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Text Analyzer custom component</summary><div><div class="collapsibleContent_i85q"><p>This code creates a text analyzer component.</p><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span>from langflow.custom import Component</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span>from langflow.io import MessageTextInput, Output</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span>from langflow.schema import Data</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span>import re</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span>class TextAnalyzerComponent(Component):</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> display_name = &quot;Text Analyzer&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> description = &quot;Analyzes and transforms input text.&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> documentation: str = &quot;http://docs.langflow.org/components/custom&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> icon = &quot;chart-bar&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> name = &quot;TextAnalyzerComponent&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> inputs = [</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> MessageTextInput(</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> name=&quot;input_text&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> display_name=&quot;Input Text&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> info=&quot;Enter text to analyze&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> value=&quot;Hello, World!&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> tool_mode=True,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> ),</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> outputs = [</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> Output(display_name=&quot;Analysis Result&quot;, name=&quot;output&quot;, method=&quot;analyze_text&quot;),</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> def analyze_text(self) -&gt; Data:</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> text = self.input_text</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> # Perform text analysis</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> word_count = len(text.split())</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> char_count = len(text)</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> sentence_count = len(re.findall(r&#x27;\w+[.!?]&#x27;, text))</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> # Transform text</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> reversed_text = text[::-1]</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> uppercase_text = text.upper()</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> analysis_result = {</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> &quot;original_text&quot;: text,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> &quot;word_count&quot;: word_count,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> &quot;character_count&quot;: char_count,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> &quot;sentence_count&quot;: sentence_count,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> &quot;reversed_text&quot;: reversed_text,</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> &quot;uppercase_text&quot;: uppercase_text</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> data = Data(value=analysis_result)</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> self.status = data</span></div></div><div><span class="ch-code-line-number">_<!-- -->50</span><div style="display:inline-block;margin-left:16px"><span> return data</span></div></div><br></code></div></div></div></div></details>
</li>
<li>
<p>To use the custom component as a tool, click <strong>Tool Mode</strong>.</p>
</li>
<li>
<p>Connect the custom component&#x27;s tool output to the agent&#x27;s tools input.</p>
</li>
<li>
<p>Open the <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play" aria-hidden="true"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg> <strong>Playground</strong> and instruct the agent, <code>Use the text analyzer on this text: &quot;Agents really are thinking machines!&quot;</code></p>
<p>Based on your instruction, the agent should call the <code>analyze_text</code> action and return the result.
For example:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>gpt-4o</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Finished</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>0.6s</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Here is the analysis of the text &quot;Agents really are thinking machines!&quot;:</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Original Text: Agents really are thinking machines!</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Word Count: 5</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Character Count: 36</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Sentence Count: 1</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Reversed Text: !senihcam gnikniht era yllaer stnegA</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Uppercase Text: AGENTS REALLY ARE THINKING MACHINES!</span></div></div><br></code></div></div>
</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="make-any-component-a-tool">Make any component a tool<a href="#make-any-component-a-tool" class="hash-link" aria-label="Direct link to Make any component a tool" title="Direct link to Make any component a tool"></a></h2>
<p>If the component you want to use as a tool doesn&#x27;t have a <strong>Tool Mode</strong> button, add <code>tool_mode=True</code> to one of the component&#x27;s inputs, and connect the new <strong>Toolset</strong> output to the agent&#x27;s <strong>Tools</strong> input.</p>
<p>Langflow supports <strong>Tool Mode</strong> for the following data types:</p>
<ul>
<li><code>DataInput</code></li>
<li><code>DataFrameInput</code></li>
<li><code>PromptInput</code></li>
<li><code>MessageTextInput</code></li>
<li><code>MultilineInput</code></li>
<li><code>DropdownInput</code></li>
</ul>
<p>For example, the <a href="#components-as-tools">components as tools</a> example above adds <code>tool_mode=True</code> to the <code>MessageTextInput</code> input so the custom component can be used as a tool.</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>inputs = [</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> MessageTextInput(</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> name=&quot;input_text&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> display_name=&quot;Input Text&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> info=&quot;Enter text to analyze&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> value=&quot;Hello, World!&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> tool_mode=True,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> ),</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>]</span></div></div><br></code></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-flows-as-tools">Use flows as tools<a href="#use-flows-as-tools" class="hash-link" aria-label="Direct link to Use flows as tools" title="Direct link to Use flows as tools"></a></h2>
<p>An agent can use flows that are saved in your workspace as tools with the <a href="/components-logic#run-flow">Run flow</a> component.</p>
<ol>
<li>To add a <strong>Run flow</strong> component, click and drag a <strong>Run flow</strong> component to your workspace.</li>
<li>Select the flow you want the agent to use as a tool.</li>
<li>Enable <strong>Tool Mode</strong> in the component.
The <strong>Run flow</strong> component displays your flow as an available action.</li>
<li>Connect the <strong>Run flow</strong> component&#x27;s tool output to the agent&#x27;s tools input.</li>
<li>Ask the agent, <code>What tools are you using to answer my questions?</code>
Your flow should be visible in the response as a tool.</li>
<li>Ask the agent to specifically use the connected tool to answer your question.
The connected flow returns an answer based on your question.
For example, a Basic Prompting flow connected as a tool returns a different result depending upon its LLM and prompt instructions.</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Run Flow as tool connected to an agent" src="/assets/images/agent-example-run-flow-as-tool-d9830a35be2ea5ac0fc76e1e3cc5692b.png" width="4000" height="2860" class="img_ev3q"></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="see-also">See also<a href="#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also"></a></h2>
<ul>
<li><a href="/components-agents"><strong>Agent</strong> and <strong>MCP Tools</strong> components</a></li>
<li><a href="/agents">Use Langflow agents</a></li>
<li><a href="/mcp-client">Use Langflow as an MCP client</a></li>
<li><a href="/mcp-server">Use Langflow as an MCP server</a></li>
</ul></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/agents"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Use Langflow agents</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/mcp-client"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Use Langflow as an MCP client</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#edit-a-tool-components-actions" class="table-of-contents__link toc-highlight">Edit a tool component&#39;s actions</a></li><li><a href="#use-an-agent-as-a-tool" class="table-of-contents__link toc-highlight">Use an agent as a tool</a></li><li><a href="#components-as-tools" class="table-of-contents__link toc-highlight">Add custom components as tools</a></li><li><a href="#make-any-component-a-tool" class="table-of-contents__link toc-highlight">Make any component a tool</a></li><li><a href="#use-flows-as-tools" class="table-of-contents__link toc-highlight">Use flows as tools</a></li><li><a href="#see-also" class="table-of-contents__link toc-highlight">See also</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><div class="footer-links">
<span>© 2025 Langflow</span>
<span id="preferenceCenterContainer"> ·&nbsp; <a href="https://langflow.org/preferences">Manage Privacy Choices</a></span>
</div></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/lf-docs-light.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="160" height="40"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="160" height="40"></div></div></div></footer><div style="position:fixed;right:20px;bottom:20px;z-index:100;display:flex;align-items:center;gap:10px;cursor:pointer"><div style="background-color:#f6f6f6;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.1)"><img src="/img/langflow-icon-black-transparent.svg" style="width:40px" alt="Search"></div></div></div>
</body>
</html>