Pigeon: credenciales firmadas para que un sub-agente no pueda hacer más de lo que debe

Pigeon, a signed Pass for what a sub-agent may do

Cuando un agente de IA lanza un sub-agente, suele entregarle la misma API key, dándole acceso total a producción, bases de datos y merges. Pigeon, una librería Python de código abierto, propone un mecanismo de delegación de autoridad: en lugar de copiar credenciales, se otorga un Pigeon Pass, una credencial firmada y restringida que especifica qué acciones y recursos puede usar el sub-agente. La librería incluye verificación con códigos de rechazo, delegación jerárquica que impide escalada de privilegios, y middleware para MCP. No es una plataforma ni un proveedor de identidad, sino una primitiva para acotar el radio de acción de los agentes.

Identity tells you who the agent is. Authority tells you what it may do.
  1. Retr0id

    Retr0id:

    > Pigeon Pass es su propio formato de credenciales. No es un perfil de JWT, CWT, macarrones, Biscuit o UCAN.

    ¿Por qué?

    > Pigeon no es [...] un custodio de claves.

    ¿Qué está pasando aquí entonces? https://github.com/pigeonlabsHQ/pigeon/blob/eb6a1e97b80c4951...

    Supongo que soy el primer humano que lee algo de esto.

  2. awestroke

    awestroke:

    Un problema trivial resuelto de una manera muy compleja

  3. pigeonlabshq

    pigeonlabshq:

    Cuando un agente inicia un sub-agente, normalmente le entrega las mismas credenciales. Una clave de API es el caso obvio. El mismo patrón se da con permisos de despliegue, acceso a bases de datos o permiso para fusionar en la rama principal. El hijo entonces tiene todo lo que tiene el padre.

    Pigeon es un pequeño protocolo para eso. Otorgas un Pass (capacidades, recursos, restricciones), delegas uno más restringido al hijo y verificas antes de que la herramienta se ejecute. Si el hijo pide más, falla de forma segura. La identidad dice quién es el agente. La autoridad dice qué puede hacer.

    No hay servidor. El secreto real permanece en el ejecutor. El hijo lleva el Pass.

    from pigeon import grant, verify

    auth = grant(

    subject="agent:deployer",

    capabilities=["deploy"],

    resources=["environment:staging"],

    )

    verify(auth, "deploy", "environment:staging").allowed # True

    verify(auth, "deploy", "environment:production").reason_code # RESOURCE_NOT_ALLOWED

    v0.1: formato propio (no JWT/Biscuit/UCAN), Ed25519, restricciones de tasa/recuento, verificación en cadena, helpers MCP como punto de aplicación. No es una plataforma. No detiene la inyección de prompts.

    Repo: https://github.com/pigeonlabsHQ/pigeon

    Release: https://github.com/pigeonlabsHQ/pigeon/releases/tag/v0.1.0

    Demo: python demo/agent.py

Más de este día

2026-09-06