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 bajo límites de seguridad estrictos que aplica el orquestador, nunca el modelo.
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
max_steps, max_urls y max_seconds se aplican fuera del modelo, por lo que una ejecución nunca puede superar el presupuesto que usted define.
Respuestas legibles por máquina
Defina output_format como json cuando el resultado alimente un sistema posterior en lugar de a un lector humano.
Endpoint
/api/v1/tools/agentParameters
max_* son paradas estrictas aplicadas por el orquestador, no sugerencias que se pasan al modelo. Una ejecución que alcance uno devuelve lo que haya reunido hasta ese momento, con stop_reason indicando qué límite se activó.| Name | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Required | - | Descripción en lenguaje natural de lo que necesita. Debe tener al menos 10 caracteres. Example: Find the current pricing tiers for the top 3 MCP web-scraping providers |
max_steps | number | Optional | 10 | Límite estricto de pasos de planificación y ejecución (1-50). Example: 10 |
max_urls | number | Optional | 20 | Límite estricto de cuántas URLs puede visitar el agente (1-100). Example: 20 |
max_seconds | number | Optional | 120 | Límite estricto de tiempo real para toda la ejecución, en segundos (10-600). Example: 120 |
output_format | string | Optional | "markdown" | Forma de la respuesta: `text`, `json` o `markdown`. Example: markdown |
Ejemplos de solicitud
cURL
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",
"max_steps": 10,
"max_urls": 20,
"max_seconds": 120,
"output_format": "markdown"
}'TypeScript
const response = await fetch('https://crawlforge.dev/api/v1/tools/agent', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt: 'Find the current pricing tiers for the top 3 MCP web-scraping providers',
max_steps: 10,
max_urls: 20,
max_seconds: 120,
output_format: 'markdown',
}),
});
const data = await response.json();
if (data.success) {
console.log('Answer:', data.data.answer);
console.log('Steps taken:', data.data.steps_taken);
console.log('Sources read:', data.data.urls_visited);
// Anything other than 'completed' means a hard limit stopped the run early.
if (data.data.stop_reason !== 'completed') {
console.warn('Stopped early:', data.data.stop_reason);
}
console.log('Credits used:', data.credits_used);
console.log('Credits remaining:', data.credits_remaining);
} else {
console.error('Error:', data.error);
}Python
import requests
import os
response = requests.post(
'https://crawlforge.dev/api/v1/tools/agent',
headers={
'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
'Content-Type': 'application/json',
},
json={
'prompt': 'Find the current pricing tiers for the top 3 MCP web-scraping providers',
'max_steps': 10,
'max_urls': 20,
'max_seconds': 120,
'output_format': 'markdown'
}
)
data = response.json()
if data['success']:
print(f"Answer: {data['data']['answer']}")
print(f"Steps taken: {data['data']['steps_taken']}")
print(f"Sources read: {data['data']['urls_visited']}")
# Anything other than 'completed' means a hard limit stopped the run early.
if data['data']['stop_reason'] != 'completed':
print(f"Stopped early: {data['data']['stop_reason']}")
print(f"Credits used: {data['credits_used']}")
print(f"Credits remaining: {data['credits_remaining']}")
else:
print(f"Error: {data['error']}")Ejemplo de respuesta
{ "success": true, "data": { "prompt": "Find the current pricing tiers for the top 3 MCP web-scraping providers", "answer": "## Pricing comparison\n\n- **CrawlForge** — Free (1,000 credits), Hobby $19/mo, Professional $99/mo...", "output_format": "markdown", "steps_taken": 6, "urls_visited": [ "https://example.com/pricing", "https://example.org/plans" ], "limits": { "max_steps": 10, "max_urls": 20, "max_seconds": 120 }, "stop_reason": "completed" }, "credits_used": 8, "credits_remaining": 992, "processing_time": 8420}data.answerLa respuesta sintetizada, presentada en el `output_format` solicitadodata.steps_takenCuántos pasos de planificación y ejecución utilizó realmente la ejecucióndata.urls_visitedTodas las URLs que leyó el agente al responder: úselas para auditar las fuentesdata.limitsRefleja las paradas estrictas vigentes para esta ejecucióndata.stop_reason`completed` cuando el agente terminó por sí solo; en caso contrario, el límite que lo detuvocredits_usedCredits descontados por esta ejecución (8 por ejecución, sin importar los pasos realizados)credits_remainingSu saldo de credits restanteManejo de errores
Entrada no válida (400 Bad Request)
El prompt tiene menos de 10 caracteres, o un valor max_* está fuera de su rango permitido (max_steps 1-50, max_urls 1-100, max_seconds 10-600).
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 max_steps 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.
stop_reason distinto de completed sigue costando 8 credits. Empiece con un max_seconds ajustado mientras afina el prompt y súbalo cuando el agente termine de forma fiable por sí solo.Coste en credits
Plan Free: 1,000 credits por única vez = 125 ejecuciones
Plan Hobby: 5.000 credits/mes = 625 ejecuciones (19 USD/mes)
Plan Professional: 50.000 credits/mes = 6.250 ejecuciones (99 USD/mes)
Plan Business: 250.000 credits/mes = 31.250 ejecuciones (399 USD/mes)