Как добавить памяти AI+Code агентам?
В посте про то, как разрабатывать сложные проекты, я писал про README, AGENTS и CONTEXT md файлы. При использовании в связке с двушаговой разработкой (через implementation plan), они хорошо помогают реализовывать довольно сложные фичи.
Но этот процесс основывается на костыли в виде человеческих процессов разработки на Github. Так разрабатывали и Linux Kernel и множество других OpenSource проектов.
А можно ли как-то дополнить процесс именно для удобства работы современных AI+Code систем?
Вот еще одна фишка, которая в итоге позволяет работать чуть более стабильно с чуть более сложными проектами.
Смотрите, и OpenAI Codex и Cursor.sh
с терминальными утилитами очень любят использовать grep - утилиту для поиска текста в файлах. Поэтому можно разрешить им оставлять однострочные комментарии с каким-нибудь префиксом, который они смогут быстро найти, например AICODE-
. И обязательно попросить искать эти комментарии в файлах перед началом работы с ними.
Например, можно выделить:
- AICODE-NOTE
- заметка или комментарий для AI+Code системы
- AICODE-TODO
- задачка себе на сессию попозже
- AICODE-ASK
- вопрос от системы человеку, чтобы он ответил и потом пометил как AICODE-NOTE
Все вместе в коде это может выглядеть, скажем, вот так:
const LOGIN_START='\\x1b]9;LOGIN=START\\x07', LOGIN_END='\\x1b]9;LOGIN=END\\x07';
let inLogin=false, buf='';
// AICODE-NOTE: Complex OSC sequence parsing - this is the core login overlay logic
// AICODE-ASK: Could this parsing be more robust? What if sequences are split across messages?
socket.addEventListener('message', ev=>{
const chunk = ev.data instanceof ArrayBuffer
? new TextDecoder().decode(ev.data) : ev.data;
buf += chunk;
while (true) {
const s = buf.indexOf(LOGIN_START), e = buf.indexOf(LOGIN_END);
if (s!==-1 && (s<e || e===-1)) {
if (!inLogin && s>0) term.write(buf.slice(0,s));
buf = buf.slice(s+LOGIN_START.length); showOverlay(); inLogin=true; continue;
}
if (e!==-1) {
if (!inLogin && e>0) term.write(buf.slice(0,e));
buf = buf.slice(e+LOGIN_END.length); hideOverlay(); inLogin=false; continue;
}
break;
}
if (!inLogin && buf){ term.write(buf); buf=''; }
});
Это создает долгосрочный слой памяти прямо в коде, который позволяет агентам самостоятельно задавать вопросы по тексту или оставлять себе заметки. Или самостоятельно разбивать сложные задачи на более простые (через `AICODE-TODO`)
В итоге получается чуть стабильнее работать с чуть более сложными проектами.
Ваш, @llm_under_hood 🤗
PS: сам код на экране промежуточный - в процессе работы Codex-a. Он демонстрирует то, как AI+Coding системы пользуются подобными комментариями по мере подготовки финального PR.
>>Click here to continue<<