Агент vs чат-бот — в чём разница
Ты пишешь Claude «найди мне последние новости про Anthropic и сделай саммари». Claude отвечает: «Я не могу искать в интернете, но если ты дашь мне текст…». Это чат-бот — он умеет рассуждать о тексте который ему показали, но сам ничего сделать не может. Теперь представь что на этот же запрос Claude САМ открыл бы Google, выбрал статьи, прочитал их и вернулся с готовым саммари. Вот это уже агент. Разница простая: чат-бот говорит, агент действует. Дальше разбираемся как именно эта разница устроена и когда какая нужна.
Чат-бот: одна реплика — один ответ
Чат-бот работает по принципу «вход → выход за один шаг». Ты отправляешь текст, модель его обрабатывает, возвращает текст. Всё. Если нужная информация не уместилась в твоё сообщение — бот её не получит. Если для ответа надо проверить базу данных — он не сможет. Он буквально замкнут в текстовой коробке твоего сообщения. Это нормально для задач типа «объясни мне этот код», «перепиши абзац» или «придумай идеи». Но как только задача требует сходить куда-то наружу — чат-бот пасует.
Агент: цикл «думай → действуй → смотри что получилось»
Агент — это та же модель Claude, но обёрнутая в цикл. Программа дает Claude список инструментов («можешь искать в гугле», «можешь читать файлы», «можешь писать в БД») и говорит: «вот задача, решай». Claude думает, выбирает инструмент, программа его вызывает, результат возвращается Claude — и так пока задача не решена. Этот цикл и есть «агентность». Агент может за один запрос пользователя сделать 10-20 шагов: проверить календарь, запросить погоду, написать email, отправить — без твоего участия на каждом шаге.
Когда нужен агент, а когда хватит чата
Агент нужен когда: (1) для ответа надо сходить в интернет, базу или внешний API; (2) задача состоит из нескольких шагов, и каждый зависит от результата предыдущего; (3) ты не знаешь заранее сколько шагов понадобится. Агент НЕ нужен когда: (1) у тебя уже есть весь контекст и ты просто хочешь его проанализировать; (2) задача одношаговая («перепиши этот код проще»); (3) тебе важна предсказуемость — у агентов всегда есть шанс свернуть не туда. Простое правило: если можешь ответить промптом — отвечай промптом. Агента включай только когда без действий не обойтись.
Почему это сложнее чем кажется
У агентов есть три проблемы которые не возникают у чат-ботов. Первая — стоимость: каждый шаг цикла это новый вызов модели, и сложная задача может стоить не $0.01, а $0.50. Вторая — время: 20 шагов по 3 секунды = минута ожидания вместо мгновенного ответа. Третья — непредсказуемость: модель может зациклиться, сделать лишнее, или решить что задача завершена когда на самом деле нет. Поэтому в продакшене у агентов всегда есть лимит шагов, лимит токенов, и часто «человек в петле» — для критичных действий вроде отправки денег требуется подтверждение.
// 1. ЧАТ-БОТ
const answer = await claude.chat({
messages: [{ role: 'user', content: 'Какая сейчас погода в Москве?' }]
});
// → "Я не могу проверить погоду в реальном времени"
// 2. АГЕНТ
const tools = [
{ name: 'get_weather', description: 'получить погоду по городу' },
];
let messages = [{ role: 'user', content: 'Какая сейчас погода в Москве?' }];
while (true) {
const response = await claude.chat({ messages, tools });
if (response.stop_reason === 'end_turn') {
// Claude закончил, у него есть финальный ответ
return response.content;
}
if (response.stop_reason === 'tool_use') {
// Claude хочет вызвать инструмент
const toolCall = response.content.find(c => c.type === 'tool_use');
const toolResult = await runTool(toolCall.name, toolCall.input);
messages.push({ role: 'assistant', content: response.content });
messages.push({ role: 'user', content: [{
type: 'tool_result',
tool_use_id: toolCall.id,
content: toolResult,
}]});
// Цикл продолжается с обновлённым контекстом
}
}
// → "В Москве сейчас -3°C, облачно"Псевдокод: чат-бот vs агент