Objetivo
Convertir search_papers en una tool tipada que el agente pueda decidir invocar,
y agregar el nodo de tool-calling al grafo de T18.
Contexto
infrastructure/data/arxiv.py ya tiene search_papers(query, max_results)
funcionando. Hoy solo se llama desde el pipeline de ingesta offline. Como tool,
el agente puede invocarla en tiempo de consulta — primer paso hacia responder
sobre temas que no están en el corpus indexado.
Esto ataca directamente el comportamiento observado el 12/08: el bot dice "no
tengo contexto" cuando la pregunta cae fuera de los papers indexados, porque el
corpus tiene solo 5 papers de "LLM agents reasoning".
Criterios de aceptación
Capas afectadas
application/agents/research_agent/tools.py — nuevo, definición de tools
application/agents/research_agent/ — el grafo gana un nodo y una conditional
edge
infrastructure/data/arxiv.py — sin cambios, se reusa
Decisiones a documentar
¿Qué hace el agente con un paper de arXiv que no está indexado? La tool
devuelve metadata y abstract, no texto completo chunkeado. Opciones: responder
solo con el abstract (rápido, respuesta más pobre), o disparar ingesta completa
(lento, el usuario espera). Para V2 la primera; la segunda es V6 módulo D. Dejar
registrada la limitación.
Criterio de "recuperación pobre". Hace falta un umbral. Puede ser número de
documentos recuperados, score mínimo de RRF, o una decisión del LLM. Elegir y
justificar.
Objetivo de aprendizaje
Tool calling: cómo el LLM decide invocar una tool a partir del docstring y el
esquema, y cómo el resultado vuelve al estado del grafo. Entender el ReAct loop
en la implementación de LangGraph.
Fuera de alcance
Las otras cuatro tools (T20). Ingesta reactiva completa.
Estimación
4h
Depende de
T18.
Objetivo
Convertir
search_papersen una tool tipada que el agente pueda decidir invocar,y agregar el nodo de tool-calling al grafo de T18.
Contexto
infrastructure/data/arxiv.pyya tienesearch_papers(query, max_results)funcionando. Hoy solo se llama desde el pipeline de ingesta offline. Como tool,
el agente puede invocarla en tiempo de consulta — primer paso hacia responder
sobre temas que no están en el corpus indexado.
Esto ataca directamente el comportamiento observado el 12/08: el bot dice "no
tengo contexto" cuando la pregunta cae fuera de los papers indexados, porque el
corpus tiene solo 5 papers de "LLM agents reasoning".
Criterios de aceptación
default y límite superior)
@toolde LangGraph/LangChain, condocstring que el LLM pueda usar para decidir cuándo invocarla
entre responder directo o llamar la tool
pobres, y no la invoca cuando el contexto local alcanza
ambos casos, con LLM mockeado
learnings.mdqué criterio usa el agente para decidirCapas afectadas
application/agents/research_agent/tools.py— nuevo, definición de toolsapplication/agents/research_agent/— el grafo gana un nodo y una conditionaledge
infrastructure/data/arxiv.py— sin cambios, se reusaDecisiones a documentar
¿Qué hace el agente con un paper de arXiv que no está indexado? La tool
devuelve metadata y abstract, no texto completo chunkeado. Opciones: responder
solo con el abstract (rápido, respuesta más pobre), o disparar ingesta completa
(lento, el usuario espera). Para V2 la primera; la segunda es V6 módulo D. Dejar
registrada la limitación.
Criterio de "recuperación pobre". Hace falta un umbral. Puede ser número de
documentos recuperados, score mínimo de RRF, o una decisión del LLM. Elegir y
justificar.
Objetivo de aprendizaje
Tool calling: cómo el LLM decide invocar una tool a partir del docstring y el
esquema, y cómo el resultado vuelve al estado del grafo. Entender el ReAct loop
en la implementación de LangGraph.
Fuera de alcance
Las otras cuatro tools (T20). Ingesta reactiva completa.
Estimación
4h
Depende de
T18.