← Все гайды AI Release
EN Подписаться на @ai_release1

ICM на практике: структура папок, которая делает ИИ-агента управляемым

Обновлено: 02.11.2026 · AI Release · @ai_release1
ICM на практике: структура папок, которая делает ИИ-агента управляемым

TL;DR

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Шаг 1. Спроектируйте пайплайн и создайте каркас папок

Что сделать: разбейте задачу на последовательные шаги и создайте директории под контекст, шаги, навыки и результаты.

Зачем: ICM заменяет оркестрацию на уровне фреймворка оркестрацией через файловую систему. Агенту не нужно угадывать порядок действий — он читает plan.md и файлы шагов.

Пример:

mkdir -p icm-agent/{context,steps,skills,out}
cd icm-agent
touch AGENTS.md plan.md

Структура после команды:

icm-agent/
├── AGENTS.md
├── plan.md
├── context/
│   ├── 00-role.md
│   ├── 01-input.md
│   └── 02-constraints.md
├── steps/
│   ├── 01-extract.md
│   ├── 02-validate.md
│   └── 03-report.md
├── skills/
│   └── threat-model/
└── out/
    └── run-2026-10-22/

Как проверить:

tree -L 3

Если tree не установлена:

find . -maxdepth 2 -type d | sort

На экране должны появиться папки context, steps, skills, out. Если папок нет — команда mkdir не выполнилась или вы находитесь не в той директории.

Для длинных задач используйте plan.md: в посте про Tiel-Coder-35B-A3B-MTP контекст 65 535 токенов, поэтому задачи дробят через plan.md и лёгкий агент Pi вместо Codex или Claude Code.

Шаг 2. Заполните контекст, план и шаги

Иллюстрация к разделу «Шаг 2. Заполните контекст, план и шаги»
Иллюстрация к разделу «Шаг 2. Заполните контекст, план и шаги»

Что сделать: в каждом markdown-файле опишите роль, вход, ограничения и ожидаемый выход. В AGENTS.md задайте общие правила, в plan.md — последовательность шагов.

Зачем: агент читает эти файлы как инструкции. В кейсе TravelLine условие входа было жёстким: без полного контекста и вылизанной инструкции агент путает suites и секции и отдаёт неполный список тестов.

Пример plan.md:

# План пайплайна
1. steps/01-extract.md — извлечь список E2E-тестов из TestIT через MCP.
2. steps/02-validate.md — сверить список с локальным репозиторием автотестов.
3. steps/03-report.md — собрать отчёт в out/run-2026-10-22/report.md.

Пример AGENTS.md:

# Правила агента
- Читай только файлы внутри icm-agent/.
- Перед каждым шагом перечитай plan.md.
- Не переходи к следующему шагу, пока не запишешь результат в out/.
- Если данных не хватает, остановись и задай вопрос человеку.

Пример steps/01-extract.md:

# Шаг 1. Извлечение тестов
Роль: QA-инженер.
Вход: данные из TestIT через MCP-сервер.
Выход: out/run-2026-10-22/tests.json — список E2E-тестов.
Ограничение: не менять репозиторий.
ФайлЧто внутриЗачем
`AGENTS.md`общие правила для агентазадаёт границы поведения
`plan.md`последовательность шаговне даёт агенту перескакивать этапы
`context/01-input.md`входные данные и scopeснижает риск неполного ответа
`steps/*.md`промпт и ожидаемый выход шагаделает шаг воспроизводимым

Если ваш агент ищет навыки в ~/.claude/skills, папку можно подключить симлинком. Пример из grim-prompter:

ln -s "$(pwd)/skills/threat-model" ~/.claude/skills/threat-model

Проверка:

ls -l ~/.claude/skills/threat-model

В выводе должна быть стрелка на вашу папку skills/threat-model.

Если контекст разрастается, см. Как экономить токены LLM: кэш, роутинг и prompt caching на практике.

Как проверить:

grep -R "Выход:" steps/

У каждого шага должна быть строка Выход:. Если её нет, агент может выполнить шаг и не сохранить артефакт.

Шаг 3. Запустите агента и проверьте артефакты

Что сделать: запустите агента в корне icm-agent и дайте ему инструкцию следовать plan.md. Результаты должны появиться в out/run-2026-10-22/.

Зачем: так вы проверяете, что структура папок работает как оркестратор, а агент не придумывает шаги заново.

Пример:

cd icm-agent
<agent-cli> "Прочитай plan.md и выполни шаг 1. Результат запиши в out/run-2026-10-22/"

Замените <agent-cli> на CLI вашего агента: OpenCode, Claude Code, Codex CLI. Точные флаги запуска сверьте с документацией.

Как проверить:

tree out/
cat out/run-2026-10-22/tests.json | head

Ожидаемый результат: в out/run-2026-10-22/ появились tests.json, затем validation.md и report.md. В tests.json — список тестов, а не пустой файл.

Чек-лист приёмки:

Для формальной проверки агента прогоните Аудит ИИ-агента за 120 секунд: 32 проверки и оценка A–F (iFixAi).

Возможные проблемы и решения

Проблема. Агент путает suites и секции, отдаёт неполный список тестов

cat >> context/01-input.md <<'EOF'
## Scope
![Иллюстрация к разделу «Scope»](https://ai-release.org/guides/img/icm-praktika-struktura-papok-agenta-ru-3.jpg?v=1793609416)

- suites: <список suite>
- sections: <список секций>
EOF
grep -n "suite\|section" context/01-input.md

После этого выполните шаг 1 заново и проверьте, что в tests.json попали все suites из scope.

Проблема. Симлинк для навыка не создаётся

mkdir -p ~/.claude/skills
ln -s "$(pwd)/skills/threat-model" ~/.claude/skills/threat-model
ls -l ~/.claude/skills/threat-model

В выводе ls -l должна быть строка со стрелкой на skills/threat-model.

Проблема. Агент завершил шаг, но файла результата нет

cat >> steps/01-extract.md <<'EOF'
Выход: out/run-2026-10-22/tests.json
EOF
cat out/run-2026-10-22/tests.json | head

Если файл появился, шаг 1 можно считать завершённым.

Резюме и следующие шаги

Вы создали файловую структуру, где каждый шаг пайплайна описан markdown-файлом, а агент читает plan.md и складывает результат в out/. Дальше добавьте проверку человеком на каждом шаге и протестируйте пайплайн на одном небольшом наборе данных.

FAQ

Чем ICM отличается от фреймворка для агентов?

ICM переносит оркестрацию в структуру файловой системы: markdown-файлы содержат промпты и контекст для каждого шага пайплайна, вместо того чтобы логика выбора шагов жила в коде фреймворка.

Подходит ли ICM для сложных многозадачных систем?

Ограничение подхода: он рассчитан на последовательные процессы с проверкой человеком. Для сложных многозадачных систем это ограничение нужно учитывать.

Нужен ли MCP?

Не обязателен. В кейсе TravelLine агент тянул данные из TestIT через MCP-сервер, но ICM работает и с локальными файлами, если весь контекст лежит в папке context/.

Можно ли использовать ICM с локальной моделью?

Да. В посте про Tiel-Coder-35B-A3B-MTP в кванте Q2_K_XL указано 125 токенов/с на RTX 4070 Ti SUPER с 16 ГБ памяти и контекст 65 535 токенов; задачи дробят через plan.md, чтобы не выходить за лимит.

🤖 Кратко для ИИ