BanditDB
Memoria de decisiones persistente para agentes de IA: aprende qué acción funciona en cada contexto, a partir de resultados reales.
Documentación
Uso de Herramientas Nativas de Agente (MCP)
Dale a cualquier agente basado en Claude una memoria de decisiones persistente mediante el Protocolo de Contexto de Modelo.
Los agentes LLM estándar no tienen estado — si enrutan una tarea al modelo equivocado y fallan, repiten el mismo error mañana. El servidor MCP integrado de BanditDB le da a todo el enjambre de agentes una memoria persistente compartida.
El servidor MCP viene dentro del SDK de Python — no requiere instalación por separado:
pip install banditdb-python # provides the banditdb-mcp entry point
Agrega el servidor a tu configuración de Claude Desktop en ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"banditdb": {
"command": "banditdb-mcp",
"env": {
"BANDITDB_URL": "http://localhost:8080",
"BANDITDB_API_KEY": "your-secret-key"
}
}
}
}
El agente ahora tiene nueve herramientas:
| Herramienta | Qué hace |
|---|---|
create_campaign | Crea una nueva campaña de decisión. Acepta algorithm, alpha y un objeto metadata opcional de formato libre para adjuntar contexto (nombres de características, propietario, versión, etc.). |
list_campaigns | Lista todas las campañas activas con el conteo de brazos, alfa y metadatos. |
campaign_diagnostics | Por brazo: theta_norm, conteo de predicciones, tasa de recompensa, además de selection_entropy, entropy_status, entropy_trend y un suggested_action cuando se detecta colapso. Úsalo cuando una campaña no está aprendiendo o sospechas que la exploración se ha detenido. |
get_intuition | Devuelve la acción recomendada y un interaction_id para guardar. |
record_outcome | Reporta el resultado y actualiza el modelo compartido — 1.0 éxito, 0.0 fallo o cualquier valor intermedio. Los valores fuera de [0, 1] son rechazados. |
batch_get_intuition | Hasta 100 decisiones en un solo viaje de ida y vuelta, cada una con su propia campaña y contexto. El fallo parcial es por elemento: un contexto malo no hunde el lote. |
campaign_report | Resumen legible para humanos de cómo está funcionando una campaña — qué brazo está ganando y si la diferencia ya es significativa. |
archive_campaign | Eliminación suave. La campaña deja de servir, pero su modelo aprendido se conserva. |
restore_campaign | Revierte un archivo, con el modelo intacto. |
Cada agente en un enjambre comparte la misma instancia de BanditDB, por lo que el modelo aprendido mejora con cada interacción en toda la flota.
Ejemplo: Qué Hace el Agente
Un bucle de decisión típico dentro de una sesión de agente — el agente pide una intuición, actúa sobre ella y luego reporta el resultado:
// 1. Agent calls get_intuition
{ "campaign_id": "model-routing", "context": [0.8, 0.2, 0.5, 0.1] }
// → BanditDB responds
{ "arm": "claude-sonnet-5", "interaction_id": "9f2c-4e1a" }
// 2. Agent routes the task to claude-sonnet-5, task succeeds
// 3. Agent calls record_outcome
{ "interaction_id": "9f2c-4e1a", "reward": 1.0 }
Los argumentos incorrectos regresan como un mensaje legible, no como un fallo. Un agente que envía un contexto que contiene NaN, o una recompensa de 5.0, recibe una explicación de qué estuvo mal y qué valor lo causó — para que pueda corregirse en el siguiente turno en lugar de descartar la herramienta.
El siguiente agente que enfrente un contexto similar — en cualquier sesión, en cualquier máquina que apunte a la misma instancia de BanditDB — se beneficia de este resultado de inmediato. Sin paso de reentrenamiento, sin despliegue.