Herramientas de agente: llamadas, búsqueda y código

@gabrielchua
INGLÉShace 1 día · 13 jul 2026
796K
19
3
1
43

TL;DR

Gabriel Chua explora las nuevas capacidades de herramientas de GPT-5.6, detallando cómo Programmatic Tool Calling y Tool Search optimizan el rendimiento del agente y la gestión del contexto.

Con GPT-5.6, hemos lanzado la Llamada Programática a Herramientas, lo que hace que sea un buen momento para repasar las herramientas de agente y las formas de mantener los modelos enfocados a medida que crece el uso de herramientas.

Pregúntale a un agente de soporte por qué el pedido A-104 está retrasado y podría leer el pedido, llamar al transportista y explicar la demora. Ese intercambio oculta un bucle: el modelo solicita una acción, un tiempo de ejecución la ejecuta y el resultado regresa. Las herramientas integradas, MCP, las habilidades, la Búsqueda de Herramientas y la Llamada Programática a Herramientas cambian lo que el modelo ve y lo que regresa.

1. Llamada a Herramientas 101: el modelo pregunta; la aplicación actúa

Con una función propiedad del cliente, el modelo no ejecuta tu código. Devuelve un nombre de herramienta, argumentos JSON y un ID de llamada. Tu aplicación verifica la solicitud, ejecuta la función y devuelve function_call_output con el mismo ID.

Gabriel Chua - inline image

El bucle de herramientas propiedad del cliente: no ocurre ninguna acción externa hasta que tu aplicación ejecuta el paso 3. Generado con GPT-Image-2 en Codex.

En Python, devolver function_call_output devuelve el control al modelo:

python
1import json
2from openai import OpenAI
3
4client = OpenAI()
5
6def get_order(order_id): return {"order_id": order_id, "promised_date": "2026-07-13"}
7
8order_tool = {
9 "type": "function", "name": "get_order", "strict": True,
10 "description": "Devuelve la fecha de entrega prometida para un pedido.",
11 "parameters": {
12 "type": "object",
13 "properties": {"order_id": {"type": "string"}},
14 "required": ["order_id"], "additionalProperties": False,
15 },
16 "output_schema": {
17 "type": "object",
18 "properties": {
19 "order_id": {"type": "string"}, "promised_date": {"type": "string"},
20 },
21 "required": ["order_id", "promised_date"], "additionalProperties": False,
22 },
23}
24
25first = client.responses.create(
26 model="gpt-5.6", tools=[order_tool], input="¿Por qué está retrasado el pedido A-104?",
27 tool_choice={"type": "function", "name": "get_order"},
28)
29call = next(item for item in first.output if item.type == "function_call")
30result = get_order(**json.loads(call.arguments))
31
32final = client.responses.create(
33 model="gpt-5.6",
34 tools=[order_tool],
35 input=[*first.output, {
36 "type": "function_call_output",
37 "call_id": call.call_id,
38 "output": json.dumps(result),
39 }],
40)
41print(final.output_text)

El arnés repite este bucle hasta que el modelo devuelve un mensaje final. Los esquemas estrictos mantienen los argumentos bien formados; el ejecutor aún verifica los permisos.

2. La ejecución de herramientas puede ocurrir en diferentes lugares

Las herramientas integradas, incluyendo búsqueda web, búsqueda de archivos y shell alojado, pueden ejecutarse en la infraestructura de OpenAI. Un servidor MCP remoto expone y ejecuta herramientas de forma remota; Responses admite estos servidores y conectores mantenidos por OpenAI, solicitando aprobación por defecto antes de compartir datos.

Una habilidad agrupa instrucciones y archivos. Adjúntala al shell alojado y el modelo puede seguir su procedimiento o ejecutar sus scripts. Primero ve el nombre, la descripción y la ruta de la habilidad, luego lee SKILL.md cuando es seleccionada.

python
1carrier_mcp = {
2 "type": "mcp",
3 "server_label": "carrier",
4 "server_url": "https://example.com/mcp",
5 "allowed_tools": ["track_package"],
6 "require_approval": "always",
7}
8incident_shell = {
9 "type": "shell",
10 "environment": {
11 "type": "container_auto",
12 "skills": [{"type": "skill_reference", "skill_id": "skill_..."}],
13 },
14}
15
16response = client.responses.create(
17 model="gpt-5.6",
18 tools=[carrier_mcp, incident_shell],
19 input="Investiga por qué el pedido A-104 está retrasado usando la habilidad de incidentes.",
20)

El arnés unifica estas superficies: MCP expone herramientas remotas, las habilidades proporcionan procedimientos y archivos, y el arnés controla dónde se ejecutan las llamadas.

3. Búsqueda de Herramientas: cuando el contexto se convierte en la restricción

Cada definición de herramienta visible ocupa contexto. Los nombres, las descripciones y los esquemas usan tokens de entrada, las herramientas similares se vuelven más difíciles de distinguir y un catálogo MCP grande se convierte en un prompt grande.

La Búsqueda de Herramientas permite que los modelos compatibles GPT-5.4 o posteriores carguen definiciones diferidas solo cuando sea necesario:

python
1shipping = {
2 "type": "namespace", "name": "shipping",
3 "description": "Herramientas de seguimiento de pedidos y entrega.",
4 "tools": [{
5 "type": "function", "name": "get_delivery_eta",
6 "description": "Devuelve la hora estimada de llegada para un pedido.",
7 "defer_loading": True,
8 "parameters": {
9 "type": "object", "required": ["order_id"],
10 "properties": {"order_id": {"type": "string"}},
11 "additionalProperties": False,
12 },
13 }],
14}
15
16response = client.responses.create(
17 model="gpt-5.6",
18 input="¿Cuándo llegará el pedido A-104?",
19 tools=[shipping, {"type": "tool_search"}],
20)

La Búsqueda de Herramientas Alojada elige entre las herramientas declaradas en la solicitud; la búsqueda ejecutada por el cliente puede devolver herramientas para el inquilino o proyecto actual. La búsqueda agrega un paso, por lo que los catálogos pequeños pueden ganar poco. Una función diferida aún expone su nombre y descripción, mientras que un espacio de nombres o un servidor MCP puede comenzar con una descripción corta. Las herramientas cargadas se agregan para preservar el prefijo de caché. Las habilidades difieren instrucciones y archivos; la Búsqueda de Herramientas difiere esquemas invocables.

4. Llamada Programática a Herramientas para trabajo predecible con múltiples herramientas

Las llamadas directas devuelven cada resultado al modelo. Esto es útil cuando un resultado cambia la siguiente decisión, pero las uniones simples, los filtros y las búsquedas en paralelo pueden llenar el contexto con datos que el código podría reducir.

La Llamada Programática a Herramientas permite que GPT-5.6 escriba JavaScript que se ejecuta en un runtime V8 nuevo y aislado. V8 ejecuta JavaScript dentro de Chrome, pero esto no es un navegador ni Node.js. Admite await de nivel superior, bucles, condiciones y llamadas en paralelo, sin instalación de paquetes, acceso directo a la red, sistema de archivos de propósito general, subprocesos, consola ni estado persistente.

Gabriel Chua - inline image

Tres llamadas directas comparadas con tres llamadas en paralelo en el runtime V8 aislado. Generado con GPT-Image-2 en Codex.

Cuando un programa alcanza una función propiedad del cliente, se pausa mientras tu aplicación ejecuta la llamada; devolver su call_id y caller la reanuda. carrier_mcp también puede pausarse para aprobación, y output_schema le dice a JavaScript qué campos puede inspeccionar.

python
1for tool in (order_tool, carrier_mcp):
2 tool["allowed_callers"] = ["programmatic"]
3
4response = client.responses.create(
5 model="gpt-5.6",
6 tools=[
7 order_tool,
8 carrier_mcp,
9 {"type": "programmatic_tool_calling"},
10 ],
11 input="Compara el pedido A-104 con el estado del transportista y devuelve evidencia de la demora.",
12)

Los programas pueden llamar a funciones y herramientas personalizadas, MCP, apply_patch, shell e intérprete de código, pero no a la búsqueda web ni a la búsqueda de archivos. La Búsqueda de Herramientas de nivel superior debe cargar una herramienta diferida antes de que comience el programa; un programa en ejecución no puede buscar herramientas.

Mantén las llamadas directas cuando el siguiente paso necesite juicio del modelo, aprobación, citas o un efecto secundario. Usa un programa cuando reglas claras permitan que el código devuelva un resultado más pequeño sin perder evidencia. La ejecución alojada cambia dónde se ejecuta el trabajo, la Búsqueda de Herramientas cambia qué definiciones entran en contexto y las llamadas programáticas cambian qué resultados regresan. Combínalos cuando una evaluación muestre que la corrección se mantiene mientras los tokens, la latencia o el costo mejoran.

Bonus: mantén bucles largos de herramientas en una sola conexión

Si un agente cambia repetidamente entre el modelo y las herramientas propiedad del cliente, el modo WebSocket de Responses puede reducir la sobrecarga de continuación. El socket conecta tu arnés a Responses; no hace que las herramientas se ejecuten más rápido. Acepta los mismos campos response.create para funciones, MCP, Búsqueda de Herramientas y Llamada Programática a Herramientas, aunque la documentación no evalúa todas las combinaciones. OpenAI ha observado hasta un 40% más de velocidad de ejecución en despliegues con 20 o más llamadas, así que mide tu flujo de trabajo.

Pruébalo con tu agente

Toma un Appshot de este artículo, abre tu proyecto de agente en Codex y pega:

Usa este artículo y el código base actual para mejorar la ruta de herramientas de este agente. Agrupa herramientas grandes o de uso poco frecuente y habilita la Búsqueda de Herramientas para diferirlas. Encuentra etapas acotadas donde la Llamada Programática a Herramientas pueda ejecutar llamadas en paralelo y devolver resultados compactos. Mantén las decisiones semánticas, aprobaciones, citas y efectos secundarios como llamadas directas. Compara ambas rutas en cuanto a corrección, cobertura de evidencia, éxito de herramientas, tokens, latencia, reintentos y costo antes de cambiar el enrutamiento de producción.

Recrear en YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales