هوش مصنوعی در مهندسی داده – نقش فایلهای مهارت Skills

در بخش نخست این مقاله، به بررسی جامع زیرساختهای نوین اکوسیستم هوش مصنوعی پرداختیم؛ بهگونهای که فریمورکهای کار با ایجنتها، ابزارهای جدید، پروتکل متنباز MCP، روند تخصصی شدن کارها و همچنین امکان گسترش توانمندیهای یک عامل هوشمند از طریق «استاندارد نوین مهارتها (Skills)» را با یکدیگر مرور کردیم.
اما اکنون زمان آن فرا رسیده است که از مباحث بنیادین و تئوری عبور کرده و از منظر یک مهندس داده، موضوع مهارتها را به شکلی کاملاً عملیاتی و کاربردی مورد ارزیابی قرار دهیم. باید دقیقاً مشخص کنیم که وقتی از مزایای پیادهسازی Skillها و قابلیتهای آنها در مدیریت روزمرهی زیرساختهای داده سخن میگوییم، دقیقاً به چه سناریوهایی اشاره داریم.
🌐 استاندارد باز Agent Skills (agentskills.io)
پیش از بررسی ساختار داخلی، مهم است بدانیم قالبی که در این مقاله تحلیل میکنیم، چیزی جز پیادهسازی استاندارد رسمی و جهانی Agent Skills Open Standard نیست. طبق تعریف رسمی در مخزن گیتهاب این پروژه (github.com/agentskills/agentskills):
“Agent Skills are a simple, open format for giving agents new capabilities and expertise… Write once, use everywhere.”
🗄️ بررسی مهارت استاندارد Supabase برای PostgreSQL
برای درک بهتر این مفهوم، مستقیماً به سراغ بررسی یک نمونه رسمی، جامع و حرفهای در حوزه دیتابیس ها و به طور خاص، پستگرس میرویم. تیمی که به خوبی این استاندارد را برای این دیتابیس پیادهسازی کرده است، تیم Supabase است. مهارت “بهترین روشهای استفاده از پستگرس” (Supabase Postgres Best Practices) یک مرجع بینظیر برای مهندسان داده است که از مخزن رسمی گیتهاب این شرکت به آدرس زیر استخراج شده است:
github.com/supabase/agent-skills/tree/main/skills/supabase-postgres-best-practices
ساختار فایل اصلی SKILL.md در مخزن Supabase
یک Skill استاندارد شامل یک فایل SKILL.md و یک پوشه references/ است. محتوای واقعی فایل SKILL.md در مخزن سوپابیس به شکل زیر تعریف شده است که ۸ دستهبندی مختلف از قوانین را با اولویتبندی مشخص در بر میگیرد:
گنجینه قوانین در پوشه references/
در کنار فایل SKILL.md، پوشه references/ قرار دارد که به عنوان یک مرجع استاندارد و فوقحرفهای برای مهندسین داده عمل میکند. در مخزن Supabase، این پوشه حاوی دهها فایل مجزا است که هر کدام به صورت تخصصی یک بُعد از دیتابیس را پوشش میدهند؛ از جمله:
- مدیریت کوئریها و ایندکسها (
query-): مانندquery-missing-indexes.md،query-partial-indexes.md،query-composite-indexes.md،query-covering-indexes.md. - مدیریت ارتباطات (
conn-): مانندconn-pooling.md،conn-limits.md،conn-prepared-statements.md. - طراحی اسکما (
schema-): مانندschema-data-types.md،schema-partitioning.md،schema-constraints.md. - امنیت و RLS (
security-): مانندsecurity-rls-basics.md،security-privileges.md. - مانیتورینگ (
monitor-): مانندmonitor-explain-analyze.md،monitor-pg-stat-statements.md. - قفلگذاری و الگوهای داده (
lock-وdata-): مانندlock-deadlock-prevention.md،data-n-plus-one.md،data-batch-inserts.md. - ویژگیهای پیشرفته (
advanced-): مانندadvanced-jsonb-indexing.md.
🧬 نگاهی دقیق تر به قوانین (Rules) موجود در فایلهای مهارت
حالا بیاییم دو تا از این فایلهای طلایی در پوشه references/ را کالبدشکافی کنیم و عمیقتر بررسی کنیم تا ببینیم ایجنت دقیقاً چه چیزی را (در اینجا برای بهینه سازی پستگرس) یاد میگیرد.
قانون اول: query-missing-indexes.md (اضافه کردن ایندکس)
بخش متادیتا و توضیحات قانون:
title: Add Indexes on WHERE and JOIN Columns impact: CRITICAL impactDescription: 100-1000x faster queries on large tables tags: [indexes, performance, sequential-scan, query-optimization] Add Indexes on WHERE and JOIN Columns Queries filtering or joining on unindexed columns cause Full Table Scans…
توضیح: این بخش به ایجنت میگوید که اهمیت این قانون «حیاتی» است و نبود ایندکس روی ستونهای WHERE و JOIN باعث اسکن کامل جدول میشود.
مثال کوئری اشتباه و درست:
-- Bad Practice: Missing index causes sequential scan SELECT * FROM orders WHERE customer_id = 123; -- EXPLAIN output: Seq Scan on orders (cost=0.00..25000.00 rows=100 width=85) -- Good Practice: Create an index on the frequently filtered column CREATE INDEX orders_customer_id_idx ON orders (customer_id); SELECT * FROM orders WHERE customer_id = 123; -- EXPLAIN output: Index Scan using orders_customer_id_idx (cost=0.42..8.44)
توضیح: راهکار درست (ساخت ایندکس) و نتیجه بهینه آن در دستور EXPLAIN به ایجنت آموزش داده میشود تا همین راهحل را در کدهای شما پیادهسازی کند.
قانون دوم: query-partial-indexes.md (ایندکسهای جزئی)
توضیحات و الگوهای کد:
title: Use Partial Indexes for Filtered Queries impact: HIGH impactDescription: 5-20x smaller indexes, faster writes and queries tags: [indexes, partial-index, query-optimization, storage] -- Bad Practice: Full index includes irrelevant rows (e.g., soft-deleted users) CREATE INDEX users_email_idx ON users (email); -- Good Practice: Partial index matching the query filter CREATE INDEX users_active_email_idx ON users (email) WHERE deleted_at IS NULL
توضیح: این قانون به ایجنت یاد میدهد که ساخت ایندکس روی کل جدول برای کوئریهایی که فیلتر ثابت دارند باعث اشغال فضای اضافی میشود و باید از WHERE در زمان ساخت ایندکس استفاده کرد.
💡 نحوه فعالسازی و استفاده از فایلهای Skill در محیطهای توسعه
برای استفاده از این مهارتها، روشهای زیر بر اساس آخرین استانداردهای محیطهای توسعه توصیه میشود:
در ادیتور Cursor
- پوشه
.cursor/rules/را در ریشه (Root) پروژه بسازید. - محتوای Skill خود را در فایلی با پسوند
.mdcدر این پوشه ذخیره کنید و از Frontmatter (YAML) برای تعریفdescription,globs,alwaysApplyاستفاده کنید. - برای استفادههای لحظهای، در چت با فشردن کلید
@به فایل مهارت خود اشاره کنید.
در VS Code با GitHub Copilot
- قابلیت رسمی Agent Skills: پوشه مهارت خود را در مسیر
.github/skills/در ریشه پروژه قرار دهید. Copilot به صورت خودکار آن را شناسایی میکند. - از فایل
.github/copilot-instructions.mdبرای قوانین سراسری استفاده کنید. - در چت کوپایلوت میتوانید با تایپ
#fileفایل مورد نظرتان را به عنوان کانتکست معرفی کنید.
در اکستنشنهای مبتنی بر MCP (مثل Roo Code / Cline)
این ابزارها نیازی به آدرسدهی دستی در پرامپت ندارند و به صورت خودکار پوشههای استاندارد را اسکن میکنند. پوشه حاوی SKILL.md خود را در مسیرهایی مانند .roo/skills/ یا .agents/skills/ قرار دهید.
🔮 آینده: Skillها به عنوان تخصصهای تفکیکشده (Unbundled Expertise)
ما به سمت عصر هزاران Skill تخصصی حرکت میکنیم؛ جعبهابزارهایی که هر کدام دانش عمیق یک متخصص دامین را در دل خود جای دادهاند. مهندس داده در آینده مجموعهای از Skillهای دستچینشده (مثل همین مجموعه Supabase) را جمعآوری کرده، مهارتهای جدیدی برای فریمورکهای داخلی شرکت مینویسد و از فریمورکهای ایجنت برای اجرای زنجیرهای آنها استفاده میکند.
📌 نتیجهگیری
ایجنتهای هوش مصنوعی همین الان در مهندسی داده حضور دارند. به لطف رشد استانداردهای باز برای ابزارها و مهارتها، این دستیاران روز به روز باهوشتر و کاربردیتر میشوند. کدهایی که در این مقاله بررسی کردیم (مانند مخزن فوقالعاده Supabase)، صرفاً تئوری نیستند و مستقیماً قابل اجرا هستند.
قدم بعدی شما چیست؟ یکی از کارهای تکراری در استک داده خود را انتخاب کنید، یک فایل SKILL.md و چند قانون در پوشه references برای آن بنویسید و اجازه دهید ایجنت آن را امتحان کند. تغییرات شگفتانگیز خواهند بود!