Построение кодирующего агента для контекста в 8 тыс. токенов: разделение планировщика/исполнителя, бюджетирование токенов и параллельное выполнение

✍️ OpenClawRadar📅 Опубликовано: 28 апреля 2026 г.🔗 Source
Построение кодирующего агента для контекста в 8 тыс. токенов: разделение планировщика/исполнителя, бюджетирование токенов и параллельное выполнение
Ad

Большинство ИИ-инструментов для кодирования предполагают модели с 200 тыс. токенов, но если вы используете локальные LLM через Ollama, LM Studio или бесплатные API вроде Groq или OpenRouter, вам приходится довольствоваться ~8 тыс. токенами. Этого не хватит на целый проект — едва ли достаточно для одного большого файла. Один разработчик потратил недели на создание CLI-агента, рассчитанного на это ограничение, и поделился практическими выводами.

Основная архитектура: разделение на planner и executor

Агент никогда не показывает LLM весь проект. Вместо этого работа делится на три роли:

  • Planner: видит только легковесную карту проекта (Markdown-сводки по каждой папке, всего ~300–500 токенов) плюс запрос пользователя и выдает список задач.
  • Executor: за один вызов видит ровно один файл и одну задачу — никогда не два файла вместе.
  • Orchestrator: чистый код (без LLM), который строит граф зависимостей из списка задач и решает, какие задачи можно выполнять параллельно, а какие — последовательно.

Это превращает рефакторинг нескольких файлов из проблемы контекстного окна в проблему планирования. Planner'у не нужно видеть код, а executor за раз видит только ограниченный объем кода.

Контроль токенов в коде

Каждый вызов LLM проходит проверку canFit(), которая измеряет системный промпт + зарезервированные выходные токены + память + фактический код. Если код не помещается, агент переключается на пофайловый индекс строк (создается один раз для файлов длиннее ~150 строк) и извлекает только нужную секцию.

Бюджет для 8192 токенов:

Системный промпт + инструкции: ~1000
Зарезервировано на ответ: ~2000
Краткосрочная память (4 записи): ~360
Доступно для кода: ~4800 (около 140–190 строк)

Если бюджет ограничен, сначала отбрасывается контекст папок, затем память, и только потом — часть кода.

Ad

Параллельное выполнение для ускорения

Поскольку каждый executor видит только один файл, независимые правки в разных файлах выполняются одновременно. Рефакторинг 5 файлов завершается примерно за время самого долгого изменения. Граф зависимостей (строится в коде из списка задач planner'а) определяет порядок.

Болевые точки и их устранение

  • Запросы в стиле вопросов перезаписывают файлы: вопрос «сколько строк в X?» заставлял executor'а записывать ответ в файл. Исправлено добавлением поля action_type: "query" в вывод planner'а, которое обрабатывается кодом, не затрагивающим диск.
  • Устаревшие карты проекта ведут к неправильным маршрутам: если пользователь упоминал переименованный файл, отсутствующий в карте, planner молча перенаправлял на ближайшее совпадение. Теперь orchestrator проверяет, существуют ли упомянутые пути к файлам на диске, и выдает четкую ошибку, если их нет.
  • Markdown-ограждения в выводе executor'а: маленькие модели оборачивают код в тройные обратные кавычки, даже если им сказано не делать этого. Исправлено: удалять их при постобработке, а не бороться с промптом.
  • Стоимость токенов памяти: постоянная память добавляет ~80–90 токенов на запись. При нехватке бюджета сначала отбрасывается контекст папок, затем память, прежде чем урезать сам код.

Открытые вопросы

Выдержит ли разделение на planner/executor кодовые базы из более чем 50 файлов — граф зависимостей остается управляемым, но карта проекта начинает стоить реальных токенов. Сейчас сначала отбрасывается контекст папок, но при глубоких правках контекст теряется. Реализация опубликована в открытом доступе, если хотите покопаться.

📖 Read the full source: r/LocalLLaMA

Ad

👀 Смотрите также

Разблокировка проактивности: Детальное исследование инноваций Clawbot от сообщества
Инструменты

Разблокировка проактивности: Детальное исследование инноваций Clawbot от сообщества

Узнайте, как энтузиасты повышают проактивность своих Clawbot с помощью изобретательных стратегий и общинного опыта. Обзор обсуждений и открытий на r/openclaw.

OpenClawRadar
ClawCode: Чистая переписанная версия утекшего кода Claude на Rust
Инструменты

ClawCode: Чистая переписанная версия утекшего кода Claude на Rust

ClawCode — это чистая реализация исходного кода Claude Code, написанная на Rust. Проект появился после утечки исходного кода Claude Code от Anthropic и сравнивается с OpenCode по производительности при выполнении сквозных задач.

OpenClawRadar
Supra-50M-Reasoning: открытая малогабаритная модель с цепью логических рассуждений
Инструменты

Supra-50M-Reasoning: открытая малогабаритная модель с цепью логических рассуждений

SupraLabs выпустил Supra-50M-Reasoning, модель с 50M параметров, дообученную для генерации полной цепочки рассуждений перед ответом. Набор данных из 500 синтетических примеров, полностью открытый исходный код.

OpenClawRadar
Org Studio: Открытая панель управления для координации многокомандных ИИ-агентов
Инструменты

Org Studio: Открытая панель управления для координации многокомандных ИИ-агентов

Org Studio — это панель управления с открытым исходным кодом, которая применяет принципы организационного дизайна для координации команд ИИ-агентов, с нативной поддержкой как OpenClaw, так и Hermes Agent. Она включает управление топологией команд, событийные доски задач и межплатформенное взаимодействие, где агенты могут упоминать друг друга в комментариях к задачам.

OpenClawRadar