Sobes.tech
Back to questions
Senior
11

В чём разница между Chains и Agents в LangChain? Когда что использовать?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

В LangChain Chains — это последовательности шагов (компонентов), которые обрабатывают входные данные и возвращают результат. Chains обычно используются для построения предсказуемых, детерминированных рабочих процессов, где каждый шаг выполняется последовательно.

Agents — это более сложные структуры, которые могут принимать решения о том, какие действия выполнить, основываясь на промежуточных результатах и внешних данных. Агентов используют, когда требуется интерактивность, динамический выбор инструментов или выполнение нескольких цепочек в зависимости от контекста.

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

  • Chains подходят для простых и фиксированных сценариев, например, последовательная обработка текста, вызов нескольких моделей или функций.
  • Agents применяются, когда нужно, чтобы система сама выбирала, какие действия предпринимать, например, при интеграции с несколькими API, поиске информации или выполнении сложных логических задач.

Пример:

from langchain.chains import SimpleSequentialChain
from langchain.agents import initialize_agent, Tool

# Chain: последовательное выполнение двух функций
chain = SimpleSequentialChain(chains=[chain1, chain2])
result = chain.run(input_text)

# Agent: выбор инструментов на основе запроса
tools = [Tool(name="Search", func=search_func), Tool(name="Calculator", func=calc_func)]
agent = initialize_agent(tools, llm, agent_type="zero-shot-react-description")
response = agent.run(user_input)