Все скиллы
01Скилл
Реализация
адапт. из anthropics/claude-cookbooks
Tool use starterAI с доступом к твоим функциям
Скелет Claude API с function calling. AI вызывает твои функции (БД, внешние API, отправка email) и отвечает на основе результатов.
01aКогда брать
Когда нужен AI который может **действовать**, а не только говорить. Например: AI-ассистент который сам ищет в БД, отправляет письма, бронирует слоты. Это шаг к настоящим агентам.
02Куда положить
<project>/lib/ai-tools.tsСоздай эту папку и файл (если их нет), вставь содержимое ниже. Затем в Claude Code: /exit и запусти claude заново — команда появится.
03Содержимое
Скопируй всё что внутри блока и вставь в файл по пути выше.
ai-tools.ts
1import Anthropic from "@anthropic-ai/sdk";2 3const claude = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });4 5// ─── 1. Описание доступных tools ───6const TOOLS = [7 {8 name: "search_orders",9 description: "Поиск заказов клиента по email или ID заказа",10 input_schema: {11 type: "object",12 properties: {13 email: { type: "string", description: "Email клиента" },14 orderId: { type: "string", description: "ID заказа" },15 },16 },17 },18 {19 name: "send_email",20 description: "Отправка email пользователю",21 input_schema: {22 type: "object",23 properties: {24 to: { type: "string" },25 subject: { type: "string" },26 body: { type: "string" },27 },28 required: ["to", "subject", "body"],29 },30 },31];32 33// ─── 2. Реализация tools ───34const toolHandlers: Record<string, (input: any) => Promise<any>> = {35 async search_orders({ email, orderId }) {36 // твоя логика поиска в БД37 return { found: true, order: { id: "12345", status: "shipped" } };38 },39 async send_email({ to, subject, body }) {40 // твоя интеграция с Resend / SendGrid41 return { sent: true };42 },43};44 45// ─── 3. Главный цикл — agentic loop ───46export async function chatWithTools(userMessage: string) {47 const messages: any[] = [{ role: "user", content: userMessage }];48 49 // Многошаговый цикл — Claude может вызвать несколько tools подряд50 for (let i = 0; i < 10; i++) {51 const response = await claude.messages.create({52 model: "claude-sonnet-4-6",53 max_tokens: 1024,54 tools: TOOLS,55 messages,56 });57 58 // Если Claude хочет вызвать tool59 if (response.stop_reason === "tool_use") {60 const toolUseBlocks = response.content.filter((b: any) => b.type === "tool_use");61 62 const toolResults = await Promise.all(63 toolUseBlocks.map(async (tu: any) => {64 const handler = toolHandlers[tu.name];65 const result = await handler(tu.input);66 return {67 type: "tool_result",68 tool_use_id: tu.id,69 content: JSON.stringify(result),70 };71 })72 );73 74 messages.push({ role: "assistant", content: response.content });75 messages.push({ role: "user", content: toolResults });76 continue;77 }78 79 // Финальный ответ80 return response.content.find((b: any) => b.type === "text")?.text ?? "";81 }82 83 throw new Error("Too many tool calls — likely infinite loop");84}04Как использовать
Примеры команд
- 01
AI-секретарь который сам создаёт встречи в Google Calendar - 02
AI-поддержка которая ищет заказы в БД - 03
AI-агент который запрашивает погоду / курсы валют
05Связанные
Похожие скиллы
RAG starterAI знает твою базу знаний
Минимальный скелет RAG-приложения: pgvector, embeddings, поиск, ответ Claude. Стартовый шаблон для AI-помощника по любым документам.
Claude API starterМинимальный AI-чат на Claude API
Готовый Next.js API route + клиентский компонент чата со streaming. Берёшь, кидаешь в свой проект — у тебя AI-чат.