Saltar al contenido
Impulsado por IAAutónomo8 credits

agent

Investigación y extracción autónomas a partir de un prompt en lenguaje natural, sin necesidad de URLs. El agente planifica sus propios pasos, encuentra y lee sus propias fuentes y da forma a una respuesta dentro de los límites estrictos maxSteps y maxUrls que usted define.

Casos de uso

Investigación abierta

Responda preguntas que abarcan sitios que aún no ha identificado: el agente descubre sus propias fuentes en lugar de recibir una lista de URLs.

Instantáneas competitivas

Pida los niveles de precios actuales o el conjunto de funciones de un competidor y obtenga una respuesta sintetizada en lugar de un montón de HTML sin procesar.

Autonomía acotada

maxSteps (límite estricto 10) y maxUrls (límite estricto 20) acotan cada ejecución, por lo que nunca puede superar el presupuesto que usted define.

Respuestas legibles por máquina

Pase un schema cuando el resultado alimente un sistema posterior en lugar de a un lector humano, y el agente devuelve un objeto estructurado en vez de prosa.

Endpoint

POST/api/v1/tools/agent
Auth Required
1 req/s en el plan Free
8 credits

Parameters

NameTypeRequiredDefaultDescription
prompt
stringRequired-
Tarea o pregunta en lenguaje natural que el agente debe responder. De 1 a 2000 caracteres.
Example: Find the current pricing tiers for the top 3 MCP web-scraping providers
urls
arrayOptional-
URLs semilla opcionales para incluir en la ejecución. El agente sigue descubriendo sus propias fuentes más allá de estas, salvo que el prompt las señale ("this page", "these URLs", "the given site"): en ese caso no se ejecuta ninguna búsqueda web y la respuesta sale solo de las URLs semilla. Hasta 20.
Example: ["https://example.com/pricing"]
schema
objectOptional-
Esquema JSON opcional. Proporcione uno para obtener un objeto estructurado en `answer` en lugar de prosa.
model
stringOptional"default"
`default` ejecuta el bucle de planificación integrado. `pro` es **rechazado por la API REST** —requiere confirmación interactiva—, así que ejecute pro en el servidor MCP de CrawlForge.
Example: default
maxSteps
numberOptional5
Número máximo de iteraciones de obtención que puede realizar el agente. Límite estricto 10.
Example: 5
maxUrls
numberOptional10
Número máximo de URLs que el agente puede obtener. Límite estricto 20.
Example: 10
max_inline_chars
numberOptional40000
Tamaño máximo del resultado que se devuelve en línea, en caracteres de su JSON (de 1.000 a 10.000.000). Por encima, la respuesta incluye `preview` (los primeros `max_inline_chars` caracteres de `answer`, o del JSON formateado cuando un `schema` convierte `answer` en un objeto), `result_handle`, `total_chars`, `truncated: true` y `expires_at`, y [read_result](/docs/api-reference/tools/read-result) lee el resto por 1 credit por llamada. Los resultados almacenados se conservan 1 hora.
Example: 40000

Ejemplos de solicitud

cURL

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/agent \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Find the current pricing tiers for the top 3 MCP web-scraping providers",
    "maxSteps": 5,
    "maxUrls": 10
  }'

TypeScript

agent.tsTypescript
// npm install crawlforge-sdk
import { CrawlForge } from 'crawlforge-sdk';

const client = new CrawlForge({ apiKey: process.env.CRAWLFORGE_API_KEY });

const result = await client.agent({
  prompt: 'Find the current pricing tiers for the top 3 MCP web-scraping providers',
  maxSteps: 5, // fetch iterations, hard cap 10
  maxUrls: 10, // URLs to fetch, hard cap 20
  // Optional: seed the run with URLs you already trust (max 20)
  // urls: ['https://example.com/pricing'],
  // Optional: pass a JSON schema to get a structured answer instead of prose
  // schema: { type: 'object', properties: { /* ... */ } },
});

// result.data is untyped in crawlforge-sdk 0.1 — its shape is the Response Example below.
const { answer, steps_taken, sources } = result.data as {
  answer: string; steps_taken: number; sources: { url: string; title: string }[];
};
console.log('Answer:', answer);
console.log('Steps taken:', steps_taken);
console.log('Sources read:', sources);

console.log('Credits used:', result.creditsUsed);
console.log('Credits remaining:', result.creditsRemaining);

Python

agent.pyPython
# pip install crawlforge
from crawlforge import CrawlForge

client = CrawlForge()  # reads CRAWLFORGE_API_KEY

result = client.agent(
    prompt='Find the current pricing tiers for the top 3 MCP web-scraping providers',
    maxSteps=5,  # fetch iterations, hard cap 10
    maxUrls=10,  # URLs to fetch, hard cap 20
    # Optional: seed the run with URLs you already trust (max 20)
    # urls=['https://example.com/pricing'],
    # Optional: pass a JSON schema to get a structured answer instead of prose
    # schema={'type': 'object', 'properties': {}},
)

# result.data is a plain dict — its shape is the Response Example below.
print(f"Answer: {result.data['answer']}")
print(f"Steps taken: {result.data['steps_taken']}")
print(f"Sources read: {result.data['sources']}")

print(f"Credits used: {result.credits_used}")
print(f"Credits remaining: {result.credits_remaining}")

Ejemplo de respuesta

200 OK13820ms
{
"success": true,
"data": {
"answer": "## Pricing comparison\n\n- **CrawlForge** — Free (1,000 credits), Hobby $19/mo, Professional $99/mo...",
"sources": [
{
"url": "https://example.com/pricing",
"title": "Example — Pricing"
},
{
"url": "https://example.org/plans",
"title": "Example Org — Plans"
}
],
"steps_taken": 3,
"urls_fetched": 5
},
"credits_used": 8,
"credits_remaining": 992,
"processing_time": 13820
}
Field Descriptions
data.answerLa respuesta sintetizada: prosa de forma predeterminada, o un objeto estructurado cuando pasa un `schema`
data.sourcesTodas las fuentes que leyó el agente al responder: úselas para auditar la procedencia
data.steps_takenCuántas iteraciones de obtención utilizó realmente la ejecución
data.urls_fetchedCuántas URLs obtuvo el agente al responder
credits_usedCredits descontados por esta ejecución: 8, más 5 por cada reintento stealth que obtuvo la página (18 como máximo), sin importar los pasos realizados
credits_remainingSu saldo de credits restante

Manejo de errores

Entrada no válida (400 Bad Request)

Falta el prompt o está fuera del rango de 1 a 2000 caracteres, maxSteps/maxUrls están fuera de rango, o model está fijado en pro, que la API REST rechaza porque requiere confirmación interactiva.

Fallo en la ejecución del agente (500 Internal Server Error)

No se pudo completar la ejecución. No se descuentan credits por una ejecución fallida: reinténtelo con un prompt más acotado o un maxSteps menor.

Credits insuficientes (402 Payment Required)

Su cuenta no tiene suficientes credits. Compre más credits o mejore su plan.

Límite de velocidad superado (429 Too Many Requests)

Ha superado el límite de velocidad de su plan. Espere un momento o mejore su plan para obtener límites más altos.

Coste en credits

8 credits
8 credits por ejecución, más 5 por reintento stealth
Cada ejecución del agent cuesta 8 credits sin importar cuántos pasos dé ni cuántas URLs visite: los límites que define acotan cuánto obtiene el agente, no el precio. Cuando una página que necesita está bloqueada (una página de desafío, 403/429, una página vacía o un tiempo de espera agotado), el agente la reintenta en un navegador stealth sin que se lo pida, y cada reintento que obtiene la página suma 5 credits. Un reintento que vuelve a ser bloqueado no cuesta nada. Hay como máximo 2 reintentos por ejecución, así que una ejecución nunca cuesta más de 18, que es también lo que se reserva antes de empezar.

Plan Free: 1,000 credits por única vez = 125 ejecuciones

Plan Hobby: 5.000 credits/mes = 625 ejecuciones (19 USD/mes)

Plan Professional: 100.000 credits/mes = 12.500 ejecuciones (99 USD/mes)

Plan Business: 500.000 credits/mes = 62.500 ejecuciones (399 USD/mes)

Herramientas relacionadas