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
- Abre Settings → Feature flags. La pestaña muestra todos los indicadores que admite la plataforma.
- Lee la fila: el nombre del indicador, su insignia de estabilidad, una frase descriptiva y su origen —
Default on,Default offoOverridden for this project. - 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 respondenfeature_disabledy 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: pisigue iniciando pi y cualquier otro valor inicia el entorno de ejecución predeterminado. pi solo llama a modelos mediante la pasarela LLM: conllm_gatewaydesactivado, 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 herramientataskageneral,explore(solo lectura) o cualquier agente del proyecto que tengamode: subagenten su.md, y la transcripción muestra en contexto los pasos de cada subagente. Las sesiones de pi también cargan paquetes pi.dev: consultaharnesses:. 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.readyproject.review.act.review_centerya no es una clave de indicador:PATCH /v1/projects/:id/featuresresponde400Unknown feature flag, ybeeuni projects features enable review_centerprints that error and exits1. 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_ENABLEDes la única condición.agent_tunnelya no es una clave de indicador:PATCH /v1/projects/:id/featuresresponde400Unknown 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.
teamsya no es una clave de indicador:PATCH /v1/projects/:id/featuresresponde400Unknown 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`);
}
}