Skip to content
 
 

Latest commit

 

History

229 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Данный форк создан для быстрого погружения в архитектуру ИИ-агентов без языкового барьера. Все термины переведены, что позволяет сфокусироваться на логике LLM-систем. Репозиторий служит наглядным примером harness-упряжки: изучите его, чтобы написать собственный, более эффективный инструмент с чистого листа.

OpenAgents Control (OAC)

OAC — конфигурационный слой для OpenCode: набор Markdown-промптов, специализированных агентов, команд и контекстных файлов. Его задача — сделать работу AI-агента предсказуемой: сначала понять проект и его правила, затем предложить план, получить подтверждение и только после этого выполнять изменения.

Проект удобно использовать как локальную папку .opencode/ внутри репозитория. Тогда командные правила и знания о проекте живут рядом с кодом, версионируются Git и доступны всей команде.

Что даёт OAC

  • Контекст проекта. Агент сначала загружает подходящие правила: стиль кода, тестирования, документации, безопасности и архитектуры.
  • Разделение ролей. Основной агент передаёт специализированные части задачи агентам для поиска контекста, реализации, тестирования, ревью и сборки.
  • Контроль изменений. В промптах предусмотрен цикл «анализ → план → подтверждение → выполнение → проверка».
  • Редактируемые правила. Поведение агентов описано обычными .md-файлами. Их можно адаптировать под процессы команды без разработки плагина.
  • Минимальный контекст. База знаний организована по принципу MVI: агент подгружает только файлы, нужные для текущей задачи.
  • Honcho. Интеграция с межсессионной памятью. https://honcho.dev/

Как это работает

Запрос разработчика
        ↓
ContextScout находит правила и примеры проекта
        ↓
Основной агент формирует план
        ↓
Подтверждение пользователя
        ↓
Реализация и делегирование специалистам
        ↓
Тесты / сборка / ревью
        ↓
Результат и краткий отчёт

Быстрый старт

1. Подготовьте окружение

Нужны установленный OpenCode CLI, Git и Node.js. Для встроенного CLI управления задачами также нужен npx ts-node (при первом запуске npx может предложить его скачать).

Разместите эту папку в корне целевого проекта:

my-project/
├── .opencode/       # этот репозиторий
├── src/
└── package.json

Установите npm-зависимость, если она ещё не установлена:

cd .opencode
npm install

2. Запустите агента

Из корня проекта:

opencode --agent OpenAgent

OpenAgent подходит для вопросов, небольших задач и знакомства с системой. Для сложной разработки, проектирования или рефакторинга используйте:

opencode --agent OpenCoder

Пример запроса:

Добавь endpoint профиля пользователя. Сначала изучи существующие API-паттерны,
предложи план и жди моего подтверждения перед изменением файлов.

3. Добавьте знания о своём проекте

В сессии OpenCode запустите:

/add-context

Команда собирает стек, примеры API и компонентов, соглашения по именованию, правила качества и требования безопасности. Результат сохраняется в context/project-intelligence/ и становится доступен агентам в следующих задачах.

Основные агенты

Агент Когда использовать Роль
OpenCoder Новая фича, архитектура, многофайловый рефакторинг Координатор разработки с обязательными проверками.
ContextScout Перед новой задачей Находит подходящие локальные стандарты и примеры.
ExternalScout Внешняя библиотека или API Ищет актуальную внешнюю документацию.
TaskManager Большая фича с зависимостями Делит работу на атомарные подзадачи.
CoderAgent Реализация утверждённой части работы Пишет код в заданных границах.
TestEngineer Проверка поведения Создаёт и запускает тесты.
CodeReviewer Контроль качества и рисков Делает ревью без изменения кода.
BuildAgent Финальная техническая проверка Выполняет type-check и сборку, только сообщает результат.
DocWriter Документация Создаёт и поддерживает документацию.

Промпты и права агентов находятся в agent/. Главные агенты могут делегировать работу только разрешённым специалистам.

Команды

Команда Назначение
/add-context Собрать и сохранить паттерны конкретного проекта.
/context Извлечь, упорядочить или обновить базу контекста.
/analyze-patterns Найти повторения, похожие реализации и возможности рефакторинга.
/clean Очистить код: форматирование, импорты, lint и типы.
/optimize Проанализировать производительность и безопасность.
/test Запустить pipeline типов, линтера и тестов.
/commit Подготовить conventional commit.
/validate-repo Проверить согласованность файлов OAC.
/check-context-deps Проверить связи агентов с контекстными файлами.

Полные инструкции команд находятся в command/.

Структура

.opencode/
  ├── agent/                              # Промпты и права AI-агентов
  │   ├── core/
  │   │   └── opencoder.md                # Главный агент для сложной разработки,
  │   │                                   # архитектуры и многофайловых изменений.
  │   │
  │   └── subagents/                      # Специалисты, которым главные агенты делегируют работу
  │       ├── core/
  │       │   ├── contextscout.md         # Находит релевантный контекст и стандарты проекта.
  │       │   ├── externalscout.md        # Ищет актуальную документацию внешних библиотек.
  │       │   ├── task-manager.md         # Декомпозирует большую задачу на подзадачи и зависимости.
  │       │   └── documentation.md        # Создаёт и обновляет техническую документацию.
  │       ├── code/
  │       │   ├── coder-agent.md          # Реализует код по утверждённому плану.
  │       │   ├── test-engineer.md        # Пишет и проверяет тесты.
  │       │   ├── reviewer.md             # Выполняет code review без изменения кода.
  │       │   └── build-agent.md          # Запускает type-check и build, только сообщает ошибки.
  │       ├── development/
  │       │   ├── frontend-specialist.md  # Специалист по frontend/UI-задачам.
  │       │   └── devops-specialist.md    # Специалист по CI/CD, контейнерам и инфраструктуре.
  │       └── system-builder/
  │           └── context-organizer.md    # Организует, сжимает и поддерживает базу контекста.
  │
  ├── command/                            # Slash-команды для типовых операций
  │   ├── add-context.md                  # Интерактивно собирает паттерны проекта
  │   │                                   # и формирует Project Intelligence.
  │   ├── analyze-patterns.md             # Ищет повторяющиеся паттерны, дублирование,
  │   │                                   # похожие реализации и точки рефакторинга.
  │   ├── clean.md                        # Описывает очистку кода: форматирование,
  │   │                                   # импорты, lint, типы, debug-код.
  │   ├── commit.md                       # Создаёт conventional commit с emoji.
  │   ├── context.md                      # Управляет знаниями: harvest, extract,
  │   │                                   # organize и update контекстных файлов.
  │   ├── optimize.md                     # Анализирует производительность и безопасность.
  │   ├── test.md                         # Запускает типы, lint и тесты.
  │   ├── validate-repo.md                # Проверяет согласованность компонентов,
  │   │                                   # документации и связей в OAC.
  │   └── openagents/
  │       └── check-context-deps.md       # Ищет сломанные/необъявленные зависимости
  │                                       # между агентами и контекстными файлами.
  │
  ├── config/
  │   └── agent-metadata.json             # Центральный реестр метаданных агентов:
  │                                       # id, категория, теги и зависимости.
  │
  ├── context/                            # База знаний, загружаемая агентами по необходимости
  │   ├── navigation.md                   # Главная карта всей базы контекста.
  │   │
  │   ├── core/                           # Общие правила работы любых агентов
  │   │   ├── navigation.md               # Навигация по базовому контексту.
  │   │   ├── essential-patterns.md       # Общие инженерные паттерны.
  │   │   ├── visual-development.md       # Базовые правила визуальной разработки.
  │   │   ├── config/
  │   │   │   ├── paths.json              # Локальный/глобальный путь к контексту.
  │   │   │   └── navigation.md           # Описание конфигурации.
  │   │   ├── standards/                  # Нормы качества и соглашения
  │   │   │   ├── code-quality.md         # Качество кода.
  │   │   │   ├── code-analysis.md        # Анализ существующего кода.
  │   │   │   ├── test-coverage.md        # Тестирование и покрытие.
  │   │   │   ├── documentation.md        # Стиль и структура документации.
  │   │   │   ├── security-patterns.md    # Базовые практики безопасности.
  │   │   │   ├── typescript.md           # Стандарты TypeScript.
  │   │   │   ├── csharp.md               # Стандарты C#.
  │   │   │   ├── csharp-project-structure.md # Структура C#-проекта.
  │   │   │   ├── project-intelligence.md # Как хранить знания о проекте.
  │   │   │   └── project-intelligence-management.md # Их сопровождение.
  │   │   ├── workflows/                  # Регламент выполнения задач
  │   │   │   ├── code-review.md, review.md      # Процесс ревью.
  │   │   │   ├── feature-breakdown.md           # Декомпозиция фичи.
  │   │   │   ├── delegation.md,
  │   │   │   │   task-delegation-*.md           # Делегирование и кэширование контекста.
  │   │   │   ├── component-planning.md          # Планирование компонентов.
  │   │   │   ├── session-management.md          # Продолжение и завершение сессий.
  │   │   │   ├── external-context-*.md,
  │   │   │   │   external-libraries-*.md        # Работа с внешними источниками и пакетами.
  │   │   │   └── design-iteration-*.md          # Цикл UI-дизайна:
  │   │   │                                       # layout → theme → animation → implementation.
  │   │   ├── task-management/             # Формат и жизненный цикл задач
  │   │   │   ├── standards/task-schema.md # JSON-схема задачи/подзадачи.
  │   │   │   ├── guides/*.md              # Декомпозиция и ведение задач.
  │   │   │   └── lookup/task-commands.md  # Справочник Task CLI.
  │   │   ├── system/                      # Правила разрешения путей и загрузки контекста.
  │   │   └── context-system/              # «Операционная система» базы знаний:
  │   │       ├── standards/*.md           # MVI, frontmatter, структура, шаблоны.
  │   │       ├── guides/*.md              # Создание, сжатие и навигация контекста.
  │   │       ├── operations/*.md          # Extract, Harvest, Organize, Update, Migrate, Error.
  │   │       ├── examples/*.md            # Примеры навигационных файлов.
  │   │       └── CHANGELOG.md             # История изменений системы.
  │   │
  │   ├── development/                     # Знания по разработке
  │   │   ├── navigation.md и *-navigation.md # Маршруты для backend, frontend,
  │   │   │                                    # fullstack, data, infrastructure, UI, интеграций.
  │   │   ├── principles/
  │   │   │   ├── api-design.md            # Проектирование API.
  │   │   │   └── clean-code.md            # Clean Code.
  │   │   ├── frontend/when-to-delegate.md # Когда передавать задачу frontend-специалисту.
  │   │   └── ai/mastra-ai/                # Справочник интеграции Mastra:
  │   │       ├── concepts/*.md            # Agents, Tools, Workflows, Storage, Evals.
  │   │       ├── guides/*.md              # Сборка, тестирование, структура workflow.
  │   │       ├── examples/*.md            # Пример document workflow.
  │   │       ├── errors/*.md              # Ошибки Mastra.
  │   │       └── lookup/*.md              # Конфигурация Mastra.
  │   │
  │   ├── ui/                              # UI/UX-контекст
  │   │   ├── terminal/navigation.md       # Терминальный интерфейс.
  │   │   └── web/                         # Web UI:
  │   │       ├── react-patterns.md, ui-styling-standards.md, design-systems.md
  │   │       ├── animation-*.md           # Анимации компонентов, форм, загрузок и чата.
  │   │       └── design/                  # Scrollytelling и scroll-анимации:
  │   │           ├── concepts/
  │   │           ├── guides/
  │   │           ├── examples/
  │   │           └── lookup/
  │   │
  │   ├── project-intelligence/            # Память о конкретном продукте:
  │   │   ├── business-domain.md           # Бизнес-домен.
  │   │   ├── technical-domain.md          # Технологии и инженерные соглашения.
  │   │   ├── business-tech-bridge.md      # Связь требований бизнеса с реализацией.
  │   │   ├── decisions-log.md             # Архитектурные решения.
  │   │   └── living-notes.md              # Живые рабочие заметки.
  │   │
  │   └── openagents-repo/                 # Документация именно по развитию OAC
  │       ├── quick-start.md               # Быстрый старт.
  │       ├── core-concepts/*.md           # Агенты, метаданные, registry, evals, категории.
  │       ├── guides/*.md                  # Добавление агента/skill, тестирование,
  │       │                                 # релизы, npm, GitHub Issues, отладка.
  │       ├── lookup/*.md                  # Команды, файловая карта и тестовые команды.
  │       ├── examples/*.md                # Примеры context bundle и промптов субагентов.
  │       ├── blueprints/, templates/      # Шаблоны context bundle.
  │       ├── errors/                      # Ошибки прав инструментов.
  │       ├── quality/                     # Проверка зависимостей registry.
  │       └── plugins/context/             # Архитектура плагинов OpenCode:
  │                                       # lifecycle, events, tools, skills, agents.
  │
  ├── skills/                              # Исполняемые навыки для агентов
  │   ├── context7/                        # Получение актуальной документации библиотек:
  │   │   ├── SKILL.md                     # Инструкция по API Context7.
  │   │   ├── README.md                    # Быстрый сценарий применения.
  │   │   ├── library-registry.md          # Поддерживаемые библиотеки и шаблоны запросов.
  │   │   └── navigation.md                # Навигация по skill.
  │   └── task-management/                 # Реальная CLI-реализация управления задачами:
  │       ├── SKILL.md                     # Контракт skill и JSON-модель задач.
  │       ├── router.sh                    # Bash-точка входа.
  │       └── scripts/task-cli.ts          # Команды status/next/parallel/deps/
  │                                       # blocked/complete/validate.
  │
  ├── tool/
  │   └── env/index.ts                     # TypeScript-утилита безопасной загрузки
  │                                       # переменных окружения из нескольких .env.
  │
  ├── README.md                            # Позиционирование OAC, установка и сценарии работы.
  ├── node_modules/                        # Установленные внешние зависимости; в презентацию
  │                                       # обычно не включают.
  └── env.example                          # Шаблон переменных Telegram/Gemini/MiniMax.

Подробная карта базы знаний начинается с context/navigation.md. Для задач по коду ключевой файл — context/core/standards/code-quality.md.

Работа с контекстом

Контекст разрешается по принципу local-first:

  1. Сначала ContextScout ищет .opencode/context/core/navigation.md внутри проекта.
  2. Если локальной базы нет, для общих правил может использоваться глобальный путь ~/.config/opencode/context.
  3. project-intelligence/ остаётся локальным: это знания именно вашего проекта.

Файл context/core/config/paths.json позволяет изменить эти пути.

Что стоит добавить первым

  • используемый стек и версии ключевых библиотек;
  • пример API endpoint и формат обработки ошибок;
  • пример UI-компонента;
  • соглашения по именованию файлов, сущностей и веток;
  • правила тестирования и требования безопасности;
  • принятые архитектурные решения.

Чем точнее эти сведения, тем меньше агенту приходится делать предположений.

Управление крупными задачами

TaskManager сохраняет декомпозицию в .tmp/tasks/ целевого проекта. Встроенный CLI показывает прогресс, готовые к запуску подзадачи и блокировки:

# Запускать из корня целевого проекта
bash .opencode/skills/task-management/router.sh status
bash .opencode/skills/task-management/router.sh next
bash .opencode/skills/task-management/router.sh blocked
bash .opencode/skills/task-management/router.sh validate

Формат файлов задач описан в context/core/task-management/standards/task-schema.md.

Адаптация под команду

  1. Дополните context/project-intelligence/ правилами проекта.
  2. При необходимости измените Markdown-промпты в agent/.
  3. Добавьте свои slash-команды в command/.
  4. Проверьте связи между компонентами через /check-context-deps.
  5. Закоммитьте .opencode/ вместе с кодом проекта.

Не храните секреты в контексте или в Git. Для ключей используйте .env; пример имён переменных находится в env.example.

Лицензия

Исходная основа OAC распространяется по лицензии MIT. Перед публикацией форка добавьте в репозиторий собственный файл LICENSE с выбранными условиями использования.

About

Harness для OpenCode включает поддержку нескольких языков программирования, а также встроенные механизмы автоматического тестирования, проверки кода и валидации.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages