CrawlForge
InicioPlaygroundCasos de usoIntegracionesPreciosDocumentaciónBlog
Cómo usar CrawlForge con el Agents SDK de OpenAI
Tutorials
Volver al blog
Tutoriales

Cómo usar CrawlForge con el Agents SDK de OpenAI

C
CrawlForge Team
Equipo de Ingeniería
13 de abril de 2026
8 min de lectura
Actualizado 14 de abril de 2026

En esta página

El Agents SDK de OpenAI ofrece un framework listo para producción para crear agentes de IA autónomos con uso de herramientas, traspasos (handoffs) y guardrails. CrawlForge aporta la pieza que falta: acceso web en vivo. Al conectar las 26 herramientas de scraping de CrawlForge a tus agentes de OpenAI, les permites buscar en la web, extraer datos estructurados, leer documentación y realizar investigación de múltiples fuentes, todo dentro del framework de orquestación del Agents SDK.

Esta guía te muestra cómo definir las herramientas de CrawlForge como funciones de agente de OpenAI y crear agentes que actúan sobre datos web en tiempo real.

Tabla de contenidos

  • Requisitos previos
  • Arquitectura: CrawlForge + agentes de OpenAI
  • Paso 1: Crea las funciones de herramienta de CrawlForge
  • Paso 2: Crea un agente de investigación web
  • Paso 3: Añade extracción de datos estructurados
  • Avanzado: pipeline web multiagente
  • Desglose del coste en credits
  • Buenas prácticas
  • Siguientes pasos

Requisitos previos

Bash
pip install openai-agents
# or for the TypeScript/Node.js SDK:
npm install @openai/agents-sdk dotenv
Bash
# .env
OPENAI_API_KEY=sk-xxxxx
CRAWLFORGE_API_KEY=cf_live_xxxxx

Consigue tu API key de CrawlForge en crawlforge.dev/signup: incluye 1.000 credits gratis.

Arquitectura: CrawlForge + agentes de OpenAI

El Agents SDK de OpenAI usa un patrón de herramienta similar al de la API de function calling pero con una orquestación más rica. Defines las herramientas como funciones con parámetros en JSON Schema, y el agente decide cuándo y cómo invocarlas.

User Query -> OpenAI Agent -> Tool Selection -> CrawlForge API -> Results -> Agent Response

La REST API de CrawlForge en https://crawlforge.dev/api/v1/tools/ se corresponde de forma limpia con el formato de definición de herramientas del Agents SDK. Cada herramienta se convierte en una función que el agente puede invocar.

Paso 1: Crea las funciones de herramienta de CrawlForge

Primero, crea un cliente de CrawlForge reutilizable y las definiciones de herramientas:

Typescript
// lib/crawlforge-tools.ts
import { tool } from '@openai/agents-sdk';
import { z } from 'zod';

const CRAWLFORGE_BASE = 'https://crawlforge.dev/api/v1/tools';

async function callCrawlForge(toolName: string, params: Record<string, unknown>) {
  const response = await fetch(`${CRAWLFORGE_BASE}/${toolName}`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.CRAWLFORGE_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(params),
  });

  if (!response.ok) {
    throw new Error(`CrawlForge error: ${response.status} ${response.statusText}`);
  }

  return response.json();
}

// Search the web (5 credits)
export const searchWebTool = tool({
  name: 'search_web',
  description: 'Search Google and return top results with titles, URLs, and snippets.',
  parameters: z.object({
    query: z.string().describe('Search query'),
    limit: z.number().default(5).describe('Max results to return'),
  }),
  execute: async ({ query, limit }) => {
    return callCrawlForge('search_web', { query, limit });
  },
});

// Extract page content (2 credits)
export const extractContentTool = tool({
  name: 'extract_content',
  description: 'Extract the main readable content from a web page URL.',
  parameters: z.object({
    url: z.string().url().describe('Full URL to extract content from'),
  }),
  execute: async ({ url }) => {
    return callCrawlForge('extract_content', { url });
  },
});

// Structured scraping (2 credits)
export const scrapeStructuredTool = tool({
  name: 'scrape_structured',
  description: 'Extract structured data from a web page using CSS selectors.',
  parameters: z.object({
    url: z.string().url().describe('URL to scrape'),
    selectors: z.record(z.string()).describe('Map of field names to CSS selectors'),
  }),
  execute: async ({ url, selectors }) => {
    return callCrawlForge('scrape_structured', { url, selectors });
  },
});

// Fetch raw URL (1 credit)
export const fetchUrlTool = tool({
  name: 'fetch_url',
  description: 'Fetch raw HTML content from a URL. Cheapest option for simple retrieval.',
  parameters: z.object({
    url: z.string().url().describe('URL to fetch'),
  }),
  execute: async ({ url }) => {
    return callCrawlForge('fetch_url', { url });
  },
});

Paso 2: Crea un agente de investigación web

Crea un agente que use las herramientas de CrawlForge para investigar temas:

Typescript
// agents/researcher.ts
import { Agent, run } from '@openai/agents-sdk';
import {
  searchWebTool,
  extractContentTool,
  scrapeStructuredTool,
} from '../lib/crawlforge-tools';

const researchAgent = new Agent({
  name: 'Web Researcher',
  model: 'gpt-4o',
  instructions: `You are a thorough web researcher. When asked about a topic:
1. Search the web for relevant, recent sources
2. Read the top 2-3 results to gather comprehensive information
3. Synthesize findings into a clear, cited summary
4. Always mention the URLs you sourced data from

Use search_web to find sources, then extract_content to read them.
Prefer extract_content over fetch_url when you need readable text.`,
  tools: [searchWebTool, extractContentTool, scrapeStructuredTool],
});

// Run the agent
async function research(topic: string) {
  const result = await run(researchAgent, {
    messages: [{ role: 'user', content: topic }],
  });

  console.log(result.finalOutput);
  return result;
}

// Example usage
await research('What are the latest trends in web scraping regulation in 2026?');

El agente hará de forma autónoma:

  1. Llamar a search_web para encontrar artículos relevantes (5 credits)
  2. Llamar a extract_content sobre los mejores resultados (2 credits cada uno)
  3. Sintetizar un resumen con citas

Paso 3: Añade extracción de datos estructurados

Crea un agente de extracción de datos que obtenga campos específicos de las páginas web:

Typescript
// agents/extractor.ts
import { Agent, run } from '@openai/agents-sdk';
import { scrapeStructuredTool, fetchUrlTool } from '../lib/crawlforge-tools';

const extractorAgent = new Agent({
  name: 'Data Extractor',
  model: 'gpt-4o',
  instructions: `You are a data extraction specialist. When given a URL and a data request:
1. Determine the best CSS selectors to extract the requested data
2. Use scrape_structured to pull the data
3. Return the results in clean JSON format

For simple JSON APIs, use fetch_url instead (it costs 1 credit vs 2).`,
  tools: [scrapeStructuredTool, fetchUrlTool],
});

async function extractData(url: string, description: string) {
  const result = await run(extractorAgent, {
    messages: [{
      role: 'user',
      content: `Extract from ${url}: ${description}`,
    }],
  });

  return result.finalOutput;
}

// Extract pricing data
await extractData(
  'https://stripe.com/pricing',
  'All plan names, prices, and key features'
);

Avanzado: pipeline web multiagente

El Agents SDK admite traspasos (handoffs) entre agentes especializados. Crea un pipeline donde un investigador encuentra las fuentes y las traspasa a un analista:

Typescript
// agents/pipeline.ts
import { Agent, run } from '@openai/agents-sdk';
import {
  searchWebTool,
  extractContentTool,
  scrapeStructuredTool,
} from '../lib/crawlforge-tools';

const collectorAgent = new Agent({
  name: 'Data Collector',
  model: 'gpt-4o',
  instructions: `You collect raw data from the web. Search for sources,
extract their content, and pass the raw data to the analyst.
Focus on gathering data, not analyzing it.`,
  tools: [searchWebTool, extractContentTool, scrapeStructuredTool],
  handoff_description: 'Collects raw web data for analysis',
});

const analystAgent = new Agent({
  name: 'Data Analyst',
  model: 'gpt-4o',
  instructions: `You analyze data collected by the Data Collector.
Identify patterns, compare data points, and produce actionable insights.
Always structure your output with clear sections and data tables.`,
  tools: [], // No web tools needed -- works with collected data
  handoffs: [collectorAgent], // Can request more data if needed
});

const orchestrator = new Agent({
  name: 'Research Orchestrator',
  model: 'gpt-4o',
  instructions: `You manage research projects. Delegate data collection to
the Data Collector and analysis to the Data Analyst. Ensure the final
output answers the user's question completely.`,
  handoffs: [collectorAgent, analystAgent],
});

// Run the multi-agent pipeline
const result = await run(orchestrator, {
  messages: [{
    role: 'user',
    content: 'Compare the pricing and features of the top 3 web scraping APIs in 2026',
  }],
});

console.log(result.finalOutput);

Este pipeline separa responsabilidades: el recolector reúne datos (usando credits de CrawlForge) y el analista los procesa (sin necesidad de credits). El coste total depende de las fuentes obtenidas: normalmente 15-25 credits para una comparativa de 3 fuentes.

Desglose del coste en credits

Flujo de trabajo del agenteHerramientas usadasCredits estimados
Búsqueda única + resumensearch_web + extract_content7
Investigación de 3 fuentessearch_web + 3x extract_content11
Extracción estructurada (1 página)scrape_structured2
Comparativa multiagente (3 fuentes)search_web + 3x extract_content + scrape_structured15
Informe de investigación profundadeep_research10

El plan Free de CrawlForge (1.000 credits) admite aproximadamente 90 flujos de búsqueda y extracción al mes. El plan Professional ($99/mes, 50.000 credits) gestiona cargas de trabajo de agentes en producción.

Buenas prácticas

Elige primero la herramienta más barata. Las instrucciones del agente deberían guiarlo hacia fetch_url (1 credit) cuando el HTML completo sea aceptable, y extract_content (2 credits) solo cuando se necesite texto limpio. Reserva deep_research (10 credits) para consultas complejas de múltiples fuentes.

Limita los pasos del agente. Establece un número máximo de invocaciones de herramientas para controlar los costes. La mayoría de las tareas de investigación se completan en 3-5 llamadas a herramientas.

Usa traspasos para pipelines complejos. En lugar de un único agente con muchas herramientas, reparte responsabilidades. El agente recolector se encarga del acceso web (credits), mientras que el agente analista procesa los datos (sin credits).

Cachea las salidas de las herramientas. Si tu agente accede repetidamente a la misma URL, implementa caché de respuestas para evitar cargos de credits duplicados.

Monitoriza el uso. Revisa tu consumo de credits en el panel de CrawlForge y configura alertas ante picos inesperados.

Siguientes pasos

Ahora tienes agentes de OpenAI capaces de acceder a datos web en vivo. Sigue construyendo:

  • Resumen de las 26 herramientas de CrawlForge: registra más herramientas para tus agentes
  • Scraping en modo sigiloso: accede a sitios con protección anti-bot
  • Automatización de investigación profunda: usa la herramienta deep_research de 10 credits para informes exhaustivos
  • Inicio rápido de CrawlForge: guía completa de configuración de MCP

Dale a tus agentes de OpenAI ojos en la web. Empieza gratis con 1.000 credits: no se requiere tarjeta de crédito.

Pruébalo tú mismo — sin necesidad de registrarte

Ejecuta cualquiera de las 27 herramientas de scraping y extracción de CrawlForge en el playground y luego empieza gratis con 1,000 credits.

1,000 credits gratis • Se recargan cada mes • No se requiere tarjeta de crédito

Etiquetas

openaiagents-sdkintegrationweb-scrapingai-agentstutorialfunction-calling

Sobre el autor

C

CrawlForge Team

Equipo de Ingeniería

Construimos el MCP server de web scraping más completo. Creamos herramientas que ayudan a los desarrolladores a extraer, analizar y transformar datos web para aplicaciones de IA.

Mantente al día con los últimos artículos

Recibe tutoriales, novedades del producto y consejos de web scraping en tu bandeja de entrada.

Sin spam. Cancela tu suscripción cuando quieras.

Ponlo en práctica

Prueba las herramientas de CrawlForge en cualquier URL — gratis, sin registro.

En esta página

Artículos relacionados

Cómo usar CrawlForge con agentes de LangGraph
Tutorials

Cómo usar CrawlForge con agentes de LangGraph

Construye agentes de web scraping con estado usando LangGraph y CrawlForge. Guía en TypeScript que cubre nodos del grafo, gestión de estado y flujos de scraping condicionales.

C
CrawlForge Team
|
24 abr
|
8m
Cómo usar CrawlForge con agentes de IA de Mastra
Tutorials

Cómo usar CrawlForge con agentes de IA de Mastra

Crea agentes de IA con capacidades de web scraping usando Mastra y CrawlForge. Guía de configuración en TypeScript con integración de herramientas, workflows y ejemplos de agentes.

C
CrawlForge Team
|
21 abr
|
7m
Cómo darle a ChatGPT web scraping con MCP connectors (2026)
Tutorials

Cómo darle a ChatGPT web scraping con MCP connectors (2026)

Conecta ChatGPT al web scraping con MCP connectors personalizados: por qué CrawlForge necesita un wrapper remoto, el puente con FastMCP que hay que construir y cómo añadirlo en ChatGPT.

C
CrawlForge Team
|
16 jun
|
11m

Pie de página

CrawlForge

Web scraping empresarial para agentes de IA. 27 herramientas MCP especializadas diseñadas para desarrolladores modernos que crean sistemas inteligentes.

Producto

  • Funciones
  • Playground
  • Precios
  • Casos de uso
  • Integraciones
  • Alternativas
  • Registro de cambios

Recursos

  • Primeros pasos
  • Referencia de la API
  • Plantillas
  • Guías
  • Blog
  • Glosario
  • Preguntas frecuentes
  • Mapa del sitio

Desarrolladores

  • Protocolo MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Empresa

  • Acerca de
  • Contacto
  • Privacidad
  • Términos
  • Uso aceptable
  • Cookies

Mantente al día

Recibe las últimas novedades sobre nuevas herramientas y funciones.

Creado con Next.js y el protocolo MCP

© 2025-2026 CrawlForge. Todos los derechos reservados.