Un agente de búsqueda de IA puede funcionar en una demo pero fallar bajo cargas de trabajo de producción cuando la recuperación devuelve evidencia incompleta, los reintentos repiten acciones infructuosas o la ejecución excede los límites de tiempo y costo. TinyFish, que proporciona infraestructura web para agentes de IA, ha publicado dos guías técnicas que abordan estos desafíos. La primera define una arquitectura de búsqueda agéntica de producción, mientras que la segunda comparte lecciones de la construcción de un sistema de investigación profunda. En conjunto, examinan cómo un agente de búsqueda autónomo puede planificar la recuperación, evaluar evidencia, manejar fallos y gestionar el límite entre el razonamiento del modelo y la ejecución determinista.
TL;DR
TinyFish presentó su arquitectura de búsqueda agéntica y lecciones clave de ingeniería de la construcción de sistemas de investigación profunda. Construido sobre cuatro primitivas web (TinySearch, TinyFetch, TinyBrowser y TinyAgent), el sistema opera mediante un bucle de control de siete fases en torno al modelo base. En OpenBenchmarks, TinyFish logró una tasa de finalización del 79.0% en tareas de programación mientras ofrecía el costo mediano por tarea más bajo ($0.050) y la menor huella de tokens, destacando la importancia de bucles de control rígidos, reintentos específicos por tipo de fallo y razonamiento unificado frente a planificadores independientes.
¿Qué es la arquitectura de búsqueda agéntica?
La arquitectura de búsqueda agéntica permite a un agente de IA planificar la recuperación, acceder a fuentes, evaluar evidencia y adaptar su enfoque a medida que nueva información está disponible. El modelo aporta el razonamiento, mientras que la aplicación circundante gestiona el estado, la ejecución de herramientas, el manejo de evidencia, las políticas de ejecución y la validación de salidas. En conjunto, estos componentes permiten a un agente manejar resultados incompletos, fallos recuperables y requisitos de información cambiantes.
La arquitectura de TinyFish toma conceptos fundamentales de un preprint de arquitectura de febrero de 2026, que desacopla el razonamiento de la ejecución mediante interfaces de herramientas tipadas. El artículo establece salvaguardas esenciales del sistema, incluyendo trazado detallado junto con límites estrictos de tokens, tiempo de ejecución, costo total e invocaciones de herramientas.
¿Cómo funciona una ejecución de búsqueda en producción?
TinyFish divide una ejecución en 7 fases:
- Definir la tarea: Convertir el objetivo en un «contrato de evidencia»: campos requeridos, fuentes, frescura y reglas de finalización.
- Planificar la recuperación: Separar las necesidades independientes de las dependientes. Las consultas dependientes esperan las respuestas anteriores.
- Elegir la primera ruta: Elija la herramienta según lo que el sistema sabe sobre la evidencia.
- Descubrir, seleccionar, recuperar: Trate los resultados de búsqueda como candidatos hasta que llegue el contenido de la página.
- Evaluar: Etiquete la evidencia como suficiente, incompleta, contradictoria, inaccesible o presupuesto agotado.
- Recuperarse o escalar: Revise la consulta, reintente, cambie de fuentes o cambie el método de acceso.
- Detenerse y validar: Devuelva completado, incompleto, fallido, cancelado o revisión humana requerida.
La fase 2 aborda un fallo conocido. ChainRAG (ACL 2025) lo llama el problema de la 'pérdida en la recuperación' (lost-in-retrieval), donde entidades clave desaparecen durante la descomposición de preguntas multi-hop. La fase 6 se basa en Search-R1, que demuestra cómo los modelos pueden aprender a generar consultas de búsqueda adicionales durante el razonamiento cuando la recuperación inicial es insuficiente. En 7 conjuntos de datos de QA, su búsqueda multi-turno aprendida superó a las líneas base de RAG por 41% (Qwen2.5-7B) y 20% (Qwen2.5-3B).
¿Cómo debería un agente de búsqueda enrutar las herramientas?
El enrutamiento debería seguir la brecha de información, no una escalera fija.
| Condición inicial | Primitiva | Lo que la aplicación todavía controla |
| Ubicación de la fuente desconocida | Search | Planificación de consultas, política de fuentes, detención |
| URL conocida y legible | Fetch | Comprobaciones de completitud, validación de afirmaciones |
| La aplicación debe controlar acciones de la página | Browser | Cada acción, reintento y punto de control |
| Decisiones a lo largo de varias páginas | Agente web | Reglas de negocio, presupuestos, validación |
La escalada no siempre es la solución. Los resultados débiles necesitan una mejor consulta. Las fuentes contradictorias necesitan evidencia más sólida. Una herramienta más pesada no arregla ninguna de las dos cosas.
Los reintentos deben basarse en el tipo de fallo y mantenerse dentro de límites definidos. Los errores transitorios pueden justificar repetir una solicitud, mientras que la evidencia incompleta o contradictoria requiere un enfoque diferente. Los reintentos del navegador también deben tener en cuenta las acciones ya completadas para evitar consecuencias no deseadas, como enviar el mismo formulario dos veces.
better',{'font-size':13,'font-weight':700,fill:G,'text-anchor':'start'}); D.sf.forEach(function(d){var tf=d[0]==='TinyFish',g=el('g',{},s4); var ring=el('circle',{r:tf?17:0,fill:'none',stroke:G,'stroke-opacity':.4,'stroke-width':2},g); var c=el('circle',{r:tf?10:8,fill:tf?G:'#6a6a6a',stroke:'#111','stroke-width':2},g); var t=tx(g,0,0,'',{'font-size':13,'font-weight':700,fill:tf?G:TX,'text-anchor':'start'}); pts[d[0]]={g:g,c:c,t:t,ring:ring,x:sx(d[1]),y:sy(d[2])}}); pts['Exa fast']=pts['Exa deep'];boost(s4,1.2)} var anim4=null,OFF={sf:{'TinyFish':[-16,-20,'end'],'Exa deep':[-14,-18,'end'],'Perplexity':[14,-12,'start'],'Firecrawl':[14,16,'start']}, so:{'TinyFish':[16,0,'start'],'Exa fast':[-14,0,'end'],'Perplexity':[14,0,'start'],'Firecrawl':[14,0,'start']}}; function drawScatter(fromZero){var data=D[cur],start={},t0=null; data.forEach(function(d){var p=pts[d[0]];start[d[0]]=fromZero?{x:sx(0),y:Y0}:{x:p.x,y:p.y};p.tx=sx(d[1]);p.ty=sy(d[2]); p.t.textContent=d[0]+' '+d[2].toFixed(1)+'% · $'+d[1].toFixed(3)}); anim4=function(ts){if(!t0)t0=ts;var f=Math.min(1,(ts-t0)/900),e=1-Math.pow(1-f,3); data.forEach(function(d){var p=pts[d[0]],s=start[d[0]];p.x=s.x+(p.tx-s.x)*e;p.y=s.y+(p.ty-s.y)*e;p.g.setAttribute('transform','translate('+p.x+','+p.y+')'); var o=OFF[cur][d[0]];p.t.setAttribute('x',o[0]);p.t.setAttribute('y',o[1]);p.t.setAttribute('text-anchor',o[2])}); if(f>=1)anim4=null}} build4();chips('c4','b',function(b){cur=b;drawScatter(false)});drawScatter(true); function loop(ts){if(active==='p1'&&run1)run1.tick(ts);if(active==='p3')tick3(ts);if(anim4)anim4(ts); if(pts.TinyFish)pts.TinyFish.ring.setAttribute('r',15+3*Math.sin(ts/220));requestAnimationFrame(loop)} requestAnimationFrame(loop); window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,300); })(); </script> </body></html> ">¿Qué aprendió TinyFish al construir deep research?
El agente de deep research busca, navega y genera informes completos con citas. La mayoría de los desafíos de ingeniería se centraron en la gestión del contexto, la orquestación del sistema y el diseño del producto.
Lección #1: Eliminar el planificador separado
Las iteraciones iniciales usaban un planificador independiente invocado cada vez. Solo el estado estructurado cruzaba hacia él. En consultas de seguimiento como "concéntrate solo en los riesgos de precios en el Sudeste Asiático", el agente regresaba a una investigación de mercado amplia. TinyFish posteriormente trasladó la planificación al bucle unificado de razonamiento del propio orquestador.
Lección #2: Eliminar los subagentes:
TinyFish asignaba inicialmente un subagente separado a cada consulta de búsqueda, lo que aumentaba la sobrecarga de cambio de contexto, la latencia y el costo. El equipo luego reemplazó estos subagentes con llamadas a herramientas para tareas repetibles como clasificar resultados de búsqueda, categorizar fuentes y extraer evidencia. Esto redujo la información devuelta al orquestador, permitiéndole concentrarse en la planificación de la investigación y en decidir qué investigar a continuación.
Lección #3- Emparejar investigadores:
TinyFish optimizó inicialmente su sistema de investigación para la cobertura de fuentes, pero los usuarios daban mayor importancia a la calidad y relevancia de la evidencia de respaldo. El equipo ajustó la clasificación de fuentes para tener en cuenta el objetivo de la investigación y añadió controles para priorizar, excluir o restringir dominios. También desarrolló un arnés de evaluación interno que utiliza un juez LLM para evaluar los informes en cuanto a relevancia, solidez de la evidencia, confianza en las citas y diversidad de fuentes.
¿Cómo se acumulan el costo y la latencia?
TinyFish presupuesta la tarea completa, no las llamadas individuales:
- Latencia de la tarea = planificación + búsqueda + recuperación + evaluación + reintentos + pasos interactivos + espera en cola.
- Costo de la tarea = tokens + llamadas a herramientas + uso de páginas o navegador + reintentos + infraestructura.
SearchAgent-X (ICLR 2026) muestra por qué. La recuperación exacta añadía sobrecarga, y la recuperación gruesa obligaba a un razonamiento adicional. Sus correcciones alcanzaron hasta 3.4x de rendimiento y 5x de menor latencia frente a las líneas base probadas.
¿Cómo se compara TinyFish en búsqueda y obtención?
OpenBenchmarks fija el modelo (gpt-5.6-sol), 100 tareas y presupuestos, y varía solo el proveedor. Las puntuaciones son medias de 3 ejecuciones.
| Métrica | TinyFish | Exa deep | Perplexity | Firecrawl |
| Completación de búsqueda + obtención | 79.0% ± 2.0 | 83.0% ± 1.0 | 77.7% ± 1.5 | 76.0% ± 1.0 |
| Tiempo mediano de tarea | 24s | 37s | 22s | 34s |
| Costo mediano de la tarea | $0.050 | $0.127 | $0.083 | $0.082 |
| Tokens de tarea medianos | 12,844 | 23,660 | 20,062 | 17,379 |
| Finalización solo de búsqueda | 59.3% | 66.3% (Exa fast) | 77.3% | 70.3% |
| Buscar precio de lista | $0 | $0.012 | $0.005 | $0.005 |
Fuente: Panel de OpenBenchmarks, actualizado el 26 de septiembre de 2026. Las tareas cubren únicamente documentación empresarial.
OpenBenchmarks también reporta por separado los resultados de solo búsqueda. En esa configuración, TinyFish logró un 59.3% de finalización de tareas, en comparación con un 77.3% para Perplexity, un 70.3% para Firecrawl y un 66.3% para Exa Fast. Estos resultados no deben compararse directamente con las puntuaciones de búsqueda y recuperación, porque las capacidades de recuperación disponibles difieren.
Puntos clave
- Controle toda la trayectoria, no 1 llamada de búsqueda.
- Enruta según la brecha de información; escala solo cuando falle el acceso.
- Mantenga la planificación y la ejecución en 1 bucle de razonamiento.
- Mueva los pasos deterministas a llamadas de herramientas, no a subagentes.
- Clasifique las fuentes según el objetivo de investigación, no con una única puntuación de calidad.
Lea el guía de arquitectura, el lecciones de deep research y la documentación de TinyFish.
Gracias al equipo de Tinyfish por su liderazgo intelectual / recursos para este artículo. Este artículo está patrocinado por TinyFish.
La entrada TinyFish Desglosa la Arquitectura de Búsqueda Agéntica para Agentes de IA en Producción apareció primero en MarkTechPost.