René's URL Explorer Experiment


Title: Tool calling | Genkit

Open Graph Title: Tool calling

Description: Learn how to enable LLMs to interact with external applications and data using Genkit's tool calling feature across JavaScript, Go, and Python, covering tool definition, usage, and advanced scenarios.

Open Graph Description: Learn how to enable LLMs to interact with external applications and data using Genkit's tool calling feature across JavaScript, Go, and Python, covering tool definition, usage, and advanced scenarios.

Opengraph URL: https://genkit.dev/docs/tool-calling/

Generator: Starlight v0.34.3

direct link

Domain: genkit.dev

og:typearticle
og:localeen
og:site_nameGenkit
twitter:cardsummary_large_image
og:imagehttps://genkit.dev/ogimage.png?v=1

Links:

Skip to contenthttps://genkit.dev/docs/tool-calling#_top
Genkit https://genkit.dev/
GitHubhttps://github.com/firebase/genkit
Discordhttps://discord.gg/qXt5zzQKpc
Overview https://genkit.dev/docs/overview/
Get started https://genkit.dev/docs/get-started/
Developer tools https://genkit.dev/docs/devtools/
Creating flows https://genkit.dev/docs/flows/
Generating content https://genkit.dev/docs/models/
Tool calling https://genkit.dev/docs/tool-calling/
Implementing Agentic Patterns https://genkit.dev/docs/agentic-patterns/
Managing prompts with Dotprompt https://genkit.dev/docs/dotprompt/
Passing information through context https://genkit.dev/docs/context/
Pause generation using interrupts https://genkit.dev/docs/interrupts/
Creating persistent chat sessions https://genkit.dev/docs/chat/
Model Context Protocol (MCP) https://genkit.dev/docs/model-context-protocol/
Retrieval-augmented generation (RAG) https://genkit.dev/docs/rag/
Building multi-agent systems https://genkit.dev/docs/multi-agent/
Error types https://genkit.dev/docs/error-types/
Evaluation https://genkit.dev/docs/evaluation/
Local observability and metrics https://genkit.dev/docs/local-observability/
Genkit MCP Server https://genkit.dev/docs/mcp-server/
AI-Assisted Development https://genkit.dev/docs/develop-with-ai/
Chat with a PDF https://genkit.dev/docs/tutorials/chat-with-pdf/
Summarize YouTube videos https://genkit.dev/docs/tutorials/summarize-youtube-videos/
Google Generative AI https://genkit.dev/docs/integrations/google-genai/
Google Vertex AI https://genkit.dev/docs/integrations/vertex-ai/
OpenAI https://genkit.dev/docs/integrations/openai/
OpenAI-Compatible APIs https://genkit.dev/docs/integrations/openai-compatible/
Anthropic (Claude) https://genkit.dev/docs/integrations/anthropic/
xAI (Grok) https://genkit.dev/docs/integrations/xai/
DeepSeek https://genkit.dev/docs/integrations/deepseek/
Ollama https://genkit.dev/docs/integrations/ollama/
MCP Toolbox for Databases https://genkit.dev/docs/integrations/toolbox/
Dev Local Vector Store https://genkit.dev/docs/integrations/dev-local-vectorstore/
Pinecone https://genkit.dev/docs/integrations/pinecone/
Chroma https://genkit.dev/docs/integrations/chroma/
pgvector https://genkit.dev/docs/integrations/pgvector/
LanceDB https://genkit.dev/docs/integrations/lancedb/
Astra DB https://genkit.dev/docs/integrations/astra-db/
Neo4j https://genkit.dev/docs/integrations/neo4j/
AlloyDB for PostgreSQL https://genkit.dev/docs/integrations/alloydb/
Cloud SQL PostgreSQL https://genkit.dev/docs/integrations/cloud-sql-postgresql/
Cloud Firestore https://genkit.dev/docs/integrations/cloud-firestore/
Vertex AI VectorSearch with Bigquery https://genkit.dev/docs/integrations/vectorsearch-bigquery/
Vertex AI VectorSearch with Firestore https://genkit.dev/docs/integrations/vectorsearch-firestore/
Express.js https://genkit.dev/docs/frameworks/express/
Next.js https://genkit.dev/docs/frameworks/nextjs/
Angular https://genkit.dev/docs/frameworks/angular/
Flask https://genkit.dev/docs/frameworks/flask/
Firebase https://genkit.dev/docs/deployment/firebase/
Cloud Run https://genkit.dev/docs/deployment/cloud-run/
Any Platform https://genkit.dev/docs/deployment/any-platform/
Client App Integration https://genkit.dev/docs/client/
Authorization & Integrity https://genkit.dev/docs/deployment/authorization/
Auth0 AI https://genkit.dev/docs/integrations/auth0/
Overview https://genkit.dev/docs/plugin-authoring/overview/
Getting started https://genkit.dev/docs/observability/getting-started/
Authentication https://genkit.dev/docs/observability/authentication/
Telemetry Collection https://genkit.dev/docs/observability/telemetry-collection/
Advanced Configuration https://genkit.dev/docs/observability/advanced-configuration/
Troubleshooting https://genkit.dev/docs/observability/troubleshooting/
Google Cloud Plugin https://genkit.dev/docs/integrations/google-cloud/
API References https://genkit.dev/docs/api-references/
API Stability https://genkit.dev/docs/api-stability/
Feedback https://genkit.dev/docs/feedback/
GitHubhttps://github.com/firebase/genkit
Discordhttps://discord.gg/qXt5zzQKpc
Overview https://genkit.dev/docs/tool-calling#_top
Before you begin https://genkit.dev/docs/tool-calling#before-you-begin
Overview of tool calling https://genkit.dev/docs/tool-calling#overview-of-tool-calling
Tool calling with Genkit https://genkit.dev/docs/tool-calling#tool-calling-with-genkit
Model support https://genkit.dev/docs/tool-calling#model-support
Defining tools https://genkit.dev/docs/tool-calling#defining-tools
Using tools https://genkit.dev/docs/tool-calling#using-tools
Streaming and Tool Calling https://genkit.dev/docs/tool-calling#streaming-and-tool-calling
Limiting Tool Call Iterations with maxTurns https://genkit.dev/docs/tool-calling#limiting-tool-call-iterations-with-maxturns
Dynamically defining tools at runtime https://genkit.dev/docs/tool-calling#dynamically-defining-tools-at-runtime
Pause the tool loop by using interrupts https://genkit.dev/docs/tool-calling#pause-the-tool-loop-by-using-interrupts
Explicitly handling tool calls https://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls
Extending Tool Capabilities with MCP https://genkit.dev/docs/tool-calling#extending-tool-capabilities-with-mcp
Next steps https://genkit.dev/docs/tool-calling#next-steps
Before you begin https://genkit.dev/docs/tool-calling#before-you-begin-1
Overview of tool calling https://genkit.dev/docs/tool-calling#overview-of-tool-calling-1
Tool calling with Genkit https://genkit.dev/docs/tool-calling#tool-calling-with-genkit-1
Model support https://genkit.dev/docs/tool-calling#model-support-1
Defining tools https://genkit.dev/docs/tool-calling#defining-tools-1
Using tools https://genkit.dev/docs/tool-calling#using-tools-1
Explicitly handling tool calls https://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls-1
Before you begin https://genkit.dev/docs/tool-calling#before-you-begin-2
Overview of tool calling https://genkit.dev/docs/tool-calling#overview-of-tool-calling-2
Tool calling with Genkit https://genkit.dev/docs/tool-calling#tool-calling-with-genkit-2
Model support https://genkit.dev/docs/tool-calling#model-support-2
Defining tools https://genkit.dev/docs/tool-calling#defining-tools-2
Using tools https://genkit.dev/docs/tool-calling#using-tools-2
Pause the tool loop by using interrupts https://genkit.dev/docs/tool-calling#pause-the-tool-loop-by-using-interrupts-1
Explicitly handling tool calls https://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls-2
Overviewhttps://genkit.dev/docs/tool-calling#_top
Before you beginhttps://genkit.dev/docs/tool-calling#before-you-begin
Overview of tool callinghttps://genkit.dev/docs/tool-calling#overview-of-tool-calling
Tool calling with Genkithttps://genkit.dev/docs/tool-calling#tool-calling-with-genkit
Model supporthttps://genkit.dev/docs/tool-calling#model-support
Defining toolshttps://genkit.dev/docs/tool-calling#defining-tools
Using toolshttps://genkit.dev/docs/tool-calling#using-tools
Streaming and Tool Callinghttps://genkit.dev/docs/tool-calling#streaming-and-tool-calling
Limiting Tool Call Iterations with maxTurnshttps://genkit.dev/docs/tool-calling#limiting-tool-call-iterations-with-maxturns
Dynamically defining tools at runtimehttps://genkit.dev/docs/tool-calling#dynamically-defining-tools-at-runtime
Pause the tool loop by using interruptshttps://genkit.dev/docs/tool-calling#pause-the-tool-loop-by-using-interrupts
Explicitly handling tool callshttps://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls
Extending Tool Capabilities with MCPhttps://genkit.dev/docs/tool-calling#extending-tool-capabilities-with-mcp
Next stepshttps://genkit.dev/docs/tool-calling#next-steps
Before you beginhttps://genkit.dev/docs/tool-calling#before-you-begin-1
Overview of tool callinghttps://genkit.dev/docs/tool-calling#overview-of-tool-calling-1
Tool calling with Genkithttps://genkit.dev/docs/tool-calling#tool-calling-with-genkit-1
Model supporthttps://genkit.dev/docs/tool-calling#model-support-1
Defining toolshttps://genkit.dev/docs/tool-calling#defining-tools-1
Using toolshttps://genkit.dev/docs/tool-calling#using-tools-1
Explicitly handling tool callshttps://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls-1
Before you beginhttps://genkit.dev/docs/tool-calling#before-you-begin-2
Overview of tool callinghttps://genkit.dev/docs/tool-calling#overview-of-tool-calling-2
Tool calling with Genkithttps://genkit.dev/docs/tool-calling#tool-calling-with-genkit-2
Model supporthttps://genkit.dev/docs/tool-calling#model-support-2
Defining toolshttps://genkit.dev/docs/tool-calling#defining-tools-2
Using toolshttps://genkit.dev/docs/tool-calling#using-tools-2
Pause the tool loop by using interruptshttps://genkit.dev/docs/tool-calling#pause-the-tool-loop-by-using-interrupts-1
Explicitly handling tool callshttps://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls-2
Edit this page on GitHubhttps://github.com/genkit-ai/docsite/edit/main/src/content/docs/docs/tool-calling.mdx
retrieval augmented generationhttps://genkit.dev/docs/rag
Section titled “Before you begin”https://genkit.dev/docs/tool-calling#before-you-begin
Getting startedhttps://genkit.dev/docs/get-started
Generating content with AI modelshttps://genkit.dev/docs/models
Flowshttps://genkit.dev/docs/flows
Section titled “Overview of tool calling”https://genkit.dev/docs/tool-calling#overview-of-tool-calling
Genkit by Example: Tool Calling https://examples.genkit.dev/tool-calling?utm_source=genkit.dev&utm_content=contextlink
Section titled “Tool calling with Genkit”https://genkit.dev/docs/tool-calling#tool-calling-with-genkit
Section titled “Model support”https://genkit.dev/docs/tool-calling#model-support
Section titled “Defining tools”https://genkit.dev/docs/tool-calling#defining-tools
Section titled “Using tools”https://genkit.dev/docs/tool-calling#using-tools
Section titled “Streaming and Tool Calling”https://genkit.dev/docs/tool-calling#streaming-and-tool-calling
Section titled “Limiting Tool Call Iterations with maxTurns”https://genkit.dev/docs/tool-calling#limiting-tool-call-iterations-with-maxturns
GenkitErrorhttps://genkit.dev/docs/error-types
Section titled “Dynamically defining tools at runtime”https://genkit.dev/docs/tool-calling#dynamically-defining-tools-at-runtime
interrupthttps://genkit.dev/docs/interrupts
Section titled “Pause the tool loop by using interrupts”https://genkit.dev/docs/tool-calling#pause-the-tool-loop-by-using-interrupts
interrupts guidehttps://genkit.dev/docs/interrupts
Section titled “Explicitly handling tool calls”https://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls
Section titled “Extending Tool Capabilities with MCP”https://genkit.dev/docs/tool-calling#extending-tool-capabilities-with-mcp
Model Context Protocol (MCP)https://genkit.dev/docs/model-context-protocol
Section titled “Next steps”https://genkit.dev/docs/tool-calling#next-steps
Model Context Protocol (MCP)https://genkit.dev/docs/model-context-protocol
interruptshttps://genkit.dev/docs/interrupts
retrieval-augmented generation (RAG)https://genkit.dev/docs/rag
multi-agent systemshttps://genkit.dev/docs/multi-agent
tool calling examplehttps://github.com/firebase/genkit/tree/main/js/testapps/tool-calling
retrieval augmented generationhttps://genkit.dev/docs/rag
Section titled “Before you begin”https://genkit.dev/docs/tool-calling#before-you-begin-1
Get startedhttps://genkit.dev/docs/get-started
Generating content with AI modelshttps://genkit.dev/docs/models
Flowshttps://genkit.dev/docs/flows
Section titled “Overview of tool calling”https://genkit.dev/docs/tool-calling#overview-of-tool-calling-1
Section titled “Tool calling with Genkit”https://genkit.dev/docs/tool-calling#tool-calling-with-genkit-1
Section titled “Model support”https://genkit.dev/docs/tool-calling#model-support-1
Section titled “Defining tools”https://genkit.dev/docs/tool-calling#defining-tools-1
Section titled “Using tools”https://genkit.dev/docs/tool-calling#using-tools-1
Section titled “Explicitly handling tool calls”https://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls-1
Section titled “Before you begin”https://genkit.dev/docs/tool-calling#before-you-begin-2
Get startedhttps://genkit.dev/docs/get-started
Generating content with AI modelshttps://genkit.dev/docs/models
Flowshttps://genkit.dev/docs/flows
Section titled “Overview of tool calling”https://genkit.dev/docs/tool-calling#overview-of-tool-calling-2
Section titled “Tool calling with Genkit”https://genkit.dev/docs/tool-calling#tool-calling-with-genkit-2
Section titled “Model support”https://genkit.dev/docs/tool-calling#model-support-2
Section titled “Defining tools”https://genkit.dev/docs/tool-calling#defining-tools-2
Section titled “Using tools”https://genkit.dev/docs/tool-calling#using-tools-2
Section titled “Pause the tool loop by using interrupts”https://genkit.dev/docs/tool-calling#pause-the-tool-loop-by-using-interrupts-1
interrupts guidehttps://genkit.dev/docs/interrupts
Section titled “Explicitly handling tool calls”https://genkit.dev/docs/tool-calling#explicitly-handling-tool-calls-2
Edit pagehttps://github.com/genkit-ai/docsite/edit/main/src/content/docs/docs/tool-calling.mdx

Viewport: width=device-width, initial-scale=1


URLs of crawlers that visited me.