Замена сложных конвейеров извлечения данных простыми командами git для агентов ИИ

✍️ OpenClawRadar📅 Опубликовано: 20 марта 2026 г.🔗 Source
Замена сложных конвейеров извлечения данных простыми командами git для агентов ИИ
Ad

От сложного пайплайна к простым командам git

Разработчик, создающий DiffMem — систему памяти для ИИ-агентов на основе git, обнаружил, что их слой извлечения данных был излишне сложным. Они использовали sentence-transformers для оценки косинусного сходства, rank-bm25 для поиска по ключевым словам, двухэтапный пайплайн LLM для уточнения запросов и синтеза результатов, а также scikit-learn и numpy в качестве зависимостей. Это приводило к образу Docker размером 3 ГБ (sentence-transformers тянул за собой весь PyTorch), таймаутам у активных пользователей примерно в 10% случаев и холодному старту, который каждый раз перестраивал BM25-индекс в памяти.

Осознание: LLM уже знают git

Ключевое прозрение пришло с пониманием, что команды Unix — это самый плотный паттерн использования инструментов в обучающих данных любой LLM. Миллиарды файлов README, CI-скриптов и ответов на Stack Overflow полны команд grep, git log и cat. LLM не нужен пользовательский пайплайн извлечения данных, построенный вокруг неё — она уже говорит на языке команд оболочки.

Решение в виде одного инструмента

Они заменили всю сложную систему одним инструментом:

{
  "name": "run",
  "description": "Выполнить команду только для чтения в репозитории памяти",
  "parameters": {
    "command": "Команда оболочки (поддерживает цепочки |, &&, ||, ;)"
  }
}

Вот и всё. Одна функция. Агент пишет команды оболочки, уже зная grep, git diff, head и другие утилиты Unix, без необходимости их обучения.

Как работает агент

Агент следует фиксированному протоколу на всех своих ходах:

  • Читает манифест сущности
  • Запускает временной зонд против журнала коммитов
  • Группирует своё исследование в один вызов инструмента
  • Выводит план извлечения данных
  • Останавливается

Агент возвращает указатели, а не содержимое. Он читает лёгкие сигналы во время своих ходов (head -30 для структуры, grep -n для ключевых слов, git diff HEAD~3.. для недавних изменений), а затем сообщает коду, что нужно получить. Код разрешает указатели, сохраняя контекст агента лёгким.

Ad

Пример из реальной жизни

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

git log --format='%h %ad' --date=relative --name-only -15

Это показало, что wife.md и company.md изменились в одной сессии, а ключевой коллега появился в 2 из последних 3 сессий. В сообщении пользователя не было ничего о работе — BM25 никогда бы не нашёл company.md, и семантическое сходство по фразе «чувствую себя одиноким в свой день рождения» тоже бы не привело к этому. Но совместное появление в истории коммитов выявило связь, которая действительно имела значение.

На третьем ходу агент составил один вызов инструмента с девятью командами, соединёнными точкой с запятой:

git diff HEAD~2.. -- memories/people/wife.md; git log --stat -5 -- memories/people/wife.md; head -30 memories/people/wife.md; grep -n "birthday|surgery|stress" memories/people/wife.md; tail -50 timeline/2026-03.md; git diff HEAD~3.. -- timeline/2026-03.md; grep -n "project|deliverable" memories/contexts/company.md; git diff HEAD~2.. -- memories/contexts/company.md; git diff HEAD~1.. -- memories/people/colleague.md

Итоговым выводом был план извлечения данных в формате JSON с конкретными git diff, уровнями приоритета и оценками токенов — не содержимое, а указатели. Затем код выполнил команды и собрал контекст в рамках бюджета токенов.

Результаты

Этот подход позволил им удалить rank-bm25, sentence-transformers, scikit-learn и numpy. Размер образа Docker сократился примерно на 3 ГБ. Сервер запускается быстрее, использует долю памяти и больше не имеет BM25-индекса при холодном старте. 10% таймаутов исчезли. На Cloud Run с реальной нагрузкой от пользователей это было не маргинальное улучшение, а другой класс развёртывания.

Что осталось: requests, openai, gitpython.

📖 Read the full source: r/LocalLLaMA

Ad

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

Сервер Ssemble MCP позволяет Claude создавать короткие видео из YouTube.
Инструменты

Сервер Ssemble MCP позволяет Claude создавать короткие видео из YouTube.

Новый MCP-сервер для Ssemble AI Clipping позволяет Claude создавать видео в стиле TikTok/Reels/Shorts из URL-адресов YouTube с помощью AI-сгенерированных клипов, шаблонов субтитров, музыкальных треков и наложений. Настройка включает добавление конфигурации в Claude Desktop или использование размещенной конечной точки.

OpenClawRadar
Крэг: Инструмент с открытым исходным кодом создает единые правила для ИИ-агентов на основе конфигураций проектов.
Инструменты

Крэг: Инструмент с открытым исходным кодом создает единые правила для ИИ-агентов на основе конфигураций проектов.

Crag — это компилятор с открытым исходным кодом, который анализирует конфигурации проекта, генерирует единый файл governance.md, а затем компилирует его в несколько файлов правил для ИИ-агентов, чтобы предотвратить расхождение конфигураций в таких инструментах, как Claude Code, Cursor и Copilot.

OpenClawRadar
OpenClaw Суперспособности: Библиотека из 31 навыка для решения проблем безопасности, стоимости и надежности.
Инструменты

OpenClaw Суперспособности: Библиотека из 31 навыка для решения проблем безопасности, стоимости и надежности.

Разработчик выпустил openclaw-superpowers — библиотеку из 31 готового к использованию навыка для OpenClaw. Библиотека решает распространённые проблемы, такие как неконтролируемые расходы на API, уязвимости безопасности и потеря контекста, и устанавливается одной командой.

OpenClawRadar
🦀
Инструменты

Claude Code против Codex: 36 против 28 файлов, $2.50 против $2.04, обнаружен бесконечный цикл — сравнение в реальных условиях

Разработчик запускает одни и те же две задачи на Claude Code и Codex (Cursor): бот для триажа PR и интерфейс ревью кода в реальном времени. Результаты: 36 против 28 файлов, $2.50 против $2.04, Claude допустил меньше ошибок TypeScript, Codex зациклился в React.

OpenClawRadar