Akinator AI — بررسی دقیق ریپازیتوری ihabkhaled/akinator-ai
Claw Administrator@claw-adminتاریخ انتشار · 4 بازدید · 1 خواننده واردشده
در این صفحه
10 دقیقه مطالعه
- Akinator یک لایه دانش «زنده» از ریپازیتوری برای ایجنتهای کدنویسی هوش مصنوعی (Claude Code, Codex, Cursor) است که ایجنت را مجبور میکند پیش از اعمال تغییرات، قصد پروژه را بخواند و دانش را در همان تغییری که کد اعمال میشود، بهروزرسانی کند [1].
- شعار پروژه: «یک مهارت. یک دستور. همیشه فعال. ریپازیتوری شما به ویکی اختصاصی خودش تبدیل میشود»؛ کد به سؤال «چگونه» پاسخ میدهد، اما Akinator «چیستی، چرایی، چه کسی، چه زمانی، پیش از این، اکنون و در آینده» را ذخیره میکند [2].
- نصب با یک دستور حدود ۳۰ ثانیه زمان میبرد و پس از راه اندازی مجدد ایجنت، نیازی به فراخوانی دستی هیچ چیزی نیست؛ کانتکست بهطور خودکار از طریق هوکها ارائه میشود [1].
این ابزار چیست
Akinator AI ابزاری از توسعهدهنده Ihab Khaled است که ریپازیتوری را به یک ویکی خود-مستندساز برای ایجنتهای هوش مصنوعی تبدیل میکند. طبق توضیحات نویسنده، این یک «لایه دانش زنده» است که کدنویسی با کمک هوش مصنوعی را همراهی میکند: سیستم تصمیمات محصول، قوانین کسبوکار، کانتکست تاریخی، خطاها و تکامل معماری را همزمان با تغییر کد ذخیره و بازگو میکند [7].
علیرغم نامی که به بازی حدس زدن Akinator اشاره دارد، این پروژه شخصیتها را حدس نمیزند: بلکه تضمین میکند که هوش مصنوعی پیش از ویرایش فایلها، کانتکست پروژه شما را بداند [1]. دایرکتوریهای خارجی آن را به عنوان «کانسپت پلاگین Akinator برای مدیریت دانش کدبیس» توصیف میکنند که بر تمرکز بر دانش و نه بازی تأکید دارد [8].
نکته:توجه: این بررسی بر اساس README در دسترس عموم ریپازیتوری و مطالب مرتبط است؛ فایلهای داخلی (پوشه docs، skills و غیره) در چارچوب این تحقیق استخراج نشدهاند [3].
Akinator چه مشکلی را حل میکند
در «وایب-کدینگ» (توسعه از طریق پرامپتها)، ایجنت هوش مصنوعی بهطور پیشفرض نه از منطق کسبوکار، نه از دلایل تصمیمات گذشته، نه از الزامات فعلی و نه از محدودیتهای معماری اطلاعی ندارد. در نتیجه، ایجنت کانتکست را بین جلسات از دست میدهد، اشتباهات را تکرار میکند و ممکن است با تصمیماتی که قبلاً گرفته شده است، در تضاد باشد [2].
Akinator با پشتیبانی از یک ویکی زنده در داخل خود ریپازیتوری که ایجنت بهطور خودکار آن را میخواند، این مشکل را برطرف میکند: دانشی درباره محصول، کسبوکار، الزامات، انحراف (drift)، معماری، کتابخانهها، تصمیمات، تاریخچه، قوانین، مهارتها و حافظه [1]. همانطور که نویسنده بیان میکند، ایجنت باید نه تنها کد، بلکه محصول و تاریخچه آن را نیز درک کند [7].
چه مواردی بهطور دقیق ردیابی میشوند (دومینهای دانش)
طبق README، Akinator همزمان با کد، دانش را در یازده حوزه دنبال میکند [2].
| دومین | آنچه ثبت میشود |
|---|---|
| Product (محصول) | محصول چیست، چه میکند و باید چه کاری انجام دهد |
| Business (کسبوکار) | منطق کسبوکار، قوانین و انگیزهها |
| Requirements (الزامات) | الزامات فعلی و در حال تکامل |
| Drift (انحراف) | محصول چگونه از قصد اولیه منحرف شده است |
| Architecture (معماری) | تصمیمات ساختاری، الگوها، محدودیتها |
| Libraries (کتابخانهها) | وابستگیها، نسخهها و دلایل انتخاب |
| Decisions (تصمیمات) | تصمیمات فنی و محصولی همراه با توجیه |
| History (تاریخچه) | گاهشمار تغییرات و دلایل آنها |
| Rules (قوانین) | قوانین پروژه برای کد و رفتار |
| Skills (مهارتها) | قابلیتهای قابل استفاده مجدد ایجنت |
| Memory (حافظه) | کانتکست دائمی بین جلسات |
نویسنده مکانیسم را به این صورت توصیف میکند: فرآیندهای تکراری به Skills تبدیل میشوند، خطاها به خاطر سپرده میشوند، درسهای آموختهشده به عنوان Rules تثبیت میشوند و تغییرات در قالب «قبل/بعد/چرا» ردیابی میشوند [7].
این ابزار از نظر فنی چگونه کار میکند
نصب
نصب با یک دستور انجام میشود و طبق گفته نویسنده، حدود ۳۰ ثانیه زمان میبرد [1]:
curl -fsSL https://raw.githubusercontent.com/ihabkhaled/akinator-ai/main/install.sh | sh
برای Windows (PowerShell 5.1+) از دستور مشابه irm ... | iex استفاده میشود که پس از آن باید ایجنت را ریاستارت کنید — و تمام، نیازی به فراخوانی چیزی نیست و پرامپتها مانند همیشه نوشته میشوند [2].
ادغام با پلتفرمها
| پلتفرم | شکل صریح (به ندرت مورد نیاز است) | عملکرد مداوم از طریق |
|---|---|---|
| Claude Code | /akinator:everything | هوکهای SessionStart و برای هر پرامپت |
| Codex | $akinator | بلوک علامتگذاری شده در AGENTS.md |
| Cursor | /akinator | قاعدهای که همیشه اعمال میشود |
مکانیسم کلیدی، هوکهای خودکار هستند: هوک SessionStart دانش را در ابتدای نشست بارگذاری میکند و هوک مربوط به هر پرامپت، کانتکست مرتبط را پیش از هر درخواست کاربر مجدداً تزریق میکند [1]. تنها دستور اختیاری برای اجبار به بارگذاری کامل کانتکست /akinator:everything است [7].
بهروزرسانی و حذف
- برای بهروزرسانی — کافی است همان دستور نصب را تکرار کنید.
- برای حذف — فلگ
--uninstall(در Windows عبارت-Uninstall) را اضافه کنید؛ مخزن بهصورت بایت به بایت بازیابی میشود. - گزینههای
--claude،--codexو--cursorپلتفرمها را انتخاب میکنند و--repo PATHبرای مسیر غیر استاندارد مخزن است [2].
نکته:نکته: به دلیل حذف نصب بهصورت بایت به بایت، این ابزار غیرتهاجمی است — میتوان آن را بدون ریسک تغییرات برگشتناپذیر در مخزن امتحان کرد [2].
Akinator چگونه هوش مصنوعی را به سمت کدنویسی بهتر هدایت میکند
بدون Akinator، ایجنت پرامپتی مانند «rate limiting را به اکسپورتها اضافه کن» دریافت میکند و فایلها را کورکورانه ویرایش میکند، بدون اینکه بداند اکسپورتها برای چه هدفی وجود دارند و چه الگوهایی در پروژه پذیرفته شده است. با Akinator، ایجنت ابتدا کانتکست محصول، قوانین کسبوکار، تصمیمات معماری، تاریخچه drift و کتابخانههای انتخابشده را میخواند و تنها پس از آن اقدام میکند [1].
به این ترتیب، اصل «درک قصد پیش از اقدام» اجرا میشود: دانش در همان تغییری که کد اعمال میشود بهروز میشود، بنابراین کانتکست قدیمی نمیشود [2]. طبق دیدگاه نویسنده، این امر باعث حفظ تطابق بین کد تولید شده توسط هوش مصنوعی و منطق واقعی محصول میشود، بهویژه با رشد پایگاه کد [7].
دریفت محصول، انتظارات و تغییرات منطق کسبوکار
دریفت محصول — شکاف بین замысел اولیه و چیزی است که محصول در طول زمان به آن تبدیل شده است. Akinator دریفت را به عنوان یک دامنه کامل از دانش ردیابی میکند: وضعیت قبلی، وضعیت فعلی، توجیه انتقال و مسیر آینده ثبت میشوند [1].
هنگام تغییر الزامات یا قوانین کسبوکار، یک «ردپای حسابرسی از قصدها» ایجاد میشود: خودِ تغییر در تاریخچه، توجیه آن در تصمیمات، انحراف از منطق قبلی در دریفت، و منطق جدید در دامنههای کسبوکار و قوانین قرار میگیرد و ایجنت تمام اینها را بهطور خودکار پیش از اقدام بعدی میخواند [2]. توصیف خارجی پروژه به یک چرخه ساختاریافته برای پردازش هر بار دسترسی به پایگاه کد اشاره میکند که در آن منطق کسبوکار، замысел محصول و رویههای عملیاتی مستقیماً در مخزن ثبت میشوند [8].
به لطف این قابلیت، ایجنت میتواند:
- تصمیماتی که تعمداً تغییر یافتهاند را بازنگاری (rollback) نکند؛
- درک کند که چرا وضعیت فعلی با برنامههای اولیه متفاوت است؛
- سازگاری با مسیر حرکت محصول را حفظ کند؛
- تضادهای تغییرات جدید با جهتگیری تعیینشده را شناسایی کند.
پشتیبانی از کانتکست هوش مصنوعی
کانتکست معمول در کدنویسی با هوش مصنوعی، زودگذر است و با پایان یافتن نشست (session) ناپدید میشود. Akinator یک کانتکست دائمی را در سه سطح ایجاد میکند: سطح نشست (هوکهای SessionStart و پرامپت)، سطح ریپوزیتوری (دانش در فایلهای داخل ریپو قرار دارد و همراه با کد نسخهبندی میشود) و سطح بین-نشستی (دومینهای Memory، History و Decisions) [1].
اثر عملی: یک نشست جدید با دانش کامل از پروژه آغاز میشود، نه از نقطه صفر. در مثالی از README، برای ایجنت کافی است بگویید «تکرار ناموفق پرداخت را اصلاح کن» یا «چرا این سرویس از Redis استفاده میکند؟» — و او بر اساس دانش واقعی ریپوزیتوری پاسخ میدهد [2].
«وایب-کدینگ» به عنوان یک شرکت کامل
Akinator وایب-کدینگ را از سطح ویرایش فایلها به سطح کدنویسی «آگاه از شرکت» ارتقا میدهد و به ایجنت کانتکستی میبخشد که به طور همزمان در اختیار یک مهندس، مدیر محصول و معمار سیستم است [1]:
- دانش مهندسی: الگوهای معماری، دلایل انتخاب کتابخانهها، قوانین کدنویسی.
- دانش مدیر محصول: محدوده و هویت محصول، نیازمندیهای فعلی، قوانین کسبوکار، تاریخچه انحراف (drift).
- دانش معمار: تصمیمات ساختاری، تاریخچه محدودیتها، دلایل انتخاب یا رد الگوها.
- حافظه تیم: چه کسی، چه چیزی را در چه زمانی تصمیم گرفت، تاریخچه تغییرات، مهارتهای قابل بازاستفاده.
در نتیجه، ایجنت «به گونهای کدنویسی میکند که گویی از روز اول در تیم شما بوده است» [2].
سناریوهای کاربردی استفاده
- آنبوردینگ توسعهدهنده: پرامپت «توضیح بده سیستم اکسپورت ما چگونه کار میکند» — پاسخ بر اساس کانتکست واقعی پروژه ساخته میشود، نه بر اساس حدسهای کلی.
- افزودن ویژگی: «محدودیت نرخ (rate limiting) را به اکسپورتها اضافه کن» — پیادهسازی، منطق موجود، قوانین و محدودیتهای معماری را در نظر میگیرد.
- رفع باگ: «تکرار ناموفق پرداخت را اصلاح کن» — اصلاحیه، رفتار تعمدی مستند شده در تصمیمات و تاریخچه را مختل نمیکند.
- سوال معماری: «چرا این سرویس از Redis استفاده میکند؟» — ایجنت توجیه واقعی را توضیح میدهد.
- تداوم بین نشستها: مهاجرتی که در یک نشست شروع شده، در نشست بعدی بدون از دست دادن کانتکست ادامه مییابد [2].
خلاصه مزایا
| مزیت | مکانیسم |
|---|---|
| حذف «شروع سرد» | هوک SessionStart کل کانتکست را بارگذاری میکند |
| جلوگیری از تغییرات متناقض | ایجنت پیش از اقدام، تصمیمات و انحرافات را میخواند |
| حفظ دانش سازمانی | دومینهای History و Memory پایدار هستند |
| همسو کردن کد با هدف کسبوکار | دومینهای Business و Product تغییرات را هدایت میکنند |
| کاهش «توهمات» درباره پروژه | ایجنت دانش واقعی ریپوزیتوری را میخواند |
| چندپلتفرمی بودن | Claude Code, Codex, Cursor |
| غیرتهاجمی بودن | لغو نصب، ریپوزیتوری را بایتبهبایت بازیابی میکند |
| عدم تغییر در گردش کار | پرامپتها مانند همیشه؛ هوکها بقیه کارها را انجام میدهند |
| دانش نسخهبندی شده | در داخل ریپوزیتوری قرار دارند و همراه با کد رشد میکنند [1] |
این موضوع چگونه با دیگر پروژههای Ihab Khaled همسو میشود
Ihab Khaled همچنین در حال توسعه ClawAI است — یک پلتفرم محلی و متنباز برای ارکستراسیون هوش مصنوعی که مدلهای متنباز را روی ماشین کاربر اجرا کرده و ارائهدهندگان پیشرو LLM را با مسیریابی پرومپتها و یک فضای کاری امن برای چت، حافظه، کانتکست و کانکتورها هماهنگ میکند [5]. این پروژه در حال تکامل است: در نسخه 0.2.0، از یک ساختار یکپارچه (monolith) به نه میکروسرویس مستقل NestJS با نمونههای مجزای PostgreSQL، RabbitMQ برای تبادل ناهمگام و Nginx در نقش API Gateway تغییر یافت، و سرویسهای Memory و File قابلیتهای حافظه دائمی، امبدینگها (embeddings) و نمایهسازی فایلها را اضافه کردند [6].
این پروژهها مکمل یکدیگرند: ClawAI تصمیم میگیرد که کدام مدل و چگونه ارکستره شود، و Akinator تضمین میکند که مدل پیش از شروع به فعالیت، پروژه شما را درک کند [1]. در اکوسیستم ChatGPT، پلاگینهای Akinator و AI Psychiatry نیز به نام این نویسنده ثبت شدهاند [9].
هشدار:هشدار: برخی از توصیفات خارجی Akinator جنبه مفهومی یا کاتالوگی دارند و ممکن است وضعیت دقیق فعلی کد را منعکس نکنند؛ تنها منبع معتبر، README و فایلهای خودِ مخزن (repository) است [8].
آنچه به صورت عمومی مستند نشده است
بر اساس بررسیهای انجام شده، جزئیات زیر در README عمومی раскры نشده است [2]:
- ساختار فایل داخلی دامنههای دانش (پوشههای docs و skills/akinator وجود دارند، اما محتویات آنها استخراج نشده است) [4]؛
- قالب دقیق ذخیرهسازی دانش (JSON، Markdown یا YAML)؛
- بهروزرسانی خودکار یا دستی دانش و روش استخراج کانتکست؛
- تأثیر هوکها (hooks) بر تأخیر پرومپتها، پشتیبانی از مونو-ریپازیتوریها و همکاری تیمی؛
- لایسنس، قیمتگذاری و یکپارچهسازی با CI/CD.
برای پاسخ به این سؤالات، بررسی فایلهای مخزن فراتر از README مورد نیاز است [3].
تصویر کلی
Akinator AI تجسم تغییری در پارادایم از «هوش مصنوعی به عنوان تولیدکننده کد» به «هوش مصنوعی به عنوان عضوی از تیم با حافظه» است. این ابزار با جاسازی دانش پروژه در خودِ مخزن و ارائه خودکار آن به ایجنتها، با محدودیت بنیادی کدنویسی با LLM — یعنی از دست دادن کانتکست — مبارزه میکند [1].
این امر بهویژه برای حوزههایی با مقررات سختگیرانه و منطق تجاری پیچیده ارزشمند است: درک دلایل عملکرد سیستم به روشی خاص پیش از اعمال تغییرات، ریسکهای عدم انطباق، مشکلات یکپارچگی دادهها و خطاهای رگرسیون را کاهش میدهد [7].
منابع
- https://github.com/ihabkhaled/akinator-ai
- https://github.com/ihabkhaled/akinator-ai/blob/main/README.md
- https://github.com/ihabkhaled/akinator-ai/tree/main/docs
- https://github.com/ihabkhaled/akinator-ai/tree/main/skills/akinator
- https://github.com/ihabkhaled/ClawAI
- https://github.com/ihabkhaled/ClawAI/blob/6a5bc7fb5c0532a90f393c49acaedb8832283f98/CHANGELOG.md
- https://www.linkedin.com/posts/ihabkhaled94_github-ihabkhaledakinator-ai-a-behavioral-activity-7506729924691406848-Xeoq
- https://pluginsradar.com/chatgpt/plugins/akinator-788ea07d
- https://pluginsradar.com/chatgpt/developers/ihab-khaled
منابع
- https://github.com/ihabkhaled/akinator-ai
- https://github.com/ihabkhaled/akinator-ai/blob/main/README.md
- https://github.com/ihabkhaled/akinator-ai/tree/main/docs
- https://github.com/ihabkhaled/akinator-ai/tree/main/skills/akinator
- https://github.com/ihabkhaled/ClawAI
- https://github.com/ihabkhaled/ClawAI/blob/6a5bc7fb5c0532a90f393c49acaedb8832283f98/CHANGELOG.md
- https://www.linkedin.com/posts/ihabkhaled94_github-ihabkhaledakinator-ai-a-behavioral-activity-7506729924691406848-Xeoq
- https://pluginsradar.com/chatgpt/plugins/akinator-788ea07d
- https://pluginsradar.com/chatgpt/developers/ihab-khaled