Itinai.com two developers coding side by side in a minimalist 9e46852c 56ad 43df b8ce 5a8451c13b63 0

Как решить проблемы OpenHarness: простой дизайн рантайма агентов

Itinai.com two developers coding side by side in a minimalist 9e46852c 56ad 43df b8ce 5a8451c13b63 0

Постоянная память для агента: как сохранить контекст между запусками

В большинстве проектов агент «забывает» всё, что вы ему сказали, после завершения сессии. Это раздражает, особенно если пользователь явно указал предпочтения: метрическая система, лаконичные ответы и т.д. Решение простое — хранить важные заметки в файле MEMORY.md и подгружать их в системный промпт при каждом новом запуске.

  • Запись: во время первой сессии агент использует инструмент remember и сохраняет строку «User prefers metric units and concise answers» в MEMORY.md.
  • Чтение: при старте второй сессии файл читается, а его содержимое вставляется в системный промпт. Агент уже «знает» предпочтения без дополнительных запросов.

Таким способом любой «долгоживущий» state сохраняется на диск и повторно используется.

Автоматическое сжатие контекста: как не «переполнить» окно модели

Контекстное окно современных LLM ограничено (обычно 4‑8 к токенов). При длительных диалогах количество сообщений быстро превышает лимит. Автокомпрессия решает проблему: старые сообщения свёртываются в один‑единственный сводный summary, а последние реплики остаются нетронутыми.

  • Что сохраняется? – цель задачи, ключевые выводы и любые важные параметры.
  • Что отбрасывается? – детали промежуточных шагов, которые уже учтены в сводке.
  • Порог задаётся в токенах; в примерах мы принудительно ставим небольшое значение, чтобы увидеть работу механизма.

В результате общий объём диалога уменьшается на 30‑70 %, а агент продолжает работать, не теряя контекста.

Координация нескольких агентов: параллельные подзадачи и сбор результатов

Сложные задачи часто требуют разбиения на подзадачи, которые могут решаться независимо. В OpenHarness это реализовано через «spawn‑agent» – инструмент, который запускает полностью изолированный подагент (со своим мозгом, инструментами и памятью).

  • Lead‑агент разбивает запрос на две исследовательские ветки и одну задачу по синтезу.
  • Исследователи работают параллельно (внутри asyncio.gather), каждый использует свой набор инструментов (например, веб‑поиск).
  • Писатель получает готовые заметки и формирует короткий итог.

Все подзадачи записываются в общий реестр, что позволяет отследить, кто что делал, и легко отладить процесс.

Переключение на реальную модель: от mock‑движка к Anthropic/ OpenAI

В демо все действия выполняются на детерминированном мок‑мозге, что экономит токены и не требует API‑ключей. Как только понадобится реальная генерация, достаточно задать несколько переменных окружения и воспользоваться функцией make_real_brain.

  • Для Anthropic: ANTHROPIC_API_KEY и MODEL=claude-sonnet-4-6.
  • Для OpenAI‑совместимых (включая Ollama): OPENAI_API_KEY, OPENAI_BASE_URL и MODEL=llama-3.3-70b.
  • После установки переменных среда автоматически подменит мозг в QueryEngine.

Все остальные компоненты (инструменты, память, правила доступа) остаются без изменений – это и есть главное преимущество «harness»: вы меняете лишь модель, а вся инфраструктура сохраняется.

Практический чек‑лист для внедрения

  • Настройте MemoryStore – укажите путь к MEMORY.md, вызовите memory.reset() при начале новой сессии.
  • Внедрите автокомпрессию – используйте maybe_compact(messages, max_tokens, keep_last) перед каждой отправкой запросов в модель.
  • Определите инструменты «spawn_agent» – опишите роль и скрипт подагента, передайте функции в контекст ToolContext(spawn=spawn).
  • Подготовьте переменные окружения для реального провайдера и проверьте, что make_real_brain() возвращает объект.
  • Отслеживайте затраты – объект CostMeter собирает статистику по использованным токенам и стоимости.

Где посмотреть исходный код

Полный проект доступен на GitHub: github.com/HKUDS/OpenHarness. Там вы найдёте более 40 готовых инструментов, плагин‑экосистему, клиент MCP, TUI‑интерфейс и CLI oh, а также персонального агента ohmo.

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн