Назад к вопросам
СБЕР
Senior
12
В чём разница между Chains и Agents в LangChain? Когда что использовать?
Компании, где спрашивали
Ответ от нейросети
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)