llms.txt, robots.txt এবং পাতাকে markdown হিসেবে পরিবেশন
এজেন্ট ব্রাউজারের চেয়ে আলাদাভাবে পড়ে। প্রতিটি তৈরি সাইট তাদের যা দেয়: llms.txt, নামযুক্ত AI-ক্রলার নীতি, এবং প্রতিটি পাতা markdown-এ।
যারা একটি ছোট ব্যবসার কথা শুনবে, তাদের একটি ক্রমবর্ধমান অংশ কখনও তার ওয়েবসাইটে যাবে না। তারা একটি মডেলকে জিজ্ঞেস করবে, আর মডেল যা পড়তে পেরেছে তা থেকেই উত্তর দেবে।
এতে "একটি এজেন্ট কি এই সাইট পড়তে পারে?" প্রশ্নটি প্রযুক্তিগত কৌতূহল থেকে বিতরণের প্রশ্ন হয়ে দাঁড়ায়। এ থেকে তিনটি জিনিস আসে, এবং এখানে তৈরি প্রতিটি সাইট না চাইতেই তিনটিই পায়।
robots.txt-এ AI ক্রলারদের নাম থাকা উচিত
তাদের নিয়ে কিছু না বললে তারা User-agent: *-এ ফিরে যায়। সেটি নীতি নয়, উত্তরাধিকারসূত্রে পাওয়া একটি ডিফল্ট।
তাই আমরা তাদের নাম ধরে উল্লেখ করি। সাইটেশন ফেরত পাঠায় এমন সার্চ ও উত্তরদাতা এজেন্ট - OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot - এবং ট্রেনিং ক্রলার GPTBot, ClaudeBot, Google-Extended, meta-externalagent। প্রত্যেকে বাকি সবার মতো হুবহু একই Disallow তালিকা পায়: কোনো বট API পায় না, কোনো বট মেম্বারদের পাতাও পায় না।
নাম উল্লেখ করা উদার হওয়ার জন্য নয়। এটি এই জন্য যে নীতিটি এমন কোথাও লেখা থাকে যেখানে ইচ্ছাকৃতভাবে তা বদলানো যায়।
llms.txt একটি সূচিপত্র, বিজ্ঞাপন নয়
llms.txt রীতিটি সহজ: একটি শিরোনাম, একটি ব্লককোটে এক অনুচ্ছেদের সারাংশ, তারপর লিংকসহ অংশ। এতে পৌঁছানো একটি মডেল যেন এক ফেচেই, কিছু রেন্ডার না করে, বুঝতে পারে এই সাইটটি কী এবং গুরুত্বপূর্ণ পাতাগুলো কোথায়।
আমাদেরটি সাইট ডেফিনিশন থেকে তৈরি হয়, যা শোনায় তার চেয়ে বেশি গুরুত্বপূর্ণ। তালিকাটি sitemap-এর মতো একই সর্বজনীন/ব্যক্তিগত নিয়মে ছাঁকা হয়:
# Piekarnia Lune
> A sourdough bakery in Kraków. Bread baked daily, cakes to order,
> open from seven.
## Pages
- [Menu](https://...): What we bake, and what it costs.
- [Order a cake](https://...): Wedding and birthday cakes, two weeks' notice.একটি তালিকা, তিনবার পড়া হয় - sitemap, llms.txt এবং robots মেটা ট্যাগের দ্বারা। তিনটির মধ্যে অমিল হওয়ার উপায় নেই, কারণ সিঙ্কে রাখার মতো কিছুই নেই।
প্রতিটি পাতা, markdown হিসেবে
ভুল বোঝা হওয়ার সবচেয়ে দ্রুত উপায় হলো পাঠককে তিনটি বাক্য খুঁজতে একটি গোটা লেআউটের পাতা পার্স করতে বাধ্য করা। তাই প্রতিটি তৈরি সাইটের প্রতিটি পাতা HTML-এর পাশাপাশি markdown-এও সাড়া দেয়:
Accept: text/markdownপাঠান, আর একই URL-এ পাতাটি markdown হিসেবে পাবেন।- অথবা পাথের শেষে
.mdযোগ করুন, যে অনেক এজেন্ট কনটেন্ট নেগোসিয়েট করে না তাদের জন্য।
এটিকে সৎ রাখার নিয়মগুলো বলার মতো। এটি একটি রিরাইট, রিডাইরেক্ট নয়। এটি ঘটে শুধু স্পষ্ট text/markdown অনুরোধে, */*-এ কখনও নয় - যে ব্রাউজার "যেকোনো কিছু" পাঠায় সে পাতাটিই চায়। দুটি রেসপন্সেই Vary: Accept থাকে, তাই শেয়ার্ড ক্যাশ সবাইকে একই বডি দিতে পারে না। আর markdown সংস্করণ noindex, ফলে এটি যে পাতার কপি, সার্চে তার সঙ্গে প্রতিযোগিতা করে না।
সিরিয়ালাইজার রেন্ডার করা HTML নয়, সাইট ডেফিনিশন ধরে হাঁটে, তাই ফলাফল পরিষ্কার হয়: ফিচার অংশ হয় একটি তালিকা, প্রশ্নোত্তর হয় শিরোনাম ও উত্তর, দামের টেবিল হয় টেবিল। একটি ম্যাপ বা বুকিং ক্যালেন্ডার হয় একটি সৎ লাইন যা বলে সেখানে কী আছে, সেটি কী দেখাত তার বানানো বিবরণ নয়।
এটি আমাদের ক্ষেত্রেও খাটে
এই পোস্টটি একই URL-এর শেষে .md যোগ করে পাওয়া যায়। crea.site-এর বাকি প্রতিটি পাতাও তাই, এবং আমাদের নিজেদের llms.txt সেগুলো তালিকাভুক্ত করে।
যে ওয়েবসাইট বিল্ডারের নিজের পাতা এজেন্ট পড়তে পারে না, সে নিজের বিরুদ্ধেই যুক্তি দিচ্ছে।