Langkau ke kandungan
Alat AI5 credits

generate_llms_txt

Perangkak tapak, analisis strukturnya dan keluarkan fail llms.txt (dan llms-full.txt pilihan) yang mematuhi piawaian bagi menentukan cara model AI patut berinteraksi dengan kandungan anda. Tahap pematuhan daripada permisif hingga ketat.

Kes Penggunaan

Hantar Dokumentasi Sedia AI

Terbitkan llms.txt bersama dokumen anda supaya Claude, ChatGPT dan perangkak lain membaca garis panduan yang bersih.

Penerbitan Pematuhan AI

Gunakan pematuhan ketat untuk menetapkan peraturan data latihan, caching dan atribusi di satu tempat.

Penjanaan Dasar Bot

Tambah garis panduan dan sekatan tersuai untuk agen pengguna AI tertentu pada domain anda.

Endpoint

POST/api/v1/tools/generate_llms_txt
Auth Required
1 req/s pada pelan Free
5 credits

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
URL tapak web untuk menjana llms.txt
Example: https://example.com
format
stringOptionalboth
Format output: "both" | "llms-txt" | "llms-full-txt"
Example: both
complianceLevel
stringOptionalstandard
"basic" | "standard" | "strict". Diterima untuk keserasian dan tidak mengubah output endpoint ini, yang dibina daripada apa yang diterbitkan oleh laman itu sendiri. Pada pelayan MCP CrawlForge, ia hanya terpakai dengan `outputOptions.robotsStyle: true`.
Example: standard
analysisOptions
objectOptional-
Pilihan analisis tapak web (maxDepth 1-5, maxPages 10-500, respectRobots, detectAPIs, analyzeContent, checkSecurity)
Example: {"maxDepth": 3, "maxPages": 100, "detectAPIs": true}
outputOptions
objectOptional-
Penyesuaian output (organizationName, contactEmail, customGuidelines, customRestrictions, includeDetailed, includeAnalysis)
Example: {"organizationName": "Example Inc.", "contactEmail": "ai@example.com"}
respect_robots
booleanOptionaltrue
Hormati robots.txt tapak sasaran. Dibiarkan pada `true`, laluan yang dilarang untuk `CrawlForge` ditolak dengan 403 sebelum apa-apa diambil dan tiada credits dicaj. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda. `analysisOptions.respectRobots` ialah alias; menetapkan mana-mana satu kepada `false` akan mematikan semakan itu.
Example: true
max_inline_chars
numberOptional40000
Hasil terbesar yang dikembalikan sebaris, dalam aksara JSON-nya (1,000-10,000,000). Melebihinya, respons membawa `preview` (`max_inline_chars` aksara pertama `llms_full_txt`, atau `llms_txt` apabila hanya fail itu dijana), `result_handle`, `total_chars`, `truncated: true` dan `expires_at`, dan [read_result](/docs/api-reference/tools/read-result) membaca selebihnya dengan 1 credit setiap panggilan. Hasil tersimpan disimpan selama 1 jam.
Example: 40000

Contoh Permintaan

cURL — both formats, standard compliance

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/generate_llms_txt \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "format": "both",
    "complianceLevel": "standard",
    "outputOptions": {
      "organizationName": "Example Inc.",
      "contactEmail": "ai@example.com"
    }
  }'

TypeScript — strict with custom guidelines

generateLlmsTxt.tsTypescript
// npm install crawlforge-sdk
import { CrawlForge } from 'crawlforge-sdk';
import fs from 'node:fs/promises';

const client = new CrawlForge({ apiKey: process.env.CRAWLFORGE_API_KEY });

const result = await client.generateLlmsTxt({
  url: 'https://docs.example.com',
  format: 'both',
  complianceLevel: 'strict',
  analysisOptions: {
    maxDepth: 4,
    maxPages: 250,
    detectAPIs: true,
    analyzeContent: true,
  },
  outputOptions: {
    organizationName: 'Example Inc.',
    contactEmail: 'ai@example.com',
    customGuidelines: [
      'AI crawlers must respect robots.txt',
      'Cache responses for up to 24 hours',
    ],
    customRestrictions: [
      'No training on user-submitted content',
    ],
    includeAnalysis: true,
  },
});

// result.data is untyped in crawlforge-sdk 0.1 — its shape is the Response Example below.
const { llms_txt, llms_full_txt } = result.data as { llms_txt: string; llms_full_txt: string };
await fs.writeFile('public/llms.txt', llms_txt);
await fs.writeFile('public/llms-full.txt', llms_full_txt);

Python

generate_llms_txt.pyPython
# pip install crawlforge
from crawlforge import CrawlForge

client = CrawlForge()  # reads CRAWLFORGE_API_KEY

result = client.generate_llms_txt(
    url='https://example.com',
    format='llms-txt',
    complianceLevel='basic',
)

# result.data is a plain dict — its shape is the Response Example below.
with open('public/llms.txt', 'w') as f:
    f.write(result.data['llms_txt'])

Contoh Respons

200 OK4.1s
{
"success": true,
"data": {
"url": "https://example.com",
"llms_txt": "# Example Inc.\n\n> Tools for building things.\n\n## Docs\n\n- [Quickstart](https://example.com/docs/quickstart): Get started in five minutes\n",
"llms_full_txt": "# Example Inc.\n\n## Quickstart\n\nURL: https://example.com/docs/quickstart\n\nGet started in five minutes...",
"pages_analyzed": 12,
"pages": [
{
"url": "https://example.com",
"title": "Example Inc."
},
{
"url": "https://example.com/docs/quickstart",
"title": "Quickstart"
}
],
"compliance": {
"robots_txt_found": true,
"disallow_count": 3
},
"api_endpoints_detected": [
"https://example.com/api/v1"
],
"clamps_applied": [
"maxPages clamped from 100 to 25"
],
"generated_at": "2026-08-26T14:30:00.000Z"
},
"credits_used": 5,
"credits_remaining": 995,
"processing_time": 4100
}
Field Descriptions
data.llms_txtllms.txt yang dijana. Hadir melainkan `format` ditetapkan kepada llms-full-txt.
data.llms_full_txtllms.txt dengan teks setiap halaman yang dianalisis disisipkan. Hadir hanya apabila `format` ialah both atau llms-full-txt.
data.pages_analyzedHalaman akar serta setiap halaman yang berjaya diambil.
data.pagesHalaman yang masuk ke dalam output, setiap satu dengan tajuknya.
data.compliance.robots_txt_foundSama ada robots.txt berjaya diperoleh; disallow_count ialah bilangan peraturan Disallow yang dibawanya. `false` meliputi tapak tanpa robots.txt dan tapak yang robots.txt-nya tidak dapat dibaca — kes kedua turut menambah entri `warnings` yang menyatakan sebabnya.
data.api_endpoints_detectedSehingga 10 URL yang kelihatan seperti API dikesan dalam HTML yang diambil. Ia heuristik pada laluan, bukan senarai API yang disahkan. URL tapak yang sama yang dilarang oleh robots.txt untuk `CrawlForge` tidak pernah disenaraikan.
data.clamps_appliedNota yang boleh dibaca apabila had yang anda minta dikurangkan untuk muat dengan bajet tanpa pelayan. Kosong apabila tiada apa-apa dihadkan.
data.generated_atCap masa ISO 8601 bagi penjanaan.

Pengendalian Ralat

Disekat oleh robots.txt (403 Forbidden)

robots.txt tapak sasaran melarang laluan ini untuk CrawlForge. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots. Hanya URL sasaran yang mengembalikan 403: halaman yang ditemui semasa analisis dan dilarang oleh robots.txt ditinggalkan daripada analisis sebaliknya, dan dikira dalam warnings.

Kos Credit

5 credits
5 credits setiap permintaan
5 credits tetap tidak kira berapa banyak halaman yang dilawati perangkak.

Petua: Gandingkan dengan map_site (2 credits) apabila anda hanya memerlukan inventori URL sebelum menjana garis panduan.

Alat Berkaitan