Плагин не үшін қажет?

Ең алдымен туындайтын сұрақ: бұған не үшін бөлек плагин керек? Claude-ты (немесе басқа танымал ЖИ-ді) браузерде ашып, өзіңізді қызықтыратын тақырып бойынша сабақ жүргізуін немесе жай ғана еркін әңгіме жүргізуін сұрауға болады. Бірақ менің ойымша, тіл үйрену — құрылым мен тәртіпті айтарлықтай қажет ететін процесс.

Claude Code (Claude-тың CLI нұсқасы) үшін плагин жасасақ, қажетті логиканы құруға, ұзақ мерзімді жадты сақтауға және қажет болғанда бәріне LLM-ге сүйенудің орнына детерминделген бағдарламалық кодты қолдануға үлкен мүмкіндіктер ашылады.

Неміс тілін үйренуге арналған плагиндегі жазбаша тапсырма

Алдын ала белгіленген оқу құрылымы

Плагин арқылы мен тіл үйренудің 4 саласын жаттықтыруды ұйғардым: грамматика, оқу, жазу және сөздік қор. Мысалы, сөйлеуді басқа құралдар мен әдістер арқылы жаттықтырамын.

Жаңа күні плагинді іске қосқанда, жартылай меңгерілген сөздерді тексеру аяқталып, мен әлі білмейтін жаңа сөздер қосыла бастағанға дейін сөздік қорды жақсартуға арналған бірнеше сессия орындауым керектігін түсінемін. Плагин қай сөзді қаншалықты жақсы білетінімнің тарихын сақтайды. Ол үшін FSRS (Free Spaced Repetition Scheduler) алгоритмі қолданылады. Қысқаша айтқанда, бұл — плагинге мен жиі қателесетін сөздерді жиірек сұрауға, ал меңгеріліп қойған сөздердің дұрыс есте қалғанын сирек тексеруге мүмкіндік беретін алгоритм.

Сондай-ақ мен міндетті түрде бір жазбаша тапсырма орындаймын, өйткені бұл — ЖИ көмегімен үйреніп жатқан тілде контентті өзіңнің жасау қабілетін жақсартудың тамаша тәсілі. Бұл жаттығудың форматын тіл емтихандарының форматына ұқсас етіп жасадым: жағдаят беріледі, соған байланысты хат жазу керек.

Оқу және грамматика сияқты қалған дағдыларды әлдеқайда сирек жаттықтырамын.

Нәтижесінде маған Claude-қа үнемі еске салудың қажеті жоқ жаттығулар кешені бар. Бұл нұсқаулар плагиннің бастапқы кодында жазылған және тек плагинді жаңарту арқылы ғана өзгереді. Қажет болса, нақты сессияда оларды контекстке қарай сәл түзетуге болады.

Осының арқасында оқу сессиясының алдында не үйрену керек және қалай үйрену керек деген мәселеге когнитивті ресурстарымды жұмсамаймын.

Плагиндегі оқу статусы: прогресс, сабақтар тізбегі және пәндер бойынша нәтижелер

Жад

Қазіргі модельдердің контексті миллиондаған токенмен өлшенетініне қарамастан, бұл модельдің бүкіл контекстті жақсы есте сақтайтынын білдірмейді. Контекстің бір бөлігін модельдің жүйелік промпттері алып қойған, бір бөлігі бір-біріне қайшы келетін кіріс деректерге кетеді (мысалы, LLM бір нәрсе ұсынды, мен бас тарттым), ал үлкен бөлігі Claude-тың өз хабарламаларына жұмсалады. Біраз уақыттан кейін жаңа сессия ашып, галлюцинациясы ең аз таза парақтан бастағың келеді.

Мұндай кезде белгілі бір құрылымдағы «қатты» жад болғанын қалайсың: тек қажетті ақпарат, кейінгі өңдеуге ең ықшам және ыңғайлы түрде сақталсын. Claude Code плагині арқылы мұны деректерді, мысалы, JSON файлында сақтап, оңай іске асыруға болады.

Дрейфті азайту

Деректер мен нұсқаулар көбейген сайын LLM «дрейфтеуге», яғни алдыңғы нұсқаулардан ауытқып, сабақты өзінше жүргізуге бейім. Бұл қатты ашуландырды. Ең жағымсызы — басында бәрі жақсы өтуі мүмкін болатын, бірақ, мысалы, бір апталық оқу деректері жиналған соң, оқу ішінара нұсқаулардың сақталуы үшін күреске айналатын.

Өз плагинімді жазуға шешім қабылдағанымның басты себебі осы болды. Бұл мәселені мүмкін болатын барлық логиканы Python бағдарламалық кодына жүктеу арқылы шештім.

LLM-нің тамаша жері — мәтіндер мен жауаптарды жақсы тексереді және жаттығуларға арналған сапалы, бірегей контент жасайды. Python-ның тамаша жері — детерминділігі: код дәл бағдарламаланғанды ғана орындайды, артық та, кем де емес. Сондықтан шет тілдерін үйренуге арналған плагинді бүкіл «операциялық қызмет» барынша Python арқылы орындалатындай етіп жасаған орынды болды. Сонда LLM контексті көмекші операциялармен — деректерді жазу, оқу, сақтау, статистика жүргізу (сессиялар саны мен ұзақтығы, дұрыс жауаптар саны және т.б.) және басқа да көптеген ұсақ-түйекпен — былғанбайтын еді.

Нәтиже үміттен шықты: бұл плагин бойынша үшінші апта оқып жатырмын, дрейф мәселесін байқаған жоқпын. Идеалында плагинді A1-ден C2-ге дейінгі бүкіл жолда ыңғайлы пайдалана алсақ деп едім, бірақ 150 оқу сағатында дұрыс жұмыс істеуінің өзі де жеткілікті болар еді. 150 сағат — Goethe бойынша тілді меңгерудің келесі деңгейіне өтуге кететін орташа сағат саны.

Логика бойынша дрейф болмауы да керек: плагин жұмысында нұсқаулар жиналмайды, олар бастапқы кодта берілген. Жиналатын деректер (сөздік қордағы сөздер, сессиялар және т.б.) LLM-ге Python тарапынан үлестеп беріледі.

Плагинді жариялау

Anthropic плагинді өз маркетплейсі арқылы қолжетімді еткіңіз келсе, оны жариялаудың ыңғайлы тәсілін ұсынады. Бірақ плагинді тарату үшін бұл мүлдем міндетті емес. Плагиннің бастапқы кодын GitHub-та жарияласаңыз, Claude Code бар кез келген адам оны мынадай командалармен орната алады:

claude plugin marketplace add doszhan/nachhilfebot
claude plugin install nachhilfebot@doszhan

Бірінші команда GitHub репозиторийін маркетплейс ретінде қосады. Екінші команда плагиннің өзін осы маркетплейстен орнатады.

Соған қарамастан, қызық үшін және белгілі дәрежеде мобильді қосымшаларды жариялаумен салыстыру үшін жариялауды ұйғардым.

Процесс өте қарапайым болды. Құпиялылық саясатын, құжаттаманы және лицензия түрін дайындап, көрсету керек. Мұның бәрін репозиторийдің өзінде орналастыруға болады. Біраз уақыттан кейін «жарияланды» белгісін алдым:

Anthropic маркетплейсіндегі плагиннің «жарияланды» статусы

Жариялаудың бүкіл процесі небәрі екі күнге созылды, дегенмен ревью бірнеше аптадан астам уақытқа созылып жатыр деген шағымдарды көрдім.

Плагинді ревью хронологиясы

Claude Code-та плагинді іздеу былай көрінеді:

Claude Code-та плагинді іздеу

Жеке қорытынды

Бұл LLM үшін плагин жасау мен жариялаудың қызықты тәжірибесі болды. Ол ЖИ әрбір адамның өміріндегі нақты міндеттерді шешуге қалай көмектесе алатынының жақсы мысалы. Бұл тәжірибе мені жеке тиімділікті арттыруға арналған басқа қосымша (бұл жолы десктопты) жасауға шабыттандырды — ол туралы келесі жазбада жазатыным анық.

Плагині бар репозиторий: github.com/doszhan/nachhilfebot