# Eval
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Привязать эталонный evaluation-профиль к локальному сетапу и запустить его.
## Pages
[Главная](/ru/ai/docs)
### Быстрый старт
[Быстрый старт](/ru/ai/docs/quickstart)
[Для человека](/ru/ai/docs/quickstart/human)
[Для ИИ-агента](/ru/ai/docs/quickstart/agent)
[Харнессы](/ru/ai/docs/harnesses)
[Понятия](/ru/ai/docs/concepts)
[Каталог](/ru/ai/docs/catalog)
### CLI
[CLI](/ru/ai/docs/cli)
[Карта команд](/ru/ai/docs/cli/commands)
[Наблюдение](/ru/ai/docs/cli/observe)
[Конфигурация](/ru/ai/docs/cli/config)
[Телеметрия](/ru/ai/docs/cli/telemetry)
[Устройство](/ru/ai/docs/cli/device)
[Паспорта](/ru/ai/docs/cli/passport)
[Вход](/ru/ai/docs/cli/auth)
[Согласие](/ru/ai/docs/cli/consent)
[Проект](/ru/ai/docs/cli/project)
[Toolchain](/ru/ai/docs/cli/toolchain)
[Harness](/ru/ai/docs/cli/harness)
[Agent Skill CLI](/ru/ai/docs/cli/skill)
[Реестр](/ru/ai/docs/cli/registry)
#### Компонент
[Обзор](/ru/ai/docs/cli/component)
[Обнаружение](/ru/ai/docs/cli/component-discover)
[Паспорт](/ru/ai/docs/cli/component-passport)
[Источник](/ru/ai/docs/cli/component-source)
[Публикация](/ru/ai/docs/cli/component-publish)
[Выбор](/ru/ai/docs/cli/select)
[Установка](/ru/ai/docs/cli/install)
[Target](/ru/ai/docs/cli/target)
[Setup](/ru/ai/docs/cli/setup)
[Provider](/ru/ai/docs/cli/provider)
[Синхронизация](/ru/ai/docs/cli/sync)
[Доступ](/ru/ai/docs/cli/grant)
[Жалобы](/ru/ai/docs/cli/report)
[Owner](/ru/ai/docs/cli/owner)
[Publication](/ru/ai/docs/cli/publication)
[Eval](/ru/ai/docs/cli/eval)
### Веб
[Веб](/ru/ai/docs/web)
[Главная](/ru/ai/docs/web/home)
[Каталог](/ru/ai/docs/web/catalog)
[Карточка компонента](/ru/ai/docs/web/catalog-component)
[Карточка сетапа](/ru/ai/docs/web/catalog-setup)
[Региональные сервисы](/ru/ai/docs/web/services)
[Издатели](/ru/ai/docs/web/publishers)
[Content](/ru/ai/docs/web/content)
[Эта документация](/ru/ai/docs/web/docs)
[Контакт](/ru/ai/docs/web/contact)
[Правовые документы](/ru/ai/docs/web/legal)
[Вход](/ru/ai/docs/web/login)
[Аккаунт](/ru/ai/docs/web/account)
[Профиль](/ru/ai/docs/web/profile)
[Устройства](/ru/ai/docs/web/devices)
[Объекты](/ru/ai/docs/web/objects)
[Доступ](/ru/ai/docs/web/access)
[Жалобы](/ru/ai/docs/web/reports)
[Лайки](/ru/ai/docs/web/likes)
[Онбординг](/ru/ai/docs/web/onboarding)
[Публикация](/ru/ai/docs/web/publications)
### Компоненты
[Компоненты](/ru/ai/docs/components)
[instruction](/ru/ai/docs/components/instruction)
[skill](/ru/ai/docs/components/skill)
[mcp](/ru/ai/docs/components/mcp)
[hook](/ru/ai/docs/components/hook)
[command](/ru/ai/docs/components/command)
[agent](/ru/ai/docs/components/agent)
[plugin](/ru/ai/docs/components/plugin)
[setting](/ru/ai/docs/components/setting)
[Сетапы](/ru/ai/docs/setups)
### Публикация
[Публикация](/ru/ai/docs/publishing)
[Авторство](/ru/ai/docs/publishing/authoring)
### Доверие и безопасность
[Обзор](/ru/ai/docs/trust-and-safety)
[Проверки безопасности](/ru/ai/docs/security-checks)
[Диагностика](/ru/ai/docs/troubleshooting)
[cli](/ru/ai/docs/components/cli)
## Content
# Eval
Eval привязывает версионированный эталонный evaluation-профиль к одному
конкретному локальному графу сетапа или ко всем объявленным адаптациям одной
версии компонента и выполняет локальные детерминированные проверки. Он не
устанавливает, не публикует и не обращается к API модели.
Профиль одинаков для всех вызывающих. План фиксирует сетап, harness,
провайдер и раннер. Запуск подтверждается дайджестом плана. Команды status
и show читают неизменяемые локальные свидетельства. Повторный `eval show`
с тем же `run_id` возвращает те же байты.
## Таблица команд
| Команда | Изменяемость | Подтверждение | Когда |
| --- | --- | --- | --- |
| `ai-stp eval profile` | `read` | `none` | показать версионированный эталонный профиль для всех или одного типа компонента |
| `ai-stp eval plan` | `plan` | `none` | привязать этот профиль к адаптациям харнесса этого сетапа |
| `ai-stp eval component plan` | `plan` | `none` | привязать этот профиль ко всем адаптациям одной версии компонента |
| `ai-stp eval run` | `apply` | `plan_digest` | выполнить локальные детерминированные проверки для одного подтверждённого плана сетапа |
| `ai-stp eval component run` | `apply` | `plan_digest` | выполнить локальные детерминированные проверки для одного подтверждённого плана компонента |
| `ai-stp eval component status` | `read` | `none` | прочитать неизменяемый статус одного локального прогона оценки компонента |
| `ai-stp eval component show` | `read` | `none` | показать полные неизменяемые локальные свидетельства одного прогона оценки компонента |
| `ai-stp eval status` | `read` | `none` | прочитать неизменяемый статус одного локального прогона оценки сетапа |
| `ai-stp eval show` | `read` | `none` | показать полные неизменяемые локальные свидетельства одного прогона оценки сетапа |
`--json` — глобальный флаг. Всегда передавайте его. `eval run` и
`eval component run` требуют `--expected-plan-digest`. Флага `--confirm` не
существует. План сетапа включает только адаптации харнесса этого сетапа.
План компонента включает каждую объявленную адаптацию версии.
## Profile
```bash
ai-stp eval profile --json
ai-stp eval profile --type skill --json
```
`--type` опционален. Если указан — одно из значений: `instruction`, `skill`,
`mcp`, `hook`, `command`, `agent`, `plugin`, `setting`.
Поля успеха: `profile_id`, `scope`, `component_types`, `preconditions`,
`checks`, `eval_permissions`, `profile_version`. Каждая проверка содержит
`check_id`, `method`, `runner`, `assertion`, `tolerance`, `budget`.
Permissions перечисляют `filesystem`, `network` и `process` posture.
Поля бюджета включают `timeout_seconds` и `max_output_bytes`.
## Plan
```bash
ai-stp eval plan \
--setup-id <setup_id> \
--setup-version 1.0 \
--harness-version 0.140.1 \
--provider-version 1.2.3 \
--runner-version 1.0.0 \
--json
```
Обязательные: `--setup-id`, `--setup-version`, `--harness-version`,
`--provider-version`, `--runner-version`. `--component-id` — повторяемый:
опциональное точное подмножество графа сетапа.
Сетап уже должен существовать локально в точной версии `X.Y`. Eval его
не собирает.
Поля успеха: `plan_id`, `plan_digest`, `profile`, `setup_id`,
`setup_version`, `setup_passport_digest`, `setup_artifact_digest`,
`harness_id`, `harness_version`, `provider_version`, `runner_version`,
`components`, `planned_at`. Каждая координата компонента содержит `stable_id`,
`version`, `passport_digest`, `artifact_digest`, `component_type`.
## Run
```bash
ai-stp eval run \
--plan-id <plan_id> \
--expected-plan-digest sha256:... \
--json
```
`--plan-id` и `--expected-plan-digest` обязательны. Дайджест — тот, что
вернул `eval plan`. Изменённый граф — это новый план.
Запуск выполняет local-static проверки из профиля. Он не применяет
сетап и не обращается к модели.
Поля успеха: `run_id`, `result_digest`, `plan`, `status`, `executed_at`,
`checks`. Каждый результат проверки содержит `check_id`, `method`, `runner`, `status`,
`message`. Также присутствуют: `immutable_published_bytes_changed`,
`provider_permissions_used`.
## Status и show
```bash
ai-stp eval status --run-id <run_id> --json
ai-stp eval show --run-id <run_id> --json
```
`--run-id` обязателен. Оба ответа используют ту же схему результата. `status` —
краткое неизменяемое представление; `show` — полные свидетельства. Ни одна
из команд не перезапускает проверки.
## Счастливый путь
```text
select confirm --proposal <id> # или setup compose apply
→ eval profile --type skill
→ eval plan --setup-id <id> --setup-version <X.Y> --harness-version … --provider-version … --runner-version …
→ eval run --plan-id <plan_id> --expected-plan-digest sha256:...
→ eval status --run-id <run_id>
→ eval show --run-id <run_id>
```
Зелёный eval — локальное свидетельство. Это не `component_verified`, не
публикация и не установка. Подписанные аттестации добавляются через
`attestation sign`, когда они нужны плану публикации.
## Именованные поля успеха
| Команда | Поля для чтения |
| --- | --- |
| `profile` | `profile_id`, `checks`, `eval_permissions` |
| `plan` | `plan_id`, `plan_digest`, `setup_passport_digest`, `components` |
| `run` / `status` / `show` | `run_id`, `result_digest`, `status`, `checks`, `executed_at` |
Для запуска также читайте `immutable_published_bytes_changed` и
`provider_permissions_used`. Изменение опубликованных байтов во время eval —
сигнал остановиться, а не деталь, которую можно проигнорировать.
## Отказы
| Что вы видите | Что это значит | Что делать |
| --- | --- | --- |
| `AI_STP_VALIDATION_ERROR` | отсутствует обязательная версия или id, либо `--type` не входит в закрытый набор | прочитайте descriptor |
| `AI_STP_NOT_FOUND` | такая версия сетапа или id плана отсутствуют локально | сначала compose или confirm сетап |
| `AI_STP_PLAN_STALE` | `--expected-plan-digest` больше не совпадает | выполните `eval plan` заново |
| `AI_STP_PRECONDITION_FAILED` | предварительное условие профиля не выполнено | прочитайте `preconditions`; исправьте граф |
| `AI_STP_USER_DECISION_REQUIRED` | дайджест не передан | передайте `--expected-plan-digest` |
| интерпретация `status: failed` как `ok: false` | envelope всё ещё может быть успешным отчётом о проваленных проверках | читайте `status` и `message` каждой проверки |
| изобретение `--confirm` | запуск подтверждается дайджестом плана | не добавляйте boolean-флаг |
| просьба eval вызвать модель | этот продукт этого не делает | остановитесь; флага для ключа модели не существует |
Eval permissions — это заявленная posture профиля. Это не установка
провайдера и не сетевое исключение для harness.
## Связанные ссылки
- [Select](select.md)
- [Setup commands](setup.md)
- [Publication](publication.md)
- [Security checks](../security-checks.md)
- [Trust and safety](../trust-and-safety/index.md)
- [Command map](commands.md)
## Флаги берутся из continuation argv
```bash
ai-stp task intents --json
```
Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`.
Эта страница группирует команды eval, чтобы человек мог их найти.
Если эта страница и CLI расходятся, следуйте CLI.