Как создать своего первого ИИ-агента за 15 минут
Вам не нужны ни фреймворк, ни курс, ни докторская степень. Вам нужны Node.js, SDK от Anthropic и 25 строк TypeScript. В этом руководстве создаётся настоящий рабочий агент — структурированный суммаризатор контента, которого вы можете развернуть на Cloudflare в той же сессии. Единственное предварительное требование — бесплатный API-ключ.
Каждую среду. 28 400+ читателей. Никакой воды.
✓ Проверьте почту — нажмите ссылку подтверждения, чтобы завершить подписку.
✓ Вы подписаны!
✓ Вы уже в списке.
Содержание
Обновлено в июне 2026 года.
Кратко: Вам не нужны ни фреймворк, ни курс, ни докторская степень. Вам нужны Node.js, SDK от Anthropic и 25 строк TypeScript. В этом руководстве создаётся настоящий рабочий агент — структурированный суммаризатор контента, которого вы можете развернуть на Cloudflare в той же сессии. Единственное предварительное требование — бесплатный API-ключ.
[Взгляд оператора] Чаще всего от основателей, которые хотят автоматизировать работу с помощью ИИ, я слышу: «Мне сначала нужно больше изучить». Это не так. Паттерн агента прост, и самый быстрый способ понять его — построить одного. Вот точный путь, который я бы выбрал, если бы начинал с нуля сегодня.
Почему большинство руководств «создайте ИИ-агента» вас подводят
Они либо используют Python (нормально для ML-инженеров, но создаёт трение для всех остальных), либо прячут настоящий код за фреймворком вроде LangChain, либо строят нечто слишком абстрактное, чтобы связать это с вашей реальной работой.
Это руководство делает три вещи иначе:
- Только TypeScript — если вы когда-либо писали на JavaScript, вы сможете следовать этому
- Без фреймворка — вы увидите каждую строку кода, которая касается модели
- Полезный результат — вы создадите структурированный суммаризатор, который действительно сможете применять к письмам клиентов, отзывам или заметкам со встреч
Что вы создаёте
Агент-суммаризатор контента: вставьте любой блок текста и получите обратно структурированное резюме в едином формате. Один HTTP-запрос на входе, одно чистое резюме на выходе.
Почему именно это в качестве первого проекта: паттерн — системный промпт + пользовательский ввод → структурированный вывод — это основа каждого агента, которого я запускаю. Замените системный промпт, и вы получите ответчик на вопросы, переписчик тона, классификатор или генератор черновиков. Освойте это один раз — и вы освоите 80% того, что на самом деле делают агенты в продакшене.
Предварительные требования (2 минуты)
- Node.js 18+ — проверьте командой
node --version. При необходимости установите с nodejs.org. - API-ключ Anthropic — зарегистрируйтесь в Claude, получите ключ в консоли. Бесплатного тарифа достаточно.
- Терминал и текстовый редактор.
Никакого Docker. Никакого виртуального окружения. Никаких pip install чего-либо.
Шаг 1: Создание проекта (2 минуты)
mkdir my-first-agent && cd my-first-agent
npm init -y
npm install @anthropic-ai/sdk
npm install -D tsx typescriptДобавьте скрипт в package.json, чтобы легко запускать агента:
{
"scripts": {
"agent": "tsx agent.ts"
}
}Шаг 2: Написание агента (5 минут)
Создайте agent.ts и вставьте это:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
const SYSTEM_PROMPT = `You are a precise content summarizer. When given any block of text, return a structured summary in this exact format:
**One-line summary:** <the core point in one sentence>
**Key points:**
- <point 1>
- <point 2>
- <point 3 if applicable>
**Action item (if any):** <one concrete next step, or "None">
Be specific. No filler. Under 150 words total.`;
async function summarize(text: string): Promise<string> {
const message = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 512,
system: SYSTEM_PROMPT,
messages: [{ role: "user", content: text }],
});
const block = message.content[0];
if (block.type !== "text") throw new Error("Unexpected response type");
return block.text;
}
const sample = `
Hey team — following up on the Q2 review meeting.
We agreed to push the launch to July 15th instead of June 30th
due to the payment integration delay. Marketing needs the new
landing page copy by June 20th or we can't start the email campaign.
Budget for the launch campaign is confirmed at $8,000.
Please confirm receipt.
`;
const result = await summarize(sample);
console.log(result);Шаг 3: Запуск (1 минута)
ANTHROPIC_API_KEY=sk-ant-... npm run agentОжидаемый вывод:
**One-line summary:** Launch pushed to July 15th due to payment delay; landing page copy needed by June 20th to unblock email campaign.
**Key points:**
- Launch date moved from June 30th to July 15th
- Landing page copy deadline: June 20th (blocks email campaign)
- Campaign budget confirmed at $8,000
**Action item (if any):** Confirm receipt and deliver landing page copy by June 20th.Это и есть рабочий ИИ-агент. Реальный ввод, кастомный системный промпт, структурированный вывод. Всё это — 30 строк кода.
Шаг 4: Настройте его под свой сценарий использования
Системный промпт — единственное, что делает этого агента вашим. Вот три готовых к подстановке альтернативы:
Классификатор отзывов клиентов:
Classify this customer review as POSITIVE, NEGATIVE, or MIXED.
Then extract the main complaint or praise in one sentence.
Format: SENTIMENT: <label>
RESUME: <one sentence>Транскрипт встречи → список задач:
Extract all action items from this meeting transcript.
Format each as: [OWNER if mentioned] [ACTION] by [DEADLINE if mentioned]
If owner or deadline is not stated, leave those fields blank.
Return a numbered list. No preamble.Переписчик тона для соцсетей:
Rewrite this text in a direct, confident, first-person tone for LinkedIn.
Remove hedging language ("I think", "maybe", "sort of").
Keep it under 200 words. Return only the rewritten text, no commentary.Каждый из них — это тот же агент на 30 строк с другим системным промптом. Вам не нужен новый проект для каждого — просто обновите SYSTEM_PROMPT и запустите снова.
Шаг 5: Разверните в продакшене
Локальный скрипт — это прототип. Агент в продакшене работает по расписанию или в ответ на события. Путь, который использую я: Cloudflare Workers.
Workers бесплатны до 100 тыс. запросов в день, разворачиваются за секунды и дают вам cron-триггеры, KV-хранилище и очереди без необходимости управлять какой-либо инфраструктурой.
Установите Wrangler и создайте заготовку Worker:
npm install -g wrangler
wrangler init my-agent-worker --template worker-typescript
cd my-agent-worker
npm install @anthropic-ai/sdkСохраните ваш API-ключ как секрет (никогда не в коде):
wrangler secret put ANTHROPIC_API_KEYЗамените src/index.ts на:
import Anthropic from "@anthropic-ai/sdk";
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const { text } = await request.json<{ text: string }>();
const client = new Anthropic({ apiKey: env.ANTHROPIC_API_KEY });
const message = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 512,
system: YOUR_SYSTEM_PROMPT,
messages: [{ role: "user", content: text }],
});
const block = message.content[0];
if (block.type !== "text") return Response.json({ error: "Bad response" }, { status: 500 });
return Response.json({ summary: block.text });
},
};Разверните:
wrangler deployТеперь у вас есть рабочая конечная точка API по адресу https://my-agent-worker.<your-subdomain>.workers.dev. Вызывайте её из Zapier, скрипта Google Sheets, мобильного приложения — откуда угодно, что может выполнить HTTP-запрос.
Что строить дальше
Как только базовый паттерн заработает, сложность приходит в трёх видах:
Использование инструментов (tool use) — позвольте модели решать, когда вызывать внешние API. Вместо того чтобы всегда выполнять одну и ту же логику, модель выбирает, какой инструмент вызвать, на основе ввода. Именно так вы создаёте агентов, которые ищут, пишут в базы данных или отправляют уведомления.
Цепочки (chaining) — передавайте вывод одного агента как ввод другого. Классификатор направляет запрос к ответчику; суммаризатор питает переводчик. Большинство агентов, которых я запускаю в продакшене, — это цепочки из двух или трёх шагов, а не одиночные вызовы.
Cron-триггеры — добавьте [triggers] crons = ["0 8 * * *"] в wrangler.toml, и ваш агент будет работать по расписанию. Никакого опроса, никакого постоянно работающего сервера. Именно так работает контент-конвейер, который я использую для управления этим сайтом.
Я разобрал все три паттерна с полным кодом на TypeScript в статье Стек агентов, который я использую для запуска 30+ агентов в продакшене — та статья продолжает с того места, где заканчивается эта.
Итог оператора
Разрыв между «думать о создании агента» и «иметь развёрнутого агента» — это примерно 15 минут и 30 строк кода. Системный промпт — это и есть продукт; вкладывайте энергию именно в него, а не в выбор фреймворка. Если агент экономит вам один час в неделю, это 50 часов в год. Сначала постройте простую версию, посмотрите, оправдывает ли она себя, и только потом добавляйте сложность, когда этого требует сценарий использования.
Каждую среду. 28 400+ читателей. Никакой воды.
✓ Проверьте почту — нажмите ссылку подтверждения, чтобы завершить подписку.
✓ Вы подписаны!
✓ Вы уже в списке.
Получайте ИИ-руководство на почту
Каждую среду. 28 400+ читателей. Никакой воды.
Проверьте почту.
Мы отправили письмо для подтверждения — нажмите на ссылку, чтобы завершить подписку. Проверьте папку «Спам», если не видите его в течение минуты.
Вы подписаны.
Добро пожаловать — следующий выпуск скоро придёт на вашу почту.
Вы уже в списке — ждите выпуск каждую среду.