Pigeon: подписанный пропуск, ограничивающий действия суб-агентов

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

Pigeon — это библиотека Python для делегирования полномочий ИИ-агентам. Вместо передачи суб-агенту полного API-ключа, вы выдаете ему Pigeon Pass — подписанный, ограниченный по возможностям и ресурсам пропуск. Проверка полномочий происходит через функцию verify(), которая возвращает не просто булево значение, а причину отказа. Реализована защита от эскалации привилегий: дочерний агент не может расширить свои полномочия. Pigeon также предоставляет middleware для MCP и CLI для генерации ключей и инспекции пропусков. Это не платформа и не политический движок, а небольшой примитив для ограничения радиуса поражения.

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

    > Pigeon Pass — это собственный формат учетных данных. Это не профиль JWT, CWT, macaroons, Biscuit или UCAN.

    Почему?

    > Pigeon — это [...] не [...] хранитель ключей.

    Что же здесь происходит? https://github.com/pigeonlabsHQ/pigeon/blob/eb6a1e97b80c4951...

    Полагаю, я первый человек, который вообще это прочитал.

  2. awestroke

    Тривиальная проблема, решенная очень сложным способом

  3. pigeonlabshq

    Когда агент запускает субагента, он обычно передает ему те же учетные данные. Очевидный случай — API-ключ. Та же схема применяется к правам на деплой, доступу к базе данных или разрешению на merge в main. Тогда у ребенка есть все, что есть у родителя.

    Pigeon — это небольшой протокол для таких случаев. Вы выдаете Pass (возможности, ресурсы, ограничения), делегируете более узкий дочернему агенту и проверяете перед запуском инструмента. Если ребенок запрашивает больше, система закрывается с ошибкой (fail closed). Идентичность говорит, кто агент. Полномочия говорят, что ему можно делать.

    Здесь нет сервера. Настоящий секрет остается на раннере. Ребенок несет 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: собственный формат (не JWT/Biscuit/UCAN), Ed25519, ограничения по частоте и количеству, проверка цепочки, MCP-хелперы как точка принуждения. Не платформа. Не защищает от prompt injection.

    Репозиторий: https://github.com/pigeonlabsHQ/pigeon

    Релиз: https://github.com/pigeonlabsHQ/pigeon/releases/tag/v0.1.0

    Демо: python demo/agent.py

Ещё за этот день

2026-09-06