Вы, читатель, как и автор, тоже досадуете, когда в промтах проскакивают досадные опечатки или грамматические конструкции, которые заставляют даже терпеливую LLM «задумчиво» переспрашивать: «What do you mean?»
Если да, то эта статья для вас. Мы разберем, как с помощью минимума кода получить автоматический анализ ваших языковых ляпов и рекомендации по прокачке профессионального английского, не отрываясь от процесса создания кода.
Я много программирую с помощью ИИ. В процессе возникают мысли, идеи и инсайты, которыми чертовски хочется поделиться с коллегами. Но есть нюанс: живых коллег у меня в данный момент нет. Я — программист-одиночка, и мои единственные собеседники — ИИ-агенты.
Это одиночество в сети и подтолкнуло меня (после долгого перерыва в публикациях на Хабре) запустить серию мини-статей о разных «мелочах», связанных с ИИ. Окончательно концепция оформилась, когда под руку попалась одна из моих любимых книг Николая Семеновича Лескова — «Мелочи архиерейской жизни». Если вы цените сочный русский язык и тонкую иронию — искренне советую почитать. А мы пока перейдем к мелочам нашей, «айтишной» жизни.
Должен признаться: мой английский хоть и понимается Copilot-агентами весьма сносно, но иногда возникают недопонимания. А порой становится стыдно (да, уши краснеют!), когда агенты начинает между собой рассуждать, что же именно я имел в виду под этой кучей опечаток.
Захотелось убить двух зайцев: и работу работать, и английский подтягивать. План созрел быстро:
Шаг 1: Собираем в одном месте всё, что я наговорил агенту за день.
Шаг 2: Скармливаем этот лог отдельному агенту-корректору, который анализирует мой «варварский» английский и выдает вердикт: как это должно было звучать на самом деле.
Для первого шага нашлось элегантное решение — хуки (Hooks).
Вообще, то, что этот механизм назван «хуком» (hook) — я считаю ошибкой его создателей. Правильнее было бы называть это Event Listener (слушатель событий). По сути, перед нами классическая событийная модель: система «слушает» происходящее в GitHub Copilot и позволяет нам вклиниться в процесс.
На сегодняшний день хуки — это пары, которые «окружают» ключевые события при работе ИИ-агента. Согласно официальной документации GitHub, мы можем подписываться на следующие типы событий:
Отправка промта пользователем (userPromptSubmitted) — срабатывает в тот момент, когда вы нажали Enter в чате.
Завершение ответа агента (agentResponseCompleted) — когда ИИ закончил генерировать код или текст.
Обнаружение обращения к инструменту (toolCallDetected) — если агент решил вызвать какую-то внешнюю функцию.
Завершение вызова инструмента (toolCallCompleted) — результат работы этой функции.
Для нашей задачи идеально подходит первое событие. Нам нужно просто «подслушать» самих себя.
Создаем конфигурационный файл по адресу .github/hooks/log-prompts.json:
{ "version": 1, "hooks": { "userPromptSubmitted": [ { "type": "command", "bash": "scripts/log-user-prompt.sh", "cwd": ".", "timeoutSec": 5 } ] } }
И сам скриптик scripts/log-user-promt.sh, который будет складывать наши мысли в копилку, выглядит вот так:
#!/bin/bash # Читаем JSON из стандартного ввода input=$(cat) # Извлекаем текст промта с помощью jq prompt=$(echo "$input" | jq -r '.prompt // empty') # Если промт не пустой, дописываем его в файл if [ -n "$prompt" ]; then echo "--- $(date) ---" >> TMP/user-commands.txt echo "$prompt" >> TMP/user-commands.txt fi
Теперь в конце рабочего дня у вас есть файл user-commands.txt.
Осталось только передать его примерно такому агенту, которого мы располагаем по адресу .github/agents/lang-tutor.agent.md:
--- name: lang-tutor description: Language tutor that analyzes writing quality and grammar. Automatically reads TMP/user-commands.txt and writes corrections to TMP/user-commands.md. tools: ["read", "edit"] target: vscode --- You are a professional language tutor and writing quality specialist. **Task**: Analyze `TMP/user-commands.txt` and generate a detailed quality report in `TMP/user-commands.md`. **Analysis focus**: - Grammar mistakes, spelling errors, punctuation issues - Awkward phrasing and clarity problems - Professional tone consistency - Sentence structure and readability **Report format for `TMP/user-commands.md`**: 1. **Overview**: Brief summary of text quality and main findings 2. **Issues Table**: | Issue Type | Original Sentence | Corrected Sentence | |---|---|---| 3. **Recommendations**: General improvement tips 4. **Cleanup suggestion**: Include this shell command: ```bash rm TMP/user-commands.txt ``` **Guidelines**: Be constructive, specific, and encouraging. Acknowledge strengths while suggesting improvements. Include context for each correction.
Агент должен появиться в меню агентов вашего GItHub Copilot.
Глядя на фантастические достижения индустрии (например, недавнюю статью Anthropic о том, как они строили C-компилятор), легко впасть в иллюзию. Кажется, что крутой программист просто пишет один гениальный промт, после чего LLM уходит в астрал на неделю и выдает готовую систему.
Но это не так. «Под капотом» у лидеров отрасли работает большое количество «обмазок» вокруг LLM. Агенты, скиллы, MCPs, CLI, функции и те самые хуки. Инструменты автоматизации взаимодействия с моделью изобретаются с бешеной скоростью. Сначала они обкатываются внутри лабораторий, а затем предоставляются нам — «широким программистским массам».
Хуки — это как раз один из таких свежих инструментов, позволяющий превратить магию в управляемый инженерный процесс. И если попутно они помогут нам перестать писать "fix this bug plz" вместо грамотного технического задания — это ли не победа?
И уж совсем приватно...Мой сайт - https://www.sirotin.eu/
Кроме того, я пишу открытую электронную книгу “Мемуары кочевого программиста. Байки, были, думы”. Её текущий вариант можно найти здесь.
Я убеждён, что программирование - это материализаци я идей. Об этом я первый раз написал здесь. А вот уже несколько лет мы с группой единомышленников ведём группу в Телеграмме под названием “Материализация идей”, в которой мы последнее время рассуждаем в основном об ИИ.
Если вам это интересно - подключайтесь.
Источник


