CrawlForge
Laman UtamaPlaygroundKes PenggunaanIntegrasiHargaDokumentasiBlog
Cara Menggunakan CrawlForge dengan Anthropic Claude API
Tutorials
Kembali ke Blog
Tutorial

Cara Menggunakan CrawlForge dengan Anthropic Claude API

C
CrawlForge Team
Pasukan Kejuruteraan
15 April 2026
9 min bacaan

Pada halaman ini

Claude API daripada Anthropic menyokong penggunaan alat asli -- anda mentakrifkan alat dengan skema JSON, dan Claude memutuskan bila untuk memanggilnya semasa perbualan. 26 alat web scraping CrawlForge adalah padanan semula jadi: ia memberi Claude keupayaan untuk mencari web, mengekstrak kandungan, scrape data berstruktur, dan menjalankan penyelidikan mendalam, semuanya melalui API tool_use standard.

Panduan ini membimbing anda melalui pentakrifan alat CrawlForge untuk Claude API, mengendalikan respons penggunaan alat, dan membina pembantu penyelidikan gred pengeluaran.

Jadual Kandungan

  • Prasyarat
  • Cara Penggunaan Alat Claude Berfungsi dengan CrawlForge
  • Langkah 1: Takrifkan Skema Alat CrawlForge
  • Langkah 2: Kendalikan Gelung Penggunaan Alat
  • Langkah 3: Bina Pembantu Penyelidikan
  • Lanjutan: Penstriman dengan Penggunaan Alat
  • Pecahan Kos Credit
  • Amalan Terbaik
  • Soalan Lazim
  • Langkah Seterusnya

Prasyarat

Bash
npm install @anthropic-ai/sdk dotenv
Bash
# .env
ANTHROPIC_API_KEY=sk-ant-xxxxx
CRAWLFORGE_API_KEY=cf_live_xxxxx

Dapatkan API key CrawlForge anda di crawlforge.dev/signup -- 1,000 credits percuma disertakan. Untuk akses Claude API, lawati console.anthropic.com dan ikuti panduan permulaan API.

Cara Penggunaan Alat Claude Berfungsi dengan CrawlForge

Penggunaan alat Claude mengikuti gelung permintaan-respons:

  1. Anda menghantar mesej dengan takrifan alat dan gesaan pengguna
  2. Claude membalas dengan teks atau blok kandungan tool_use
  3. Anda melaksanakan alat (memanggil CrawlForge API) dan mengembalikan hasilnya
  4. Claude menggabungkan hasil dan meneruskan responsnya
You -> Claude: "What's on the Hacker News front page?" Claude -> You: tool_use { name: "extract_content", input: { url: "https://news.ycombinator.com" } } You -> CrawlForge: POST /api/v1/tools/extract_content { url: "..." } CrawlForge -> You: { content: "..." } You -> Claude: tool_result { content: "..." } Claude -> You: "Here are the top stories on Hacker News right now: ..."

Langkah 1: Takrifkan Skema Alat CrawlForge

Takrifkan alat yang boleh digunakan oleh Claude. Setiap alat memerlukan nama, perihalan, dan input_schema (format JSON Schema):

Typescript
// lib/tool-definitions.ts
import Anthropic from '@anthropic-ai/sdk';

export const crawlforgeTools: Anthropic.Tool[] = [
  {
    name: 'search_web',
    description: 'Search Google and return top results. Use when you need to find web pages about a topic. Returns titles, URLs, and snippets. Costs 5 credits.',
    input_schema: {
      type: 'object' as const,
      properties: {
        query: {
          type: 'string',
          description: 'The search query',
        },
        limit: {
          type: 'number',
          description: 'Maximum number of results (default: 5)',
        },
      },
      required: ['query'],
    },
  },
  {
    name: 'extract_content',
    description: 'Extract the main readable content from a web page. Returns clean text without navigation, ads, or boilerplate. Use when you need to read a specific URL. Costs 2 credits.',
    input_schema: {
      type: 'object' as const,
      properties: {
        url: {
          type: 'string',
          description: 'The full URL to extract content from',
        },
      },
      required: ['url'],
    },
  },
  {
    name: 'scrape_structured',
    description: 'Extract specific data from a page using CSS selectors. Use when you need structured data like prices, names, or lists. Costs 2 credits.',
    input_schema: {
      type: 'object' as const,
      properties: {
        url: {
          type: 'string',
          description: 'The URL to scrape',
        },
        selectors: {
          type: 'object',
          description: 'Map of field names to CSS selectors',
          additionalProperties: { type: 'string' },
        },
      },
      required: ['url', 'selectors'],
    },
  },
  {
    name: 'fetch_url',
    description: 'Fetch raw HTML from a URL. Cheapest option at 1 credit. Use for APIs or when you need the raw HTML.',
    input_schema: {
      type: 'object' as const,
      properties: {
        url: {
          type: 'string',
          description: 'The URL to fetch',
        },
      },
      required: ['url'],
    },
  },
  {
    name: 'extract_metadata',
    description: 'Get page metadata including title, description, Open Graph tags, and other meta information. Costs 1 credit.',
    input_schema: {
      type: 'object' as const,
      properties: {
        url: {
          type: 'string',
          description: 'The URL to extract metadata from',
        },
      },
      required: ['url'],
    },
  },
];

Langkah 2: Kendalikan Gelung Penggunaan Alat

Corak teras: hantar mesej kepada Claude, semak sama ada ia mahu menggunakan alat, laksanakan alat melalui CrawlForge, dan kembalikan hasilnya.

Typescript
// lib/agent.ts
import Anthropic from '@anthropic-ai/sdk';
import { crawlforgeTools } from './tool-definitions';

const client = new Anthropic();
const CRAWLFORGE_BASE = 'https://crawlforge.dev/api/v1/tools';

// Execute a CrawlForge tool
async function executeTool(
  name: string,
  input: Record<string, unknown>
): Promise<string> {
  const response = await fetch(`${CRAWLFORGE_BASE}/${name}`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.CRAWLFORGE_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(input),
  });

  if (!response.ok) {
    return JSON.stringify({ error: `HTTP ${response.status}: ${response.statusText}` });
  }

  const data = await response.json();
  return JSON.stringify(data);
}

// Run Claude with CrawlForge tools
export async function askClaude(prompt: string): Promise<string> {
  const messages: Anthropic.MessageParam[] = [
    { role: 'user', content: prompt },
  ];

  // Tool use loop: keep going until Claude gives a final text response
  while (true) {
    const response = await client.messages.create({
      model: 'claude-sonnet-4-20250514',
      max_tokens: 4096,
      tools: crawlforgeTools,
      messages,
    });

    // Check if Claude wants to use a tool
    if (response.stop_reason === 'tool_use') {
      // Add Claude's response to message history
      messages.push({ role: 'assistant', content: response.content });

      // Execute each tool call and collect results
      const toolResults: Anthropic.ToolResultBlockParam[] = [];

      for (const block of response.content) {
        if (block.type === 'tool_use') {
          const result = await executeTool(
            block.name,
            block.input as Record<string, unknown>
          );
          toolResults.push({
            type: 'tool_result',
            tool_use_id: block.id,
            content: result,
          });
        }
      }

      // Return tool results to Claude
      messages.push({ role: 'user', content: toolResults });
    } else {
      // Claude gave a final text response
      const textBlock = response.content.find(b => b.type === 'text');
      return textBlock ? textBlock.text : '';
    }
  }
}

// Usage
const answer = await askClaude(
  'What are the top 3 trending repositories on GitHub right now?'
);
console.log(answer);

Gelung ini mengendalikan penggunaan alat berbilang langkah secara automatik. Claude mungkin mencari, kemudian mengekstrak kandungan daripada satu hasil, kemudian mencari lagi -- gelung berterusan sehingga ia menghasilkan respons teks akhir.

Langkah 3: Bina Pembantu Penyelidikan

Bungkus ejen dalam aplikasi yang lebih berstruktur:

Typescript
// research-assistant.ts
import { askClaude } from './lib/agent';

async function researchTopic(topic: string, depth: 'quick' | 'thorough' = 'quick') {
  const systemPrompt = depth === 'thorough'
    ? `Research this topic thoroughly. Search for at least 3 different sources,
       read each one, and provide a comprehensive summary with citations.
       Topic: ${topic}`
    : `Quickly answer this question using web search if needed.
       Be concise and cite your source. Topic: ${topic}`;

  console.log(`Researching: ${topic} (mode: ${depth})`);
  const result = await askClaude(systemPrompt);
  console.log(result);
  return result;
}

// Quick research: ~7 credits (search + 1 extract)
await researchTopic('What is the current version of Next.js?', 'quick');

// Thorough research: ~11-15 credits (search + 3 extracts)
await researchTopic(
  'Compare the performance of Bun vs Node.js for HTTP servers in 2026',
  'thorough'
);

Lanjutan: Penstriman dengan Penggunaan Alat

Untuk pengalaman pengguna yang lebih baik, gunakan penstriman untuk menunjukkan pemikiran Claude dalam masa nyata:

Typescript
// lib/streaming-agent.ts
import Anthropic from '@anthropic-ai/sdk';
import { crawlforgeTools } from './tool-definitions';

const client = new Anthropic();
const CRAWLFORGE_BASE = 'https://crawlforge.dev/api/v1/tools';

async function executeTool(
  name: string,
  input: Record<string, unknown>
): Promise<string> {
  const response = await fetch(`${CRAWLFORGE_BASE}/${name}`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.CRAWLFORGE_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(input),
  });
  return JSON.stringify(await response.json());
}

export async function streamWithTools(prompt: string) {
  const messages: Anthropic.MessageParam[] = [
    { role: 'user', content: prompt },
  ];

  while (true) {
    const stream = client.messages.stream({
      model: 'claude-sonnet-4-20250514',
      max_tokens: 4096,
      tools: crawlforgeTools,
      messages,
    });

    // Collect streamed text
    let hasToolUse = false;

    stream.on('text', (text) => {
      process.stdout.write(text); // Stream to terminal in real time
    });

    const response = await stream.finalMessage();

    if (response.stop_reason === 'tool_use') {
      hasToolUse = true;
      messages.push({ role: 'assistant', content: response.content });

      const toolResults: Anthropic.ToolResultBlockParam[] = [];
      for (const block of response.content) {
        if (block.type === 'tool_use') {
          console.log(`\n[Calling ${block.name}...]\n`);
          const result = await executeTool(
            block.name,
            block.input as Record<string, unknown>
          );
          toolResults.push({
            type: 'tool_result',
            tool_use_id: block.id,
            content: result,
          });
        }
      }

      messages.push({ role: 'user', content: toolResults });
    }

    if (!hasToolUse) break;
  }
}

// Usage: streams text to stdout as Claude generates it
await streamWithTools('What is CrawlForge MCP and how does it compare to Firecrawl?');

Pecahan Kos Credit

Aliran KerjaAlat DigunakanCredits
Jawapan pantas (1 halaman)extract_content2
Cari + baca hasil teratassearch_web + extract_content7
Penyelidikan teliti (3 sumber)search_web + 3x extract_content11
Pengekstrakan data berstrukturscrape_structured2
Pemeriksaan metadata halamanextract_metadata1
Fetch HTML mentahfetch_url1
Laporan mendalam berbilang sumberdeep_research10

Peringkat Free (1,000 credits sekali sahaja) menyokong lebih kurang 140 pengekstrakan halaman tunggal atau 90 aliran kerja cari-dan-baca untuk bermula. Pelan Hobby ($19/bulan, 5,000 credits) adalah ideal untuk pembangunan dan kegunaan pengeluaran ringan.

Amalan Terbaik

Tulis perihalan alat yang deskriptif. Claude menggunakan medan description untuk memutuskan alat mana untuk dipanggil. Sertakan apa yang dilakukan oleh alat, bila untuk menggunakannya, dan kos creditnya. "Extract the main readable content from a web page" adalah lebih baik daripada "Get content".

Sertakan kos credit dalam perihalan. Apabila Claude tahu bahawa fetch_url berharga 1 credit dan deep_research berharga 10, ia secara semula jadi memilih pilihan yang lebih murah untuk tugas mudah.

Kendalikan ralat dengan anggun. Kembalikan mesej ralat sebagai hasil alat dan bukannya melontar pengecualian. Claude boleh menyesuaikan strateginya apabila satu alat gagal -- contohnya, mencuba URL yang berbeza atau menyusun semula carian.

Tetapkan max_tokens dengan sewajarnya. Kandungan web boleh panjang. Tetapkan max_tokens kepada sekurang-kurangnya 4096 untuk memberi Claude ruang menggabungkan hasil alat ke dalam respons yang menyeluruh.

Gunakan gesaan sistem untuk membimbing penggunaan alat. Beritahu Claude bila untuk mencari berbanding bila untuk mengakses URL yang diketahui secara terus. Ini menghalang panggilan search_web yang tidak perlu (5 credits) apabila extract_content terus (2 credits) sudah memadai.

Soalan Lazim

Bolehkah saya menggunakan CrawlForge dengan Claude 3.5 Haiku untuk kos yang lebih rendah?

Ya. Semua model Claude yang menyokong penggunaan alat berfungsi dengan alat CrawlForge. Haiku lebih murah setiap token tetapi mungkin memerlukan arahan yang lebih jelas untuk memilih alat yang betul. Claude Sonnet menyediakan keseimbangan terbaik antara kos dan ketepatan penggunaan alat.

Bagaimanakah saya mengendalikan had kadar?

API CrawlForge termasuk pengepala had kadar (X-RateLimit-Remaining). Jika anda mencapai respons 429, tambah percubaan semula dengan undur eksponen. Untuk penggunaan jumlah tinggi, pelan Professional termasuk had kadar yang lebih tinggi.

Bolehkah Claude memanggil berbilang alat CrawlForge dalam satu giliran?

Ya. Claude boleh meminta berbilang penggunaan alat dalam satu respons. Gelung penggunaan alat dalam Langkah 2 mengendalikan ini -- ia mengulang semua blok tool_use dan mengembalikan semua hasil sekali gus.

Apakah yang berlaku apabila credits CrawlForge habis?

API mengembalikan ralat 402 Payment Required. Kembalikan ini sebagai hasil alat supaya Claude boleh memaklumkan pengguna. Anda boleh menyemak baki credits melalui papan pemuka atau titik akhir API credits.

Langkah Seterusnya

Anda kini mempunyai aplikasi berkuasa Claude dengan akses web langsung. Terokai lebih lanjut:

  • Permulaan Pantas CrawlForge untuk integrasi MCP asli dengan Claude Code
  • Kesemua 26 alat dijelaskan dengan kos credit dan contoh penggunaan
  • Membina Pembantu Penyelidikan AI dengan Claude dan CrawlForge
  • Perbandingan CrawlForge vs Firecrawl untuk memilih alat yang betul

Beri Claude akses ke web langsung. Mulakan secara percuma dengan 1,000 credits -- tiada kad kredit diperlukan.

Cuba sendiri — tiada pendaftaran diperlukan

Jalankan mana-mana daripada 27 alat scraping dan pengekstrakan CrawlForge dalam playground, kemudian mula secara percuma dengan 1,000 credits.

1,000 credits percuma • Isi semula setiap bulan • Tiada kad kredit diperlukan

Tag

anthropicclaude-apitool-useintegrationweb-scrapingtutorialtypescript

Tentang Penulis

C

CrawlForge Team

Pasukan Kejuruteraan

Membina MCP server web scraping yang paling menyeluruh. Kami mencipta alatan yang membantu pembangun mengekstrak, menganalisis dan mengubah data web untuk aplikasi AI.

Kekal dikemas kini dengan pandangan terkini

Dapatkan tutorial, kemas kini produk dan petua web scraping terus ke peti masuk anda.

Tiada spam. Berhenti melanggan bila-bila masa.

Praktikkan ini

Uji alat CrawlForge pada mana-mana URL — percuma, tanpa pendaftaran.

Pada halaman ini

Artikel Berkaitan

Cara Menggunakan CrawlForge dengan Agen LangGraph
Tutorials

Cara Menggunakan CrawlForge dengan Agen LangGraph

Bina agen web scraping berkeadaan dengan LangGraph dan CrawlForge. Panduan TypeScript yang merangkumi nod graf, pengurusan keadaan, dan aliran scraping bersyarat.

C
CrawlForge Team
|
24 Apr
|
8m
Cara Menggunakan CrawlForge dengan Ejen AI Mastra
Tutorials

Cara Menggunakan CrawlForge dengan Ejen AI Mastra

Bina ejen AI dengan keupayaan web scraping menggunakan Mastra dan CrawlForge. Panduan persediaan TypeScript dengan integrasi tool, aliran kerja, dan contoh ejen.

C
CrawlForge Team
|
21 Apr
|
7m
Cara Menggunakan CrawlForge dengan Vercel AI SDK
Tutorials

Cara Menggunakan CrawlForge dengan Vercel AI SDK

Bina aplikasi AI dengan data web langsung menggunakan CrawlForge dan Vercel AI SDK. Tambah alat web scraping pada chatbot atau ejen LLM anda dalam masa kurang daripada 10 minit.

C
CrawlForge Team
|
7 Apr
|
8m

Footer

CrawlForge

Web scraping gred perusahaan untuk Ejen AI. 27 alat MCP khusus yang direka untuk pembangun moden yang membina sistem pintar.

Produk

  • Ciri
  • Playground
  • Harga
  • Kes Penggunaan
  • Integrasi
  • Alternatif
  • Changelog

Sumber

  • Mula Bekerja
  • Rujukan API
  • Templat
  • Panduan
  • Blog
  • Glosari
  • Soalan Lazim
  • Peta Laman

Pembangun

  • Protokol MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Syarikat

  • Tentang
  • Hubungi
  • Privasi
  • Terma
  • Penggunaan Boleh Diterima
  • Cookies

Kekal dikemas kini

Dapatkan kemas kini terkini tentang alat dan ciri baharu.

Dibina dengan Next.js dan protokol MCP

© 2025-2026 CrawlForge. Hak cipta terpelihara.