Подписание и проверка навыков
Реализуйте управление навыками с версионированием, контрольными суммами и рабочими процессами утверждения, чтобы гарантировать, что будут выполняться только проверенный код.
Подписание и проверка навыков — это функция безопасности, которая устанавливает ворота утверждения для пользовательских навыков. Прежде чем агент сможет использовать какой-либо навык, он должен быть проверен и одобрен администратором рабочего пространства или рецензентом. Каждый навык криптографически подписан с помощью контрольной суммы для обнаружения изменений.
Почему навыки нуждаются в проверке
Пользовательские навыки мощны — они предоставляют агентам новые возможности и часто доступ к внешним системам. Без проверки:
- Вредоносный код — неправомерный навык может украсть данные или нанести ущерб
- Непредусмотренное поведение — разработчик может случайно допустить баги или нарушить шаблоны
- Пробелы в соответствии — регулируемые команды должны проверить, какой код работает в production
- Риск цепочки поставок — если навык импортирован из реестра, необходимо проверить его содержимое
Как работает проверка навыков
- Автор создает или редактирует навык — начинает в состоянии draft
- Автор отправляет на проверку — статус меняется на pending_review
- Рецензент проверяет — видит код, вложения и diff, если это обновление
- Рецензент решает — одобрить (агенты могут использовать) или отклонить (с обратной связью)
- Если одобрено — навык активен, агенты могут загружать его в задачи
- Если отредактировано позже — одобрение очищается и требуется повторная проверка
Жизненный цикл навыка
draft
Новый навык или неутвержденное редактирование. Агенты не могут его использовать. Только автор и администраторы рабочего пространства могут увидеть его полностью.
pending_review
Навык ожидает решения рецензента. Он появляется в очереди Навыки → На проверке. Агенты по-прежнему не могут его использовать.
approved
Рецензент дал согласие. Навык активен и агенты могут загружать его в задачи. Одобрение криптографически связано с точным содержимым через контрольную сумму.
rejected
Рецензент отклонил навык с обратной связью. Автор может отредактировать и переотправить или отказаться. Агенты не могут его использовать.
revoked
Содержимое навыка было изменено после одобрения (несовпадение контрольной суммы). Навык немедленно отключен и агенты не могут его загружать. Это сигнал безопасности для расследования.
Версионирование и контрольные суммы
Каждый раз, когда вы создаете или редактируете навык, AACWorkflow:
- Вычисляет контрольную сумму (SHA256) содержимого навыка и любых прикрепленных файлов
- Сохраняет контрольную сумму вместе с одобрением, так чтобы одобрение было привязано к точному содержимому
- Сохраняет историю версий, чтобы рецензенты могли видеть различия
Когда агент пытается использовать навык во время выполнения задачи:
- AACWorkflow проверяет, совпадает ли сохраненная контрольная сумма с текущим содержимым
- Если контрольные суммы не совпадают (содержимое было отредактировано или изменено), навык помечается как revoked
- Агент не может загружать его и уведомляется о проблеме безопасности
Изменение обнаружено, но предотвращено. Если контрольная сумма навыка не совпадает, агенты автоматически его пропускают. Проверьте журналы аудита, если это происходит — это может указывать на несогласованность базы данных или попытку изменения.
Создание и отправка навыков на проверку
Создание навыка
- Перейдите в Навыки → Создать навык
- Заполните имя, описание и содержимое
- При необходимости прикрепите файлы (скрипты Python, файлы данных и т. д.)
- Нажмите Создать
Навык начинает работу в состоянии draft. Только вы и администраторы рабочего пространства можете его видеть.
Отправка на проверку
- Откройте навык
- Еще раз проверьте содержимое
- Нажмите Отправить на проверку
- Дополнительно добавьте сообщение для рецензента
Навык перемещается в pending_review и появляется в очереди рецензентов.
Редактирование перед проверкой
Если вы находитесь в состоянии draft или rejected, вы можете свободно редактировать. Нажмите Редактировать, внесите изменения и сохраните.
Если навык одобрен и вам нужно внести изменения:
- Нажмите Редактировать
- Внесите изменения и сохраните
- Навык автоматически переместится обратно в pending_review
- Создается новая версия и рецензенты могут увидеть diff того, что изменилось
Проверка навыков
Просмотр ожидающих навыков
- Перейдите в Навыки → На проверке
- Посмотрите список навыков, ожидающих одобрения
Проверка навыка
- Откройте ожидающий навык
- Прочитайте описание и проверьте код
- Если это обновление (версия > 1), нажмите Посмотреть различия, чтобы увидеть, что изменилось
- Решите:
- Одобрить — код безопасен и соответствует вашим стандартам; агенты могут его использовать
- Отклонить — в коде есть проблемы; предоставьте обратную связь автору
Просмотр различий
При проверке обновления в представлении различий показано:
- Удаленные строки (красный) — код, который автор удалил
- Добавленные строки (зеленый) — новый код
- Контекст — несколько строк до и после каждого изменения
Используйте это для обнаружения:
- Неожиданные изменения в критических разделах
- Новые внешние вызовы или зависимости
- Расширение области или дрейф функций
Одобрение навыка
- Откройте навык в pending_review
- Нажмите Одобрить
- Дополнительно добавьте примечания рецензента (они видны автору и появляются в журналах аудита)
- Нажмите Подтвердить
Навык переместится в approved и агенты сразу могут начать его использовать.
Отклонение навыка
- Откройте навык в pending_review
- Нажмите Отклонить
- Добавьте обязательную обратную связь — объясните, что нужно изменить
- Нажмите Подтвердить
Навык переместится в rejected. Автор видит вашу обратную связь и может отредактировать и переотправить.
Ограничения инструментов
При проверке рецензент может дополнительно установить allowed_tools — список инструментов, которые навыку разрешено использовать. Например:
- Навык
github-pr-reviewerможет быть ограничен толькоgithub_api - Навык
aws-cost-checkerможет быть ограничен толькоaws_api
Если навык пытается использовать инструмент вне этого списка разрешений:
- Ограничение принудительно применяется во время выполнения задачи
- Агент получает ошибку и не может продолжить
- Попытка регистрируется в журналах аудита
Это позволяет рецензентам ограничить радиус взрыва, даже если навык позже признан проблемным.
Аудит и соответствие
Каждое действие навыка регистрируется:
- Создание, редактирование и удаление навыков
- Отправка на проверку
- Одобрения, отклонения и отзывы
- Когда агенты загружают и используют навыки
- Несовпадения контрольных сумм и попытки изменения
Получите доступ к журналу аудита в Настройки → Журналы аудита и отфильтруйте по «Навыкам» для:
- Отслеживания, кто одобрил какой код
- Просмотра, когда были отредактированы навыки
- Расследования инцидентов безопасности (отозванные навыки, сбои контрольной суммы)
Лучшие практики
- Тщательная проверка — навыки работают от имени агентов; относитесь к ним как к проверке кода
- Ожидайте вопросов — попросите авторов объяснить критические разделы
- Используйте ограничения инструментов — ограничьте каждый навык минимумом инструментов, которые ему нужны
- Ротация рецензентов — не позволяйте одному человеку одобрять всё
- Проверяйте обновления — внимательно проверяйте различия при редактировании навыков
- Отзовите, если подозрительно — если навык ведет себя неожиданно, отзовите его и расследуйте
Массовые операции
Администраторы Enterprise могут:
- Отозвать навык — немедленно отключить его в масштабе рабочего пространства (если подозревается изменение)
- Требовать повторного одобрения — принудительно отправить все одобренные навыки в pending_review (например, после изменения политики)
- Проверить все версии — просмотреть полную историю версий и различия
Используйте Настройки → Навыки → Управление для выполнения этих массовых операций.
Следующие шаги
- Приватный реестр навыков — размещение внутренних навыков в приватном реестре
- Реестр возможностей runtime — объявление поддерживаемых инструментов и API вашими runtimes
- Навыки — узнайте, как создавать и использовать навыки