پژوهش متنباز
SAGE چیست؟ بررسی کامل موتور متنباز ممیزی SEO، AEO و GEO
خلاصه اجرایی
بررسی مستقیم ریپوی عمومی تقی مولوی؛ موتور پایتونی متنباز برای ممیزی سئوی فنی، موجودیت و پاسخ، و بقای محتوا در بازیابی مولد.

خلاصه اجرایی
SAGE با نام بستهٔ sage-audit یک موتور متنباز پایتونی برای ممیزی همزمان سه لایهٔ مهم دیدهشدن در وب و جستوجوی هوش مصنوعی است: سئوی فنی، بهینهسازی موتور پاسخ (AEO) و بهینهسازی موتور مولد (GEO). این پژوهش بر اساس بررسی مستقیم ریپوی عمومی tmolavi/sage-audit در ۲ شهریور ۱۴۰۵ نوشته شده است.
نکتهٔ مهم این است که SAGE یک ابزار رتبهسنجی ادعایی یا داشبورد وابسته به یک ارائهدهندهٔ بیرونی نیست. هستهٔ آن یک گزارش ساختیافته تولید میکند: هر یافته وضعیت، امتیاز، وزن، شواهد و پیشنهاد اصلاح دارد؛ سه امتیاز ستونی با وزنهای ۳۰٪ برای SEO، ۳۵٪ برای AEO و ۳۵٪ برای GEO به یک امتیاز کلی تبدیل میشوند. این طراحی نشان میدهد نویسنده، کیفیت محتوای قابل بازیابی و قابل استناد را هموزن با سئوی کلاسیک دیده است.
ریپو دقیقاً چه چیزی منتشر کرده است؟
در snapshot بررسیشده، ریپو ۲ commit دارد، با Python 3.10 یا بالاتر کار میکند، مجوز MIT دارد و چهار شیوهٔ استفاده ارائه میدهد: خط فرمان، کتابخانهٔ پایتون، خروجی JSON/Markdown و سرور MCP برای ابزارهای عاملمحور. README وضعیت GitHub را منتشرشده اعلام میکند، اما انتشار PyPI را هنوز نیازمند یک مرحلهٔ نگهدارنده میداند؛ بنابراین دستور نصب مطمئن فعلی، نصب مستقیم از GitHub است.
| بخش | پیادهسازی در ریپو | خروجی اصلی |
|---|---|---|
| مدل داده | models.py با Pydantic | Finding، PillarReport و AuditReport |
| هماهنگکننده | core.py | اجرای سه ممیزی و امتیاز نهایی |
| رابط CLI | cli.py | sage audit، generate-llms و mcp |
| سرور عاملمحور | server/mcp_server.py | چهار ابزار برای URL، HTML، llms.txt و نسخه |
| استخراج | utils/extractor.py | پاکسازی DOM، heading، لینک، JSON-LD و robots.txt |
| سنجش متن | utils/text.py | توکن، جمله، بردار و شباهت کسینوسی |
| تست | tests/test_auditors.py | تست آفلاین و قطعی برای اجزای اصلی |
سه ستون SAGE چه تفاوتی دارند؟
SEO فنی: آیا صفحه برای کشف و فهم آماده است؟
ممیزی SEO در seo_auditor.py از عنوان و canonical تا meta robots، Open Graph، تعداد H1، نسبت متن به کد، هدرهای امنیتی و cache را بررسی میکند. یک بخش متمایز آن سیاست robots.txt برای خزندههای AI است: GPTBot، PerplexityBot، ClaudeBot، Google-Extended، Amazonbot و Applebot-Extended.
این بخش قرار نیست مجوزی برای باز کردن بیقیدوشرط همهٔ مسیرها باشد. نتیجهٔ خوب یعنی مالک سایت بداند چه چیزی عمومی است، چه چیزی نباید خزش شود و آیا سیاست رباتها با هدف انتشار محتوا سازگار است.
AEO: آیا صفحه پاسخ و موجودیت قابل فهم دارد؟
aeo_auditor.py ساختار JSON-LD را بهصورت بازگشتی میخواند و nodeهای Organization، Person، Product، Article و FAQPage را بررسی میکند. وجود sameAs به منابع هویتی معتبر، تازگی داده، ساختار پرسش و پاسخ و کیفیت پنجرهٔ ابتدایی بخشها در این ستون اهمیت دارد.
این رویکرد از یک اشتباه رایج فاصله میگیرد: نوشتن یک صفحه با کلیدواژههای زیاد، الزاماً آن را به پاسخ خوب تبدیل نمیکند. SAGE میپرسد آیا هر بخش با جملهای روشن شروع میشود و آیا مدل میتواند بفهمد این اطلاعات به کدام موجودیت و کدام منبع مربوط است.
GEO: آیا محتوا در بازیابی باقی میماند؟
geo_auditor.py متن را در مرزهای معنایی حدود ۶۰ تا ۱۲۰ توکن قطعهبندی میکند، سپس با اولویت fastembed، بعد sentence-transformers و در نهایت بردارساز n-gram هششده، بردار میسازد. در صورت نبود مدل عصبی یا شکست دانلود مدل، fallback قطعی از توقف ابزار جلوگیری میکند.
سپس SAGE یک بازیابی RAG در حافظه شبیهسازی میکند، top-k را رتبهبندی میکند، شباهت کسینوسی و آنتروپی معنایی را میسنجد و شاخصی به نام Citation Survival Probability یا CSP ارائه میدهد. CSP تضمین حضور در ChatGPT یا Google نیست؛ یک سیگنال آزمایشگاهی برای سنجش برجستگی و تمایز قطعهها در همان اجرای ابزار است.
معماری پنجلایهٔ GEO در SAGE
| لایه | سؤال پژوهشی | خروجی یا آزمون |
|---|---|---|
| ۱. DOM تمیز | متن اصلی از ناوبری و boilerplate جدا شده است؟ | استخراج متن و نسبت متن به کد |
| ۲. قطعهبندی | مرز هر passage برای بازیابی معنا دارد؟ | chunkهای ۶۰ تا ۱۲۰ توکن |
| ۳. embedding | متن چگونه به فضای برداری برده میشود؟ | fastembed، sentence-transformers یا hashing |
| ۴. بازیابی | برای یک پرسش، کدام قطعهها بالا میآیند؟ | top-k و شباهت کسینوسی |
| ۵. استناد | قطعهٔ برنده چقدر برجسته و متمایز است؟ | CSP، entropy و فایلهای llms.txt و rag_ready_chunks.json |
امتیازدهی چگونه کار میکند؟
در مدل SAGE هر Finding امتیاز صفر تا یک و وزن دارد. امتیاز هر ستون میانگین وزنی یافتههاست. امتیاز کلی به این شکل محاسبه میشود:
| ستون | وزن در امتیاز نهایی | معنای عملی |
|---|---|---|
| SEO | ۳۰٪ | کشف، ایندکس، ساختار و سلامت فنی |
| AEO | ۳۵٪ | پاسخ مستقیم، موجودیت و دادهٔ ساختیافته |
| GEO | ۳۵٪ | قطعهبندی، بازیابی، تمایز معنایی و آمادگی استناد |
درجهبندی از A+ برای امتیاز ۹۳ به بالا تا F برای امتیاز کمتر از ۵۰ تعریف شده است. مزیت این مدل، شفافیت نسبی آن است؛ محدودیتش این است که وزنها و فرمول CSP همچنان انتخاب طراحی نویسندهاند و نباید با معیار رسمی Google یا یک اندازهگیری عمومی از مدلهای زبانی اشتباه گرفته شوند.
اجرای سریع برای تیم محتوا و فنی
pip install git+https://github.com/tmolavi/sage-audit.git
sage audit https://example.com
sage audit https://example.com --format markdown -o report.md --save-artifacts ./out
sage generate-llms https://example.com -o llms.txt --also-chunks
sage audit https://example.com --fail-under 70برای اجرای آفلاین هم میتوان HTML خام را وارد کرد. این قابلیت برای تیمهایی که نمیخواهند دادهٔ پیشانتشار را به شبکه بفرستند مهم است. برای پروژههای عاملمحور، sage mcp سرور FastMCP را بالا میآورد و ابزارهای ممیزی URL، ممیزی HTML، تولید llms.txt و گزارش نسخه را در اختیار کلاینت قرار میدهد.
چه چیزهایی در این انتشار قوی است؟
- مرزبندی روشن بین SEO، AEO و GEO بهجای ادغام مبهم همهچیز زیر نام AI SEO.
- fallback قطعی embedding که وابستگی کامل به مدل دانلودی را کاهش میدهد.
- مدل دادهٔ Pydantic و خروجیهای قابل استفاده برای CI، گزارش و پردازش بعدی.
- تستهای آفلاین برای tokenizer، استخراج DOM، JSON-LD، robots، سه ممیزی و CLI.
- تولید artifactهایی که میتوان آنها را در فرایند محتوای یک سایت بهصورت جداگانه بررسی کرد.
- مجوز MIT و ساختار سادهای که برای fork، مطالعه و توسعهٔ تیمی مناسب است.
محدودیتها و پرسشهای باز
این بررسی، کیفیت معماری و کد منتشرشده را توضیح میدهد؛ نتیجهٔ یک audit واقعی روی سایت خاص نیست. امتیاز نمونهٔ README نیز دادهٔ نمایشی است، نه benchmark مستقل. همچنین اجرای RAG در حافظه، رفتار همهٔ موتورهای پاسخ را بازسازی نمیکند. برای استفادهٔ جدی باید پرسشهای واقعی، زبان، کشور، مدل، تاریخ، منابع و صحت factual پاسخها جداگانه ثبت شوند.
از منظر توزیع نیز README میگوید PyPI هنوز مرحلهٔ راهاندازی نگهدارنده را میخواهد. بنابراین وضعیت قابل گزارش این است: GitHub عمومی است؛ نصب مستقیم از GitHub مستند شده؛ انتشار PyPI را نباید تا زمان مشاهدهٔ صفحهٔ رسمی پروژه قطعی اعلام کرد.
نتیجهٔ پژوهش
SAGE یک پروژهٔ کوچک اما خوشمرز برای تبدیل بحث مبهم «دیدهشدن در هوش مصنوعی» به مجموعهای از آزمونهای قابل تکرار است. ارزش اصلی آن در ادعای رتبه یا citation تضمینی نیست؛ در این است که تیم را مجبور میکند از سه پرسش جداگانه عبور کند: صفحه از نظر فنی قابل دسترس است؟ موجودیت و پاسخ آن برای ماشین روشن است؟ متن در بازیابی معنایی متمایز و قابل استناد باقی میماند؟
برای ادامهٔ کار، بهترین مسیر این است که SAGE را روی چند صفحهٔ واقعی در زبانهای مختلف اجرا کنیم، baseline بسازیم و تغییرات را با صحت پاسخ و لید کسبوکار مقایسه کنیم. این همان نقطهای است که پژوهش متنباز از یک README جذاب به ابزار تصمیمسازی تبدیل میشود.
منابع و لینکهای مستقیم
- ریپوی رسمی sage-audit در GitHub
- README و راهنمای نصب و انتشار
- هستهٔ امتیازدهی
- ممیزی SEO
- ممیزی AEO
- ممیزی GEO
- تستهای پروژه
دربارهٔ پژوهشگر
این پژوهش در مرکز پژوهش Molavi R&D Think Tank و بر پایهٔ بررسی عمومی پروژهٔ تقی مولوی تدوین شده است.