
Вы, читатель, как и автор, тоже досадуете, когда в промтах проскакивают досадные опечатки или грамматические конструкции, которые заставляют даже терпеливую 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/
Кроме того, я пишу открытую электронную книгу “Мемуары кочевого программиста. Байки, были, думы”. Её текущий вариант можно найти здесь.
Я убеждён, что программирование – это материализаци я идей. Об этом я первый раз написал здесь. А вот уже несколько лет мы с группой единомышленников ведём группу в Телеграмме под названием “Материализация идей”, в которой мы последнее время рассуждаем в основном об ИИ.
Если вам это интересно – подключайтесь.
Автор: visirok


