Что такое AI-агент и из каких основных частей он состоит

В этой статье будет приведено описание AI-агента. Подробно рассмотрим основные его компоненты, а также реализуем их на языке Python.

Высокоуровневый язык программирования

В этой статье будет приведено описание AI-агента. Подробно рассмотрим основные его компоненты, а также реализуем их на языке Python.

Небольшой рассказ о том, как я начал делать инструмент для локального перевода текстов и файлов, с чего началось, и куда пришло.
Тема использования нейросетей в разных областях (в том числе и для перевода) часто обсуждалась на хабре - и я тоже решил поделиться своим велосипедом. В данный момент уже есть базовый функционал и некоторые планы на его расширение.
Код открыт, ссылка на репозиторий будет, ссылки на телеграм-канал не будет. В качестве компенсации за отсутствие ссылки на телеграм будут результаты небольшого исследования, какая LLM модель подходит лучше всего для перевода художественного текста с английского на русский - с замерами времени, качества переводов, а также с текстами полученных переводов.
Изображение на обложке - веб-интерфейс страницы перевода в созданном приложении.

1. Проклятие размерности
Человек эволюционировал в 3 пространственных измерениях, и в них мы себя шикарно чувствуем. В них мы живем, радуемся, грустим, да и все драмы жизни проходят в этих измерениях. Правда в первой половине 20 века Теодор Калуца и Оскар Клейн нашли еще одно измерение, но оно маленькое и его людям не видно. После струнные теоретики, такие как Леонард Сасскинд, Герард т`Хофт, Яу Шинтун, Александр Виленкин и другие, опять сильно усложнили картину мира, и к 4 пространственным измерениям добавили еще 6 (это минимум), но они все где то не пойми где, и влияют на жизнь только физиков-теоретиков, а остальным n-миллиардам людей на Земле, нет никакого дела до этих измерений, им и в 3 хорошо живется.
Другое дело математика и наука о данных, тут измерений может быть сколько угодно, например вот:

Кольца Барромео — это конструкция из трёх колец, обладающая интересным свойством: эти кольца не сцеплены попарно между собой, но полная конструкция из трёх колец неразделима. Ну или если перефразировать: вся конструкция неразделима, но если любое из колец магическим образом пропадает, то оставшиеся два можно разделить. Единственное известное мне практическое применение этих колец — использование в качестве логотипа пива Ballantine. В прошлом году в моей практике повстречался интересный алгоритмический баг, который у меня ассоциируется именно с этой конструкцией.

Оверинжиниринг — это когда простую задачу решают так, словно строят космический корабль: с абстракциями, фабриками и паттернами «на будущее». Разбираем живые примеры, почему так происходит и как находить баланс между гибкостью и простотой.

Оказалось, тысячи присланных для верификации селфи и даже водительских прав хранились онлайн в незашифрованном виде и без пароля.

Привет! Это команда курса «Python для анализа данных». Собрали для вас подборку бесплатных ресурсов для изучения Python с нуля. Здесь вы найдёте как интерактивные курсы с практическими заданиями, так и теоретические материалы с подробными объяснениями.
В нашей подборке оказалось много разных курсов — каждый со своим подходом и стилем подачи материала. Разумеется, вам не нужно проходить их все: попробуйте несколько из списка и остановитесь на том, который вам больше всего подходит. Главное — начать и довести обучение до конца.

Привет, Хабр!
Все мы знаем Го — глубокую, медитативную игру на доске 19x19. Камни, пересечения, территории... А что, если выкинуть саму сетку и разрешить ставить камни куда угодно в пределах доски?
Мы в команде YSDA (Yandex School of Data Analysis или Школа Анализа Данных, ШАД) задались этим вопросом и решили проверить. Получилось азартно, хаотично и, что самое главное для нас как разработчиков, — чертовски интересно с точки зрения алгоритмов.
В этой статье я расскажу, как мы реализовали эту идею на Python и Pygame, с какими геометрическими головоломками столкнулись и как Диаграмма Вороного помогает считать очки в реальном времени, превращая статичную доску в живое поле битвы.
А в конце встретим неожиданный твист! Узнаем, что такое такое Суго.

От хаоса в Markdown-файлах до стильного, быстрого сайта с поиском, темами и мультиязычностью за один вечер.
В жизни почти каждого IT-проекта наступает момент, когда количество файлов README.md, GUIDE.md, docs.txt и заметок в Confluence достигает критической массы. Документация становится фрагментированной, поиск нужной информации превращается в квест, а новые члены команды тратят часы на то, чтобы просто понять, "что где лежит".

В мире Python существует много мифов о том, как работают переменные. Одни говорят, что "всё передаётся по ссылке", другие утверждают обратное. Правда, как обычно, лежит где-то посередине и гораздо интереснее простых объяснений. В этой статье мы детально разберём механизмы работы с памятью в Python 3.13, изучим различия между mutable и immutable объектами, и поймём, когда Python создаёт новые объекты, а когда переиспользует существующие. Дабы статье пожить подольше - рассмотрю только версию 3.13.

Автор статьи Modern SAT solvers: fast, neat and underused утверждает, что SAT-солверы «преступно мало используются в нашей отрасли». [SAT — Boolean SATisfiability Solver, то есть солвер, способный находить присвоения, делающие истинными сложные булевы выражения. Более подробно я писал о них ранее.] Какое-то время назад я задался вопросом, почему: как получилось, что они настолько мощны, но ими никто не пользуется? Многие специалисты заявили, что причина в неудобстве кодирования SAT: они лучше предпочтут работать с инструментами, которые выполняют компиляцию в SAT.
Я вспомнил об этом, когда прочитал пост Райана Бергера о решении «задачи ферзей с LinkedIn» как задачи SAT.
Вкратце опишу задачу про ферзей (Queens). У нас есть сетка NxN, разделённая на N областей, и нам нужно разместить N ферзей так, чтобы в каждом столбце, строке и области находился ровно один. Ферзи могут находиться на одной диагонали, но не соседствовать по диагонали.

Привет, Хабр! Хочу поделиться своим опытом создания бота, который может имитировать стиль общения любого пользователя Telegram. Проект AI Telegram Responder позволяет обучать модели на основе истории переписки и использовать их для автоматических ответов в определенных чатах.

START — опенсорсная LLM для точных вычислений и проверки кода. В START решены две главные проблемы большинства обычных моделей: галлюцинации и ошибки в многоэтапных расчетах. В статье разберемся, зачем и как именно эти проблемы решены.

Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!
Сегодня я расскажу вам историю о том, как я провёл полгода в тесных объятиях «1С: Кабинет сотрудника» на новой технологии 1С:Элемент — системы, которая обещала сделать кадровый документооборот простым, как бутерброд с колбасой. Но, как выяснилось, бутерброд этот оказался с сюрпризом… то ли огурцом, то ли гвоздём.

В предыдущих статьях я рассказывал, как пришёл к идее создания собственного торгового робота. Мотивация проста:
✓ Автоматизация - алгоритм не спит, не нервничает и не занят своими делами.
✓ Дисциплина - робот исключает эмоции, следуя правилам.
✓ Тестирование - любую идею можно проверить на исторических данных, прежде чем рисковать деньгами.
Я всегда разделял два этапа: разработку торговых идей (логика стратегии) и реализацию механизма исполнения (отправка заявок, автотрейдинг). Сначала - бэктестинг и базовая оптимизация, и только потом - реальная торговля.
Поскольку я нахожусь в активном поиске подходящего решения и уже опробовал несколько рабочих вариантов, то эта статья представляет мои размышления об этом механизме исполнения заявок. Ваша критика или поддержка идей приветствуется.

В этой статье хочу рассказать про нерандомность модуля random в стандартной библиотеке Python. С точки зрения криптографии и математики числа, генерируемые этим модулем, случайные лишь на вид — они порождаются детерминированным алгоритмом, что делает их псевдослучайными. Рассмотрим, как устроен генератор на основе алгоритма Mersenne Twister (MT19937), почему его выходы «нерандомны» в формальном смысле и какие практические следствия это имеет.
написано для новичков и плохо посвященных в тему людей…

Каждый иногда встречается с НЕинтересными для него задачами, но необходимыми к выполнению. Для некоторых это кропотливые и нудные задачи, для некоторых, задачи, требующие смелых решений. Бывает просто лень, хотя это тоже сложное чувство, которое можно разложить на составляющие и анализировать отдельно. Но о лени поговорим как-нибудь в другой раз.
Меня вгоняет в чувство безнадежности задачи, которые не четко формализованы, или которые поставлены нечетко: «Сделай то, не знаю что».
В этой статье я расскажу о своём подходе, как я справляюсь с такими ситуациями.

Привет! Мы — партнеры Битрикс24 и создаем для бизнеса приложения с генеративным ИИ, интегрируя их с корпоративными порталами.
В этой статье мы расскажем о созданном нами решении, которое позволяет любым разработчикам легко подключать свои чаты и другие приложения с LLM-моделями к Битрикс24. Речь идет о MCP-сервере — помощнике для ИИ, который позволяет получать из портала Битрикс24, например из раздела CRM, точные данные для ответа пользователю.

Всем привет! Обучение нейронных сетей с помощью обратного распространения ошибки (backpropagation) — это стандарт де‑факто. Но у него есть ограничения: память, последовательные вычисления, биологическая неправдоподобность. Недавно я наткнулся на интересную статью «NOPROP: TRAINING NEURAL NETWORKS WITHOUT BACK‑PROPAGATION OR FORWARD‑PROPAGATION» (Li, Teh, Pascanu, arXiv:2403.13 502), которая обещает обучение вообще без сквозного backprop и даже без полного прямого прохода во время обучения! Идея показалась захватывающей, и мы (я и ИИ‑ассистент Gemini) решили попробовать ее реализовать на PyTorch для MNIST.
В этой статье я хочу поделиться нашим путешествием: как мы пытались следовать описанию из статьи, с какими трудностями столкнулись, как анализ связанных работ помог найти решение (которое, правда, отличается от оригинала) и каких впечатляющих результатов удалось достичь в итоге. Спойлер: получилось интересно, совсем не так, как ожидалось, но результат превзошел ожидания от процесса отладки.
Дисклеймер 1: Это рассказ об учебном эксперименте. Результаты и выводы основаны на нашем опыте и могут не полностью отражать возможности оригинального метода при наличии всех деталей реализации.)

Общая суть метода «обратного распространения ошибки» от простого примера до создания полносвязной нейронной сети.