A2A и MCP решили, как разговаривают агенты и как они могут звонить. Ни один из них не говорит Недостающий примитив — это делегирование: подписанное заявление, которое передает ограниченный кусок вашей власти. Вот грамматика, { "res": "mcp://acme/tools/*", "act": ["позвони...
A2A и MCP решили, как разговаривают агенты и как они могут звонить. Ни один из них не говорит
все, что действительно важно в многоагентной системе:
Агент А просит агента Б сделать что-то от имени А. B теперь нужно немного
Авторитет А — и сегодня «некоторых» нет в меню. А делится своими
учетные данные (B получает все), или B использует свои собственные постоянные учетные данные
(которые незаметно накапливают все разрешения, необходимые для любой задачи).
Недостающий примитив — это делегирование: подписанное заявление, которое передает
другая личность — ограниченная часть вашего авторитета. Вот грамматика,
один грант:
{
"res": "mcp://acme/tools/*",
"действовать": ["звонить"],
"cav": { "exp": 1786015180, "max_uses": 100, "nb": { "tool": "search|fetch" } }
}
Шаблон ресурса, действия, разрешенные с ним, и предостережения: срок действия,
использовать бюджет и именованные предикаты запроса (nb — инструмент запроса
аргумент должен быть именно поиском или выборкой). Агент А подписывает
Ссылка делегирования, передающая этот грант личности Б:
импортировать {делегациюBinding, родительскийRefHashRoot, делегат} из "@grantor/sdk";
const привязкаHex = делегированиеBinding(tenantId, iss, to, GrantsJson, exp,
epochLabelHex, эпоха, родительскийRefHash);
const подписьHex = знак ожидания (привязка