Skip to content

feat(ax): Agentic Experience operando b2g 0.10.0 — caso de uso + fricciones (backward chain, co-citación, footguns invisibles) #204

Description

@complexluise

Caso de uso

Un agente LLM (Claude, operando b2g por CLI) condujo una investigación bibliométrica real
de punta a punta: "recomendaciones de arquitectura de agentes de IA desde la perspectiva
AI-in-the-loop"
. Reparto de roles: el humano fue la autoridad de decisión (framing,
precisión-vs-esfuerzo, aportó el paper canónico); el agente operó la herramienta —el propio
patrón AI-in-the-loop—. Resultado: corpus de 706 papers, red de acoplamiento de 506
nodos / 16 935 aristas, 8→5 comunidades Louvain, muestreo estratificado por cluster e informe
final.

Este issue reporta la Agentic Experience (AX): ¿qué tan operable por un agente es b2g?
No "¿es usable por un humano?", sino: ¿da estado, próximos pasos, errores accionables y
contratos de salida para correr el lazo sin interrumpir al humano de más?

Veredicto: de las CLIs más agente-native que se vieron. Las fricciones de abajo son los
puntos donde el lazo se rompe y el agente tuvo que improvisar o devolver el problema al humano.

Qué funcionó (no tocar)

  • --json en todos los comandos + contratos de salida estables.
  • status con "Próximo mejor paso" → affordance explícito, oro para un agente.
  • Honest-empty con reason + fix_command (p. ej. co-citación vacía).
  • --preview (dry-run) para dimensionar sin gastar red.
  • GraphML con community (Louvain) / degree_centrality / curation_status por nodo →
    permitió muestreo estratificado sin comando de clusters.
  • snapshot + corpus_hash (reproducibilidad de un comando).
  • Artefactos abiertos (duckdb, GraphML) → el agente pudo caer a duckdb/networkx cuando la
    CLI no cubría algo, sin quedar encerrado.

Hallazgos accionables (checklist; cada ítem ≈ sub-issue candidato)

P1 — rompen el lazo

  • BUG chain --direction backward reporta "Candidatos encontrados: 0" pese a que
    --preview lista miles (5318) y los candidatos no están en el corpus; devuelve instantáneo,
    sin error, y a la vez imprime "Top candidatos por scent". Output contradictorio. Sin
    backward no se puede traer la base intelectual/fundacionales.
  • Co-citación inalcanzable y sin camino claro. read top --kind cocitation → vacío →
    fix sugerido b2g enrich; pero enrich (a) está deprecado (→ "usá chain"), y (b) solo
    puebla cited_by_id de seeds aceptadas (por defecto 0). chain --direction forward trae
    citantes pero no puebla cited_by_id → la red sigue vacía. Tres comandos tocan
    cited_by_id y ninguno solo lo completa. Propuesta: que chain forward pueble cited_by_id,
    y/o honest-empty con el camino feliz único (accept + repoblar).

P2 — fricción alta

  • Deprecaciones invisibles hasta runtime. enrich y filter están deprecados, pero el
    --help no lo dice; el agente se entera al ejecutar. Marcar [DEPRECATED → X] en la 1ª línea
    del --help y en el listado de comandos.
  • OpenAlex sin red de contención. seed --max-results >100429 en la página 2;
    queries booleanas grandes → 504/timeout. No hay retry/backoff ni --per-page, y el error
    ("Verificá tu conexión") no distingue rate-limit / server-error / query-pesada. Workaround
    manual: partir en multi-seed liviano de una página (debería ser interno).

P3 — mejoras de AX

  • accept/reject solo por --ids → curación masiva es O(n). Falta --all/--scope/
    --query/--status.
  • Sin clustering/reporte por comunidad nativo. La metadata community ya está en el
    GraphML; faltaría read top --by-community --k N (muestreo estratificado anti-sesgo sin que
    el agente escriba código).
  • Sin data-health. El agente descubrió por su cuenta (vía duckdb): 24% del corpus
    (172/706) sin references_id
    (preprints arXiv → fuera del acoplamiento, incluido el paper
    canónico), duplicados preprint+publicado, y un registro corrupto (abstract que no matchea el
    título). Esto causó una inferencia errónea ("aislamiento" del paper canónico) luego retractada.
    Propuesta: panel de salud en status/validate.
  • Encoding. Abstracts con bytes Windows-1252 rompen pipes UTF-8 en Windows; normalizar
    en export/read.

Confusiones de modelo mental (candidatas a docs)

  • El triángulo enrich / chain / accept y quién puebla cited_by_id.
  • build --scope accepted excluye a los candidate (casi todo el corpus) → corpus casi
    vacío inesperado. Relación is_seed / accepted / candidate poco evidente.
  • "seeds aceptadas" ≠ is_seed=True.
  • Mini-mapa faltante: red → insumo → comando que lo provee (acoplamiento←references_id;
    co-citación←cited_by_id).

Definition of Done

  • Cada P1 triado a su propio issue con repro mínimo (o arreglado).
  • Deprecaciones visibles en --help (P2).
  • Decisión registrada sobre el camino canónico de co-citación.
  • Backlog creado para los P3 priorizados.

Informe AX completo (con evidencia y citas de comandos): INFORME-AX-bib2graph.md en el
proyecto del usuario. Reportado desde la perspectiva del agente operador (AI-in-the-loop).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions