Skip to content

Curación semántica (Catalog)

Decide qué trazas de agente revisar por similitud, no solo mediante reglas. Un índice de embeddings sobre tus elementos habilita la búsqueda por similitud (“encuentra trazas parecidas a este fallo”) y los slices dinámicos: filtros semánticos y de metadatos guardados que incluyen automáticamente las nuevas trazas coincidentes y las curan en datasets.

La curación semántica te ayuda a encontrar qué revisar por similitud, no solo mediante reglas o incertidumbre. Un índice de embeddings sobre tus elementos habilita la búsqueda por similitud ("encuentra trazas parecidas a este fallo") y los slices dinámicos: filtros semánticos y de metadatos guardados que incluyen automáticamente las nuevas trazas que coinciden y las curan en datasets. Complementa el triaje basado en reglas y el aprendizaje activo basado en la incertidumbre del modelo.

Activación

yaml
curation:
  enabled: true
  model_name: all-MiniLM-L6-v2   # any sentence-transformers model
  embed_on_ingest: false          # index runtime-ingested traces on arrival
  text_key: task_description      # which field to embed

Los embeddings son perezosos: sentence-transformers se importa solo cuando construyes el índice, nunca al arrancar, así que el arranque sigue siendo rápido. Instálalo con pip install sentence-transformers, o conecta tu propio embedder. Cuando está activado, el panel de administración muestra un enlace Catalog.

Construir, buscar, crear slices

bash
# Build the index over current items
curl -X POST localhost:8000/admin/catalog/api/build -H "X-API-Key: <key>"
 
# Search by text query (or by an anchor instance to find neighbours)
curl -X POST localhost:8000/admin/catalog/api/search -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" -d '{"query": "tool call failed", "top_k": 10, "threshold": 0.3}'

Un slice es un filtro guardado que se resuelve bajo demanda contra el índice actual, de modo que las trazas ingeridas después de guardarlo se incluyen automáticamente si coinciden. Combina un vecindario semántico opcional con un filtro de metadatos:

bash
curl -X POST localhost:8000/admin/catalog/api/slices -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{"name": "tool-errors", "query": "tool call failed", "threshold": 0.3,
       "metadata_filter": [{"field": "metadata.outcome", "equals": "error"}]}'
 
# Curate the resolved instances straight into a dataset
curl -X POST localhost:8000/admin/catalog/api/slices/tool-errors/to_dataset \
  -H "X-API-Key: <key>" -H "Content-Type: application/json" \
  -d '{"dataset": "tool-errors-to-fix"}'

Relacionado