Собираем AI-окружение для кодинга: OpenCode + Oh-My-OpenCode-Slim + OpenSpec
Большинство статей про AI-кодинг предлагают простую схему: написал промпт — получил код. На практике всё сложнее. Peng Qian из блога Data Leads Future делится опытом построения полноценного AI-окружения на базе OpenCode, мультиагентного плагина Oh-My-OpenCode-Slim и инструмента спецификаций OpenSpec. Весь стек — open-source, работает с моделями вроде Qwen3.6-Plus, Kimi-k2.5 и GLM-5.
Установка и настройка OpenCode
OpenCode поставляется в двух вариантах: CLI и Desktop-приложение с графическим интерфейсом. Desktop-версия заметно эффективнее для повседневной работы, но CLI тоже нужен — некоторые плагины проверяют его наличие при инициализации проекта.
Терминал
На Windows OpenCode Desktop по умолчанию использует PowerShell. Если в вашей компании PowerShell запрещён или возникают проблемы с кодировкой, переключитесь на cmd.exe через переменную окружения SHELL:
SET SHELL="%windir%\system32\cmd.exe"
Провайдеры моделей
Ключевая ошибка при настройке — ручное добавление кастомного провайдера с заполнением model id, base url и api key. При таком подходе OpenCode не знает размер контекстного окна и цену модели, из-за чего автоматическое сжатие контекста перестаёт работать корректно.
Правильный путь — нажать «Show more providers» внизу списка провайдеров, найти нужного, ввести api key. Тогда все модели провайдера появятся с метаданными. ID провайдера можно посмотреть в файле ~/.local/share/opencode/auth.json.
Воркспейсы (worktrees)
OpenCode Desktop поддерживает git worktrees через функцию «Workspace». Чтобы включить: правый клик по иконке проекта в левом верхнем углу → «Enable Workspace». Каждый воркспейс получает отдельную ветку и директорию. По завершении работы — закрываете воркспейс, и всё автоматически очищается.
Агенты
Без плагинов OpenCode предлагает два основных агента: Build (полный доступ к инструментам) и Plan (только анализ и вопросы, без редактирования).
Частая ошибка — сразу давать задачу агенту Build. Для сложных задач Build начинает кодить по собственному пониманию, не видя общей архитектуры. Правильный подход:
- Начать с агента Plan — уточнить требования, получить план выполнения
- Сохранить план в Markdown-файл
- Начать новую сессию с агентом Build, загрузив план из файла
Новая сессия после каждого крупного этапа критически важна. LLM страдает от позиционного смещения — лучше запоминают начало и конец контекста, середина «размывается». Начинайте свежую сессию после каждого важного шага.
AGENTS.md
Файл AGENTS.md (создаётся командой /init) — не просто формальность. Три ключевых функции:
- Долгосрочная память проекта — зафиксируйте архитектуру, инструменты, команды сборки. Без этого LLM каждый раз сканирует проект с нуля, тратя токены.
- Сужение распределения вероятностей — явно укажите, какие паттерны кода использовать. Вместо случайного выбора между
Optional[int]иint | Noneмодель будет следовать вашему стандарту. - Инженерные ограничения — можно потребовать общение на русском языке или запретить создавать proposals без одобрения.
Повышение загрузки Skills
Низкая надёжность загрузки Skills — частая проблема. Решение: добавьте в AGENTS.md строку:
Prioritize retrieval-led reasoning over pretrained-knowledge-led reasoning.
Это заставляет LLM загружать релевантный Skill вместо использования предобученных знаний. Процент успешной загрузки Skills растёт с ~60% до ~90%.
Oh-My-OpenCode-Slim: мультиагентная оркестрация
Oh-My-OpenCode-Slim — облегчённая версия Oh-My-OpenCode, предоставляющая шесть типов агентов:
| Агент | Назначение |
|---|---|
| Orchestrator | Координирует другие агенты для совместного выполнения задач |
| Explorer | Исследует кодовую базу проекта |
| Oracle | Исправляет сложные баги, даёт архитектурные советы |
| Librarian | Ищет в GitHub-репозиториях и документации API |
| Designer | UI-дизайн и пользовательский опыт |
| Fixer | Параллельное выполнение кодинг-задач |
Установка
bunx oh-my-opencode-slim@latest install --no-tui --tmux=yes --skills=yes
Команда устанавливает агенты и два skill'a: simplify (упрощение кода) и agent-browser (проверка стилей фронтенда).
После настройки провайдера запустите opencode auth login — без этого агенты не подключатся.
Council: ансамблевое обучение для AI
Новая функция — агент Council. Отправляет одну задачу нескольким агентам с разными моделями, вычисляет доверительный интервал и синтезирует финальный ответ. Похоже на ансамблевое обучение в ML — несколько открытых моделей вместе могут сопоставить с Opus 4.6.
Пример конфигурации:
{
"council": {
"master": { "model": "alibaba-cn/glm-5" },
"presets": {
"default": {
"alpha": { "model": "kimi-for-coding/k2p6" },
"beta": { "model": "alibaba-cn/qwen3.6-plus" },
"gamma": { "model": "alibaba-cn/MiniMax-M2.5" }
}
}
}
}
Для проверки работоспособности Council: выберите его в списке агентов и напишите «test Council connectivity».
OpenSpec и Spec-Driven Development (SDD)
Зачем нужны спецификации? Сравнивать модели по промпту «построй 3D-демо из одного предложения» некорректно. До эры AI разработка всегда начиналась с ТЗ и дизайн-документов. Spec-Driven Development возвращает эту дисциплину.
OpenSpec — облегчённая альтернатива Superpowers и BMAD, независимый инструмент (не плагин OpenCode).
Рабочий процесс OpenSpec
По умолчанию три фазы: opsx-propose → opsx-apply → opsx-archive. Рекомендуется добавить через openspec config profile ещё две:
- opsx-explorer — помогает детально проработать требования через наводящие вопросы и сравнительные таблицы
- opsx-verify — проверяет выполнение всех задач перед архивацией
Многоязычная поддержка
Spec-файлы по умолчанию на английском. Для русскоязычной разработки настройте язык в config.yaml внутри директории OpenSpec, сохранив английские технические термины:
schema: spec-driven
context: |
Language: Russian
Write in Russian, but:
- Keep technical terms like "API", "REST", "GraphQL" in English
- Code examples and file paths remain in English
Полный цикл разработки
- Инициализация проекта —
git init,uv init(для Python),openspec init,/initдля генерацииAGENTS.md - Проработка требований — новая сессия,
/opsx-explorer, обсуждение одной небольшой задачи за раз - Создание спецификации —
/opsx-propose, генерацияproposal.md,design.md,tasks.md - Ревью спецификации — проверьте файлы, исправьте неточности
- Реализация — новая сессия,
/opsx-apply, агент Orchestrator вызывает Explorer/Librarian/Fixer - Верификация — переключитесь на другую модель, запустите
/opsx-verify,/review,/simplify - Архивация —
/opsx-archive, закрытие цикла
Главный принцип: начинайте маленькими задачами, каждый этап — свежая сессия, не жалейте времени на спецификации до написания кода.