с помощью gill
🐺 Что такое gill
Gill это JavaScript/TypeScript библиотека для взаимодействия с solana блокчейном в ваших приложениях на любых платформах (web/desktop/mobile).
Написана она поверх другой библиотеки - @solana/kit, которая является @solana/web3.js второй версии.
Отличается gill только тем, что в некоторых моментах даёт возможность не "думать" о некоторых вещах, думаю эту тему я могу глубже освятить в другом посте, во всём остальном это полный клон @solana/kit.
В папке проекта создайте файл .env в котором сохраните свой приватный ключ, чтобы это выглядело так:
PRIVATE_KEY=ВАШ_ПРИВАТНЫЙ_КЛЮЧ
Первым делом нам нужно создать signer - это тот, кто будет подписывать транзакции (ваш кошелёк):
// Получаем Signer из переменной окружения с названием PRIVATE_KEY
const signer = await loadKeypairSignerFromEnvironmentBase58('PRIVATE_KEY')
После этого нам нужно получить транзакцию от Jupiter API сделав к нему запрос:
const orderResponse = await (await fetch('https://lite-api.jup.ag/ultra/v1/order?inputMint=So11111111111111111111111111111111111111112&outputMint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&amount=100000000&taker=jdocuPgEAjMfihABsPgKEvYtsmMzjUHeq9LX4Hvs7f3')).json();Объясню что значит inputMint, outputMint, amount и taker:
inputMint
- адрес токена, который вы хотите обменять
outputMint
- адрес токена, который вы хотите получить
taker
- это адрес вашего signer (signer.address)
amount
- это то количество inputMint токена, которое вы обмениваете. Нужно помнить, что это не то число которое вы бы вводили в форму на сайте jupiter, а слегка модифицированное, для того чтобы блокчейн её понимал. Получается оно по такой схеме: необходимое число токенов * на 10 в степени TOKEN_DECIMALS (у каждого токена есть TOKEN_DECIMALS, его можно нагуглить или посмотреть в блокчейне, у solana это 9, а у стейблов таких как USDC и USDT это 6). Получается если мы хотим обменять 0.1 sol то будет выходить число 100000000
Именно из-за этой части я решил написать этот пост, тк везде в примерах показывается как сделать это в старых версиях библиотеки.
// Записываем в переменную данные из ответа от API Jupiter (для удобства)
const transactionBase64 = orderResponse.transaction
// Преобразуем строку base64 в двоичные данные
const swapTransactionBuffer = Buffer.from(transactionBase64, 'base64')
// Декодируем двоичные данные в транзакцию
const decodedTransaction = getTransactionDecoder().decode(swapTransactionBuffer)
// Подписываем транзакцию
const signedTransaction = await signTransaction([signer.keyPair], decodedTransaction)
// Подписанную транзакцию преобразуем в Base64EncodedWireTransaction
const serializedTransaction = getBase64EncodedWireTransaction(signedTransaction)
Jupiter для того чтобы не заботиться о slippage, комиссиях и тд, нам нужно всего-лишь отправить подписанную транзакцию им:
const executeResponse = await (
await fetch('https://lite-api.jup.ag/ultra/v1/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
signedTransaction: serializedTransaction,
requestId: orderResponse.requestId,
}),
})
).json();
Всё готово! Внутри executeResponse есть поле status который будет Success если транзакция прошла успешно и Failed если, что-то пошло не так.
Обработать мы может это так:
if (executeResponse.status === "Success") {
console.log('Swap successful:', JSON.stringify(executeResponse, null, 2));
console.log(`https://solscan.io/tx/${executeResponse.signature}`);
} else {
console.error('Swap failed:', JSON.stringify(executeResponse, null, 2));
console.log(`https://solscan.io/tx/${executeResponse.signature}`);
}В консоле мы получим ссылку на нашу транзакцию в solscan!
Теперь вы умеете свапать на солане используя Jupiter и современную библиотеку gill.
Следующим постом будет вторая часть про вайбкодинг.
Как вам такой формат ?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥4🏆2
Часть 2
Ссылка на первый пост (он в 3 частях)
Продолжаем разбираться с cursor и его внутренними фичами. Если вы работаете не в AI IDE Cursor, некоторые приёмы могут не сработать или вести себя иначе.
Напомню: MCP (Model Context Protocol) — это сервер, который даёт ИИ дополнительные контексты и «умения». Ранее я уже рассказывал об этом, а сейчас — кратко о тех фичах, что использую сам.
Context7
— Бывало такое, что ИИ предлагает функции из библиотек, которых нет или никогда не было? Context7 решает проблему: база из 10 000+ документаций автоматически подгружается в контекст ИИ, ИИ «изучает» актуальную версию вашей библиотеки и генерирует код без галлюцинаций. Чтобы воспользоваться, добавьте в промт: use context7
Sequential Thinking
— Инструмент для структурированного «мышления» при решении задач.
Что умеет:
- Разбивать сложные задачи на пошаговые подзадачи
- Пересматривать и уточнять «мысли» по ходу работы
- Параллельно развивать несколько веток рассуждений
- Генерировать и проверять гипотезы
Универсален — можно применять не только к кодингу.
Один из самых недооценённых инструментов cursor — Rules. Поскольку LLM не хранят все подсказки между сессиями, Rules помогают задать постоянный контекст: вы пишете их один раз, и агент всегда их помнит.
Правила делятся на два уровня:
Где хранятся: папка .cursor/rules (необязательно в корне)
Формат: файлы .mdc (markdown-подобный).
Типы Project rules:
Always —
Всегда загружаются в контекст. Общие кодстайл-правила, архитектурные принципы, работа с Git
Auto Attached —
Подключаются автоматически при работе с файлами по определённому шаблону. Тут можете описать например то, как в определённой части приложения вы взаимодействуете с API или что-то, что актуально только для определённых файлов.
Agent Requested —
Агент может запросить их дополнительно. Не знаю, в каком случаем может быть актуально :(
Manual —
Включаются по явному тегу @ruleName в промте
Совет: Хотите быстро сгенерировать шаблон правил? Введите в поле ввода "/" и выберите Generate cursor rules.
Можно создать несколько .cursor/rules (например, для фронтенда и бэкенда) и разделить контекст по зонам ответственности.
Где задаются: в настройках Cursor (Cursor Settings → User Rules).
Назначение: Общие, сквозные правила для всех проектов.
Примеры User rules
:
— Языковые предпочтения (например, отвечать на русском)
— Стандарты качества кода ("пиши максимально простой и понятный код")
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥1
Если ты хочешь внедрить AI в свой продукт — не нужно изучать кучу библиотек или изобретать велосипед. Всё, что тебе нужно, — AI SDK.
AI SDK — это open source-инструментарий от Vercel, который превращает сложные AI-интеграции в пару строк кода. И это не просто обёртка, а полноценный фреймворк, который даёт тебе:
Generative UI — компоненты интерфейса, которые генерируются на основе LLM
Поддержку GPT-4o, Claude, Gemini и других моделей через единый интерфейс
Чат, стриминг, RAG, tools, function calling — всё из коробки, без боли
🛠 Примеры с AI SDK Provider от OpenRouter
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
import 'dotenv/config'
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
import 'dotenv/config'
export async function POST(req: Request) {
const openrouter = createOpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
})
const chatModel = openrouter.chat('x-ai/grok-3-beta')
const result = streamText({
model: chatModel,
system: systemPrompt,
messages: [{ role: 'user', content: 'Привет!' }],
})
return result.toDataStreamResponse()
}import { useChat } from '@ai-sdk/react';
export default function Chat() {
const { messages, input, handleInputChange, handleSubmit } = useChat();
return (
<div>
{messages.map(m => <div key={m.id}>{m.content}</div>)}
<form onSubmit={handleSubmit}>
<input value={input} onChange={handleInputChange} />
</form>
</div>
);
}1. Один интерфейс — доступ к сотням моделей (OpenAI, Anthropic, Mistral, и т.д.). Не нужно завязываться на один API, меняй модели "на лету".
2. Легкое переключение между провайдерами
3. Встроенная поддержка tools, RAG, function calling
4. Гибкость — подходит для web-продуктов, ассистентов, виджетов, всего
AI SDK от Vercel — это универсальный ключ к миру AI. Он убирает всю рутину, чтобы ты мог сосредоточиться на создании продукта: интерфейс, логика, стриминг — всё уже готово.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2🔥1
Промптинг — это искусство общения с ИИ. Сегодня разберём всё, что нужно знать о создании эффективных промптов!
Промпт состоит из 4 элементов:
1. Инструкция — конкретная задача для модели
2. Контекст — дополнительная информация
3. Входные данные — вопрос или данные для обработки
4. Формат вывода — как должен выглядеть ответ
Zero-Shot промптинг
Задаём задачу без примеров. Работает для простых задач:
Например: Переведи на английский: "Привет, мир!"
Few-Shot промптинг
Даём несколько примеров для лучшего понимания:
Пример:
Определи тональность:
"Фильм супер!" → Позитивная
"Скучно было" → Негативная
"Этот фильм ужасен" → ?
Chain-of-Thought
Заставляем модель рассуждать пошагово. Просто добавь:
"Рассуждай шаг за шагом"
🔫 Лайфхаки для крутых промптов
1. Будь конкретным! Вместо "напиши текст" → "напиши SEO-статью на 500 слов про блокчейн для новичков"
2. Задавай роль: "Ты опытный Python-разработчик с 10-летним стажем..."
3. Используй разделители: ### или """ для структуры
4. Формат имеет значение:
- Инструкции в начало
- Примеры в середину
- Вопрос в конец
5. Не говори, что НЕ делать — лучше скажи, что НУЖНО делать
🆗 Крутые фишки
Промпт-чейнинг: Разбивай сложные задачи на простые части
Температура: 0.1 для точности, 0.8 для креатива
Обратная связь: "Повтори вопрос перед ответом"
✅ Понятен с первого прочтения?
✅ Конкретен и не расплывчат?
✅ Достаточно контекста?
✅ Логичный порядок инструкций?
✅ Указан формат ответа?
Промптинг — это навык будущего! Экспериментируй, итерируй, улучшай. Помни: чем точнее промпт, тем лучше результат.
Сохраняй пост и делись с теми, кто работает с ИИ!
DegenCoding подписаться.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2
ИИ-инструменты в 2025 году — это уже не просто хайп, а реальные помощники, которые разгружают рутину и ускоряют работу. От поиска инфы до кодинга и звонков.
Всё разложил по категориям с описаниями, чтобы ты сразу понял, что брать под свои задачки. Погнали!
🔍 Поиск и ресерч
- Perplexity AI
Это твой личный детектив для поиска и анализа данных. Фишка — режим Deep Research: за 2–4 минуты сервис прошерстит сотни источников и выдаст подробный отчёт. Экономия времени — колоссальная! Умеет работать с файлами, собирать проекты и делиться ими с командой. Быстрый поиск или глубокий ресёрч — выбирай, что нужно.
- NotebookLM
Идеальный кореш для студентов и тех, кто тонет хочет обрабатывать тонну информации быстро и качественно. Структурирует инфу, проставляет теги, ищет по твоим документам и отвечает на вопросы, опираясь только на твои данные.
- ChatGPT
Универсальный боец от OpenAI. Пишешь тексты, генеришь код, ищешь идеи или просто спрашиваешь что-то — он справится. Плюс, может работать с файлами, что делает его must-have для программистов и не только.
- Claude
Модель от Anthropic с "человеческим" подходом. Отлично шарит в текстах, творческих задачах и анализе. Если хочешь, чтобы ИИ не просто выдал ответ, а подумал с душой — это твой выбор.
- Grok
Разработка xAI, заточенная под живой вайб. Шутит, подкалывает, выдаёт саркастичные ответы и тянет свежак с X. Генерит тексты, картинки и помогает следить за трендами в реальном времени. Для ресёрча — огонь!
📞 AI для звонков
- Minuteslink
Автоматизирует звонки и встречи, фиксирует ключевые моменты и делает отчёты. Плюс, встраивает ИИ-ассистентов в твои процессы и дружит с популярными CRM. Минимум ручной работы — максимум пользы.
- tldv.io
Записывает и расшифровывает онлайн-встречи (Zoom, Google Meet), выделяет важное и делает заметки. Поддерживает русский, легко встраивается в твой рабочий софт. Для тех, кто устал держать всё в голове.
- Plaud
Упрощает звонки: пишет заметки по итогам, синхронизируется с календарями и CRM.
🎨 Дизайн
- Relume
Хочешь дизайн сайта за 5 минут? Вводишь описание проекта, а Relume генерит структуру, wireframe и даже тексты для страниц. Для быстрого старта MVP — лучше не придумаешь.
💻 Программирование
- GitHub Copilot
Твой напарник в кодинге: автодополняет, генерит функции и работает с любыми языками. Пишешь меньше, а успеваешь больше.
- Lovable
Генерит UI и компоненты по описанию или примерам. Прототипы и MVP собираются на раз-два, плюс дружит с популярными фреймворками.
- V0
Пишешь описание интерфейса — получаешь готовый фронтенд-код (React, Tailwind CSS, shadcn/UI). Быстро, просто, без лишних телодвижений.
- Cursor
AI-IDE для серьёзных ребят. Интегрируется с мощными моделями (например, Claude 3.7 Sonnet), понимает правила проекта и автоматизирует задачи. Для больших кодовых баз — топчик.
🛠 Мультифункциональные
Manus
Платформа для всего сразу: генерит тексты, анализирует данные, автоматизирует документооборот. Для бизнеса или тех, кто хочет разгрузить рутину — идеально.
Эти сервисы — твои помощники в мире, полного отвлечений и рутины: автоматизируют скучное, ускоряют сложное и дают фору в любой задаче. Выбирай, что подходит, миксуй с рабочими процессами и экономь время для себя и реализации идей!
DegenCoding подписаться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤5🤝5
Forwarded from Guide DAO
Андрей Карпатый: главные тейки с выступления на YC AI Startup School
Software 3.0
Software 1.0 — это код, который мы пишем (Python, C++). Software 2.0 — веса нейросетей, которые мы настраиваем датасетами. Software 3.0 — это промпты на естественном языке. Теперь ваша программа — это промпт.
LLM как новая ОС
Мы сейчас в 1960-х годах timesharing-компьютинга: дорогие, централизованные вычисления , к которым мы подключаемся через «тонкие клиенты». Контекстное окно — это RAM, сама LLM — CPU. Революция «персональных компьютеров» для LLM еще не наступила.
«Психология» LLM
LLM — это «стохастические симуляторы людей» или «духи людей». У них есть cверхспособности и когнитивные дефициты: галлюцинации, «рваный интеллект», антероградная амнезия и излишняя доверчивость.
Стройте «костюмы Железного человека», а не «роботов»
Сейчас время не для полной автономии, а для усиления человека. Пример: Cursor со «слайдером автономии», Perplexity с управлением контекстом и GUI для проверки источников.
Держите AI «на коротком поводке»
Главная цель — ускорить цикл генерация-проверка. Не просите AI сгенерировать 1000 строк кода, вы сами станете узким местом при проверке. Давайте небольшие, конкретные задачи, чтобы верификация была быстрой.
Наступает «декада агентов», а не «год агентов»
Это будет долгий путь, как с беспилотными автомобилями, массовое внедрение которых до сих пор не наступило. Демо — это когда что-то сработало один раз, продукт — когда работает всегда.
Готовьте инфраструктуру для AI
Появился третий потребитель цифровой информации — AI-агент. Поэтому нужно готовить для них почву: документацию с curl-командами вместо «кликните тут» и файлы lms.txt (аналог robots.txt) для сайтов, чтобы агентам было проще с ними взаимодействовать.
https://www.youtube.com/watch?v=LCEmiRjPEtQ
Software 3.0
Software 1.0 — это код, который мы пишем (Python, C++). Software 2.0 — веса нейросетей, которые мы настраиваем датасетами. Software 3.0 — это промпты на естественном языке. Теперь ваша программа — это промпт.
LLM как новая ОС
Мы сейчас в 1960-х годах timesharing-компьютинга: дорогие, централизованные вычисления , к которым мы подключаемся через «тонкие клиенты». Контекстное окно — это RAM, сама LLM — CPU. Революция «персональных компьютеров» для LLM еще не наступила.
«Психология» LLM
LLM — это «стохастические симуляторы людей» или «духи людей». У них есть cверхспособности и когнитивные дефициты: галлюцинации, «рваный интеллект», антероградная амнезия и излишняя доверчивость.
Стройте «костюмы Железного человека», а не «роботов»
Сейчас время не для полной автономии, а для усиления человека. Пример: Cursor со «слайдером автономии», Perplexity с управлением контекстом и GUI для проверки источников.
Держите AI «на коротком поводке»
Главная цель — ускорить цикл генерация-проверка. Не просите AI сгенерировать 1000 строк кода, вы сами станете узким местом при проверке. Давайте небольшие, конкретные задачи, чтобы верификация была быстрой.
Наступает «декада агентов», а не «год агентов»
Это будет долгий путь, как с беспилотными автомобилями, массовое внедрение которых до сих пор не наступило. Демо — это когда что-то сработало один раз, продукт — когда работает всегда.
Готовьте инфраструктуру для AI
Появился третий потребитель цифровой информации — AI-агент. Поэтому нужно готовить для них почву: документацию с curl-командами вместо «кликните тут» и файлы lms.txt (аналог robots.txt) для сайтов, чтобы агентам было проще с ними взаимодействовать.
https://www.youtube.com/watch?v=LCEmiRjPEtQ
👍2
Запилил web3 crypto copilot агента
подробнее можете в твиттере почитать, ссылка на агента там же )
https://x.com/AirPulseAI/status/1941176309415358805
подробнее можете в твиттере почитать, ссылка на агента там же )
https://x.com/AirPulseAI/status/1941176309415358805
🔥4👍1
Наш агент поможет вам в поиске необходимого web3 протокола под любые нужды. У него в базе 500+ блокчейнов и более 1000 проектов!
НО!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Forwarded from Artur Koltsov
Naval for Kids на русском.pdf
8.2 MB
Один из умнейших людей современности
Наваль Равикант — предприниматель, философ и ранний инвестор в твиттер, убер, форсквер. В 9 лет его семья переехала из Индии в Нью-Йорк. Он сделал хорошую карьеру, основал несколько проектов, вложился больше чем в 200 стартапов, глобально способствовал развитию краудинвестингу.
Я был очень рад, что наткнулся на него в твитере в 2022 году, когда изучал крипту. Частично из-за его мыслей бросил это занятие. Считаю его одним из немногих современных авторов, за которыми стоит следить. Самое необычное, что он одновременно разбирается в бизнесе, инвестициях, психологии и философии.
Я искренне рекомендую ознакомиться:
Подкаст/твитшторм 2019 — rutube рус., youtube рус., сайт англ.
Он у Джо Рогана 2019 — youtube рус., англ
Он у Криса Вильямса 2025 — youtube рус., англ
Книга "The Almanack of Naval Ravikant"
P.S. Кто-то упаковал его мысли для детей, а я перевел эту презенташку для своей сестры. Прикрепляю для ленивых, можно начать с нее.
Наваль Равикант — предприниматель, философ и ранний инвестор в твиттер, убер, форсквер. В 9 лет его семья переехала из Индии в Нью-Йорк. Он сделал хорошую карьеру, основал несколько проектов, вложился больше чем в 200 стартапов, глобально способствовал развитию краудинвестингу.
Я был очень рад, что наткнулся на него в твитере в 2022 году, когда изучал крипту. Частично из-за его мыслей бросил это занятие. Считаю его одним из немногих современных авторов, за которыми стоит следить. Самое необычное, что он одновременно разбирается в бизнесе, инвестициях, психологии и философии.
Я искренне рекомендую ознакомиться:
Подкаст/твитшторм 2019 — rutube рус., youtube рус., сайт англ.
Он у Джо Рогана 2019 — youtube рус., англ
Он у Криса Вильямса 2025 — youtube рус., англ
Книга "The Almanack of Naval Ravikant"
P.S. Кто-то упаковал его мысли для детей, а я перевел эту презенташку для своей сестры. Прикрепляю для ленивых, можно начать с нее.
❤8🔥4💯2
Вот 11 способов вернуть себе фокус.
1. Отключи уведомления
Среднее время фокуса в 2024 - 47 секунд. С уведомлениями ещё меньше.
Но 44% отвлечений - внутренние. Мы сами тянемся к телефону по привычке. Мало выключить уведомления - нужно замечать, когда сам себя отвлекаешь.
2. Многозадачность - миф
• После отвлечения нужно 25 минут на возврат
• Прежде чем вернуться, переключаешься на 2-3 другие задачи
• Чем чаще переключение - тем выше стресс
Совмещать можно только то, что ты можешь делать автоматически: посуда + подкаст, ходьба + аудиокнига.
3. Работай отрезками
Блоки по 25-30 минут с перерывами лучше, чем 5 часов без остановки.
Лучший момент для перерыва - естественная пауза. Отвлекаться в разгар работы - самое вредное.
4. Создай условия для потока
• Ясная цель
• Понятный результат
• Сложность 20-40% от максимума
5. Формула "если-то"
"Если [ситуация X], то я делаю [действие Y]"
• Сажусь за стол → убираю телефон в ящик
• Хочу открыть соцсеть → 5 глубоких вдохов
• Заканчиваю рабочий блок → 10 приседаний
Пробуем переобучить свой мозг.
6. Выгружай мысли из головы
Появилась идея или задача - записывай. Иначе будет крутиться в голове, поднимать тревогу и занимать оперативную память.
7. Пять минут тишины
Просто сидеть, ничего не делать, дышать. Не медитация - просто пауза. Мозгу нужно время без входящей информации.
Этот метод не смотря на свою простоту, действительно помогает снять тревогу, а если добавить к "безделию" ещё и глубокое дыхание или "дыхание Вима Хоффа", то через пару минут чувствуется, что стресс ушёл или свёлся к минимому.
8. Двигайся
Физическая активность напрямую влияет на концентрацию. Минимум - прогулки на улице. Само нахождение на улице снимает стресс и повышает фокус.
9. Дневник активности вместо вины
Просто записывай, сколько работал каждый день. Даже если 0. Спустя время увидишь динамику. Не вини себя за то, что сделал мало. Начни с техник по типу pomodoro или просто записывай в тетрадь или в блокнот на компьютере.
10. Награждай себя
Мозг связывает удовольствие с предшествующим действием. Награда после работы → мозг меньше сопротивляется работе.
Не жди похвалы от других. Сам отмечай завершённые задачи.
11. Найди причину, почему не хочешь начинать
Если ничего не работает - копни глубже:
• Ты избегаешь чего-то?
• Устал?
• Кажется слишком сложным?
• Страшно?
Если избегаешь сложной задачи - распиши её максимально подробно. Разбей на мелкие шаги. Когда задача декомпозирована, страх перед ней ослабевает, а ощущаемая сложность снижается. Большой проект пугает, а "написать первый абзац" - нет.
Часто тревога появляется, тогда когда мы думаем не о текущем моменте, а о будущем или прошлом, в таком случае задай себе вопрос: "Есть ли реальная проблема прямо сейчас?" Обычно ответ - нет. Возврат в настоящее снимает тревогу.
———————
• «Метавнимание» - Глория Марк
• «Стоики побеждают» - Уильям Ирвин
• «Делай просто, просто делай» - Оскар Хартманн
Давно ничего не выкладывал, надеюсь этот пост будет вам полезным, в эпоху отвлечений, даже небольшой шаг в сторону возвращения себе фокуса - уже выделяет вас. Делитесь своими методами в комментах.
DegenCoding Подписаться.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5❤🔥3
За последний год-полтора вышло много моделей и приложений, которые пытаются (зачастую с переменным успехом) облегчить ту или иную часть нашей жизни. Расскажу вам об одном приложении, которое действительно может дать буст в одной из самых важных сфер — обучении.
- аудиопересказы
- видеопересказы
- ментальные карты (mind map)
- отчёты в различных форматах
- карточки с вопросами и ответами
- тесты
- инфографику
- презентации
Форматы отчётов варьируются от стандартных (краткий обзор, методичка) до адаптивных под твой контент. Например, если изучаешь построение агентских флоу — предложат формат с уклоном на внедрение систем, а не на техническую реализацию. Можно выбрать и описать свой формат.
Всё это можно генерировать на любом языке и полностью бесплатно!
1️⃣ В ChatGPT нет такого количества интерактивных форматов вывода.
2️⃣ Более высокая точность ответов. Тесты учёных из Стэнфорда показали, что галлюцинаций внутри NotebookLM меньше на 87% по сравнению с AI общего назначения.
3️⃣ Контроль источников. Модели отвечают только по информации, на которой обучены, плюс веб-поиск. NotebookLM использует для генерации только те источники, которые нужны тебе, — личные заметки, статьи или видео с YouTube.
🔗 Попробовать NotebookLM
—————
⚠️ Нюанс: в России сервис напрямую недоступен — понадобится VPN. Но русский язык поддерживается полностью, включая аудиопересказы.
Впн можно взять тут (ставьте америку).
————
На мой взгляд это один из самых крутых AI инструментов сейчас на рынке, особенно с выходом Gemini 3 pro, которая является для меня на текущий момент Топ 2 моделью (Claude Opus 4.5 топ 1, но у неё нет такого мощного инструмента).
DegenCoding Подписаться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2👍2
Запускаю серию постов о Mastra AI
Mastra — это TypeScript-фреймворк для создания AI-агентов и workflow. Хочу разобраться в нём и поделиться с вами.
Серия будет из двух частей:
- Сначала — концепции (5 постов без кода). Разберём идеи и принципы, чтобы понять, как всё устроено.
- Потом — практика (посты с кодом). Будем писать агентов руками.
Что будет в концептуальной части:
1. Агенты и System Prompt — что такое AI-агент и как задать ему поведение
2. Tools и MCP — как агенты взаимодействуют с внешним миром
3. Memory — как агенты запоминают контекст разговора
4. Умная память — Semantic Recall и Working Memory
5. Workflows — как строить сложные AI-процессы
В следующем посте разберём, чем AI-агент отличается от обычного чат-бота и как System Prompt превращает языковую модель в специализированного ассистента.
Mastra — это TypeScript-фреймворк для создания AI-агентов и workflow. Хочу разобраться в нём и поделиться с вами.
Серия будет из двух частей:
- Сначала — концепции (5 постов без кода). Разберём идеи и принципы, чтобы понять, как всё устроено.
- Потом — практика (посты с кодом). Будем писать агентов руками.
Что будет в концептуальной части:
1. Агенты и System Prompt — что такое AI-агент и как задать ему поведение
2. Tools и MCP — как агенты взаимодействуют с внешним миром
3. Memory — как агенты запоминают контекст разговора
4. Умная память — Semantic Recall и Working Memory
5. Workflows — как строить сложные AI-процессы
В следующем посте разберём, чем AI-агент отличается от обычного чат-бота и как System Prompt превращает языковую модель в специализированного ассистента.
🔥8❤🔥5❤1
Пост 1 из серии Mastra
Чем агент отличается от чат-бота?
Обычный чат-бот — это интерфейс к языковой модели. Вы пишете вопрос, получаете ответ. Всё.
AI-агент — это языковая модель + контекст + память + возможность действовать. Агент понимает свою роль, помнит контекст разговора и может выполнять задачи: искать информацию, работать с API, отправлять письма.
Простая аналогия: чат-бот — это эрудит, который отвечает на вопросы. Агент — это ассистент, который понимает вашу ситуацию, помнит предыдущие разговоры и может что-то сделать.
—
Mastra — конструктор агентов
Mastra собирает все компоненты агента в единую систему:
Фреймворк берёт на себя инфраструктуру, а вы фокусируетесь на логике: каким должен быть агент, что он умеет, как себя ведёт.
—
System Prompt — личность агента
Ключевой элемент любого агента — System Prompt. Это набор инструкций, который определяет, кем является агент и как он должен себя вести.
Хороший System Prompt включает:
Роль — "Ты — помощник по погоде"
Возможности — "Ты можешь получать данные о погоде для любого города"
Стиль — "Отвечай кратко и информативно"
Ограничения — "Не давай советов, не связанных с погодой"
Чем яснее System Prompt, тем более предсказуемым будет агент. Это как должностная инструкция — без неё человек может быть талантливым, но не будет понимать, что именно от него ждут.
—
Почему это важно?
System Prompt — это не просто "настройка тона". Это способ:
— Ограничить агента от нерелевантных тем
— Задать экспертизу в конкретной области
— Определить формат и стиль ответов
— Установить границы ответственности
Один и тот же LLM с разными System Prompt'ами — это принципиально разные агенты. Финансовый консультант, техподдержка, персональный тренер — всё начинается с правильно написанного промпта.
—
Что дальше?
Агент с System Prompt уже знает свою роль. Но пока у него нет памяти — каждое сообщение как первое. И он не может взаимодействовать с внешним миром: получить данные из API, отправить email, записать что-то в базу данных.
В следующих постах разберём, как дать агенту "руки" через Tools и MCP, и как добавить ему Memory — чтобы он помнил контекст разговора и ключевые факты о пользователе.
Чем агент отличается от чат-бота?
Обычный чат-бот — это интерфейс к языковой модели. Вы пишете вопрос, получаете ответ. Всё.
AI-агент — это языковая модель + контекст + память + возможность действовать. Агент понимает свою роль, помнит контекст разговора и может выполнять задачи: искать информацию, работать с API, отправлять письма.
Простая аналогия: чат-бот — это эрудит, который отвечает на вопросы. Агент — это ассистент, который понимает вашу ситуацию, помнит предыдущие разговоры и может что-то сделать.
—
Mastra — конструктор агентов
Mastra собирает все компоненты агента в единую систему:
Agents — Регистрирует агентовTools — Подключает инструментыMemory — Управляет памятьюWorkflows — Строит цепочки действийФреймворк берёт на себя инфраструктуру, а вы фокусируетесь на логике: каким должен быть агент, что он умеет, как себя ведёт.
—
System Prompt — личность агента
Ключевой элемент любого агента — System Prompt. Это набор инструкций, который определяет, кем является агент и как он должен себя вести.
Хороший System Prompt включает:
Роль — "Ты — помощник по погоде"
Возможности — "Ты можешь получать данные о погоде для любого города"
Стиль — "Отвечай кратко и информативно"
Ограничения — "Не давай советов, не связанных с погодой"
Чем яснее System Prompt, тем более предсказуемым будет агент. Это как должностная инструкция — без неё человек может быть талантливым, но не будет понимать, что именно от него ждут.
—
Почему это важно?
System Prompt — это не просто "настройка тона". Это способ:
— Ограничить агента от нерелевантных тем
— Задать экспертизу в конкретной области
— Определить формат и стиль ответов
— Установить границы ответственности
Один и тот же LLM с разными System Prompt'ами — это принципиально разные агенты. Финансовый консультант, техподдержка, персональный тренер — всё начинается с правильно написанного промпта.
—
Что дальше?
Агент с System Prompt уже знает свою роль. Но пока у него нет памяти — каждое сообщение как первое. И он не может взаимодействовать с внешним миром: получить данные из API, отправить email, записать что-то в базу данных.
В следующих постах разберём, как дать агенту "руки" через Tools и MCP, и как добавить ему Memory — чтобы он помнил контекст разговора и ключевые факты о пользователе.
👍3❤2🔥2
Пост 2 из серии Mastra
Tools и MCP
В прошлом посте мы разобрали, что такое агент и как System Prompt задаёт ему личность. Но есть проблема: агент с одним только промптом — это всё ещё "говорящая голова". Он может рассуждать, но не может ничего сделать.
Чтобы агент мог взаимодействовать с внешним миром, ему нужны Tools — инструменты.
—
Что такое Tools?
Tools — это функции, которые агент может вызывать для выполнения задач. Они расширяют возможности агента, давая доступ к внешним данным и сервисам.
Каждый tool состоит из:
id — Уникальное имя инструмента
description — Описание — помогает агенту понять, когда использовать
inputSchema — Что инструмент принимает на вход
outputSchema — Что возвращает
execute — Функция, которая выполняет работу
Пример: tool для получения погоды принимает название города, обращается к API погоды и возвращает температуру и условия.
—
Зачем нужны Tools?
Без инструментов агент может только генерировать текст. С инструментами он может:
— Получать данные из баз данных и API
— Отправлять email и сообщения
— Создавать записи в CRM
— Искать информацию в интернете
— Работать с файлами
Агент сам решает, какой инструмент вызвать, на основе описания (description) и контекста разговора.
—
MCP — универсальный стандарт интеграций
Писать свой tool для каждого сервиса — долго. Здесь на помощь приходит MCP (Model Context Protocol).
MCP — это стандарт, который позволяет AI-моделям получать доступ к внешним сервисам через единый интерфейс. Вместо написания кастомного инструмента вы просто подключаете готовый MCP-сервер.
Какие сервисы уже доступны через MCP:
— Email: Gmail
— Код: GitHub
— Соцсети: Twitter, Slack
— Данные: Погода, новости
— Файлы: Файловая система
—
Tools vs MCP
На практике их комбинируют: MCP для стандартных интеграций, кастомные tools для специфичной бизнес-логики.
—
Что дальше?
Теперь наш агент умеет действовать — вызывать API, отправлять письма, работать с данными. Но есть ещё одна проблема: он не помнит, о чём вы говорили минуту назад.
В следующем посте разберём Memory — как сделать так, чтобы агент запоминал контекст разговора.
Tools и MCP
В прошлом посте мы разобрали, что такое агент и как System Prompt задаёт ему личность. Но есть проблема: агент с одним только промптом — это всё ещё "говорящая голова". Он может рассуждать, но не может ничего сделать.
Чтобы агент мог взаимодействовать с внешним миром, ему нужны Tools — инструменты.
—
Что такое Tools?
Tools — это функции, которые агент может вызывать для выполнения задач. Они расширяют возможности агента, давая доступ к внешним данным и сервисам.
Каждый tool состоит из:
id — Уникальное имя инструмента
description — Описание — помогает агенту понять, когда использовать
inputSchema — Что инструмент принимает на вход
outputSchema — Что возвращает
execute — Функция, которая выполняет работу
Пример: tool для получения погоды принимает название города, обращается к API погоды и возвращает температуру и условия.
—
Зачем нужны Tools?
Без инструментов агент может только генерировать текст. С инструментами он может:
— Получать данные из баз данных и API
— Отправлять email и сообщения
— Создавать записи в CRM
— Искать информацию в интернете
— Работать с файлами
Агент сам решает, какой инструмент вызвать, на основе описания (description) и контекста разговора.
—
MCP — универсальный стандарт интеграций
Писать свой tool для каждого сервиса — долго. Здесь на помощь приходит MCP (Model Context Protocol).
MCP — это стандарт, который позволяет AI-моделям получать доступ к внешним сервисам через единый интерфейс. Вместо написания кастомного инструмента вы просто подключаете готовый MCP-сервер.
Какие сервисы уже доступны через MCP:
— Email: Gmail
— Код: GitHub
— Соцсети: Twitter, Slack
— Данные: Погода, новости
— Файлы: Файловая система
—
Tools vs MCP
Tools — пишете сами под свои нужды. Полный контроль над логикой, но больше работы.MCP — используете готовые серверы. Стандартизированный протокол, быстрое подключение.На практике их комбинируют: MCP для стандартных интеграций, кастомные tools для специфичной бизнес-логики.
—
Что дальше?
Теперь наш агент умеет действовать — вызывать API, отправлять письма, работать с данными. Но есть ещё одна проблема: он не помнит, о чём вы говорили минуту назад.
В следующем посте разберём Memory — как сделать так, чтобы агент запоминал контекст разговора.
🔥6❤3
Пост 3 из серии Mastra
Проблема без памяти
Представьте диалог:
— Меня зовут Алексей, я из Москвы.
— Приятно познакомиться, Алексей!
— Какая погода в моём городе?
— В каком городе вы находитесь?
Без памяти каждое сообщение для агента — как первое. Он не помнит, что вы только что представились и назвали город. Пользователю приходится повторять информацию снова и снова.
—
Что даёт Memory?
— Запоминание диалога — помнит предыдущие вопросы и свои ответы
— Контекст — поддерживает контекст между сообщениями
— Персонализация — даёт более релевантные ответы
— Не переспрашивает — не запрашивает информацию повторно
С памятью агент строит на предыдущих сообщениях, разговор становится естественным, а пользовательский опыт — приятным.
—
Три типа памяти в Mastra
Контекстное окно агента делится на три части:
Conversation History — последние N сообщений. Аналогия: запись разговора.
Semantic Recall — релевантные старые сообщения. Аналогия: поиск в записях предыдущих сообщений.
Working Memory — структурированные данные о пользователе. Аналогия: карточка клиента.
Каждый тип решает свою задачу. Conversation History — это просто последние сообщения по порядку. Но что если важная информация была 50 сообщений назад?
—
Ограничение контекстного окна
У любой языковой модели есть лимит — контекстное окно. Нельзя просто загрузить всю историю переписки за год. Поэтому Memory в Mastra — это не "запомнить всё", а умное управление тем, что попадает в контекст агента.
Задача — уместить в ограниченное окно:
— Системные инструкции (System Prompt)
— Релевантный контекст из прошлых разговоров
— Текущее сообщение пользователя
—
Простота подключения
Что меня удивило и порадовало в Mastra — насколько просто добавить память агенту. Не нужны сотни строк кода и сложные конфигурации. Буквально 10-20 строк — и у вас работают все три типа памяти.
При этом поддерживаются стандартные базы данных: LibSQL и PostgreSQL. Не нужно разбираться в экзотических хранилищах — используете то, что уже знаете.
—
Что дальше?
Conversation History — это просто. Берём последние N сообщений и добавляем в контекст. Но как найти релевантную информацию, которая была давно? И как хранить ключевые факты о пользователе компактно?
В следующем посте разберём Semantic Recall и Working Memory — умные механизмы памяти, которые делают агентов по-настоящему контекстно-осведомлёнными.
Проблема без памяти
Представьте диалог:
— Меня зовут Алексей, я из Москвы.
— Приятно познакомиться, Алексей!
— Какая погода в моём городе?
— В каком городе вы находитесь?
Без памяти каждое сообщение для агента — как первое. Он не помнит, что вы только что представились и назвали город. Пользователю приходится повторять информацию снова и снова.
—
Что даёт Memory?
— Запоминание диалога — помнит предыдущие вопросы и свои ответы
— Контекст — поддерживает контекст между сообщениями
— Персонализация — даёт более релевантные ответы
— Не переспрашивает — не запрашивает информацию повторно
С памятью агент строит на предыдущих сообщениях, разговор становится естественным, а пользовательский опыт — приятным.
—
Три типа памяти в Mastra
Контекстное окно агента делится на три части:
Conversation History — последние N сообщений. Аналогия: запись разговора.
Semantic Recall — релевантные старые сообщения. Аналогия: поиск в записях предыдущих сообщений.
Working Memory — структурированные данные о пользователе. Аналогия: карточка клиента.
Каждый тип решает свою задачу. Conversation History — это просто последние сообщения по порядку. Но что если важная информация была 50 сообщений назад?
—
Ограничение контекстного окна
У любой языковой модели есть лимит — контекстное окно. Нельзя просто загрузить всю историю переписки за год. Поэтому Memory в Mastra — это не "запомнить всё", а умное управление тем, что попадает в контекст агента.
Задача — уместить в ограниченное окно:
— Системные инструкции (System Prompt)
— Релевантный контекст из прошлых разговоров
— Текущее сообщение пользователя
—
Простота подключения
Что меня удивило и порадовало в Mastra — насколько просто добавить память агенту. Не нужны сотни строк кода и сложные конфигурации. Буквально 10-20 строк — и у вас работают все три типа памяти.
При этом поддерживаются стандартные базы данных: LibSQL и PostgreSQL. Не нужно разбираться в экзотических хранилищах — используете то, что уже знаете.
—
Что дальше?
Conversation History — это просто. Берём последние N сообщений и добавляем в контекст. Но как найти релевантную информацию, которая была давно? И как хранить ключевые факты о пользователе компактно?
В следующем посте разберём Semantic Recall и Working Memory — умные механизмы памяти, которые делают агентов по-настоящему контекстно-осведомлёнными.
🔥5👍4❤3
Пост 4 из серии Mastra
Проблема Conversation History
В прошлом посте мы разобрали три типа памяти. Conversation History — самый простой: берём последние N сообщений и добавляем в контекст.
Но что если пользователь спрашивает: "Что мы обсуждали про мой проект на прошлой неделе?" — а это было 100 сообщений назад? Conversation History не поможет.
Здесь вступает Semantic Recall.
—
Semantic Recall — поиск по смыслу
Semantic Recall — это RAG-поиск (Retrieval-Augmented Generation), который находит релевантные сообщения не по порядку, а по смыслу.
Как это работает:
— Сообщение пользователя превращается в вектор (embedding)
— Система ищет похожие векторы в истории переписки
— Находит релевантные сообщения, даже если они были давно
— Добавляет их в контекст агента
Пример: пользователь спрашивает "Когда дедлайн моего проекта?" — система находит сообщение месячной давности "Работаю над проектом, дедлайн в следующем месяце" и добавляет его в контекст.
—
Conversation History vs Semantic Recall
Аналогия с человеческой памятью: вы не помните каждое слово каждого разговора, но можете вспомнить релевантную информацию, когда вас спрашивают.
—
Working Memory — карточка клиента
Semantic Recall ищет по сообщениям. Но иногда нужно хранить не сообщения, а факты: имя пользователя, его предпочтения, текущие цели.
Working Memory — это "блокнот" агента для структурированных данных о пользователе.
Conversation History — хранит сырые сообщения. "Привет" → "Как дела?"
Semantic Recall — хранит релевантные сообщения. Поиск по смыслу.
Working Memory — хранит структурированные данные. Имя: Алексей, Город: Москва.
—
Как работает Working Memory?
Вы задаёте шаблон — что агент должен запоминать:
Когда пользователь говорит "Меня зовут Алексей, я из Москвы", агент сам заполняет шаблон. Теперь он знает имя и город — даже через 1000 сообщений.
Working Memory компактна и обновляется. В отличие от истории сообщений, которая только растёт, Working Memory хранит только актуальную информацию.
—
Когда что использовать?
— Недавний контекст (последние сообщения) → Conversation History
— "Что мы обсуждали раньше?" → Semantic Recall
— Профиль пользователя (имя, предпочтения) → Working Memory
На практике все три типа работают вместе, создавая полную картину контекста для агента.
—
Что дальше?
У нас есть умный агент с инструментами и памятью. Но что если задача сложная и требует нескольких шагов? Проверить данные, обогатить их, проанализировать, сформировать отчёт?
В следующем посте серии разберём Workflows — как строить цепочки действий и оркестрировать сложные AI-процессы.
Проблема Conversation History
В прошлом посте мы разобрали три типа памяти. Conversation History — самый простой: берём последние N сообщений и добавляем в контекст.
Но что если пользователь спрашивает: "Что мы обсуждали про мой проект на прошлой неделе?" — а это было 100 сообщений назад? Conversation History не поможет.
Здесь вступает Semantic Recall.
—
Semantic Recall — поиск по смыслу
Semantic Recall — это RAG-поиск (Retrieval-Augmented Generation), который находит релевантные сообщения не по порядку, а по смыслу.
Как это работает:
— Сообщение пользователя превращается в вектор (embedding)
— Система ищет похожие векторы в истории переписки
— Находит релевантные сообщения, даже если они были давно
— Добавляет их в контекст агента
Пример: пользователь спрашивает "Когда дедлайн моего проекта?" — система находит сообщение месячной давности "Работаю над проектом, дедлайн в следующем месяце" и добавляет его в контекст.
—
Conversation History vs Semantic Recall
Conversation History — последние N сообщений, строго по порядку, ограничено количеством.Semantic Recall — любые релевантные сообщения, по смыслу, ищет по всей истории.Аналогия с человеческой памятью: вы не помните каждое слово каждого разговора, но можете вспомнить релевантную информацию, когда вас спрашивают.
—
Working Memory — карточка клиента
Semantic Recall ищет по сообщениям. Но иногда нужно хранить не сообщения, а факты: имя пользователя, его предпочтения, текущие цели.
Working Memory — это "блокнот" агента для структурированных данных о пользователе.
Conversation History — хранит сырые сообщения. "Привет" → "Как дела?"
Semantic Recall — хранит релевантные сообщения. Поиск по смыслу.
Working Memory — хранит структурированные данные. Имя: Алексей, Город: Москва.
—
Как работает Working Memory?
Вы задаёте шаблон — что агент должен запоминать:
<user>
<name></name>
<city></city>
<preferences></preferences>
</user>
Когда пользователь говорит "Меня зовут Алексей, я из Москвы", агент сам заполняет шаблон. Теперь он знает имя и город — даже через 1000 сообщений.
Working Memory компактна и обновляется. В отличие от истории сообщений, которая только растёт, Working Memory хранит только актуальную информацию.
—
Когда что использовать?
— Недавний контекст (последние сообщения) → Conversation History
— "Что мы обсуждали раньше?" → Semantic Recall
— Профиль пользователя (имя, предпочтения) → Working Memory
На практике все три типа работают вместе, создавая полную картину контекста для агента.
—
Что дальше?
У нас есть умный агент с инструментами и памятью. Но что если задача сложная и требует нескольких шагов? Проверить данные, обогатить их, проанализировать, сформировать отчёт?
В следующем посте серии разберём Workflows — как строить цепочки действий и оркестрировать сложные AI-процессы.
❤3👍1🔥1
Пост 5 из серии Mastra
Когда одного агента недостаточно
До этого мы говорили об агентах как о самостоятельных единицах: есть агент, у него промпт, инструменты, память. Он получает запрос — даёт ответ.
Но что если задача сложнее? Например:
— Получить текст → проверить на ошибки → обогатить данными → сгенерировать саммари
— Принять заявку → валидировать → отправить в CRM → уведомить менеджера
Запихивать всё это в одного агента — плохая идея. Логика становится запутанной, сложно тестировать и переиспользовать.
Здесь нужны Workflows.
—
Что такое Workflows?
Workflows — это способ объединить операции в цепочки. Каждая операция — отдельный Step (шаг), который делает что-то одно.
— Модульность — разбиваете сложную задачу на простые шаги
— Переиспользование — один шаг можно использовать в разных workflows
— Тестируемость — каждый шаг тестируется отдельно
— Типобезопасность — чёткие входы и выходы для каждого шага
— Трейсинг — видите, что происходит на каждом этапе
—
Workflow vs Agent — ключевое отличие
И workflow, и agent могут выполнять сложные задачи с несколькими шагами. Но есть принципиальная разница:
Workflow — это конвейер. Вы заранее определяете: сначала валидация, потом обогащение, потом анализ. Всегда в этом порядке.
Agent с теми же инструментами будет сам решать, что вызвать. Может сразу пойти в анализ, может сначала уточнить у пользователя, может вызвать инструменты в другом порядке — в зависимости от контекста.
Когда что выбрать:
— Нужна предсказуемость и чёткий процесс → Workflow
— Нужна гибкость и адаптация к ситуации → Agent
—
Step — строительный блок
Каждый Step:
1. Принимает данные на вход (что ожидает получить)
2. Выполняет работу (логика)
3. Возвращает данные в заданном формате (результат)
Шаги соединяются в цепочку: выход одного шага становится входом следующего.
Внутри шага может быть что угодно: простая функция, вызов API, или даже обращение к AI-агенту для анализа.
—
Параллельное выполнение
Иногда шаги не зависят друг от друга. Например, нужно проанализировать текст по трём параметрам: SEO, читабельность, тональность.
Запускать их последовательно — долго. Workflows позволяют запустить их параллельно:
Последовательно: 2s + 2s + 2s = 6s
Параллельно: 2s (все одновременно)
—
Условное ветвление
Не всегда нужно выполнять все шаги. Иногда логика зависит от данных:
— Короткий текст → быстрая обработка
— Средний текст → стандартная обработка
— Длинный текст → детальный анализ
Workflows поддерживают ветвление — выбор пути в зависимости от условий:
—
Зачем агенты внутри Workflows?
Шаги могут содержать не только простую логику, но и вызовы AI-агентов:
— Понимание контекста — AI интерпретирует смысл, не только данные
— Генерация insights — анализ, недоступный простой логике
— Адаптивность — разные ответы для разного контента
— Natural language — человекочитаемый вывод
Workflow становится комбинацией детерминированных шагов (валидация, форматирование) и AI-шагов (анализ, генерация
Когда одного агента недостаточно
До этого мы говорили об агентах как о самостоятельных единицах: есть агент, у него промпт, инструменты, память. Он получает запрос — даёт ответ.
Но что если задача сложнее? Например:
— Получить текст → проверить на ошибки → обогатить данными → сгенерировать саммари
— Принять заявку → валидировать → отправить в CRM → уведомить менеджера
Запихивать всё это в одного агента — плохая идея. Логика становится запутанной, сложно тестировать и переиспользовать.
Здесь нужны Workflows.
—
Что такое Workflows?
Workflows — это способ объединить операции в цепочки. Каждая операция — отдельный Step (шаг), который делает что-то одно.
— Модульность — разбиваете сложную задачу на простые шаги
— Переиспользование — один шаг можно использовать в разных workflows
— Тестируемость — каждый шаг тестируется отдельно
— Типобезопасность — чёткие входы и выходы для каждого шага
— Трейсинг — видите, что происходит на каждом этапе
—
Workflow vs Agent — ключевое отличие
И workflow, и agent могут выполнять сложные задачи с несколькими шагами. Но есть принципиальная разница:
Workflow — шаги выполняются в заранее определённом порядке. Предсказуемость и контроль. Вы задаёте логику.Agent — сам решает, когда и какой tool использовать. Гибкость и адаптивность. AI выбирает путь.Workflow — это конвейер. Вы заранее определяете: сначала валидация, потом обогащение, потом анализ. Всегда в этом порядке.
Agent с теми же инструментами будет сам решать, что вызвать. Может сразу пойти в анализ, может сначала уточнить у пользователя, может вызвать инструменты в другом порядке — в зависимости от контекста.
Когда что выбрать:
— Нужна предсказуемость и чёткий процесс → Workflow
— Нужна гибкость и адаптация к ситуации → Agent
—
Step — строительный блок
Каждый Step:
1. Принимает данные на вход (что ожидает получить)
2. Выполняет работу (логика)
3. Возвращает данные в заданном формате (результат)
Шаги соединяются в цепочку: выход одного шага становится входом следующего.
Input → [Validate] → [Enrich] → [Summarize] → Output
Внутри шага может быть что угодно: простая функция, вызов API, или даже обращение к AI-агенту для анализа.
—
Параллельное выполнение
Иногда шаги не зависят друг от друга. Например, нужно проанализировать текст по трём параметрам: SEO, читабельность, тональность.
Запускать их последовательно — долго. Workflows позволяют запустить их параллельно:
┌─ SEO Analysis ──┐
Input → Validate → ├─ Readability ───┼→ Combine → Output
└─ Sentiment ─────┘
Последовательно: 2s + 2s + 2s = 6s
Параллельно: 2s (все одновременно)
—
Условное ветвление
Не всегда нужно выполнять все шаги. Иногда логика зависит от данных:
— Короткий текст → быстрая обработка
— Средний текст → стандартная обработка
— Длинный текст → детальный анализ
Workflows поддерживают ветвление — выбор пути в зависимости от условий:
┌─ quickProcess (< 50 слов)
Input → Validate → ├─ standardProcess (50-200 слов)
└─ detailedProcess (> 200 слов)
—
Зачем агенты внутри Workflows?
Шаги могут содержать не только простую логику, но и вызовы AI-агентов:
— Понимание контекста — AI интерпретирует смысл, не только данные
— Генерация insights — анализ, недоступный простой логике
— Адаптивность — разные ответы для разного контента
— Natural language — человекочитаемый вывод
Workflow становится комбинацией детерминированных шагов (валидация, форматирование) и AI-шагов (анализ, генерация
❤1👍1🔥1
Пост 6 из серии Mastra
Проблема: как понять, что агент работает хорошо?
Мы разобрали, как создать агента: дать ему роль, инструменты, память, построить workflow. Но есть вопрос, который многие игнорируют: а как измерить качество его работы?
В обычном коде всё просто — тест проходит или нет. Но AI недетерминирован: один и тот же вопрос может дать разные ответы. Нельзя написать assert и успокоиться.
Без измерений вы летите вслепую — меняете промпт и не знаете, стало лучше или хуже.
Здесь нужны Scorers.
—
Что такое Scorers?
Scorers — это автоматические оценщики, которые измеряют качество ответов агента. Они возвращают число от 0 до 1, где 1 — идеально.
— Точен ли ответ? — не галлюцинирует ли агент
— Релевантен ли ответ? — отвечает ли на заданный вопрос
— Безопасен ли ответ? — нет ли токсичности или предвзятости
— Полон ли ответ? — не упустил ли важную информацию
Scorers превращают субъективное "вроде нормально отвечает" в объективные метрики.
—
Зачем это нужно?
— Продакшен: без scorers нельзя выпускать агента в прод — вы не знаете, насколько он надёжен
— Итерации: поменяли промпт или модель — scorers покажут, стало лучше или хуже
— CI/CD: scorers встраиваются в пайплайн деплоя как обычные тесты
— Мониторинг: в реальном времени отслеживаете качество ответов на проде
Аналогия: scorers для AI-агентов — как юнит-тесты для обычного кода. Без них вы не знаете, что сломали.
—
Три подхода к оценке
Mastra поддерживает разные способы оценки:
Rule-based — детерминированные правила. Проверяем конкретные критерии алгоритмически: совпадение текста, наличие ключевых слов, длина ответа. Быстро, предсказуемо, но ограничено.
Model-graded — LLM как судья. Другая модель оценивает ответ агента по заданным критериям. Гибко, понимает контекст, но дороже.
Statistical — статистические методы. Вычисляем метрики: cosine similarity, текстовое сходство, покрытие. Объективно и воспроизводимо.
На практике их комбинируют: rule-based для простых проверок, model-graded для нюансов, statistical для сравнений.
—
Как устроен scorer внутри?
Каждый scorer в Mastra — это pipeline из четырёх шагов:
preprocess — подготовка данных. Извлекаем нужное из сырого ввода/вывода агента.
analyze — анализ. Основная логика: собираем инсайты для оценки. Здесь может работать как алгоритм, так и LLM.
generateScore — оценка. Превращаем результат анализа в число от 0 до 1.
generateReason — объяснение. Человекочитаемое описание, почему такая оценка.
Обязательный шаг — только generateScore. Остальные опциональны. Но чем полнее pipeline, тем информативнее результат.
—
Почему pipeline, а не одна функция?
— Разделение ответственности — каждый шаг делает одну вещь
— Переиспользование — один preprocess для нескольких scorers
— Отладка — видно, на каком шаге что-то пошло не так
— Гибкость — можно миксовать функции и LLM в одном scorer
Проблема: как понять, что агент работает хорошо?
Мы разобрали, как создать агента: дать ему роль, инструменты, память, построить workflow. Но есть вопрос, который многие игнорируют: а как измерить качество его работы?
В обычном коде всё просто — тест проходит или нет. Но AI недетерминирован: один и тот же вопрос может дать разные ответы. Нельзя написать assert и успокоиться.
Без измерений вы летите вслепую — меняете промпт и не знаете, стало лучше или хуже.
Здесь нужны Scorers.
—
Что такое Scorers?
Scorers — это автоматические оценщики, которые измеряют качество ответов агента. Они возвращают число от 0 до 1, где 1 — идеально.
— Точен ли ответ? — не галлюцинирует ли агент
— Релевантен ли ответ? — отвечает ли на заданный вопрос
— Безопасен ли ответ? — нет ли токсичности или предвзятости
— Полон ли ответ? — не упустил ли важную информацию
Scorers превращают субъективное "вроде нормально отвечает" в объективные метрики.
—
Зачем это нужно?
— Продакшен: без scorers нельзя выпускать агента в прод — вы не знаете, насколько он надёжен
— Итерации: поменяли промпт или модель — scorers покажут, стало лучше или хуже
— CI/CD: scorers встраиваются в пайплайн деплоя как обычные тесты
— Мониторинг: в реальном времени отслеживаете качество ответов на проде
Аналогия: scorers для AI-агентов — как юнит-тесты для обычного кода. Без них вы не знаете, что сломали.
—
Три подхода к оценке
Mastra поддерживает разные способы оценки:
Rule-based — детерминированные правила. Проверяем конкретные критерии алгоритмически: совпадение текста, наличие ключевых слов, длина ответа. Быстро, предсказуемо, но ограничено.
Model-graded — LLM как судья. Другая модель оценивает ответ агента по заданным критериям. Гибко, понимает контекст, но дороже.
Statistical — статистические методы. Вычисляем метрики: cosine similarity, текстовое сходство, покрытие. Объективно и воспроизводимо.
На практике их комбинируют: rule-based для простых проверок, model-graded для нюансов, statistical для сравнений.
—
Как устроен scorer внутри?
Каждый scorer в Mastra — это pipeline из четырёх шагов:
preprocess — подготовка данных. Извлекаем нужное из сырого ввода/вывода агента.
analyze — анализ. Основная логика: собираем инсайты для оценки. Здесь может работать как алгоритм, так и LLM.
generateScore — оценка. Превращаем результат анализа в число от 0 до 1.
generateReason — объяснение. Человекочитаемое описание, почему такая оценка.
Обязательный шаг — только generateScore. Остальные опциональны. Но чем полнее pipeline, тем информативнее результат.
—
Почему pipeline, а не одна функция?
— Разделение ответственности — каждый шаг делает одну вещь
— Переиспользование — один preprocess для нескольких scorers
— Отладка — видно, на каком шаге что-то пошло не так
— Гибкость — можно миксовать функции и LLM в одном scorer
❤2👍2🔥2
Forwarded from Валера Ковальский
AI Daily Digest
TerserAI - мой вижн для поиска по постам тг каналов, и ежедневных дайджестов!
Теперь я наконец то решил проблему ежедневных дайджестов того что мне реально интересно
@neuraldeepbot (достаточно стартануть бота и в 13 по МСК будете получать рассылку)
Бонусом для вас безлимитный ReAct агент с поиском по 20+ тысячам постов моих любимых каналов
Через команду
Если вас итересует mcp/api к данной бд/агенту вызывайте команду
Пишите ваши в коменты с чем вам помог мой сервис @neuraldeepbot
TerserAI - мой вижн для поиска по постам тг каналов, и ежедневных дайджестов!
Теперь я наконец то решил проблему ежедневных дайджестов того что мне реально интересно
@neuraldeepbot (достаточно стартануть бота и в 13 по МСК будете получать рассылку)
Бонусом для вас безлимитный ReAct агент с поиском по 20+ тысячам постов моих любимых каналов
Через команду
/suggest можно предложить канал для добавления в скрепер!Если вас итересует mcp/api к данной бд/агенту вызывайте команду
/earlyadopter (пока выдача доступа ручная) c вами свяжутсяПишите ваши в коменты с чем вам помог мой сервис @neuraldeepbot
AI пишет код — инженер управляет контекстом
Посмотрел отличное видео про выстраивание процесса работы с AI-агентами при написании кода. Главное — пошаговая работа с контекстом:
Проблема: без процесса AI генерит быстро, но плохо. Сложность кода +40%, ошибок в 1.7 раз больше, XSS-уязвимости в 2.7 раз чаще.
Формула качества контекста:
— Полнота: дать модели всё, что нужно для задачи
— Релевантность: убрать шум из контекстного окна
— Структура: чёткие инструкции, роли, ограничения
Роль инженера сместилась — не писать код, а управлять тем, как AI его пишет. Контролировать контекст, архитектуру, качество.
Процесс по шагам:
1. Исследование — агент сканирует кодовую базу и генерит документацию: архитектура, стек, паттерны, зависимости. Это становится фундаментом контекста для всех следующих шагов.
2. Планирование — на основе документации агент создаёт детальный план: фазы, конкретные шаги, архитектурные решения и quality-гейты. Всё до написания первой строчки кода.
3. Имплементация — мультиагентная команда, каждый со своей ролью и промптом: кодер пишет, тестировщик проверяет билд, архитектор смотрит структуру, секьюрити-ревьюер ищет уязвимости. Работают параллельно, каждый в своём контекстном окне.
4. Ревью человеком — LLM может галлюцинировать на любой фазе. Финальная проверка всегда за инженером + жёсткий CI: линтеры, тесты, security-сканы.
—-
Очень понравился такой подход — в своей работе я пришёл к похожему воркфлоу самостоятельно. Особенно зашло после того, как в Claude Code не так давно добавили agent teams и worktrees, которые буквально раскрывают весь потенциал мультиагентной разработки.
ссылка на видео
—-
Сейчас код может писать каждый — порог входа упал до нуля. Однако качество кода по-прежнему зависит от инженера. Тебе не нужно заучивать промпты, тебе нужно выстраивать мышление: как формировать контекст, как декомпозировать задачи, как контролировать качество. Это мышление переносится на любой инструмент и любую модель.
Так что учиться и расти как инженер сейчас важно как никогда.
DegenCoding Подписаться.
Посмотрел отличное видео про выстраивание процесса работы с AI-агентами при написании кода. Главное — пошаговая работа с контекстом:
Проблема: без процесса AI генерит быстро, но плохо. Сложность кода +40%, ошибок в 1.7 раз больше, XSS-уязвимости в 2.7 раз чаще.
Формула качества контекста:
— Полнота: дать модели всё, что нужно для задачи
— Релевантность: убрать шум из контекстного окна
— Структура: чёткие инструкции, роли, ограничения
Роль инженера сместилась — не писать код, а управлять тем, как AI его пишет. Контролировать контекст, архитектуру, качество.
Процесс по шагам:
1. Исследование — агент сканирует кодовую базу и генерит документацию: архитектура, стек, паттерны, зависимости. Это становится фундаментом контекста для всех следующих шагов.
2. Планирование — на основе документации агент создаёт детальный план: фазы, конкретные шаги, архитектурные решения и quality-гейты. Всё до написания первой строчки кода.
3. Имплементация — мультиагентная команда, каждый со своей ролью и промптом: кодер пишет, тестировщик проверяет билд, архитектор смотрит структуру, секьюрити-ревьюер ищет уязвимости. Работают параллельно, каждый в своём контекстном окне.
4. Ревью человеком — LLM может галлюцинировать на любой фазе. Финальная проверка всегда за инженером + жёсткий CI: линтеры, тесты, security-сканы.
—-
Очень понравился такой подход — в своей работе я пришёл к похожему воркфлоу самостоятельно. Особенно зашло после того, как в Claude Code не так давно добавили agent teams и worktrees, которые буквально раскрывают весь потенциал мультиагентной разработки.
ссылка на видео
—-
Сейчас код может писать каждый — порог входа упал до нуля. Однако качество кода по-прежнему зависит от инженера. Тебе не нужно заучивать промпты, тебе нужно выстраивать мышление: как формировать контекст, как декомпозировать задачи, как контролировать качество. Это мышление переносится на любой инструмент и любую модель.
Так что учиться и расти как инженер сейчас важно как никогда.
DegenCoding Подписаться.
🔥5❤3👍3