diff --git a/security/agent-groups.yaml b/security/agent-groups.yaml index 8287cc1..be0ee50 100644 --- a/security/agent-groups.yaml +++ b/security/agent-groups.yaml @@ -1,9 +1,23 @@ # Grupos de agentes del sistema # Agents: lista de agent IDs (del campo agent.id en config.yaml), o "*" para todos +# Grupos de agentes del sistema +# Agents: lista de agent IDs (del campo agent.id en config.yaml), o "*" para todos +# +# IMPORTANTE: no usar "*" en grupos que se asignan a permisos amplios si existen +# agentes privilegiados. El ACL es union: si un agente aparece en dos grupos, +# recibe los permisos de ambos. Usar "general" para agentes de acceso abierto. groups: assistants: agents: - assistant-bot - asistente-2 - all: - agents: ["*"] + privileged: + agents: + - father-bot + general: + agents: + - assistant-bot + - asistente-2 + - meteorologo + - test-personality + - test-bot diff --git a/security/permissions.yaml b/security/permissions.yaml index 112eb1c..4917909 100644 --- a/security/permissions.yaml +++ b/security/permissions.yaml @@ -1,7 +1,18 @@ # Políticas de permisos: para cada grupo de agentes, qué acciones tiene cada grupo de usuarios # Actions: "*" = todo, "ask" = chat libre, "command:" = comandos, "tool:" = tools +# Politicas de permisos: para cada grupo de agentes, que acciones tiene cada grupo de usuarios +# Actions: "*" = todo, "ask" = chat libre, "command:" = comandos, "tool:" = tools +# +# IMPORTANTE: el ACL es union (acumulativo). Si un agente aparece en multiples grupos, +# recibe los permisos de TODOS. Por eso "privileged" y "general" son mutuamente excluyentes. policies: - - agent_group: all + # Agentes privilegiados (father-bot): solo admins + - agent_group: privileged + permissions: + - user_group: admins + actions: ["*"] + # Agentes generales: acceso abierto a todos + - agent_group: general permissions: - user_group: admins actions: ["*"]