Source: DeepAgents

← Rendered

markdown source:

---
description: Краткий обзор Deep Agents — harness для создания надежных агентных приложений на базе LangChain.
tags: llm
title: DeepAgents
---

DeepAgents — это "agent harness" от LangChain: высокоуровневый каркас для создания агентов, способных планировать, делегировать подзадачи, работать с файловой системой и сохранять долгосрочную память. DeepAgents упрощает построение сложных многошаговых приложений, предоставляя готовые компоненты для исполнения, управления контекстом, делегирования и управления вмешательством человека.

- **Назначение:** надёжное выполнение многозадачных, долгих и контекстно насыщенных задач с LLM.
- **Библиотека:** `deepagents` (пакет на PyPI), построена поверх [[notes/langchain]] и использует [[notes/langgraph]] для выполнения и наблюдаемости.

**Быстрый пример (Python):**

```python
from deepagents import create_deep_agent

def get_weather(city: str) -> str:
    return f"It's always sunny in {city}!"

agent = create_deep_agent(
    model="openai:gpt-5.5",
    tools=[get_weather],
    system_prompt="You are a helpful assistant",
)

agent.invoke({"messages": [{"role": "user", "content": "what is the weather in sf"}]})
```

## Ключевые возможности DeepAgents

- Взаимодействие с окружением: вызов `tools`, чтение/запись файлов, выполнение кода.
- Подключение к данным: `memory`, `skills`, и внешние источники через MCP (Model Context Protocol).
- Управление контекстом: суммаризация, оффлоадинг больших результатов и кэширование подсказок (`prompt caching`).
- Делегирование и параллелизм: создание подагентов (`subagents`) для изоляции и параллельной обработки задач.
- Human-in-the-loop: точечные прерывания и подтверждения перед опасными операциями.
- Улучшение со временем: обновляемая память и навыки на основе использования.

## Компоненты исполнения (Execution environment)

- `Tools` и MCP: любые функции, LangChain tools или MCP-серверы можно передать в `tools=` при создании агента.
- Виртуальная файловая система: pluggable backends (in-memory, disk, LangGraph store и т.д.) с инструментами `ls`, `read_file`, `write_file`, `edit_file`, `delete`, `glob`, `grep`, `execute` (для sandbox).
- Разрешения на файловую систему: декларативные правила (`permissions=`) с операциями `read`/`write`, путями (glob) и режимами `allow`/`deny`.
- Выполнение кода: sandbox backends дают `execute`, а интерпретаторы (например, QuickJS) дают `eval` для безопасных сценариев.
- Streaming: событийные потоки для трассировки сообщений, вызовов инструментов и подагентов.

## Управление контекстом (Context management)

- `Skills`: модульные, прогрессивно загружаемые знания и workflow-файлы со стандартом `SKILL.md` (агент читает frontmatter сначала, остальное при надобности).
- `Memory`: устойчивые файлы (`AGENTS.md`) загружаются при старте и сохраняются в backend; агент может обновлять память в ходе работы.
- Суммаризация и оффлоадинг: автоматические механизмы для сжатия истории и больших промежуточных результатов.
- `Prompt caching`: кэширование статических частей системных подсказок для поддерживаемых провайдеров (например, Anthropic, Bedrock).

## Делегирование (Delegation)

- `Task planning`: опциональный middleware (`TodoListMiddleware`) для ведения списка задач и состояния (`pending`, `in_progress`, `completed`).
- `Subagents`: встроенный инструмент `task` создаёт эпизодические подагенты с отдельным контекстом и автономным выполнением; возвращают один финальный отчёт.

## Параметры безопасности и контроль (Steering)

- Человеческое подтверждение: `interrupt_on` позволяет приостанавливать выполнение при указанных вызовах инструментов (например, `edit_file`) для одобрения.
- Права доступа: декларативные правила файловой системы для ограничения областей чтения/записи.

## Кастомизация и расширение

- Профили harness (`HarnessProfile`) позволяют скрывать определённые инструменты (например, файловые операции) от модели.
- Middleware: добавление `TodoListMiddleware`, `FilesystemMiddleware` и других для контроля поведения агента.
- Подключение внешних MCP-серверов для доступа к базам данных, API и хранилищам.

## Когда использовать DeepAgents

- Многошаговые рабочие процессы, требующие управления состоянием и длительной памяти.
- Задачи, где полезна делегирование подзадач и параллельная обработка.
- Сценарии, где нужно безопасно управлять файловой системой и иметь человека в петле подтверждения.

## Ссылки и ресурсы

- [Документация](https://docs.langchain.com/oss/python/deepagents/overview)
- [API reference](https://reference.langchain.com/python/deepagents/)
- [[lists/llm]]
- [[notes/langchain]]
- [[notes/langgraph]]

## AI-warning

✨ Данная статья сгенерирована с помощью ChatGPT 5.0 mini. Текст проверен человеком.

[notes/langchain]: langchain "notes/langchain"
[lists/llm]: ../lists/llm "LLM"
[notes/langgraph]: langgraph "langgraph"