Pada halaman ini
Agents SDK OpenAI menyediakan rangka kerja sedia pengeluaran untuk membina agen AI autonomi dengan penggunaan alat, penyerahan, dan pagar pelindung. CrawlForge menambah kepingan yang hilang: akses web secara langsung. Dengan menyambungkan 26 alat scraping CrawlForge kepada agen OpenAI anda, anda membolehkan mereka search the web, mengekstrak data berstruktur, membaca dokumentasi, dan menjalankan penyelidikan berbilang sumber -- semuanya dalam rangka kerja orkestrasi Agents SDK.
Panduan ini menunjukkan kepada anda cara mentakrifkan alat CrawlForge sebagai fungsi agen OpenAI dan membina agen yang bertindak atas data web masa nyata.
Kandungan
- Prasyarat
- Seni Bina: CrawlForge + OpenAI Agents
- Langkah 1: Cipta Fungsi Alat CrawlForge
- Langkah 2: Bina Agen Penyelidikan Web
- Langkah 3: Tambah Pengekstrakan Data Berstruktur
- Lanjutan: Saluran Paip Web Berbilang Agen
- Pecahan Kos Credit
- Amalan Terbaik
- Langkah Seterusnya
Prasyarat
pip install openai-agents
# or for the TypeScript/Node.js SDK:
npm install @openai/agents-sdk dotenv# .env
OPENAI_API_KEY=sk-xxxxx
CRAWLFORGE_API_KEY=cf_live_xxxxxDapatkan API key CrawlForge anda di crawlforge.dev/signup -- 1,000 credits percuma disertakan.
Seni Bina: CrawlForge + OpenAI Agents
Agents SDK OpenAI menggunakan corak tool yang serupa dengan API function calling tetapi dengan orkestrasi yang lebih kaya. Anda mentakrifkan alat sebagai fungsi dengan parameter JSON Schema, dan agen memutuskan bila dan bagaimana untuk memanggilnya.
User Query -> OpenAI Agent -> Tool Selection -> CrawlForge API -> Results -> Agent Response
REST API CrawlForge di https://crawlforge.dev/api/v1/tools/ memetakan dengan kemas kepada format takrifan alat Agents SDK. Setiap alat menjadi fungsi yang boleh dipanggil oleh agen.
Langkah 1: Cipta Fungsi Alat CrawlForge
Pertama, cipta klien CrawlForge yang boleh digunakan semula dan takrifan alat:
// lib/crawlforge-tools.ts
import { tool } from '@openai/agents-sdk';
import { z } from 'zod';
const CRAWLFORGE_BASE = 'https://crawlforge.dev/api/v1/tools';
async function callCrawlForge(toolName: string, params: Record<string, unknown>) {
const response = await fetch(`${CRAWLFORGE_BASE}/${toolName}`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CRAWLFORGE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(params),
});
if (!response.ok) {
throw new Error(`CrawlForge error: ${response.status} ${response.statusText}`);
}
return response.json();
}
// Search the web (5 credits)
export const searchWebTool = tool({
name: 'search_web',
description: 'Search Google and return top results with titles, URLs, and snippets.',
parameters: z.object({
query: z.string().describe('Search query'),
limit: z.number().default(5).describe('Max results to return'),
}),
execute: async ({ query, limit }) => {
return callCrawlForge('search_web', { query, limit });
},
});
// Extract page content (2 credits)
export const extractContentTool = tool({
name: 'extract_content',
description: 'Extract the main readable content from a web page URL.',
parameters: z.object({
url: z.string().url().describe('Full URL to extract content from'),
}),
execute: async ({ url }) => {
return callCrawlForge('extract_content', { url });
},
});
// Structured scraping (2 credits)
export const scrapeStructuredTool = tool({
name: 'scrape_structured',
description: 'Extract structured data from a web page using CSS selectors.',
parameters: z.object({
url: z.string().url().describe('URL to scrape'),
selectors: z.record(z.string()).describe('Map of field names to CSS selectors'),
}),
execute: async ({ url, selectors }) => {
return callCrawlForge('scrape_structured', { url, selectors });
},
});
// Fetch raw URL (1 credit)
export const fetchUrlTool = tool({
name: 'fetch_url',
description: 'Fetch raw HTML content from a URL. Cheapest option for simple retrieval.',
parameters: z.object({
url: z.string().url().describe('URL to fetch'),
}),
execute: async ({ url }) => {
return callCrawlForge('fetch_url', { url });
},
});Langkah 2: Bina Agen Penyelidikan Web
Cipta agen yang menggunakan alat CrawlForge untuk menyelidik topik:
// agents/researcher.ts
import { Agent, run } from '@openai/agents-sdk';
import {
searchWebTool,
extractContentTool,
scrapeStructuredTool,
} from '../lib/crawlforge-tools';
const researchAgent = new Agent({
name: 'Web Researcher',
model: 'gpt-4o',
instructions: `You are a thorough web researcher. When asked about a topic:
1. Search the web for relevant, recent sources
2. Read the top 2-3 results to gather comprehensive information
3. Synthesize findings into a clear, cited summary
4. Always mention the URLs you sourced data from
Use search_web to find sources, then extract_content to read them.
Prefer extract_content over fetch_url when you need readable text.`,
tools: [searchWebTool, extractContentTool, scrapeStructuredTool],
});
// Run the agent
async function research(topic: string) {
const result = await run(researchAgent, {
messages: [{ role: 'user', content: topic }],
});
console.log(result.finalOutput);
return result;
}
// Example usage
await research('What are the latest trends in web scraping regulation in 2026?');Agen akan secara autonomi:
- Memanggil
search_webuntuk mencari artikel yang relevan (5 credits) - Memanggil
extract_contentpada keputusan teratas (2 credits setiap satu) - Mensintesis ringkasan bersitasi
Langkah 3: Tambah Pengekstrakan Data Berstruktur
Bina agen pengekstrakan data yang menarik medan tertentu daripada halaman web:
// agents/extractor.ts
import { Agent, run } from '@openai/agents-sdk';
import { scrapeStructuredTool, fetchUrlTool } from '../lib/crawlforge-tools';
const extractorAgent = new Agent({
name: 'Data Extractor',
model: 'gpt-4o',
instructions: `You are a data extraction specialist. When given a URL and a data request:
1. Determine the best CSS selectors to extract the requested data
2. Use scrape_structured to pull the data
3. Return the results in clean JSON format
For simple JSON APIs, use fetch_url instead (it costs 1 credit vs 2).`,
tools: [scrapeStructuredTool, fetchUrlTool],
});
async function extractData(url: string, description: string) {
const result = await run(extractorAgent, {
messages: [{
role: 'user',
content: `Extract from ${url}: ${description}`,
}],
});
return result.finalOutput;
}
// Extract pricing data
await extractData(
'https://stripe.com/pricing',
'All plan names, prices, and key features'
);Lanjutan: Saluran Paip Web Berbilang Agen
Agents SDK menyokong handoffs antara agen khusus. Bina saluran paip di mana penyelidik mencari sumber dan menyerahkan kepada penganalisis:
// agents/pipeline.ts
import { Agent, run } from '@openai/agents-sdk';
import {
searchWebTool,
extractContentTool,
scrapeStructuredTool,
} from '../lib/crawlforge-tools';
const collectorAgent = new Agent({
name: 'Data Collector',
model: 'gpt-4o',
instructions: `You collect raw data from the web. Search for sources,
extract their content, and pass the raw data to the analyst.
Focus on gathering data, not analyzing it.`,
tools: [searchWebTool, extractContentTool, scrapeStructuredTool],
handoff_description: 'Collects raw web data for analysis',
});
const analystAgent = new Agent({
name: 'Data Analyst',
model: 'gpt-4o',
instructions: `You analyze data collected by the Data Collector.
Identify patterns, compare data points, and produce actionable insights.
Always structure your output with clear sections and data tables.`,
tools: [], // No web tools needed -- works with collected data
handoffs: [collectorAgent], // Can request more data if needed
});
const orchestrator = new Agent({
name: 'Research Orchestrator',
model: 'gpt-4o',
instructions: `You manage research projects. Delegate data collection to
the Data Collector and analysis to the Data Analyst. Ensure the final
output answers the user's question completely.`,
handoffs: [collectorAgent, analystAgent],
});
// Run the multi-agent pipeline
const result = await run(orchestrator, {
messages: [{
role: 'user',
content: 'Compare the pricing and features of the top 3 web scraping APIs in 2026',
}],
});
console.log(result.finalOutput);Saluran paip ini mengasingkan tanggungjawab: pengumpul mengumpul data (menggunakan credits CrawlForge), dan penganalisis memprosesnya (tiada credits diperlukan). Jumlah kos bergantung pada sumber yang diambil -- biasanya 15-25 credits untuk perbandingan 3 sumber.
Pecahan Kos Credit
| Aliran Kerja Agen | Alat Digunakan | Anggaran Credits |
|---|---|---|
| Carian tunggal + ringkasan | search_web + extract_content | 7 |
| Penyelidikan 3 sumber | search_web + 3x extract_content | 11 |
| Pengekstrakan berstruktur (1 halaman) | scrape_structured | 2 |
| Perbandingan berbilang agen (3 sumber) | search_web + 3x extract_content + scrape_structured | 15 |
| Laporan penyelidikan mendalam | deep_research | 10 |
Free tier CrawlForge (1,000 credits) menyokong kira-kira 90 aliran kerja carian-dan-ekstrak setiap bulan. Plan Professional ($99/month, 50,000 credits) mengendalikan beban kerja agen pengeluaran.
Amalan Terbaik
Pilih alat termurah dahulu. Arahan agen sepatutnya membimbingnya ke arah fetch_url (1 credit) apabila HTML penuh boleh diterima, dan extract_content (2 credits) hanya apabila teks bersih diperlukan. Simpan deep_research (10 credits) untuk pertanyaan berbilang sumber yang kompleks.
Hadkan langkah agen. Tetapkan bilangan maksimum penggunaan alat untuk mengawal kos. Kebanyakan tugas penyelidikan selesai dalam 3-5 panggilan alat.
Gunakan handoffs untuk saluran paip yang kompleks. Daripada satu agen dengan banyak alat, asingkan tanggungjawab. Agen pengumpul mengendalikan akses web (credits), manakala agen penganalisis memproses data (tiada credits).
Caching output alat. Jika agen anda berulang kali mengakses URL yang sama, laksanakan caching respons untuk mengelakkan caj credit berganda.
Pantau penggunaan. Semak penggunaan credit anda dalam dashboard CrawlForge dan tetapkan amaran untuk lonjakan yang tidak dijangka.
Langkah Seterusnya
Anda kini mempunyai agen OpenAI yang boleh mengakses data web secara langsung. Teruskan membina:
- Gambaran keseluruhan 26 alat CrawlForge -- daftarkan lebih banyak alat untuk agen anda
- Stealth mode scraping -- akses laman dengan perlindungan anti-bot
- Automasi deep research -- gunakan alat deep_research 10-credit untuk laporan komprehensif
- CrawlForge Quick Start -- panduan persediaan MCP penuh
Beri agen OpenAI anda mata pada web. Mula percuma dengan 1,000 credits -- tanpa memerlukan kad kredit.
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
Tentang Penulis
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.