API агента LangChain
create_agent() полные параметры
| Параметр | Type | Значение по умолчанию | Описание |
|---|---|---|---|
| model | str или BaseChatModel | None (обязательно) | Языковая модель |
| tools | Sequence или None | Отсутствует | Список инструментов. Поддерживает функции @tool, модели Pydantic, dict |
| system_prompt | str или SystemMessage или None | Отсутствует | Системный промпт |
| Промежуточное ПО | Sequence[AgentMiddleware] | () | Список middleware |
| response_format | ResponseFormat или type или dict или None | Отсутствует | Конфигурация структурированного вывода |
| state_schema | type[AgentState] или None | Отсутствует | Пользовательская структура состояния |
| context_schema | type или None | Отсутствует | Структура контекста выполнения |
| checkpointer | Checkpointer или None | Отсутствует | Сохранение диалога |
| store | BaseStore или None | Отсутствует | Межсессионное хранилище |
| interrupt_before | list[str] или None | Отсутствует | Пауза перед этими узлами |
| interrupt_after | list[str] или None | Отсутствует | Приостановка после этих узлов |
| debug | bool | False | Выводить ли подробные журналы |
| name | str или None | Отсутствует | Имя агента |
| cache | BaseCache или None | Отсутствует | Конфигурация кэша |
Методы CompiledStateGraph
| Метод | Описание |
|---|---|
| invoke(input, config=None) | Выполнить синхронно, вернуть конечное состояние |
| ainvoke(input, config=None) | Выполнить асинхронно, вернуть конечное состояние |
| stream(input, config=None, stream_mode="updates") | Синхронный потоковый запуск |
| astream(input, config=None, stream_mode="updates") | Асинхронный потоковый запуск |
| get_state(config) | Получить текущий снимок состояния |
| update_state(config, values) | Обновить состояние вручную |
Структура AgentState
| Поле | Type | Обязательно? | Описание |
|---|---|---|---|
| messages | list[AnyMessage] | Да | История сообщений (редьюсер add_messages) |
| jump_to | "tools" или "model" или "end" или None | нет | Переход потока (эфемерный) |
| structured_response | Any | нет | Результат структурированного вывода (OmitFromInput) |
Типичные примеры использования
Пример
from langchain.agents import create_agent
# Базовое использование
agent = create_agent(model="deepseek:deepseek-v4-flash", tools=[tool1, tool2])
result = agent.invoke({"messages": [HumanMessage(content="Hello")]})
# Полная конфигурация
agent = create_agent(
model="deepseek:deepseek-v4-flash",
tools=[tool1, tool2],
system_prompt="Вы — ассистент.",
middleware=[my_middleware],
response_format=MySchema,
checkpointer=checkpointer,
store=store,
name="my_agent",
)
# Потоковый запуск
for chunk in agent.stream(inputs, stream_mode="updates"):
print(chunk)
# Получение состояния
state = agent.get_state({"configurable": {"thread_id": "1"}})
# Базовое использование
agent = create_agent(model="deepseek:deepseek-v4-flash", tools=[tool1, tool2])
result = agent.invoke({"messages": [HumanMessage(content="Hello")]})
# Полная конфигурация
agent = create_agent(
model="deepseek:deepseek-v4-flash",
tools=[tool1, tool2],
system_prompt="Вы — ассистент.",
middleware=[my_middleware],
response_format=MySchema,
checkpointer=checkpointer,
store=store,
name="my_agent",
)
# Потоковый запуск
for chunk in agent.stream(inputs, stream_mode="updates"):
print(chunk)
# Получение состояния
state = agent.get_state({"configurable": {"thread_id": "1"}})