Saltar al contenido
BeeuniBeeuni
Español
Esc
↑↓navegar↵abrir⌘Jvista previa
En esta página

Indicadores de funcionalidades

Activa una superficie de Beeuni para un proyecto y consulta qué controla cada indicador.

Un indicador de funciones activa una superficie de Beeuni para un proyecto. Cualquier superficie puede publicarse detrás de un indicador: experimental, beta o totalmente estable. «Experimental» es una insignia de estabilidad del indicador, no el nombre del sistema.

Los indicadores son por proyecto. Activar un indicador en un proyecto no cambia nada en otro proyecto ni en otras cuentas.

Activar un indicador

  1. Abre Settings → Feature flags. La pestaña muestra todos los indicadores que admite la plataforma.
  2. Lee la fila: el nombre del indicador, su insignia de estabilidad, una frase descriptiva y su origen — Default on, Default off o Overridden for this project.
  3. Usa el interruptor. El cambio se aplica de inmediato al proyecto actual.

Necesitas el permiso project.settings.write del proyecto. La ruta responde 403 a cualquier otro solicitante.

Desde la CLI

Los mismos interruptores están disponibles para scripts y agentes mediante beeuni projects features:

beeuni projects features                # every flag: key, state, origin
beeuni projects features enable reminders
beeuni projects features disable reminders
beeuni projects features reset reminders  # drop the override; follow the platform default
beeuni projects features --json          # the full catalog as JSON

Añade --project <id> para actuar sobre un proyecto distinto del vinculado o predeterminado. Si la plataforma marca un indicador como no disponible, permanece desactivado independientemente de la configuración del proyecto; la CLI lo muestra como n/a / unavailable.

Insignias de estabilidad

La insignia describe el contrato, no el interruptor. Un indicador stable sigue requiriendo activación explícita: apps es estable y aun así viene desactivado de forma predeterminada.

Insignia Significado
Experimental La superficie y su contrato aún pueden cambiar.
Beta La superficie funciona y su estructura se está definiendo.
Estable El contrato se mantiene. El indicador sigue requiriendo activación explícita.

Cómo se aplica un indicador

Cada indicador declara un modo de aplicación.

Modo Qué hace el servidor cuando el indicador está desactivado
routes La superficie HTTP rechaza la solicitud con 403.
behavioral El comportamiento no ocurre: no se materializa ningún conector, no se inyecta ningún entorno y no se registra ningún agente.
ui-only El servidor no aplica el indicador deliberadamente. El indicador solo oculta la superficie del cliente.

Un rechazo routes es idéntico en todas partes:

{
  "error": "Apps is not enabled for this project. Contact Beeuni to enable it.",
  "code": "feature_disabled",
  "feature": "apps"
}

La cadena error indica la lista de indicadores, no una pestaña específica. La lista está en la pestaña Experimental de Settings.

Evalúa code, nunca el texto del mensaje. El SDK exporta isFeatureDisabledError(error) y featureDisabledKey(error) precisamente para esto.

Todos los indicadores

Orden del registro: el mismo que muestra Settings → Feature flags.

Beeuni activa Apps por proyecto. Contacta con Beeuni para solicitar acceso. Settings los muestra como Managed by Beeuni al activarlos.

Clave Nombre Estabilidad Predeterminado
marketplace Marketplace Beta Activado
connectors_api_discover Connectors API Discover Experimental Desactivado
agentmail_email AgentMail Email Experimental Desactivado
llm_gateway LLM Gateway Experimental Activado
meta_agent Meta Agent Experimental Desactivado
apps Apps Estable Desactivado
monitors Monitors Experimental Desactivado
reminders Reminders Beta Desactivado
warm_sessions Warm Sessions Beta Activado
secrets_egress Network-Enforced Secrets Experimental Activado
pi_harness Pi Harness Experimental Desactivado

Qué controla cada indicador

  • marketplace — Explora e instala habilidades de registros de la comunidad y de proveedores.
  • connectors_api_discover — Explora superficies directas de API, MCP, GraphQL, CLI y Postman junto a las aplicaciones OAuth administradas. Consulta Connectors.
  • agentmail_email — Asigna conexiones de bandeja de entrada de AgentMail para que el correo entrante inicie sesiones y las mantenga activas.
  • llm_gateway — Enruta el proyecto a través de la pasarela LLM administrada de Beeuni. Consulta Models.
  • meta_agent — Añade un agente coordinador propiedad de la plataforma que crea y administra sesiones especializadas.
  • apps — Implementa sitios estáticos, bundles, Dockerfiles e imágenes OCI en URL de servidor sin servidor estables. Consulta Apps.
  • monitors — Ejecuta monitores 24/7 desde tu repositorio, que envían eventos de activación a las sesiones. Consulta Triggers.
  • reminders — Programaciones que vuelven a solicitar una respuesta a una sesión, una vez o de forma repetida. Si está desactivado, las rutas de recordatorios responden feature_disabled y los recordatorios existentes no se activan. Consulta Reminders.
  • warm_sessions — Mantiene un sandbox activo mientras el proyecto está abierto, para que las sesiones nuevas se inicien sin un arranque en frío.
  • secrets_egress — Ofrece aplicación de políticas de red para un secreto: el sandbox conserva un identificador y Beeuni sustituye el valor real solo en las solicitudes a hosts aprobados. Consulta Secrets.
  • pi_harness — Ejecuta las sesiones de este proyecto en el harness de agente pi dentro del sandbox de sesión habitual (BEEUNI_HARNESS=pi). Activado: cada sesión nueva o reiniciada inicia pi, independientemente del manifiesto. Desactivado: lo decide el manifiesto; runtime: pi sigue iniciando pi y cualquier otro valor inicia el entorno de ejecución predeterminado. pi solo llama a modelos mediante la pasarela LLM: con llm_gateway desactivado, todas las sesiones inician el entorno de ejecución predeterminado, independientemente de este indicador o del manifiesto. El diseño del repositorio, los agentes y las habilidades son iguales en ambos casos; una sesión en curso conserva su harness hasta que se reinicia o se reanuda. Los subagentes funcionan en pi: el agente delega con la herramienta task a general, explore (solo lectura) o cualquier agente del proyecto que tenga mode: subagent en su .md, y la transcripción muestra en contexto los pasos de cada subagente. Las sesiones de pi también cargan paquetes pi.dev: consulta harnesses:. pi no ofrece todas las funciones de sesión que tiene el entorno de ejecución predeterminado: consulta la matriz en Harnesses.

Indicadores que pasaron a ser funciones estándar

Una función que pasó a ser estándar está activada para todos los proyectos y no tiene interruptor.

  • Agentes como principales es el comportamiento estándar y no tiene interruptor. Una sesión de agente actúa como el propio agente, con sus permisos de Beeuni dentro de su rol máximo, sin importar quién la ejecute. Consulta Permisos de agentes.
  • Review Center salió del sistema de indicadores. La página Review, la fila Review de la barra lateral y la fila del menú de comandos aparecen en todos los proyectos; siguen aplicándose los permisos project.review.read y project.review.act. review_center ya no es una clave de indicador: PATCH /v1/projects/:id/features responde 400 Unknown feature flag, y beeuni projects features enable review_center prints that error and exits 1. Una configuración guardada antes de que pasara a ser estándar no tiene efecto.
  • Computers salió del sistema de indicadores. Todos los miembros pueden conectar su propio equipo desde la barra lateral del proyecto; la configuración de la plataforma TUNNEL_ENABLED es la única condición. agent_tunnel ya no es una clave de indicador: PATCH /v1/projects/:id/features responde 400 Unknown feature flag. Consulta Computers.
  • Microsoft Teams salió del sistema de indicadores. Todos los proyectos pueden conectar Teams desde Connectors → Channels; un administrador del tenant debe dar su consentimiento una vez, o el proyecto puede aportar su propio bot. teams ya no es una clave de indicador: PATCH /v1/projects/:id/features responde 400 Unknown feature flag. Una configuración guardada antes de que pasara a ser estándar no tiene efecto. Consulta Microsoft Teams.

Efectos secundarios de un cambio

Algunos indicadores hacen que el estado de la plataforma converja tras confirmarse la escritura.

Indicador Efecto después del cambio
agentmail_email Beeuni vuelve a ejecutar la materialización de conectores de canales, para que el conector aparezca o desaparezca según el indicador.
llm_gateway Beeuni propaga el nuevo modo de proveedor a los sandboxes activos.

Los efectos forman parte de la convergencia, no del éxito del cambio. La respuesta de la API no espera a que ocurran. Cada efecto se reintenta una vez y los reconciliadores que lo realizan son idempotentes y vuelven a ejecutarse en sus barridos periódicos.

Leer y establecer un indicador desde el código

Lee el estado efectivo por proyecto mediante los detalles del proyecto o el hook de React:

import { useFeatureFlag } from '@beeuni/sdk/react';

function AppsNavItem({ projectId }: { projectId: string }) {
  const apps = useFeatureFlag(projectId, 'apps');
  if (!apps.enabled) return null;
  return <Link href={`/projects/${projectId}/apps`}>Apps</Link>;
}

enabled es true solo cuando el servidor respondió exactamente true. La falta de un ID de proyecto, una consulta en curso y un error se resuelven como false. Aplica la condición de forma segura, denegando por defecto.

Establece la configuración del proyecto con el cliente:

const p = beeuni.project(projectId);

await p.updateFeatureFlag('apps', true);   // turn it on for this project
await p.updateFeatureFlag('apps', null);   // clear the override, inherit the default

updateFeatureFlag llama a PATCH /v1/projects/:id/features. feature es uno de FEATURE_FLAG_KEYS, exportado desde @beeuni/sdk y tipado como FeatureFlagKey. Consulta la referencia del SDK.

Gestiona una función desactivada mediante código, no por el mensaje:

import { featureDisabledKey, isFeatureDisabledError } from '@beeuni/sdk';

try {
  await beeuni.project(projectId).apps.list();
} catch (error) {
  if (isFeatureDisabledError(error)) {
    console.log(`${featureDisabledKey(error)} is off for this project`);
  }
}

¿Te ha resultado útil esta página?