-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
π΄ Required Information
Is your feature request related to a specific problem?
ADK currently has tool adapters for LangChain (LangchainTool) and CrewAI (CrewaiTool), but lacks a native integration for LangExtract β Google's own library for extracting structured information from unstructured text using LLMs with precise source grounding.
Users who want to use LangExtract within ADK agents currently have to manually wrap lx.extract() in a FunctionTool or BaseTool subclass, which requires boilerplate and doesn't follow ADK conventions.
Describe the Solution You'd Like
Add a first-class LangExtractTool adapter in src/google/adk/tools/langextract_tool.py that:
- Extends
BaseToolwith a custom function declaration exposingtextandprompt_descriptionas LLM-visible parameters - Pre-configures extraction settings (examples, model_id, extraction_passes, etc.) at construction time
- Runs
lx.extract()viaasyncio.to_thread()to avoid blocking the event loop - Includes a companion
LangExtractToolConfigfor YAML-based agent configuration - Follows the same patterns as
LangchainToolandCrewaiTool(ImportError handling,from_config(), etc.)
Impact on your work
This enables ADK agents to perform structured extraction (entities, attributes, relationships) from documents out of the box, which is a common use case for enterprise AI workflows. Since LangExtract is a Google library, having native ADK support is a natural fit.
Willingness to contribute
Yes β I have an implementation ready to submit as a PR.
π‘ Recommended Information
Proposed API / Implementation
import langextract as lx
from google.adk.tools.langextract_tool import LangExtractTool
tool = LangExtractTool(
name='extract_entities',
description='Extract named entities from text.',
examples=[lx.data.ExampleData(...)],
model_id='gemini-2.5-flash',
)
agent = Agent(model='gemini-2.5-flash', name='extraction_agent', tools=[tool])Additional Context
- LangExtract repo: https://github.com/google/langextract
- Follows the same adapter pattern as
LangchainToolandCrewaiTool - Includes unit tests with mocked
lx.extract()calls