Научитесь разделять общее правило проекта, процедуру агента, справку
и исполняемый инструмент. В результате агент должен выбрать system-stats,
получить реальные данные и дать короткий ответ с указанием недоступных метрик.
- macOS или Linux, терминал с bash/zsh и Python 3.
- Codex с доступом к папке проекта и разрешением на локальную диагностику.
- Для macOS: системные
sysctlиvm_stat; для Linux: доступ к/proc. - Для дополнительных секций:
psдля процессов,lsofдля портов.
Python-пакеты устанавливать не нужно. Windows этим примером не поддерживается. Диагностика относится к машине, где выполняется Python: в удалённой среде это будет удалённая машина, а не ваш ноутбук.
- AGENTS.md — общее правило: диагностика только через skill, без изменения настроек и завершения процессов.
- SKILL.md — когда применять skill и какие действия выполнять.
- Справка — аргументы, формат результата, ошибки и ориентиры интерпретации.
- Python-инструмент — сбор данных и вывод JSON.
Skill задаёт процедуру, а Python выполняет измерения. Само наличие этих файлов ещё не доказывает, что агент соблюдает процедуру: это проверяется по его действиям. Подробнее о skills — в документации OpenAI.
Откройте терминал в корне проекта — в папке, где лежит этот README. Выполните:
TOOL_ARGS='{"section":"load,mem,disk"}' python3 tools/system-stats/system-stats.pyОжидается JSON с ключами load, mem, disk. Значения зависят от вашей
машины. Все три секции должны содержать измерения.
При запуске из Codex песочница может блокировать системные вызовы. В этом случае агент должен запросить разрешение на запуск того же инструмента вне песочницы и повторить проверку после одобрения. Отключать защиту всего проекта или менять настройки ОС не требуется. Для проверки самого Python-инструмента можно выполнить команду выше в обычном локальном терминале.
Откройте эту папку как проект в Codex и начните новый чат:
Проверь состояние компьютера: нагрузку, память и диск. Ответь кратко.
Посмотрите действия агента, а затем его ответ. Ожидается, что он прочитает
system-stats, обратится к справке и запустит Python-инструмент с секциями
load,mem,disk либо с аргументами по умолчанию. Он не должен запускать
порты или benchmark без отдельного запроса.
Если skill не обнаружен, проверьте, что открыта именно папка проекта
и в ней есть .agents/skills/system-stats/SKILL.md. Для отдельной проверки
явного выбора начните новый чат:
Используй skill system-stats: проверь нагрузку, память и диск.
Успех явного выбора не засчитывайте как успех автоматического выбора.
Ожидаемый формат ответа (условный пример, не измерения вашей машины):
Нагрузка: средняя за 5 минут — 1,2 при 8 логических CPU.
Память: доступно около 25% от общего объёма.
Диск /: занято 63%.
Сверьте цифры ответа с JSON именно этого запуска. Если после разрешённого
запуска секция всё ещё возвращает error, сохраните текст ошибки для
разбора с преподавателем: эта проверка ещё не пройдена.
Попросите агента:
Через system-stats покажи только время работы системы.
Ожидается запуск с section=uptime и ответ по этой секции.
Результат одной секции выводится без внешнего ключа uptime.
Затем в терминале проверьте неправильный аргумент:
TOOL_ARGS='{"section":"unknown"}' python3 tools/system-stats/system-stats.py
echo $?Ожидается JSON с error, содержащим invalid arguments, и код выхода 1.
Сбор метрик при таком запросе не выполняется. В отличие от этого,
ошибка отдельного сборщика находится внутри результата при коде выхода 0.
Остальные секции описаны в справке. Для основного урока они не нужны.
all включает и порты, и benchmark; это не сокращение для базовой проверки.
- Вы можете объяснить назначение четырёх составляющих примера.
- Базовый запрос вызвал нужный skill и только три требуемые секции.
- Отдельный запрос вызвал только
uptime. - Все запрошенные секции вернули измерения, ответ агента соответствует JSON.
- Неверный аргумент вернул понятную ошибку и код
1. - Агент не собирал метрики обходными командами и не менял систему.
Для сдачи достаточно указать выполненные запросы, фактически вызванные
команды и результат каждой проверки. Урок пройден, когда базовая диагностика
и uptime работают, а намеренно неверный аргумент возвращает ожидаемую
ошибку. Ошибка сбора данных не засчитывается как успешное выполнение задания.
Пороговые значения в справке — учебные ориентиры. Этот короткий снимок не устанавливает причину торможения и не заменяет полноценную диагностику.