OpenCode: как собрать команду ИИ-агентов на любом OpenAI-совместимом шлюзе
OpenCode — open-source harness под MIT, который не привязан к одному вендору: модели подключаются через любой OpenAI-совместимый шлюз. Автор статьи собрал команду из оркестратора, архитектора, кодера, ревьюера и других субагентов, каждому дал свою модель и права. Ключевая идея: править файлы может только кодер, а запреты вроде git push зашиты в конфиг, а не в промпт.
AI-обработка оригинала Habr AI; редакция Hamidun News
Чат с моделью быстро упирается в потолок: она не видит ваш проект, не запускает тесты и не помнит контекст. Поэтому все говорят про агентов, а агент по сути равен модели плюс harness, то есть обвязке со скиллами, контекстом, интеграциями и мультиагентной логикой. Claude Code и Codex задали планку, но первый привязан к моделям Anthropic, а второй остаётся продуктом OpenAI. OpenCode предлагает третий путь: MIT-лицензия, 75+ провайдеров, локальные модели через Ollama или vLLM и свободный выбор модели для каждой роли.
Материал опубликован на Habr AI и написан сотрудником сервиса Bothub, так что шлюз и реферальная ссылка в нём рекламные. Но сама конфигурация универсальна и подойдёт для любого OpenAI-совместимого эндпоинта.
Подключение провайдера и грабли с прокси
Актуальная ветка v2 ставится как npm i -g @opencode/cli. Старый пакет opencode-ai относится к линии 1.x, и это легко перепутать. Есть и альтернативы: brew, bun или официальный install-скрипт.
Провайдер описывается в opencode.json через пакет @ai-sdk/openai-compatible: указываете baseURL шлюза и перечисляете ID моделей. Ключ лучше не класть ни в конфиг, ни в переменные окружения, а вводить через opencode auth login. Тогда он не окажется в файлах проекта.
Главная практическая ловушка связана с прокси. OpenCode работает на Bun, а его нативный fetch нестабильно обрабатывает HTTP_PROXY и HTTPS_PROXY. При установке плагинов можно получить ошибку fetch() proxy.url must be a non-empty string: агент возвращает объект URL, а fetch ждёт строку. Формат socks5:// Bun не принимает, нужен http://. Даже в правильной настройке нужен NO_PROXY с localhost и 127.0.0.1, иначе интерфейс может зациклиться на собственных запросах. Самое простое решение: снять все прокси-переменные и перезапустить сервис. Только после этого имеет смысл собирать агентов.
Команда агентов и разделение прав
В OpenCode есть два типа агентов. Primary — тот, с кем вы говорите напрямую. Subagent работает в дочерней сессии со своим контекстом и возвращает в основной чат только результат. Встроенные build и plan являются primary, а general и explore субагентами. Их можно не трогать и просто добавить своих.
Автор собрал семь ролей:
- orchestrator (GPT-6.1 Sol) разбивает задачу и делегирует, сам код не пишет;
- architect (Gemini 4 Argon) проектирует модули и потоки данных;
- coder (Claude Sonnet 5.5) реализует и делает минимальные диффы;
- reviewer (Claude Opus 5.5) только ревьюит, без патчей;
- security (GLM-5.3) ищет уязвимости;
- docs (GPT-6 Luna) пишет документацию;
- tests (GLM-5.3 Flash) пишет тесты.
Модели распределены по принципу «дорогая там, где нужен ум, дешёвая там, где хватит и её». Автор подчёркивает, что выбор частично субъективный: он ориентировался на новости и хотел попробовать разные, в том числе открытые модели.
Главное правило схемы: edit: allow есть только у coder. Если файлы правят все, diff разрастается, и уже непонятно, кто что изменил. При этом ревьюеру и security оставлен bash: allow, потому что им нужно гонять линтеры, смотреть git diff и проверять тесты.
Запреты на уровне harness, а не промпта
Фразу «не делай git push» в промпте модель может проигнорировать, особенно при двусмысленной задаче. Запрет в permission обойти нельзя. Правила задаются точечно: по умолчанию bash спрашивает подтверждение, git status и git diff разрешены, git commit и git push запрещены. Агентов можно также вынести из JSON в markdown-файлы .opencode/agents/<name>.md: имя файла становится именем агента, frontmatter конфигом, а тело системным промптом. Это удобно, когда промпты длинные и их нужно версионировать.
Что с этим делать
Если вы уже работаете с Claude Code или Codex, OpenCode стоит попробовать хотя бы ради того, чтобы сравнить модели на своих задачах за один день. Заберите себе принцип: один агент с правом записи, остальные советуют и проверяют, а критичные запреты задавайте через permissions. Конкретный набор моделей лучше проверить на своём коде, потому что выбор автора основан скорее на впечатлениях, чем на бенчмарках. Статья не заменяет документацию, но экономит несколько часов на типичных граблях.
- 8 нояб. 2026 г.Apple ускоряет Siri: агентные функции в iOS 27.3 и сторонние приложения весной
- 8 нояб. 2026 г.OpenAI привлекла $11 млрд при оценке $1,25 трлн — ниже запрошенных $1,4 трлн
- 8 нояб. 2026 г.Robocurve: ИИ-роботы почти не отказываются от опасных команд, а размытая камера делает хуже
- 8 нояб. 2026 г.OpenCode на сервере: как заставить ИИ-агента работать, пока вы спите
Вопросы и ответы по материалу
Что известно по теме: подключение провайдера и грабли с прокси?
Актуальная ветка v2 ставится как npm i -g @opencode/cli. Старый пакет opencode-ai относится к линии 1.x, и это легко перепутать. Есть и альтернативы: brew, bun или официальный install-скрипт. Провайдер описывается в opencode.json через пакет @ai-sdk/openai-compatible: указываете baseURL шлюза и перечисляете ID моделей. Ключ лучше не класть ни в конфиг, ни в переменные окружения, а вводить через opencode auth login. Тогда он не окажется в файлах проекта. Главная практическая ловушка связана с прокси.
Что известно по теме: команда агентов и разделение прав?
В OpenCode есть два типа агентов. Primary — тот, с кем вы говорите напрямую. Subagent работает в дочерней сессии со своим контекстом и возвращает в основной чат только результат. Встроенные build и plan являются primary, а general и explore субагентами. Их можно не трогать и просто добавить своих.
Что известно по теме: запреты на уровне harness, а не промпта?
Фразу «не делай git push» в промпте модель может проигнорировать, особенно при двусмысленной задаче. Запрет в permission обойти нельзя. Правила задаются точечно: по умолчанию bash спрашивает подтверждение, git status и git diff разрешены, git commit и git push запрещены. Агентов можно также вынести из JSON в markdown-файлы .opencode/agents/<name>.md: имя файла становится именем агента, frontmatter конфигом, а тело системным промптом. Это удобно, когда промпты длинные и их нужно версионировать.
Соберите рабочего ИИ-агента или сервис своими руками без ручного кода
В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.