google / google/adk-python-community
feat: Add LangExtract tool for structured information extraction
- Lenguaje dominante
- Python
- Estrellas
- 182
- Forks
- 75
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## 🔴 Required Information
### Is your feature request related to a specific problem?
ADK community lacks a native integration for [LangExtract](https://github.com/google/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 custom tool class with significant boilerplate.
### Describe the Solution You'd Like
Add a \`LangExtractTool\` to \`google.adk_community.tools\` that:
- Extends \`BaseTool\` with a clean function declaration exposing \`text\` and \`prompt_description\` as LLM-visible parameters
- Pre-configures extraction settings (examples, model_id, extraction_passes, etc.) at construction time
- Runs \`lx.extract()\` via \`asyncio.to_thread()\` to avoid blocking the event loop
- Includes a companion \`LangExtractToolConfig\` for easy programmatic configuration
**Usage:**
```python
from google.adk_community.tools import LangExtractTool
import langextract as lx
tool = LangExtractTool(
name='extract_entities',
description='Extract named entities from text.',
examples=[
lx.data.ExampleData(
text='John is a software engineer at Google.',
extractions=[
lx.data.Extraction(
extraction_class='person',
extraction_text='John',
attributes={'role': 'software engineer', 'company': 'Google'},
)
],
)
],
)
agent = Agent(model='gemini-2.5-flash', name='extraction_agent', tools=[tool])
```
### Impact on your work
Enables ADK agents to perform structured extraction (entities, attributes, relationships) from documents out of the box — a common use case for enterprise AI workflows. Since LangExtract is a Google library, having native ADK community support is a natural fit.
### Willingness to contribute
Yes — I have an implementation ready to submit as a PR.
---
## 🟡 Recommended Information
### Additional Context
- LangExtract repo: https://github.com/google/langextract
- Originally submitted to [adk-python#4549](https://github.com/google/adk-python/pull/4549) and redirected here by maintainers
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.