agentviz
agent-viz
Activo continuo que amplía la comunicación entre humanos y agentes de IA, del chat a lo visual (gráficos, diagramas de árbol, mapas de calor, diagramas de flujo). Se comparte entre Kaggle / AtCoder Heuristic / desarrollo de modelos de trading.
Política de composición (basada en la investigación del 2026-08-24)
Columna vertebral del registro = MLflow (file store local). El agente escribe y el humano ve con
mlflow uiGráficos personalizados = HTML autocontenido (Plotly). Se renderizan en línea en la vista de artefactos de MLflow
Lo que se mantiene por cuenta propia es solo una capa fina de «esquema común de libro de registro de ensayos», «componentes de informe» y «adaptadores de dominio»
Fuente original de la investigación: KnowledgeBase 00_Inbox/人間とAIエージェントのビジュアル意思疎通ツール 調査メモ
Related MCP server: relationship-manager
Fase 0 (implementada)
agentviz.schema— Esquema común de libro de registro de ensayos. 1 ensayo = TrialRecord, caso = seed / fold / períodoagentviz.ledger— TrialLedger. log_trial / fetch_trials hacia MLflowagentviz.report— build_report. HTML autocontenido con tabla de libro de registro de ensayos + evolución de métricas + mapa de calor de puntuaciones relativas por caso × por ensayo
Uso
# セットアップ
.venv\Scripts\python.exe -m pip install -e .[dev]
# テスト
.venv\Scripts\python.exe -m pytest
# デモ(合成AHCデータで台帳→レポート→MLflow記録)
.venv\Scripts\python.exe demo\generate_demo.py
# UI(共有ストアを表示)
.venv\Scripts\python.exe -m mlflow ui --backend-store-uri "<store path>"El almacén predeterminado es %AGENTVIZ_STORE%; si no está configurado, ~\dev\Projects\agent-viz\store.
Fase 1 (implementada)
agentviz.adapters.ahc— Importación del formato de medición real del runner AHC propio.from_results_json(results/*.json) yfrom_experiments_jsonl(1 línea = 1 experimento. Las líneas rotas se devuelven como error y se continúa; las líneas con metrics vacías se rescatan recalculando a partir de los resultados por seed; las rutas absolutas de otros dispositivos se resuelven por nombre de archivo conresults_dir)agentviz.adapters.kaggle—from_cv(fold_scores, lb_score=...). Caso = fold, LB es la métricalb_score. Para competiciones donde la métrica se define como el promedio de puntuaciones por etiqueta, como macro AUC / macro F1, dispone defrom_per_label(label_scores, label_meta=..., metric_name="macro_auc")(caso = etiqueta). No se llama a la métrica principalcv_meanpara no confundir la variación entre folds (fluctuación de la medición) con la brecha entre etiquetas (diferencia de capacidad). Lo que se puede mover es lo segundo.label_metaentra en el meta del caso y sirve de material para la estratificación por densidad de supervisión o número de positivosagentviz.adapters.trade—from_walkforward(windows, ...). Caso = ventana de walk-forward. OOS es la métricaoos_score; el HTML de la hoja de resultados se adjunta conlog_trial(artifact_paths=...)agentviz.report— Se añade el diagrama de dispersión de brecha de generalización (se muestra automáticamente cuando hay 2 o más ensayos conlb_score/oos_score. CV vs LB = IS vs OOS se tratan de forma isomórfica)agentviz.replay—build_replay(frames, infos, events). Esqueleto del replay propio de ahc069 (barra de búsqueda, reproducción, avance fotograma a fotograma, teclas ←→, salto por clic en evento) generalizado de forma independiente del dominio en HTML autocontenido
Confirmado con datos reales: se importaron 1133 ensayos de AtCoder\ahc\ahc069\experiments.jsonl (1191 líneas), con resolución de casos por seed en 1130 ensayos (examples/ingest_ahc069.py).
Fase 2 (implementada) — Bidireccionalidad
agentviz.feedback— Almacén original de comentarios estratificados (JSONL de solo añadido,store/feedback.jsonl). add / list / resolveagentviz.panel— Panel Gradio y servidor MCP a la vez. El humano ve el libro de registro de ensayos y el mapa de calor, envía señalamientos estratificados (ensayo objetivo, caso objetivo, instrucción, prioridad), y el agente los lee con herramientas MCP, los atiende y los cierra conresolve_feedback
# パネル起動(http://127.0.0.1:7861、ポートは AGENTVIZ_PANEL_PORT で変更)
.venv\Scripts\python.exe -m agentviz.panel# Claude Code への登録(パネル起動中に)
claude mcp add --transport http agentviz http://127.0.0.1:7861/gradio_api/mcp/Incluso sin usar MCP, se puede leer y escribir directamente con gradio_client o agentviz.feedback.FeedbackStore.
En entornos donde la selección del desplegable de la UI no se refleja, el botón «Recargar» es un respaldo fiable.
Fase 3 (implementada) — Puntos de decisión
Mientras que feedback trata el señalamiento → respuesta de un solo intercambio, del tipo «esta capa es débil, arréglala»,
decisions trata cuestiones del tipo «no se puede avanzar hasta que se decida cuál adoptar». Como la forma es distinta, están separados.
agentviz.decisions— Almacén de puntos de decisión (JSONL de solo añadido,store/decisions.jsonl). propose / decide / supersedeLas opciones tienen un flag
measured. Si no se pueden mostrar las opciones no medidas junto a las medidas, se malinterpreta «lo mejor entre lo medido» como «lo mejor»Con
blocksse mantienen dependencias entre decisiones.ready()devuelve solo las que tienen resueltas sus dependenciasCada opción apunta a ensayos del libro de registro con
evidence_trials
Reparto de fuentes originales: la descripción de los juicios ya determinados tiene como fuente original el Vault de KnowledgeBase.
decisions mantiene la superficie de trabajo (opciones, enlaces de evidencia, estado) y apunta al lado del Vault con vault_ref.
No se mantiene el mismo texto en ambos.
decide es la boca para registrar el juicio humano. El agente presenta las opciones (propose_decision) y
el humano elige. chosen se limita a claves registradas; no se acepta texto libre (porque luego no se podría rastrear mecánicamente).
revise_option solo revisa, con justificación, el estado de la evidencia (evidence_trials / measured / note)
(la evidencia en el momento del registro siempre permanece en el historial como evento).
Alineación de perspectiva (implementada) — Agente → humano
feedback es humano → agente, y decisions es el libro de contabilidad de las cuestiones. Faltaba una dirección más:
un medio para que la pantalla del humano coincida con qué comparación está mirando el agente al hablar.
Aunque el agente diga «si nos limitamos a 9 etiquetas, 8 victorias y 1 derrota», si el humano está viendo otra comparación, los números no cuadran. Re-transmitir las condiciones con palabras es un juego del teléfono roto; de hecho, en este intercambio se volvió ambiguo si se había «excluido» o «visto todo».
agentviz.viewstate— Almacén de señalamiento (JSONL de solo añadido,store/viewstate.jsonl). point / clear / current / historyHerramienta MCP
point_at_comparison— Envía al panel la referencia, el candidato y los casos excluidos de la agregación, y en la misma llamada devuelve también los números de esa comparación (si se toman por separado pueden discrepar).notees obligatorio. Un cambio de pantalla sin razón no es más que «se cambió solo» desde la perspectiva del humanoHerramienta MCP
clear_comparison_pointer/ botón «Liberar señalamiento» del panel
No se reescribe ni el libro de registro ni las decisiones. No es una observación ni un juicio, sino un puntero para alinear la perspectiva. No sobrescribir en silencio la elección del humano es el punto clave del diseño; el panel, al aplicar, muestra siempre «quién lo especificó, cuándo y para qué», y añade una vía para liberarlo.
Vista de juicio (implementada)
Como en la práctica real apareció repetidamente que «solo con la tabla de clasificación de promedios» no se puede juzgar, se ha convertido en componentes el esqueleto del juicio. Todo se ofrece en dos caras: humano = figura / agente = JSON.
Diferencia por pares
paired_diff— Diferencia por caso entre 2 ensayos. Advierte cuando el signo del promedio y la mayoría de casos discrepan (si discrepan, no se puede sostener la clasificación. Se disparó varias veces con datos reales). Concasesse puede limitar la agregación a un subconjunto. Es la vía para no mezclar en el promedio casos cuyas condiciones no son iguales en ambos ensayos; en RSNA, la diferencia de las 3 etiquetas sin gradiente era ruido y diluía el promedio de las 12 etiquetas, con una desviación de 3 veces entre el promedio -0.040 y la mediana -0.104. Los casos excluidos entran siempre enexcluded_casesy no se eliminan de la figura, sino que permanecen en gris (si se eliminan, el lector no puede distinguir si se eligió un subconjunto conveniente o se excluyeron casos con condiciones distintas). El panel también tiene un campo de selección de «casos a excluir de la agregación (múltiples)»; al seleccionarlos, la figura y las estadísticas se actualizan al momento (misma función quecasesde MCPcompare_trialsy el tercer elemento depairsdebuild_report)Medias estratificadas
strata_means— Muestra «en esta capa la clasificación se invierte». La definición de las capas (conocimiento de dominio) la tiene quien llamaPalanca de decisión
decision_leverage— Qué decisión conviene resolver primero. Las 2 premisas (1 decisión = 1 factor, solo opciones vivas) se incluyen siempre como premisesDetalle por caso
case_scores/ diagrama de puntos — La «dificultad absoluta del caso» que desaparece en el mapa de calor relativo se hace ver pasivamente como orden de disposiciónMargen de oráculo
headroom— Para propuestas de relajación de restricciones (scheduled sampling, etc.), antes de implementar se mide el límite superior con una ejecución de oráculo. Se incluyen en premises: el oráculo no es adoptable, es el límite superior, y si está por debajo del umbral se descarta sistemáticamenteDiagrama de dispersión de brecha de generalización — Se muestra automáticamente cuando hay 2 o más ensayos con
lb_score/oos_score
Componentes operativos
Archivo de ensayos
set_archived/archive_trial— Oculta de forma reversible los ensayos ya resueltos al avanzar de fase, y mantiene la resolución de la visualización (no se eliminan. El historial permanece en MLflow)Modo oscuro — Los informes son compatibles con prefers-color-scheme (las figuras de Plotly lo siguen con relayout)
17 herramientas MCP del panel (13 de lectura + escritura: familia
add_feedback·decide/archive_trial·point_at_comparison/clear_comparison_pointer. Las 2 últimas no cambian el libro de registro; solo mueven la comparación que ve la pantalla del humano)
Ejemplos de aplicación en operación real (casos de estudio)
kaggle-store-sales-workflow — Diseño de validación de series temporales. 12 decisiones contabilizadas como puntos de decisión, operando todo —diseño de partición, línea base, características, adopción o no— con «medir y luego decidir». Hasta análisis de transferencia a LB de la mejora de CV
kaggle-house-prices-workflow — Selección de modelo con nested-CV. Primera aplicación donde el mapa de calor por caso detectó una inversión estratificada oculta en la clasificación de promedios
rsna-knee-abnormality-detection— Clasificación de 12 etiquetas con supervisión débil (macro ROC-AUC). Primera aplicación defrom_per_label. Al estratificar las etiquetas por densidad de supervisión, las 8 etiquetas densas dan 0.751 frente a 0.525 en las 4 etiquetas con supervisión agotada, y 1/3 de la métrica está prácticamente sin aprender, lo que salió a la luz bajo el promedio de 0.6807. En la comparación siguiente también se descubrió que se necesita limitar la agregación de la diferencia por pares (con las 12 etiquetas el promedio es -0.040, pero limitado a las etiquetas con gradiente, la palanca es -0.090. Si se hubiera decidido la adopción solo con el promedio, se habría subestimado a menos de la mitad)examples/ingest_ahc069.py— Importación de 1133 ensayos de los registros de medición real del runner propio de AHC
Hoja de ruta
Visualización de la matriz de correlación de residuos (se hizo a mano para el juicio de diversidad de blends. Candidata a componente)
Almacén de capas con nombre (persistencia del «señalamiento» del humano)
run alias (referenciar la misma medición desde múltiples contextos de decisión. Lección aprendida de que la reutilización de ensayos rompió la visibilidad)
Adaptador de formato pahcer (se añadirá cuando se obtenga la salida real)
Optimización de tamaño de los informes (con Plotly incluido, ~4,9 MB/hoja. Medido: no supone obstáculo para la lectura del agente)
This server cannot be deployed
Maintenance
Related MCP Connectors
Evidence-graded agent-work lanes, bid advice, live agent jobs and a hash-chained evidence ledger.
Tribeunal turns a question into a jury's verdict. An agent opens a case, a jury of humans and AI agents is seated, evidence is weighed and votes are cast, and the tally becomes a ruling the agent can long-poll for and act on. 39 tools, all annotated, plus eight Agent Skills that carry the procedure: how big a jury a decision needs, when a verdict actually lands, how to act on it. Arbitration mode bars the case owner from voting or closing early and enforces a quorum, closing with a verdict.
Machine-native research commons for agent evidence, discovery, rooms, and bounded research quests.
Read, edit and improve shared documents and knowledge with people and agents.
1
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables human-led defensive cyber investigations by letting agents and people share visible case state, review synthetic evidence metadata, prioritize explainable signals, draft findings that require human approval, and generate incident summaries.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search people, retrieve evidence-backed facts and timelines, prepare briefs, rank reconnect opportunities, and propose outreach while keeping writes human-approved.MIT
- AlicenseNot gradedqualityDmaintenanceEnables agent clients to perform read-only regulatory retrieval through tools for searching the corpus, retrieving source text, tracing citations, listing authorities, and inspecting recent filings. It is designed to keep regulated actions and workspace changes behind human review gates.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to pull work from an event log, update and close tasks with conclusions, and lets humans review, decide, and sign off through a web board with shared unread cursors and an auditable event stream.Apache 2.0