Практические заметки: Глубокие агенты: Раскрыла ли LangChain исходный код Claude Code
Пошаговое руководство по практическим заметкам: глубокие агенты. LangChain открыл исходный код Claude Code: контракты, проверки и готовые блоки кода для команд, использующих эту модель.
В следующих заметках описывается практический подход к изучению темы «Глубокие агенты: открытый исходный код Claude Code — это архитектура LangChain?». Основное внимание уделяется контрактам, проверкам и местам для вставки кода, а не мотивирующим аспектам. На этапе обзора сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список поможет сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.
Архитектура Claude Code с открытым исходным кодом?
Среда Open-Source Claude Code работает наилучшим образом, когда её рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Документируйте одновременно успешный и восстановительный пути выполнения. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не этапом последующей доработки. Сохраняйте структуру графа простой и типизированной. Вложенные структуры данных скрывают информацию о том, какой узел заполнил тот или иной поле, и мешают возобновлению работы после прерываний.
Что это на самом деле
Этап «Что это на самом деле» работает лучше всего, когда его рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг сбивается, причина сбоя должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Сохраняйте структуру графа простой и типизированной. Вложенные структуры данных скрывают информацию о том, какой узел заполнил тот или иной поле, и мешают возобновлению работы после прерываний.
pip install deepagents
from deepagents import create_deep_agent
agent = create_deep_agent(
model="openai:gpt-5.5", # or anthropic:..., google_genai:..., a local one
tools=[my_tool],
system_prompt="You are a research assistant.",
)That’s real. It works. You get planning, a virtual file system, subagent delegation, human-in-the-loop, and shell access — plus everything LangGraph already gave you (streaming, checkpointing, Studio).
Малоизвестный факт №1: этот этап работает наилучшим образом, когда его рассматривают как измеримую поверхность. Сохраните один идеальный пример выполнения, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия всем элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Используйте инструменты с узкими схемами и чёткими метками о побочных эффектах. У операторов должна быть возможность узнать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят их. Малоизвестный факт №1: этот этап работает наилучшим образом, когда его рассматривают как измеримую поверхность. Сохраните один идеальный пример выполнения, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.
Малоизвестный факт №2: «доступ к файловой системе» — это не ваша файловая система
Малоизвестный факт №2: на этапе файловой системы необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние системы. Необходимо документировать как успешный, так и восстановительный сценарии работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами, добавляемыми позже. Человеческое утверждение обязательно требуется для операций, связанных с тратой денег или изменением производственных данных. Настройка на этапе компиляции не гарантирует полноты функционала продукта.
Малоизвестный факт №3: «долгосрочная память» — это настройка, а не функция
Малоизвестный факт №3: на долгосрочной стадии необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние системы. Лучше использовать небольшие, тестируемые модули вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину, а не на сложную взаимосвязь всех элементов процесса. В тех случаях, когда происходит расход средств или изменение данных в продакшене, необходимо включить человеческое утверждение. Простая настройка во время компиляции не гарантирует полноты реализации бизнес-логики.
Малоизвестный факт №4: для процессов с участием человека необходима точка контроля
Что касается малоизвестного аспекта 4 этапа с участием человека, необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успеха и не допускайте молчаливого частичного выполнения задачи. Обеспечьте утверждение человеком тех операций, которые влекут за собой расходы или изменение производственных данных. Компиляционная настройка не заменяет полноты обработки бизнес-задач. Что касается малоизвестного аспекта 4 этапа с участием человека, необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, доступном для аудита операторами.
Не нужно читать весь граф.
Малоизвестный факт №5: ваши подагенты раньше поглощались, и именно зафиксированная версия важна для вас
При работе над пунктом «Малоизвестный факт 5» сначала запишите контракт: необходимые входные данные, сигнал успеха и то, что происходит при частичной неудаче. Такой список поможет сохранять честность при последующих изменениях кода. Задокументируйте одновременно успешный сценарий и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не последующими улучшениями. Создавайте контрольные точки после дорогостоящих шагов. Система возобновления работы не должна снова взимать плату за один и тот же вызов LLM, когда оператор пытается выполнить последующий узел.
Что касается «$0»
При работе над этапом «О модели» сначала запишите условия контракта: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Лучше использовать небольшие, тестируемые модули вместо обширных скриптов. Если какой-то шаг не сработает, причина неудачи должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Вносите контрольные точки после дорогостоящих шагов. Механизм возобновления работы не должен повторно взимать плату за один и тот же вызов LLM при повторной попытке обработки последующего узла.
О «любой модели»
При работе над любым этапом модели сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными данными. Дайте названия результатам работы, определите критерии успеха и не допускайте молчаливого частичного завершения задачи. Храните в кэше стабильные инструкции системы и схемы инструментов. Пересылка одинаковых данных является распространенной причиной избыточных ресурсов. При работе над любым этапом модели сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.
Так стоит ли попробовать?
Поэтому работа над этапом наиболее эффективна, когда он рассматривается как измеримая поверхность. Зафиксируйте один успешный пример, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ. Документируйте одновременно путь успешной работы и путь восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не последующими доработками. Сохраняйте структуру графа простой и типизированной; вложенные структуры скрывают информацию о том, какой узел заполнил какое поле, и мешают возобновлению работы после прерываний.
Чек-лист операционной работы
На этапе составления чек-листа операционной работы определите входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам.
Необходимо получение одобрения человека для операций, связанных с тратой денег или изменением данных в производстве. Настройка на этапе компиляции не гарантирует полноты охвата бизнес-процессов.
Напишите краткий руководство: как обновлять ключи, как опустошать очередь, как откатывать последнюю загрузку данных.
Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.
Необходимо получение одобрения человека для операций, связанных с тратой денег или изменением данных в производстве. Настройка на этапе компиляции не гарантирует полноты охвата бизнес-процессов.
Перед переходом на новую версию стека заморозьте существующие версии, сохраните эталонный вариант данных для критических процессов и убедитесь в наличии шагов для отката. В совместных средах необходимы ограничения на скорость обработки, проверки принадлежности ресурсов и четко определенный ответственный за обновление секретов. Лучше выбирать надежность, чем красивые одноразовые демонстрации.
Примечание к пакету d959fbc77fd5: не включайте ключи поставщиков в репозиторий, установите лимит токенов на сессию и храните транскрипции рядом с фиксами для оценки, чтобы последующие замены моделей оставались сопоставимыми.