Легкий путь в Python
🧠💾 Если коротко, то я подключил нейронку напрямую к базе данных Теперь вместо написания SQL запросов я просто говорю Claude человеческим языком: 💬 "Покажи всех сотрудников из отдела Engineering с их зарплатами" 💬 "Создай отчет по проектам с бюджетами" 💬…
FastAPI + MCP + LLM как сервис — звучит как неплохая идея для статьи, не правда ли?
6🔥113👍34💯16🤩2🎄2
🚀 MCP + Локальная Llama: Файловая система под контролем ИИ
А вот ещё один пример интеграции MCP, но на этот раз уже с локальной нейросетью Meta-Llama-3.1-8B и MCP modelcontextprotocol/server-filesystem!
На скриншоте видно, как Llama успешно:
- 🤖 Понимает команду на русском языке
- 🔧 Выбирает правильный инструмент
- ✅ Создаёт файл
- 📁 Подтверждает выполнение операции
Что особенно круто:
- Никаких API-ключей — всё работает локально
- Llama понимает естественный язык и переводит в MCP-команды
- Полный контроль над файловой системой через стандартизированный протокол
Стек: Python + MCP + Ollama + @modelcontextprotocol/server-filesystem
Model Context Protocol действительно упрощает интеграцию ИИ с внешними инструментами. Один протокол — множество возможностей!
А вот ещё один пример интеграции MCP, но на этот раз уже с локальной нейросетью Meta-Llama-3.1-8B и MCP modelcontextprotocol/server-filesystem!
На скриншоте видно, как Llama успешно:
- 🤖 Понимает команду на русском языке
- 🔧 Выбирает правильный инструмент
fs_write_file
- ✅ Создаёт файл
ex.py
с HTTP-запросом к python.org- 📁 Подтверждает выполнение операции
Что особенно круто:
- Никаких API-ключей — всё работает локально
- Llama понимает естественный язык и переводит в MCP-команды
- Полный контроль над файловой системой через стандартизированный протокол
Стек: Python + MCP + Ollama + @modelcontextprotocol/server-filesystem
Model Context Protocol действительно упрощает интеграцию ИИ с внешними инструментами. Один протокол — множество возможностей!
🔥31👍15❤4☃1😇1🤪1
🚀 Создаем AI агента с доступом к файловой системе за 5 минут!
Недавно попробовал Model Context Protocol (MCP) от Anthropic с OpenAI — и это просто магия! Теперь GPT может работать с вашими файлами напрямую.
📦 Быстрая установка
💻 Минимальный код
✨ Что происходит под капотом?
В этом примере мы подключили к агенту MCP filesystem server, который дает GPT возможность:
- 📁 Читать и создавать файлы
- 📋 Просматривать содержимое папок
- 🔍 Искать файлы по содержимому
- ✏️ Редактировать код напрямую
🎯 Результат
Агент автоматически:
1. Создает файл
2. Пишет рабочий код для OpenAI API
3. Сохраняет его в файловую систему
Никакого копирования кода вручную — AI делает всё сам!
🔥 Возможности
- Автоматизация: Создание целых проектов одной командой
- Рефакторинг: "Отрефактори все .py файлы в папке"
- Документация: "Создай README для этого проекта"
- Тестирование: "Напиши тесты для всех модулей"
MCP — это будущее AI агентов. Теперь они не просто болтают, а реально работают с вашими данными! 🤖
Другие MCP сервера подключаются по такой-же логике.
P.S. Пока локальные модели с которыми я работал не позволили получить такого-же качественного профита от взаимодействия с MCP, но, возможно, вопрос в мощности железа и качестве самих локальных LLM.
Недавно попробовал Model Context Protocol (MCP) от Anthropic с OpenAI — и это просто магия! Теперь GPT может работать с вашими файлами напрямую.
📦 Быстрая установка
pip install openai-agents
💻 Минимальный код
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
import os
os.environ["OPENAI_API_KEY"] = "sk-proj-..."
async def main():
async with MCPServerStdio(
params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
}
) as mcp_server:
agent = Agent(
name="Assistant",
instructions="Ты ассистент, который может работать с файлами через инструменты.",
mcp_servers=[mcp_server]
)
result = await Runner.run(
agent,
"Создай файл test.py с примером get запроса к серверу openai"
)
print(result.final_output)
asyncio.run(main())
✨ Что происходит под капотом?
В этом примере мы подключили к агенту MCP filesystem server, который дает GPT возможность:
- 📁 Читать и создавать файлы
- 📋 Просматривать содержимое папок
- 🔍 Искать файлы по содержимому
- ✏️ Редактировать код напрямую
🎯 Результат
Агент автоматически:
1. Создает файл
test.py
2. Пишет рабочий код для OpenAI API
3. Сохраняет его в файловую систему
Никакого копирования кода вручную — AI делает всё сам!
🔥 Возможности
- Автоматизация: Создание целых проектов одной командой
- Рефакторинг: "Отрефактори все .py файлы в папке"
- Документация: "Создай README для этого проекта"
- Тестирование: "Напиши тесты для всех модулей"
MCP — это будущее AI агентов. Теперь они не просто болтают, а реально работают с вашими данными! 🤖
Другие MCP сервера подключаются по такой-же логике.
P.S. Пока локальные модели с которыми я работал не позволили получить такого-же качественного профита от взаимодействия с MCP, но, возможно, вопрос в мощности железа и качестве самих локальных LLM.
🔥27❤10⚡2🎉1🏆1💋1
Интегрируем в OpenAI Agents локальные LLM
Вчера я показывал пример, как легко интегрировать облачный OpenAI в свои проекты в связке с библиотекой openai-agents. Но это далеко не единственная возможность, ведь там, буквально из коробки, присутствует интеграция с локальными LLM.
Первое что нужно сделать — это поднять локальную нейросеть, которая поддерживает интеграцию с MCP. Самый популярный вариант — это Llama через Ollama.
Подготовка локальной модели
1. Устанавливаем Ollama
2. Скачиваем модель llama3:8b
3. Проверяем, что все корректно работает
4. Запускаем Ollama в режиме сервера
Код интеграции
Ключевые отличия от облачного варианта
К основным отличиям от вчерашнего примера можно отнести блок, в котором мы описываем модель с которой нам предстоит работать:
Остальное идентично вчерашнему примеру.
Вчера я показывал пример, как легко интегрировать облачный OpenAI в свои проекты в связке с библиотекой openai-agents. Но это далеко не единственная возможность, ведь там, буквально из коробки, присутствует интеграция с локальными LLM.
Первое что нужно сделать — это поднять локальную нейросеть, которая поддерживает интеграцию с MCP. Самый популярный вариант — это Llama через Ollama.
Подготовка локальной модели
1. Устанавливаем Ollama
# Для Linux/macOS
curl -fsSL https://ollama.ai/install.sh | sh
# Для Windows
# Скачиваем и устанавливаем с официального сайта
2. Скачиваем модель llama3:8b
ollama pull llama3:8b
3. Проверяем, что все корректно работает
ollama run llama3:8b
4. Запускаем Ollama в режиме сервера
ollama serve
Код интеграции
import asyncio
from agents import Agent, Runner, OpenAIChatCompletionsModel
from agents.mcp import MCPServerStdio
from openai import AsyncOpenAI
async def main():
async with MCPServerStdio(
params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
},
client_session_timeout_seconds=60
) as mcp_server:
agent = Agent(
name="FileAssistant",
instructions="Ты ассистент, который может работать с файлами через инструменты MCP.",
model=OpenAIChatCompletionsModel(
model="llama3:8b",
openai_client=AsyncOpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"
)
),
mcp_servers=[mcp_server]
)
result = await Runner.run(
agent,
"Создай файл example.py с примером GET запроса к OpenAI API"
)
print(result.final_output)
asyncio.run(main())
Ключевые отличия от облачного варианта
К основным отличиям от вчерашнего примера можно отнести блок, в котором мы описываем модель с которой нам предстоит работать:
model=OpenAIChatCompletionsModel(
model="llama3:8b", # Название модели в Ollama
openai_client=AsyncOpenAI(
base_url="http://localhost:11434/v1", # Локальный адрес Ollama
api_key="ollama" # Любая строка для совместимости
)
)
Остальное идентично вчерашнему примеру.
👍18🔥12❤8👏1🍓1🫡1
Как научить нейросеть работать с 1000 медицинскими книгами?
🧠💡 RAG (Retrieval-Augmented Generation) — ваш идеальный инструмент!
🔹 Проблема
У вас есть 1000 книг по медицине (учебники, исследования, клинические рекомендации). Как сделать так, чтобы нейросеть:
✅ Отвечала точно (без выдумок).
✅ Ссылалась на источники.
✅ Не требовала перетренировки при добавлении новых книг.
Решение — связка векторной БД + LLM!
🔹 Шаг 1. Подготовка данных
1. Разбиваем книги на чанки (например, по 1–2 страницы):
2. Добавляем метаданные для каждого чанка:
- Название книги, автор, год, страница.
- Теги (
🔹 Шаг 2. Векторизация и база данных
1. Преобразуем текст в вектора (эмбеддинги):
2. Загружаем в векторную БД (например, Qdrant или Milvus):
Почему векторная БД?
- Ищет по смыслу, а не ключевым словам.
- Поддерживает фильтры (например, только статьи после 2020 года).
🔹 Шаг 3. Поиск и генерация ответов
1. Векторизуем запрос пользователя:
> *«Какие современные методы лечения гипертонии у пожилых?»*
2. Ищем релевантные чанки:
3. Передаем контекст в LLM:
4. Получаем ответ с ссылками:
> *«Согласно "Руководству по кардиологии" (2023), для пожилых рекомендованы ... [стр. 78].»*
🔹 Оптимизации
- Гибридный поиск: Комбинируйте векторный поиск с ключевыми словами.
- Ранжирование: Добавьте перекрестный энкодер для уточнения топ-3 чанков.
- Кэширование: Сохраняйте результаты частых запросов.
🔹 Готовые решения
- LlamaIndex — для быстрого RAG-пайплайна.
- Haystack — если нужны готовые компоненты.
- LangChain — для гибкой настройки.
💡 Итог:
1. Чанки + вектора — превращаем книги в «поисковый индекс».
2. LLM + контекст — отвечает точно и без галлюцинаций.
3. Ссылки на источники — прозрачность и доверие.
Примеры запросов:
- *«Какие противопоказания у препарата X?»*
- *«Алгоритм диагностики инфаркта по последним гайдлайнам»*
Попробуйте на своих данных! Если нужно углубиться в детали — спрашивайте. 🚀
🧠💡 RAG (Retrieval-Augmented Generation) — ваш идеальный инструмент!
🔹 Проблема
У вас есть 1000 книг по медицине (учебники, исследования, клинические рекомендации). Как сделать так, чтобы нейросеть:
✅ Отвечала точно (без выдумок).
✅ Ссылалась на источники.
✅ Не требовала перетренировки при добавлении новых книг.
Решение — связка векторной БД + LLM!
🔹 Шаг 1. Подготовка данных
1. Разбиваем книги на чанки (например, по 1–2 страницы):
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, # ~500-1000 токенов
chunk_overlap=100 # Перекрытие для контекста
)
chunks = splitter.split_text(book_text)
2. Добавляем метаданные для каждого чанка:
- Название книги, автор, год, страница.
- Теги (
кардиология
, фармакология
, диагностика
). 🔹 Шаг 2. Векторизация и база данных
1. Преобразуем текст в вектора (эмбеддинги):
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") # Поддержка русского
vector = model.encode("Текст о лечении гипертонии...")
2. Загружаем в векторную БД (например, Qdrant или Milvus):
import qdrant_client
client = qdrant_client.QdrantClient("localhost")
client.upsert(
collection_name="medical_books",
points=[
{"id": 1, "vector": vector.tolist(), "payload": {"title": "Кардиология", "page": 45}}
]
)
Почему векторная БД?
- Ищет по смыслу, а не ключевым словам.
- Поддерживает фильтры (например, только статьи после 2020 года).
🔹 Шаг 3. Поиск и генерация ответов
1. Векторизуем запрос пользователя:
> *«Какие современные методы лечения гипертонии у пожилых?»*
2. Ищем релевантные чанки:
results = client.search(
collection_name="medical_books",
query_vector=model.encode("Современные методы лечения гипертонии").tolist(),
limit=5 # Топ-5 самых полезных фрагментов
)
3. Передаем контекст в LLM:
prompt = f"""
Ты — медицинский эксперт. Ответь на вопрос, используя ТОЛЬКО данные ниже.
Если информации нет, скажи «Не нашел данных».
Вопрос: {user_question}
Контекст:
{chunk1_text} [Источник: {chunk1_title}, стр. {chunk1_page}]
{chunk2_text} [Источник: {chunk2_title}, стр. {chunk2_page}]
"""
4. Получаем ответ с ссылками:
> *«Согласно "Руководству по кардиологии" (2023), для пожилых рекомендованы ... [стр. 78].»*
🔹 Оптимизации
- Гибридный поиск: Комбинируйте векторный поиск с ключевыми словами.
- Ранжирование: Добавьте перекрестный энкодер для уточнения топ-3 чанков.
- Кэширование: Сохраняйте результаты частых запросов.
🔹 Готовые решения
- LlamaIndex — для быстрого RAG-пайплайна.
- Haystack — если нужны готовые компоненты.
- LangChain — для гибкой настройки.
💡 Итог:
1. Чанки + вектора — превращаем книги в «поисковый индекс».
2. LLM + контекст — отвечает точно и без галлюцинаций.
3. Ссылки на источники — прозрачность и доверие.
Примеры запросов:
- *«Какие противопоказания у препарата X?»*
- *«Алгоритм диагностики инфаркта по последним гайдлайнам»*
Попробуйте на своих данных! Если нужно углубиться в детали — спрашивайте. 🚀
🔥43❤13👍10🤝3🙏1🤡1🍾1
🔌 Что такое MCP простыми словами
Представьте: у вас есть компьютер (векторная база данных) и флешка (нейросеть). Чтобы они работали вместе, нужен USB-разъем — это и есть MCP (Model Context Protocol).
🖥 Компьютер хранит кучу файлов и документов
💾 Флешка умеет их обрабатывать и анализировать
🔌 USB-разъем позволяет им "общаться" друг с другом
Без MCP: нейросеть работает сама по себе, не зная о ваших данных
С MCP: нейросеть может:
- Читать ваши документы
- Анализировать базы данных
- Работать с внешними сервисами
- Использовать актуальную информацию
Это как если бы ваша флешка вдруг получила доступ ко всем файлам компьютера и могла с ними работать в реальном времени!
MCP делает AI-помощников по-настоящему полезными — они перестают быть просто болтунами и становятся инструментами, которые знают контекст вашей работы.
Представьте: у вас есть компьютер (векторная база данных) и флешка (нейросеть). Чтобы они работали вместе, нужен USB-разъем — это и есть MCP (Model Context Protocol).
🖥 Компьютер хранит кучу файлов и документов
💾 Флешка умеет их обрабатывать и анализировать
🔌 USB-разъем позволяет им "общаться" друг с другом
Без MCP: нейросеть работает сама по себе, не зная о ваших данных
С MCP: нейросеть может:
- Читать ваши документы
- Анализировать базы данных
- Работать с внешними сервисами
- Использовать актуальную информацию
Это как если бы ваша флешка вдруг получила доступ ко всем файлам компьютера и могла с ними работать в реальном времени!
MCP делает AI-помощников по-настоящему полезными — они перестают быть просто болтунами и становятся инструментами, которые знают контекст вашей работы.
👍24🔥14❤8🤔3🤝3😍1🙉1👾1
🤖 Скоро на Хабре: Создаём настоящего ИИ-агента за час!
Надоели чат-боты, которые только разговаривают? Пора создать настоящего ИИ-помощника, который умеет:
• 📁 Читать и анализировать файлы
• 🔍 Искать информацию в интернете
• 🧠 Запоминать контекст разговора
• ⚡️ Работать асинхронно и стабильно
Что будет в статье:
✅ Два готовых агента: классификатор вакансий + файловый помощник
✅ Поддержка Ollama, OpenAI, DeepSeek — любая модель на выбор
✅ Промышленная архитектура: логирование, retry, обработка ошибок
✅ Полная интеграция в Python без no-code конструкторов
✅ LangGraph + MCP — современный стек для ИИ-агентов
🎯 От настройки до рабочего агента за 60 минут
Материал готов, проходит финальную вычитку. Публикация — завтра-послезавтра!
📂 Пока ждёте — изучайте исходники: GitHub
В репозитории примеры от простых до продвинутых. В статье будет и практика, и теория — идеально для тех, кто хочет разобраться с MCP серверами и ИИ-агентами.
Будете ждать выхода статьи?
Надоели чат-боты, которые только разговаривают? Пора создать настоящего ИИ-помощника, который умеет:
• 📁 Читать и анализировать файлы
• 🔍 Искать информацию в интернете
• 🧠 Запоминать контекст разговора
• ⚡️ Работать асинхронно и стабильно
Что будет в статье:
✅ Два готовых агента: классификатор вакансий + файловый помощник
✅ Поддержка Ollama, OpenAI, DeepSeek — любая модель на выбор
✅ Промышленная архитектура: логирование, retry, обработка ошибок
✅ Полная интеграция в Python без no-code конструкторов
✅ LangGraph + MCP — современный стек для ИИ-агентов
🎯 От настройки до рабочего агента за 60 минут
Материал готов, проходит финальную вычитку. Публикация — завтра-послезавтра!
📂 Пока ждёте — изучайте исходники: GitHub
В репозитории примеры от простых до продвинутых. В статье будет и практика, и теория — идеально для тех, кто хочет разобраться с MCP серверами и ИИ-агентами.
Будете ждать выхода статьи?
4🔥98👍21❤7🍾2🤝2👌1😍1🐳1
📚 Базовое знакомство с разработкой ИИ-агентов
Опубликовал на Хабре статью по созданию ИИ-агентов с использованием LangGraph и LangChain. Это первое знакомство с темой — в планах, если увижу интерес от аудитории и вашу поддержку, полноценный мини-курс по разработке агентов на этом стеке.
🔍 О чем статья:
• Объясняю концепцию ИИ-агентов с нуля
• Разбираю что такое MCP и зачем он нужен разработчикам
• Показываю архитектуру решения на LangGraph в связке с LangChain
• Два практических кейса: классификация вакансий и работа с файлами
• Промышленная архитектура с логированием и обработкой ошибок
⚙️ Технический стек:
LangGraph + LangChain + MCP с поддержкой разных моделей (Ollama, OpenAI, DeepSeek)
Материал, как обычно, старался подать максимально доступно — все будет понятно даже тем, кто вообще не в теме. Идеально для старта в мире MCP-серверов и ИИ-агентов.
📖 Статья: Как научить нейросеть работать руками: создание полноценного ИИ-агента с MCP и LangGraph
💻 Исходный код: GitHub
Опубликовал на Хабре статью по созданию ИИ-агентов с использованием LangGraph и LangChain. Это первое знакомство с темой — в планах, если увижу интерес от аудитории и вашу поддержку, полноценный мини-курс по разработке агентов на этом стеке.
🔍 О чем статья:
• Объясняю концепцию ИИ-агентов с нуля
• Разбираю что такое MCP и зачем он нужен разработчикам
• Показываю архитектуру решения на LangGraph в связке с LangChain
• Два практических кейса: классификация вакансий и работа с файлами
• Промышленная архитектура с логированием и обработкой ошибок
⚙️ Технический стек:
LangGraph + LangChain + MCP с поддержкой разных моделей (Ollama, OpenAI, DeepSeek)
Материал, как обычно, старался подать максимально доступно — все будет понятно даже тем, кто вообще не в теме. Идеально для старта в мире MCP-серверов и ИИ-агентов.
📖 Статья: Как научить нейросеть работать руками: создание полноценного ИИ-агента с MCP и LangGraph
💻 Исходный код: GitHub
Хабр
Как научить нейросеть работать руками: создание полноценного ИИ-агента с MCP и LangGraph за час
Друзья, приветствую! Надеюсь, успели соскучиться. Последние пару месяцев я с головой ушёл в исследование интеграции ИИ-агентов в собственные Python-проекты. В процессе накопилось немало практических...
21🔥67👍22❤5🫡2👌1😍1🤝1
🔧 Пример простого графа на LangGraph с визуализацией
LangGraph — мощный инструмент для построения графов вычислений, особенно полезен в агентных системах и workflow-автоматизации. Ниже — минимальный пример, где создаётся граф, выполняющий математические операции (сумму или произведение) над списком чисел.
📌 Что делает этот граф:
* Принимает список чисел и операцию (
* Выполняет нужную операцию
* Возвращает результат
* И сохраняет визуализацию графа в
🖼 После запуска — в папке появится файл
LangGraph — мощный инструмент для построения графов вычислений, особенно полезен в агентных системах и workflow-автоматизации. Ниже — минимальный пример, где создаётся граф, выполняющий математические операции (сумму или произведение) над списком чисел.
📌 Что делает этот граф:
* Принимает список чисел и операцию (
+
или *
)* Выполняет нужную операцию
* Возвращает результат
* И сохраняет визуализацию графа в
graph.png
from typing import Dict, TypedDict
from langgraph.graph import StateGraph
# Определение состояния
class AgentState(TypedDict):
numbers: list[int]
operation: str
result: int
# Узел обработки
def process_node(state: AgentState) -> AgentState:
operation = state["operation"]
numbers = state["numbers"]
if operation == "*":
rez_value = 1
for i in numbers:
rez_value *= i
elif operation == "+":
rez_value = sum(numbers)
else:
rez_value = 0
state["result"] = rez_value
return state
# Создание графа
graph = StateGraph(AgentState)
graph.add_node("process", process_node)
graph.set_entry_point("process")
graph.set_finish_point("process")
app = graph.compile()
# Визуализация графа
with open("graph.png", "wb") as f:
f.write(app.get_graph().draw_mermaid_png())
# Запуск графа
result = app.invoke({"numbers": [1, 2, 3, 10], "operation": "+"})
print(result["result"]) # 👉 16
🖼 После запуска — в папке появится файл
graph.png
с визуализацией графа (приложил к посту полученное изображение).👍14🔥14🤝3🤔1🙏1🤗1
🤖 А что если LLM сам решает, какие функции использовать?
Легко! В этом поможет LangGraph с супер-инструментом Tools 🛠
🔥 Смотрите, что происходит:
Пользователь задает один сложный вопрос:
> "Сложи 100 + 123432134 и расскажи о погоде в Краснодаре на сегодня"
🧠 LLM анализирует и сам принимает решения:
⚡️ Результат - молниеносно!
Математика:
Погода:
🚀 Почему это круто?
✅ Умное планирование - LLM сам определяет нужные инструменты
✅ Параллельное выполнение - несколько задач одновременно
✅ Естественное общение - один запрос, полный ответ
✅ Масштабируемость - можно добавлять любые функции
💡 Представьте возможности:
Один запрос: *"Проанализируй это фото, найди в базе похожие товары и отправь результат на email"*
LLM автоматически: Анализ → SQL → Email ✨
🎯 Главная фишка:
Вы пишете функции → LLM сам решает, когда их использовать
Больше никаких if/else и сложной логики! Просто опишите, что умеет каждая функция, а ИИ сам составит план выполнения.
LangGraph превращает набор функций в умного помощника, который знает, что и когда делать! 🤖✨
Легко! В этом поможет LangGraph с супер-инструментом Tools 🛠
🔥 Смотрите, что происходит:
Пользователь задает один сложный вопрос:
> "Сложи 100 + 123432134 и расскажи о погоде в Краснодаре на сегодня"
🧠 LLM анализирует и сам принимает решения:
# Шаг 1: LLM понимает, что нужно 2 разные задачи
AIMessage: "Я выполню оба ваших запроса - сложу числа и получу информацию о погоде"
# Шаг 2: Автоматически вызывает СРАЗУ 2 инструмента
tool_calls: [
{'name': 'add_tool', 'args': {'a': 100, 'b': 123432134}},
{'name': 'get_weather_tool', 'args': {'city': 'Краснодар'}}
]
⚡️ Результат - молниеносно!
Математика:
100 + 123432134 = 123432234
✅ Погода:
🌤 37.21°C, небольшая облачность, влажность 33%
🌡🚀 Почему это круто?
✅ Умное планирование - LLM сам определяет нужные инструменты
✅ Параллельное выполнение - несколько задач одновременно
✅ Естественное общение - один запрос, полный ответ
✅ Масштабируемость - можно добавлять любые функции
💡 Представьте возможности:
@tool
def analyze_image(image_path: str) -> str:
"""Анализирует изображение с помощью ИИ"""
@tool
def send_email(to: str, subject: str, body: str) -> str:
"""Отправляет email"""
@tool
def query_database(sql: str) -> str:
"""Выполняет SQL запрос"""
Один запрос: *"Проанализируй это фото, найди в базе похожие товары и отправь результат на email"*
LLM автоматически: Анализ → SQL → Email ✨
🎯 Главная фишка:
Вы пишете функции → LLM сам решает, когда их использовать
Больше никаких if/else и сложной логики! Просто опишите, что умеет каждая функция, а ИИ сам составит план выполнения.
LangGraph превращает набор функций в умного помощника, который знает, что и когда делать! 🤖✨
2👍21🔥16❤5⚡3🎉1👌1🤨1🤝1
🎉 Друзья, нас уже больше 4 000!
Огромное спасибо каждому из вас за поддержку, за интерес к каналу и за то, что остаетесь здесь, даже несмотря на то, что в последнее время я редко выходил с новым контентом.
Это очень ценно. Обещаю не пропадать надолго и продолжать делиться простыми и понятными вещами из мира Python, искусственного интеллекта и мира IT в целом. 💻🐍
Спасибо, что вы со мной! 🙌
Огромное спасибо каждому из вас за поддержку, за интерес к каналу и за то, что остаетесь здесь, даже несмотря на то, что в последнее время я редко выходил с новым контентом.
Это очень ценно. Обещаю не пропадать надолго и продолжать делиться простыми и понятными вещами из мира Python, искусственного интеллекта и мира IT в целом. 💻🐍
Спасибо, что вы со мной! 🙌
9🔥63❤18👍11🎉6🥰3🕊1🏆1🤗1
🚀 MCP + LangGraph + AI-агенты: играем по-взрослому
Слышали про LangGraph, tool-юзинг, агентов, MCP — но в голове каша?
Пора навести порядок. В новой статье разложу всё по полочкам — просто, с примерами и кодом:
🔹 Подключим готовый MCP-сервер как внешний инструмент
🔹 Напишем свой мини FastMCP-сервер с простыми функциями
🔹 Разберёмся, как работает режим «чёрного ящика» (ReactAgent) и чем он отличается от ручного биндинга тулзов
🔹 Поговорим, как, когда и зачем модель вызывает инструменты, и кто вообще всё это решает
💡 Будет интересно, если вы:
– хотите реально пощупать LangGraph
– ищете идеи для интеграции своих сервисов
– устали от теории и хотите живой код
Будете ждать? 🤔⏳
Слышали про LangGraph, tool-юзинг, агентов, MCP — но в голове каша?
Пора навести порядок. В новой статье разложу всё по полочкам — просто, с примерами и кодом:
🔹 Подключим готовый MCP-сервер как внешний инструмент
🔹 Напишем свой мини FastMCP-сервер с простыми функциями
🔹 Разберёмся, как работает режим «чёрного ящика» (ReactAgent) и чем он отличается от ручного биндинга тулзов
🔹 Поговорим, как, когда и зачем модель вызывает инструменты, и кто вообще всё это решает
💡 Будет интересно, если вы:
– хотите реально пощупать LangGraph
– ищете идеи для интеграции своих сервисов
– устали от теории и хотите живой код
Будете ждать? 🤔⏳
20👍80🔥25🎉5💯5❤3🙏3🙉2✍1🤔1👾1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤7🎉2👌2🤝2🕊1🍾1
📝 Материал готов — осталось оформить!
Закончил подготовку материала для новой статьи на Хабре. Остается только структурировать всё в осмысленную статью.
🎯 О чём будет статья:
Снова погружаемся в тему MCP серверов и кастомных tools — как и обещал!
🔧 Пока ждёте статью, изучите два репозитория:
1️⃣ Полноценный MCP-сервер + клиент для тестирования:
👉 https://github.com/Yakvenalex/FastMCP-Match-Example
Что внутри:
• Базовая структура математического MCP-сервера
• Подходы к масштабированию (подобие роутеров)
• Клиент для тестирования MCP
2️⃣ Примеры интеграции Tools и MCP (как собственного так и готовых) с LangGraph и LangChain:
👉 https://github.com/Yakvenalex/LangGraphExample
Что внутри:
• Интеграция MCP с LangGraph и LangChain
• Работа с кастомными тулзами и инструментами из MCP серверов
• Практические примеры использования
💡 Главный принцип: поймете код — поймете разработку MCP серверов любой сложности!
📊 Материала накопилось уже на полноценный курс по Langchain + LangGraph + FastMCP. Если увижу вашу активность — обязательно сделаю!
Следите за обновлениями 🚀
Закончил подготовку материала для новой статьи на Хабре. Остается только структурировать всё в осмысленную статью.
🎯 О чём будет статья:
Снова погружаемся в тему MCP серверов и кастомных tools — как и обещал!
🔧 Пока ждёте статью, изучите два репозитория:
1️⃣ Полноценный MCP-сервер + клиент для тестирования:
👉 https://github.com/Yakvenalex/FastMCP-Match-Example
Что внутри:
• Базовая структура математического MCP-сервера
• Подходы к масштабированию (подобие роутеров)
• Клиент для тестирования MCP
2️⃣ Примеры интеграции Tools и MCP (как собственного так и готовых) с LangGraph и LangChain:
👉 https://github.com/Yakvenalex/LangGraphExample
Что внутри:
• Интеграция MCP с LangGraph и LangChain
• Работа с кастомными тулзами и инструментами из MCP серверов
• Практические примеры использования
💡 Главный принцип: поймете код — поймете разработку MCP серверов любой сложности!
📊 Материала накопилось уже на полноценный курс по Langchain + LangGraph + FastMCP. Если увижу вашу активность — обязательно сделаю!
Следите за обновлениями 🚀
GitHub
GitHub - Yakvenalex/FastMCP-Match-Example: FastMCP Match Example
FastMCP Match Example. Contribute to Yakvenalex/FastMCP-Match-Example development by creating an account on GitHub.
6🔥48👍11❤8🙈2🤯1🎃1
Друзья, только что вышла моя новая большая статья про MCP (Model Context Protocol) — технологию, которая позволяет научить нейросети работать с вашим кодом и инструментами!
• Разбираем отличия MCP от обычных tools
• Создаём собственные инструменты для ИИ
• Подключаем готовые MCP-серверы и обычные тулзы через LangGraph
• Пишем полноценный математический MCP-сервер с нуля
• Деплоим в облако и тестируем с реальными агентами
📖 Читать статью:
👉 https://habr.com/ru/companies/amvera/articles/931874/
💻 Исходный код из статьи:
1️⃣ Полноценный MCP-сервер + клиент для тестирования:
👉 https://github.com/Yakvenalex/FastMCP-Match-Example
2️⃣ Примеры интеграции Tools и MCP с LangGraph и LangChain (полные примеры кода из новой и предыдущей статьи):
👉 https://github.com/Yakvenalex/LangGraphExample
Статья получилась объёмная, но без воды — только практика и рабочий код. После неё сможете создавать собственные MCP-серверы и подключать их к любым ИИ-агентам 🔥
P.S. Если тема зайдёт — планирую серию по LangGraph с детальным разбором графов состояний. Пишите, интересно ли вам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как создать MCP-сервер и научить ИИ работать с любым кодом и инструментами через LangGraph
Всё стремительнее на глазах формируется новый виток в развитии инструментов для работы с искусственным интеллектом: если ещё недавно внимание разработчиков было приковано к no-code/low-code платформам...
4🔥49👍10❤8👎1🤔1🕊1🙈1
Легкий путь в Python
Дополнил репозиторий: https://github.com/Yakvenalex/LangGraphExample недостающим кодом. Теперь там, действительно, полный пример кода из предыдущей и новой статьи.
GitHub
GitHub - Yakvenalex/LangGraphExample: LangGraphExample
LangGraphExample. Contribute to Yakvenalex/LangGraphExample development by creating an account on GitHub.
👍16🔥12🤝2❤1✍1🎄1💘1
Друзья, тема AI-агентов набирает просто космические обороты! 📈
Что происходит:
• Все больше компаний внедряют агентов в рабочие процессы
• LangGraph становится стандартом для сложных AI-систем
• Спрос на разработчиков AI-агентов растет как на дрожжах
• Но качественных материалов на русском языке катастрофически мало
Проблема в том, что большинство туториалов:
❌ Поверхностные - показывают только "hello world"
❌ Разрозненные - кусочки информации без системы
❌ Без практики - теория без реальных примеров
❌ Устаревшие - технологии развиваются быстрее материалов
💡 Поэтому я решил создать мини-курс из 4 статей
Каждая статья = практическое погружение с работающим кодом
📚 План курса:
Часть 1: Архитектура агентов
Фундамент графов состояний - узлы, рёбра, логика без AI
Цель: понять, как думают графы
Часть 2: Диалоговые агенты
Память, сообщения, контекст - интеграция LLM в графы
Цель: создать умного собеседника
Часть 3: Реактивные агенты
Инструменты, действия, MCP - агенты, которые умеют ДЕ-ЛАТЬ
Цель: от слов к реальным действиям
Часть 4: Intelligent RAG
Продвинутая работа с документами как граф состояний
Цель: система, которая умнее обычного RAG
🎯 Что получите:
✅ Системное понимание LangGraph от основ до продвинутых паттернов
✅ Готовый код для каждого примера - копируй и адаптируй
✅ Практические кейсы - решения реальных задач
✅ Пошаговые инструкции - без пропущенных деталей
✅ Архитектурные решения - как строить масштабируемые системы
📅 Расписание:
Старт: через неделю
Периодичность: раз в неделю
Длительность: 4 недели
Формат: статьи на Хабре + эксклюзивные материалы здесь в канале
🔥 Почему сейчас самое время:
2025 год - это год массового внедрения AI-агентов. Те, кто освоит технологии сейчас, получат огромное преимущество на рынке.
Готовы погрузиться в мир умных агентов?
Пишите в комментариях, какие задачи планируете решать с помощью AI-агентов - учту в примерах! 👇
P.S. Все исходники будут доступны в канале. Плюс планирую разборы ваших вопросов в отдельных постах, так что включайте уведомления
Please open Telegram to view this post
VIEW IN TELEGRAM
32🔥108👍20❤7🤝7👏2🎉2🙏2🏆1🫡1🙊1
🔥 Как ГАРАНТИРОВАННО получать JSON из LLM с LangChain
Устали от того, что ваша модель возвращает "почти JSON" или обертывает ответ в лишний текст?
Сегодня покажу bulletproof решение с LangChain! 💪
🎯 Проблема
❌ Куча лишнего текста
❌ Нестабильный формат
❌ Ошибки парсинга
✅ Решение: JsonOutputParser + Pydantic
🚀 Результат
🔍 Что происходит под капотом?
LLM видит ТОЧНУЮ схему → возвращает правильный JSON!
💡 Pro Tips:
🔸
🔸
🔸 Всегда оборачивайте в try-catch для продакшена
🔸 Используйте Pydantic для валидации типов
🎁 Бонус: Отладка цепочки
🏆 Итог
JsonOutputParser + Pydantic = стабильный JSON в 100% случаев!
Больше никаких регулярок для извлечения JSON из текста 🙅♂️
Устали от того, что ваша модель возвращает "почти JSON" или обертывает ответ в лишний текст?
Сегодня покажу bulletproof решение с LangChain! 💪
🎯 Проблема
# Обычный запрос к LLM
response = model.invoke("Расскажи о Франции в JSON")
# Получаем: "Конечно! Вот информация о Франции: {"capital": "Париж"...} Надеюсь, это помогло!"
❌ Куча лишнего текста
❌ Нестабильный формат
❌ Ошибки парсинга
✅ Решение: JsonOutputParser + Pydantic
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import PromptTemplate
from pydantic import BaseModel, Field
# 1️⃣ Определяем СТРОГУЮ структуру
class CountryInfo(BaseModel):
capital: str = Field(description="Столица страны")
population: int = Field(description="Население")
country_name: str = Field(description="Название страны")
# 2️⃣ Создаем умный парсер
parser = JsonOutputParser(pydantic_object=CountryInfo)
# 3️⃣ Магия format_instructions!
prompt = PromptTemplate(
template="""Информация о стране в JSON:
Страна: {country}
{format_instructions}
ТОЛЬКО JSON, никакого лишнего текста!""",
input_variables=["country"],
partial_variables={"format_instructions": parser.get_format_instructions()}
)
🚀 Результат
chain = prompt | model | parser
result = chain.invoke({"country": "Египет"})
# Получаем чистый dict:
{
"capital": "Каир",
"population": 104000000,
"country_name": "Египет"
}
🔍 Что происходит под капотом?
format_instructions
автоматически генерирует инструкции:The output should be formatted as a JSON instance that conforms to the JSON schema below.
{"properties": {"capital": {"title": "Capital", "type": "string"}, ...}}
LLM видит ТОЧНУЮ схему → возвращает правильный JSON!
💡 Pro Tips:
🔸
temperature=0.0
для максимальной стабильности🔸
max_tokens=500
чтобы не получить роман вместо JSON🔸 Всегда оборачивайте в try-catch для продакшена
🔸 Используйте Pydantic для валидации типов
🎁 Бонус: Отладка цепочки
def debug_chain(input_data):
step1 = prompt.invoke(input_data) # Смотрим промпт
step2 = model.invoke(step1) # Смотрим ответ модели
step3 = parser.invoke(step2) # Смотрим парсинг
return step3
🏆 Итог
JsonOutputParser + Pydantic = стабильный JSON в 100% случаев!
Больше никаких регулярок для извлечения JSON из текста 🙅♂️
🔥38❤11👍6🙏2🤔1🍾1👻1