> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Extrae JSON estructurado con el Agent SDK de Python

> Usa el Agent SDK de Python en un ciclo acotado con herramientas locales que devuelve JSON estricto a través de Phaseo Gateway.

Usa esta receta cuando un flujo de trabajo de Python necesite:

* una herramienta de consulta local
* un ciclo de agente acotado
* una estructura de salida JSON estricta

## 1. Prepara los SDK

<Note type="warning">El paquete Python Agent SDK aún no está disponible en PyPI. Sigue las [instrucciones de instalación desde el código fuente](../sdk-reference/python/agent-sdk-installation.mdx).</Note>

## 2. Define una herramienta local

```python theme={null}
from phaseo_agent import AgentTool, define_tool

lookup_policy = define_tool(
    AgentTool(
        id="lookup-policy",
        description="Look up one internal policy by slug.",
        parameters={
            "type": "object",
            "properties": {
                "slug": {"type": "string"},
            },
            "required": ["slug"],
            "additionalProperties": False,
        },
        execute=lambda input, ctx: {
            "slug": input["slug"],
            "summary": "Presets centralize routing, prompts, and caching defaults.",
        },
    )
)
```

## 3. Crea el agente

```python theme={null}
from phaseo_agent import create_agent

agent = create_agent(
    {
        "id": "policy-extractor",
        "model": "openai/gpt-5.4-nano",
        "instructions": "Use tools when needed and return concise JSON.",
        "tools": [lookup_policy],
        "parse_output": lambda text: text,
    }
)
```

## 4. Ejecuta el agente con el cliente conectado a la puerta de enlace

```python theme={null}
from phaseo_agent import create_gateway_agent_client

result = agent.run(
    input="Look up presets and return JSON with keys summary and recommendation.",
    client=create_gateway_agent_client(),
)

print(result.output)
```

## 5. Cuándo encaja esta receta

* un worker de Python controla la orquestación
* la superficie de herramientas es local y determinista
* quieres una salida estricta antes de crear una capa de orquestación más amplia

## Relacionados

* [Agent SDK de Python](../sdk-reference/python/agent-sdk.mdx)
* [Genera JSON estructurado desde Python](./sdk-python-presets-and-json.mdx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.