Skip to content

[T20] Tools adicionales: fetch_paper, search_news, query_vector_store, explain_concept #8

Description

@johnma96

Objetivo

Completar el set de tools del agente a cinco o más, agregando dos fuentes de
datos nuevas (noticias tech y Wikipedia).

Contexto

Con una sola tool el agente no tiene decisiones interesantes que tomar. Con
cinco, la elección de herramienta se vuelve el comportamiento central del agente
y el enrutamiento se puede evaluar.

Criterios de aceptación

  • fetch_paper(paper_id) — recupera un paper específico por ID de arXiv
  • search_news(query) — noticias tech; cliente nuevo en
    infrastructure/data/
  • query_vector_store(query) — expone la búsqueda local como tool explícita
    en vez de nodo fijo
  • explain_concept(concept) — definiciones vía Wikipedia API
  • Cada tool con esquema Pydantic y docstring orientado a la decisión del LLM
  • Las cinco tools registradas en el grafo
  • Al menos 4 tests unitarios (uno por tool nueva) con clientes mockeados
  • Un test de enrutamiento: 4 queries distintas, verificar que el agente
    elige la tool esperada en cada caso
  • Claves de API nuevas en config.py vía Pydantic Settings, nunca
    hardcodeadas
  • .env.example actualizado

Capas afectadas

  • application/agents/research_agent/tools.py — cuatro tools nuevas
  • infrastructure/data/news.py — nuevo cliente
  • infrastructure/data/wikipedia.py — nuevo cliente
  • config.py — claves nuevas
  • .env.example

Decisiones a documentar

Fuente de noticias. NewsAPI tiene tier gratuito con límites de request y
retraso de 24h en el plan free. RSS con feedparser es gratis e ilimitado pero
requiere curar la lista de feeds. Elegir y justificar el trade-off.

¿query_vector_store como tool o como nodo fijo? Si es tool, el agente
decide si buscar localmente — más flexible, pero puede decidir mal y omitir
contexto disponible. Si es nodo fijo, siempre busca local primero. Decidir.

Objetivo de aprendizaje

Diseño de tools: cómo el docstring y el esquema determinan si el LLM elige bien.
Aprender que la calidad del enrutamiento depende más de la descripción de la tool
que del modelo.

Fuente de verdad para "el agente eligió bien"

Sin un criterio explícito, este issue no se puede cerrar. Definir en el issue,
antes de codear, las 4 queries de prueba y qué tool debería elegir cada una.

Fuera de alcance

Briefing, memoria, Docker.

Estimación

9h

Depende de

T19.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions