🔰 Deep Agents Quickstart — собираем первого агента

Это 6 шагов + объяснение «как это работает» + куда идти дальше. Разбираю по косточкам.

🎯 Что мы построим

Research-агент, который:- ищет информацию в интернете- управляет контекстом через файловую систему (сбрасывает большие результаты в файлы)- спавнит субагентов для сложных подзадач- синтезирует финальный отчёт

📦 Шаг 1: Установка

bashКопировать# pip pip install deepagents # или uv (быстрее) uv init uv add deepagents uv sync Требования:API-ключ любого провайдера + модель с поддержкойtool calling.

🔑 Шаг 2: API ключи

bashКопироватьexport ANTHROPIC_API_KEY="your-api-key"# или OpenAI / Google / OpenRouter / Fireworks / Baseten / Ollama# Tavily нужен только если не используешь встроенный search провайдераexport TAVILY_API_KEY="your-tavily-api-key"> 💡Совет:Можно ходить черезLangSmith Gateway— свои ключи или кредиты LangSmith.

🔍 Шаг 3: Поисковый инструмент

Вариант А — встроенный search провайдера (рекомендуется):pythonКопироватьfrom deepagents import create_deep_agent # Google — server-side, без пакета и ключа internet_search ={"google_search":{}}# OpenAI internet_search ={"type":"web_search"}# Anthropic internet_search ={"type":"web_search_20260209","name":"web_search"}

Вариант Б — Tavily (любой провайдер):pythonКопироватьimport os from typing import Literal from tavily import TavilyClient from deepagents import create_deep_agent tavily_client =TavilyClient(api_key=os.environ["TAVILY_API_KEY"])definternet_search( query:str, max_results:int=5, topic: Literal["general","news","finance"]="general", include_raw_content:bool=False,):"""Run a web search"""return tavily_client.search( query, max_results=max_results, include_raw_content=include_raw_content, topic=topic,)

🤖 Шаг 4: Создаём агента

python

Копироватьresearch_instructions ="""You are an expert researcher. Your job is to conduct thorough research and then write a polished report. You have access to an internet search tool as your primary means of gathering information.

`internet_search` Use this to run an internet search for a given query. You can specify the max number of results to return, the topic, and whether raw content should be included. """ agent =create_deep_agent( model="anthropic:claude-sonnet-4-6",# или google_genai:gemini-3.6-flash, openai:gpt-5.5 и т.д. tools=[internet_search], system_prompt=research_instructions,)3 аргумента— и агент готов. Под капотом:FilesystemMiddleware+SubAgentMiddleware+ LangGraph runtime.

📊 Шаг 5: LangSmith (опционально, для трассировки)

bashКопироватьexport LANGSMITH_TRACING=true export LANGSMITH_API_KEY="your-langsmith-api-key"В UI LangSmith увидишь: tool calls, делегирование субагентам, LLM responses.

🚀 Шаг 6: Запуск

pythonКопироватьresult = agent.invoke({"messages":[{"role":"user","content":"What is langgraph?"}]})print(result["messages"][-1].content)

Всё.

Никакой ручной сборки графа, никаких checkpointer'ов, никакой маршрутизации.

🧠 Как это работает под капотом

Агентавтоматически:1.Ищетчерезinternet_search2.Сбрасывает большие результаты в FSчерезwrite_file/read_file— экономит контекстное окно3.Спавнит субагентовдля сложных подзадач4.Синтезирует отчёт> 💡Хочешь планирование черезwrite_todos?

Опционально подключиTodoListMiddleware:>pythonКопировать>from langchain.agents.middleware import TodoListMiddleware > agent =create_deep_agent(model=..., middleware=[TodoListMiddleware()])>

🌊 Streaming из коробки

pythonКопироватьfor chunk in agent.stream({"messages":[{"role":"user","content":"..."}]}):print(chunk)Видишь tool calls, tool results, ответы субагентов в реальном времени.---

🆚 Что под капотом: маппинг на LangGraph

┌─────────────────────┐
│ FilesystemMiddleware│ ← write_file, read_file, ls...
│ (offload контекста) │
└──────────┬──────────┘

[User Input] → [Agent Node] ───┼──→ [ToolNode: search, write_file, ...]
↑ │ │
│ ↓ │
│ [SubAgentMiddleware] ←─── если задача │
│ │ сложная, спавнит │
│ ↓ субагента │
└──── [Messages State] ←────────────────────────┘

Компонент Deep Agents | LangGraph-примитив ||----------------------|---------------------||create_deep_agent| СборкаStateGraphсMessagesState|| FilesystemMiddleware | Кастомные node + middleware, оборачивающие tool calls || SubAgentMiddleware |Command(goto=...)или invoke sub-graph ||agent.invoke|graph.invokeс checkpointer'ом под капотом ||interrupt_on|interruptиз LangGraph || Streaming |graph.streamс типизированными events |То естьDeep Agents — это сахар над LangGraph, который уже решил за тебя типовые проблемы: где хранить контекст, как делегировать, как не упасть от токенов.

🚦 Следующие шаги

Quickstart предлагает 4 направления:

1.🎨 Customize— кастомные system prompts, tools,subagents

2.🧠 Memory— долговременная память черезAGENTS.md

3.☁ Deploy to production—Managed Deep Agentsв LangSmith4.🧪 Test & evaluate— автоматические тесты в LangSmith Evaluation---

🛠 Что делать прямо сейчас

Если хочешьсобрать и запуститьпервого агента — у тебя всё есть выше:

1. Выбери провайдера (рекомендуюAnthropic— там автоматический prompt caching экономит деньги)

2.pip install deepagents

3. Скопируй код шагов 3–64.

Экспериментируй с system_prompt — это самый мощный рычаг