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: Querytree MCP Server
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables agent settlement, trust verification, and ledger operations for multi-agent workflows, with tools for blueprint management, credit tracking, and provenance recording.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to add decision drafts, evidence, and counterarguments to a shared local decision state, while users confirm or reopen decisions in a web console. Prevents unverified agent answers from being silently turned into code.MIT
- AlicenseNot gradedqualityAmaintenanceEnables agents to create and manage persistent task logs, decisions, dead ends, questions, and handoffs, with file staleness detection and activity reporting.12MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access observability and evaluation data, including run history, span traces, LLM-as-judge evaluation results, and regression reports.MIT
Related MCP Connectors
Preflight, approve, and prove consequential agent actions with signed evidence and x402 tools.
Read-only GitHub bounty, agent harness, Actions failure, flake, and MCP tool-drift decisions.
Runtime permission, approval, and audit layer for AI agent tool execution.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Yurikada/agent-viz'
If you have feedback or need assistance with the MCP directory API, please join our Discord server