هوش مصنوعی

هوش مصنوعی در مهندسی داده – نقش فایل‌های مهارت 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.”

این استاندارد در دسامبر ۲۰۲۵ توسط Anthropic و با همکاری جمعی از پلتفرم‌های بزرگ توسعه‌دهندگان منتشر شده است و مشخصات کامل آن در agentskills.io در دسترس قرار دارد. تفاوت کلیدی Agent Skills با MCP در این است که MCP به ایجنت «دسترسی به ابزارها» می‌دهد، در حالی که Agent Skills به ایجنت «روش انجام صحیح کار» را آموزش می‌دهد.


🗄️ بررسی مهارت استاندارد 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 برای آن بنویسید و اجازه دهید ایجنت آن را امتحان کند. تغییرات شگفت‌انگیز خواهند بود!

 

مجتبی بنائی

دانشجوی دکترای نرم‌افزار دانشگاه تهران (yun.ir/smbanaie)، مدرس دانشگاه و فعال در حوزه توسعه نرم‌افزار و مهندسی داده که تمرکز کاری خود را در چند سال اخیر بر روی مطالعه و تحقیق در حوزه کلان‌داده و زیرساخت‌های پردازش داده و تولید محتوای تخصصی و کاربردی به زبان فارسی و انتشار آنها در سایت مهندسی داده گذاشته است. مدیریت پروژه‌های نرم‌افزاری و طراحی سامانه‌های مقیاس‌پذیر اطلاعاتی از دیگر فعالیتهای صورت گرفته ایشان در چند سال گذشته است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

دکمه بازگشت به بالا