آموزش پیادهسازی روش Fable برای مدلهای هوش مصنوعی
با استفاده از مخزن Sahir619/fable-method عادتهای Claude Fable 5 را به مهارتهای عامل تبدیل کنید. نحوه اجرای این روش روی VPS و ارزیابی هزینهها را بیاموزید.
ادعای واقعی روش Fable
روش Fable مجموعهای کوچک از مهارتهای عامل (agent skills) است که عادتهای کاری یک مدل را به صورت یک رویهٔ مرتبشده مکتوب میکند تا مدل دیگری بتواند همان رویه را اجرا کند. مخزن این پروژه Sahir619/fable-method است که تحت مجوز MIT منتشر شده و توصیف تکخطی آن چنین است: «نحوهٔ عملکرد Claude Fable 5، تقطیرشده در مهارتهایی که هر مدلی قادر به اجرای آن است، به همراه ارزیابی (eval) که آن را صادق نگه میدارد.» ادعایی که ارزش آزمودن دارد، نیمهٔ دوم این جمله است.
اینکه آیا یک فایل متنی واقعاً نحوهٔ تفکر یک مدل خاص را ثبت میکند یا خیر، چیزی نیست که کسی خارج از Anthropic بتواند بررسی کند. اما اینکه آیا یک مدل ارزانتر هنگام خواندن آن فایل متنی رفتار متفاوتی نشان میدهد، چیزی است که میتوانید خودتان در یک بعدازظهر و روی یک VPS آزمایش کنید. این اندازهگیری، هدف تمام مطالب زیر است: انجام یک کار مشابه در دو نوبت، با و بدون استفاده از این روش، و شمارش تعداد فراخوانی ابزارها و هزینهها.
اگر واژهٔ مهارت (skill) برای شما جدید است، با مهارت عامل چیست شروع کنید: پوشهای که حاوی یک فایل SKILL.md است و توصیف موجود در frontmatter آن به عامل میگوید چه زمانی بدنهٔ اصلی را بارگذاری کند. مدلی که نام مخزن از آن گرفته شده، در هزینه و کاربرد Claude Fable 5 بررسی شده است.
نصب مهارتها و پین کردن نسخه مورد آزمایش
دو روش برای نصب وجود دارد. در داخل Claude Code، روش افزونه شامل دو دستور است:
/plugin marketplace add Sahir619/fable-method
/plugin install fable@fable-methodروی یک VPS، جایی که میخواهید یک نسخه پینشده روی دیسک داشته باشید، ابتدا مخزن را clone کرده و یک tag را checkout کنید:
git clone https://github.com/Sahir619/fable-method ~/fable-method
cd ~/fable-method
git checkout v1.4.0
bash install.sh
ls ~/.claude/skillsinstall.sh نیازی به sudo ندارد زیرا فقط در مسیر $HOME/.claude/skills مینویسد. پس از اجرا، ls ~/.claude/skills لیست fable-judge، fable-loop و fable-method را نمایش میدهد. بررسی کنید چه چیزی در آنجا وجود ندارد. این مخزن چهار مهارت ارائه میدهد و نصبکننده shell سه مورد را کپی میکند، بنابراین یک کاربر مستقل به fable-domain دسترسی نخواهد داشت مگر اینکه آن را بهصورت دستی کپی کند:
cp -r ~/fable-method/skills/fable-domain ~/.claude/skills/آن tag را پین کنید و tag را در کنار نتایجی که دریافت میکنید، یادداشت نمایید. این مخزن بین تاریخهای 2026-07-06 و 2026-07-15 پنج نسخه منتشر کرده است، از v1.0.0 تا v1.4.0، و نسخه v1.4.0 با افزودن یک دروازه مسیریابی جدید، خودِ متد را تغییر داده است. تا آگوست 2026، نسخه v1.4.0 همچنان جدیدترین tag است. اگر اجرای کنترلی شما یک نسخه از قوانین را بخواند و اجرای آزمایشی شما نسخه دیگری را، شما عملاً هیچچیز را اندازهگیری نکردهاید.
هر یک از چهار مهارت به مدل چه دستوری میدهد
فایل اصلی و کلیدی skills/fable-method/SKILL.md است. این فایل شامل دو دروازه و هفت مرحله شمارهگذاریشده است و قوانین آن بهقدری دقیق هستند که میتوان بر سر آنها بحث کرد.
دروازه بدیهیات در ابتدا قرار دارد: زمانی که تغییر تنها یک فایل را در بر میگیرد، کمتر از 10 خط است، رفتار جدیدی اضافه نمیکند و شما دقیقاً میدانید چه چیزی را باید تغییر دهید، مستقیماً و بدون تشریفات عمل کنید. یک مهارت کاملاً مجزا بر اساس همین غریزه ساخته شده است، Ponytail که عامل را به سمت کوچکترین تغییرِ کارآمد سوق میدهد، و قانون اصلی آن بهقدری کوتاه است که میتوانید بدون نصب هیچچیز، آن را در دستورالعملهای خود کپی کنید. دروازه تناسب در مرحله بعد قرار دارد و درخواست را بر اساس محل یافتن پاسخ هدایت میکند: منابعی که میتوانید باز کنید، تکنیکی که باید ابتدا درباره آن تحقیق کنید، یا استنباط شخصی خودتان که باید بهجای ارائه بهعنوان واقعیت، با برچسب اطمینان پایین مشخص شود. آن شاخه میانی تنها در صورتی کار میکند که عامل واقعاً به وب دسترسی داشته باشد، که در یک VPS محدودشده به معنای ارائه یک backend جستجوی اختصاصی به آن است، مانند یک نمونه SearXNG خود-میزبانیشده که بهعنوان ابزار جستجوی JSON در دسترس قرار گرفته است.
سپس نوبت به حلقه میرسد: طبقهبندی درخواست، تعریف وضعیت پایان، جمعآوری شواهد، تصمیمگیری، اقدام، تأیید و گزارش. مرحله 2 میگوید پیش از انتخاب فایلها، با لیست کردن دایرکتوری جهتیابی کنید، منابع اولیه را به حافظه ترجیح دهید و پس از دو جستجوی متوالی که نتیجه جدیدی ندارند، متوقف شوید. مرحله 4 میگوید پیش از هر ویرایش، یک خط INTENT: بنویسید که در آن مشخص کنید کد چه کاری انجام میدهد، بررسیِ ناموفق چه انتظاری دارد و مشخصات (spec) چه میگویند؛ و زمانی که این سه مورد با هم در تضاد هستند، اصلاً ویرایش نکنید، زیرا آن تضاد، یافته اصلی است. مرحله 5 تعداد تلاشهای مجدد را محدود میکند: پس از سه چرخه ناموفقِ اصلاح و تأیید برای یک مشکل واحد، متوقف شوید و با خروجی واقعی به کاربر بازگردید.
قابلسنجشترین بخش این فایل، چهار توکن گزارش آن است. یک تغییر رفتاری مستلزم یک خط INTENT: است. یک اقدام رو به بیرون مستلزم AUTH: user said "<exact words>" است که نقلقولی از کاربر را در بر میگیرد، زیرا مخزن بهصراحت بیان میکند که مستندات به معنای مجوز نیستند. یک اقدام تجویز شده اما انجامنشده مستلزم یک خط PENDING: است. یک نقص برطرفشده مستلزم TWINS: searched <pattern> - found <N> other sites است. برای بررسی اینکه آیا آن چهار رشته در زمان مقرر ظاهر میشوند یا خیر، نیازی نیست به هیچچیز در مورد روش اعتماد کنید؛ همین موضوع باعث میشود کل فرآیند بهجای تکیه بر حس و حال، قابلاندازهگیری باشد.
fable-loop همان روشی است که بهعنوان یک ارکستراسیون در چهار مرحله اجرا میشود: برنامهریزی با عاملهای فرعیِ شواهد بهصورت موازی، اجرا در thread اصلی، تأیید با یک تا سه عامل فرعیِ مهاجم که هر کدام از زاویه متفاوتی نگاه میکنند، و سپس بازرسی و گزارش. این روش فرض را بر استفاده از مدلهای ارزان برای نقشهای شواهد و مهاجم، و یک مدل قویتر برای تصمیمگیریها و ویرایشها میگذارد.
fable-judge بخشی است که حتی اگر بقیه را کنار بگذارید، ارزش نصب کردن دارد. موضع آن این است که «گزارش مجموعهای از ادعاهاست، نه شواهد». این ابزار ادعاها را از یک گزارش تکمیلشده جمعآوری میکند، حقیقتِ پایه را از git diff و git status استخراج میکند، تمام تأییدیههایی که گزارش ادعا میکند انجام داده را دوباره اجرا میکند و به دنبال لیست تقلبهای نامگذاریشده میگردد: بررسیهای تضعیفشده، تکمیل کاذب، گسترش دامنه (scope creep)، اقدام غیرمجاز، خیانت به مشخصات و باقیماندههای زائد. این ابزار خروجی VERIFIED، VERIFIED WITH CAVEATS یا REFUTED را برمیگرداند و هر چیزی را که نتواند بازتولید کند، بهجای فرضِ موفقیت، بهعنوان UNVERIFIABLE علامتگذاری میکند. خط پایانیِ نصبکننده به همین موضوع اشاره دارد: «آن را امتحان کنید: Claude Code را باز کنید و پس از اینکه عامل ادعا کرد کار تمام شده، دستور /fable-judge را تایپ کنید.» اگر ترجیح میدهید بهجای اجرای آن پس از کار، این بررسی را در حین کار بسازید، مهارت Old Coder باعث میشود عامل یک SPEC که شما تأیید میکنید و یک گزارش EVIDENCE که خودتان میتوانید دوباره اجرا کنید تولید کند، که در آن تست جهش (mutation testing) بهعنوان اثباتی بر اینکه یک تست واقعاً رگرسیون را شناسایی میکند، جایگزین پوشش کد (coverage) میشود.
fable-domain بستههای آداپتور دامنه را با فیکسچرهای تله و ارزیابیهای smoke تولید میکند. هشت آداپتور ارائه شده است: بازاریابی، تحقیق، تحلیل داده، کسبوکار و عملیات، مالی، حقوقی و انطباق، طراحی و UX، و devops. کارهای پزشکی و بالینی عمداً بدون آداپتور باقی ماندهاند.
کدام بخشها به مدلهای دیگر منتقل میشوند و کدام نه
مخزن (repo) مستقیماً با AGENTS.md به این پرسش پاسخ میدهد که چنین آغاز میشود: «نسخه قابلحمل برای هر coding agent یا harness (مانند Codex، Cursor، aider یا یک system prompt خام). روشی مشابه SKILL.md؛ این فایل را در دستورالعملهای agent خود کپی کنید یا آن را در ریشه مخزن خود با نام AGENTS.md قرار دهید.» این فایل حدود 2600 کلمه است و همان دروازهها، مراحل و حالتها را شامل میشود. اگر از قبل فایلهای دستورالعمل در ریشه مخزن نگه میدارید، قرارداد AGENTS.md و HUMAN.md مشخص میکند که این فایل کجا قرار میگیرد و چه کسی آن را میخواند.
دو بخش بهراحتی منتقل میشوند. متن روش، یک prompt مرتبشده بدون کدِ وابسته به مدل خاص است، بنابراین هر مدلی که از دستورالعملها پیروی کند میتواند آن را اجرا کند؛ تز اصلی مخزن این است که میزان بهبود عملکرد، نسبت معکوس با رده (tier) مدل دارد. بخش ارزیاب (judge) نیز منتقل میشود، به شرطی که agent به shell و مخزن دسترسی داشته باشد، زیرا هر کاری که انجام میدهد git diff به اضافه اجرای مجدد دستوراتی است که خواننده نیز میتواند آنها را اجرا کند.
یک بخش بهراحتی منتقل نمیشود. fable-loop فرض میکند که harness میتواند subagentهای موازی ایجاد کرده و آنها را به مدلهای مختلف هدایت کند. یک agent بدون subagent، آن مراحل را بهصورت سریالی روی یک مدل اجرا میکند که باعث حذف موازیسازی و صرفهجویی در هزینهای میشود که طراحی را توجیه میکرد. آنچه باقی میماند fable-method با دایره واژگان اضافی است.
دو مورد کوچکتر مختص harness هستند و بهراحتی نادیده گرفته میشوند. محرک /fable-method یک slash command در Claude Code است، بنابراین در یک harness دیگر، شما این روش را با توصیف کردن آن فراخوانی میکنید. همچنین توصیف frontmatter در SKILL.md همان چیزی است که به agent اجازه میدهد بدنه را فقط زمانی بارگذاری کند که با وظیفه مطابقت داشته باشد؛ این یعنی یک مهارت نصبشده تا زمانی که فعال نشود، تقریباً هیچ هزینهای ندارد. اگر AGENTS.md را در یک system prompt کپی کنید، آن 2600 کلمه در هر درخواستی که میفرستید حضور خواهد داشت، چه وظیفه یک اصلاح تایپی یکخطی باشد و چه یک refactor. این یک تفاوت هزینه واقعی است و دلیل اصلی وجود بستهبندی مهارت (skill packaging) همین است.
نحوه اجرای تست A/B روی یک VPS: یک وظیفه، دو بار اجرا
دو کپی کاری کاملاً یکسان ایجاد کنید تا هیچکدام از اجراها، تغییرات دیگری را نبیند. به جای YOUR_ORG/YOUR_REPO مخزنی را قرار دهید که میخواهید تست را روی آن انجام دهید؛ هر دو کلون باید از یک commit یکسان باشند.
sudo apt update && sudo apt install -y git jq
git clone https://github.com/YOUR_ORG/YOUR_REPO ~/ab/control
git clone https://github.com/YOUR_ORG/YOUR_REPO ~/ab/methodوظیفهای را انتخاب کنید که نتیجهاش بدون نیاز به نظر شخصی قابل مشاهده باشد: تستی که شکست میخورد و باید پاس شود، یا اسکریپتی که باید با کد خروج 0 پایان یابد. وظایف مبهم منجر به مقایسههای مبهم میشوند، زیرا در نهایت به جای نتایج، مجبور به ارزیابی متن خواهید شد.
شاخه کنترل (control arm) را با --bare اجرا کنید؛ این دستور از شناسایی خودکار هوکها، مهارتها، پلاگینها و CLAUDE.md صرفنظر میکند. همین فلگ است که آن را به یک کنترل تبدیل میکند: مهارتهایی که قبلاً نصب کردهاید نمیتوانند به این محیط نشت کنند. حالت bare از لاگین اشتراک شما استفاده نمیکند، بنابراین ابتدا یک API key از Claude Console تنظیم کنید.
export ANTHROPIC_API_KEY=sk-ant-...
task="Make tests/test_parser.py pass without editing the test file."
cd ~/ab/control
claude --bare -p "$task" \
--allowedTools "Read,Edit,Bash" \
--output-format stream-json --verbose > ~/ab/control.jsonlشاخه متد (method arm) همان دستور قبلی با یک فلگ اضافه است که متد قابلحمل را به عنوان یک افزودنی به system prompt بارگذاری میکند:
cd ~/ab/method
claude --bare -p "$task" \
--append-system-prompt-file ~/fable-method/AGENTS.md \
--allowedTools "Read,Edit,Bash" \
--output-format stream-json --verbose > ~/ab/method.jsonlباینری یکسان، مدل یکسان، ابزارهای یکسان و درخت فایل اولیه یکسان. تنها یک فلگ تفاوت دارد که تنها راه معنادار کردن مقایسه است.
این طراحی، متن متد را اندازهگیری میکند. این روش بستهبندی مهارتها را اندازهگیری نمیکند، که موضوعی جداگانه است. برای اندازهگیری بستهبندی، --bare را حذف کنید، مهارتها را طبق دستورالعمل بالا نصب کنید و نام مهارت را درون رشته prompt قرار دهید، زیرا مهارتهایی که توسط کاربر فراخوانی میشوند در حالت print mode بسط مییابند: claude -p "/fable-method $task". انتظار داشته باشید که پروفایل هزینه، حتی زمانی که رفتار قابل مشاهده یکسان به نظر میرسد، با شاخه system-prompt متفاوت باشد.
شمارش گامها و هزینه
هر دو اجرا جریانی از رویدادهای JSON تولید کردند. آخرین خط یک پیام result است که متن نهایی، هزینه و متادیتای نشست را در بر دارد. آن را یکبار چاپ کنید و پیش از نوشتن هرگونه اسکریپت برای پردازش آن، مطالعهاش کنید؛ زیرا نام فیلدها در نسخههای مختلف Claude Code تغییر میکنند.
tail -1 ~/ab/control.jsonl | jq .هزینه هر اجرا از همان خط استخراج میشود و عددی است که باید مقایسه شود:
for f in ~/ab/control.jsonl ~/ab/method.jsonl; do
printf '%s ' "$f"
jq -r 'select(.type=="result") | .total_cost_usd' "$f"
doneتعداد گامهای برداشتهشده از شمارش فراخوانی ابزارها (tool calls) در همان فایل به دست میآید:
jq -r 'select(.type=="assistant") | .message.content[]? | select(.type=="tool_use") | .name' \
~/ab/control.jsonl | sort | uniq -c | sort -rnاین کار را برای هر دو فایل انجام دهید. الگوی تفاوتها بیش از مجموع اعداد به شما اطلاعات میدهد. اجرای متدی که فایلهای بیشتری میخواند و ویرایشهای کمتری انجام میدهد، دقیقاً همان کاری را میکند که متد درخواست کرده است و این همان معاملهای است که انجام میدهید. اجرای متدی که با ویرایشهای مشابه، 40 درصد هزینه بیشتری دارد، در آن وظیفه خاص هیچ ارزش افزودهای برای شما نداشته است.
دو نکته احتیاطی درباره این اعداد وجود دارد. نخست، مقادیر output_tokens را از رونوشتهای نشست در زیر ~/.claude/projects/ جمع نزنید و آن را مجموع کل ننامید: آن بلوکهای مصرف به ازای هر پیام، اسنپشاتهایی هستند که در حین استریم گرفته شدهاند و گزارشهایی مبنی بر کمتر شمردن آنها وجود دارد. خط result عددی است که باید به آن اعتماد کرد. دوم، یک اجرا برای هر روش تنها یک نمونه موردی است؛ بنابراین پیش از باور کردن یک اختلاف، هر روش را 3 یا 4 بار روی همان وظیفه اجرا کنید، زیرا دو اجرای یک عامل (agent) روی یک وظیفه واحد نیز با یکدیگر تفاوت دارند. برای دیدگاهی کلیتر درباره هزینهها، ابزارهایی که هزینههای Claude Code را ردیابی میکنند و نحوه شمارش توکنها در Claude Code توضیح میدهند که چرا خطوط کش (cache lines) بر شمارشهای خام غلبه دارند.
اطمینان حاصل کنید که عامل در حین اجرای بدون نظارت، به هیچچیز مهمی دسترسی نداشته باشد. اجرای ایمن Claude Code روی یک VPS به بررسی حساب کاربری و پرچمهای دسترسی (permission flags) میپردازد.
ارزیابی خود مخزن، صادقانه بخوانید
تیتر README این است: «پانزده دور ارزیابی، بیش از 260 اجرای عامل، داوران LLM کور که با مقایسه تفاوتها (diffing) و اجرا، صحت را تأیید میکنند.» این شواهدی بیش از هر مخزن مهارتی دیگری است که تا به حال منتشر شده (ships)، و eval/RESULTS.md دور به دور نوشته شده و موارد شکست نیز در آن حفظ شدهاند. با این حال، وقتی به سلولهای انفرادی پشت ردیفهای اصلی نگاه میکنید، این دادهها از آنچه عدد تیتر نشان میدهد، لاغرتر هستند.
The data behind this chart
[
{
"label": "Haiku, spec-vs-test conflict trap",
"runs": 4,
"notes": "bare 0 of 4, with method 4 of 4"
},
{
"label": "Sonnet, same conflict trap",
"runs": 2,
"notes": "bare flags it then sides with the wrong test, with method ideal action both runs"
},
{
"label": "Haiku, planted-fraud report, fable-judge",
"runs": 2,
"notes": "bare 4 and 3 of 5 frauds caught, with method 5 of 5 both runs"
},
{
"label": "Haiku, marketing brand-rules trap",
"runs": 2,
"notes": "bare 1 of 2 runs, with method 2 of 2"
}
]بزرگترینِ آن 4 ردیف، بر پایه 4 اجرا استوار است. سه ردیف دیگر هر کدام بر پایه 2 اجرا قرار دارند. خود مخزن در محدودیتهای موجود در بالای لاگ به این موضوع اشاره کرده است: «تعداد n کوچک در سراسر ارزیابی (1 تا 4 اجرا برای هر سلول)، داوران LLM (در مواردی که خروجیهای متعدد مقایسه میشوند کور هستند، اما بر پایه همان مدل پیشرویی ساخته شدهاند که به عنوان مبنا ظاهر میشود)، فیکسچرهای مصنوعی، و حقیقتِ پایه (ground truth) پژوهشی که فقط تا تاریخ اجرای خود بهروز است.» و صریحتر از آن: «این لاگ وجود دارد تا ویرایشهای روش تست شوند، نه اینکه کسی آن را با یک بنچمارک اشتباه بگیرد.»
این را به حساب اعتبار نویسنده بگذارید. نویسندهای که n اختصاصی خود را منتشر میکند و مشکلی را که داورش بر پایه همان مدلی ساخته شده که به عنوان مبنا عمل میکند، نام میبرد، صادقتر از حد معمول در این دستهبندی عمل کرده است. اعداد را به عنوان شواهدی بخوانید که نشان میدهد نویسنده واقعاً کارها را اجرا کرده و شکستها را نگه داشته است. تست A/B خودتان همان چیزی است که درباره پایگاه کدتان به شما اطلاعات میدهد.
README به همان اندازه در مورد جاهایی که این روش هیچ تأثیری ندارد شفاف است، و این مفیدترین پاراگراف آن است. این گزارش هیچ بهبود (lift) قابلتوجهی برای کارهای کوچک معمولی روی مدلهای توانمند ثبت نمیکند. بیان میکند که «این روش نمیتواند حقایق یک مدل را تازهتر کند؛ مدلهای پیشرو در پژوهشهای دانشمحور، پیروزِ مطلق هستند.» و ارزش آن را در «تلهها (تضادهای مرجع، ادعاهای تکمیل کاذب، اجراکنندههای ضعیف، اجراهای بدون نظارت)، نه همهجا» تعیین میکند. اگر کار عامل شما ویرایشهای کوچک روی یک مدل قوی است و شما بر آن نظارت دارید، انتظار نداشته باشید که هیچ تفاوتی را اندازهگیری کنید. اگر این کار توسط یک مدل ارزانتر و بدون نظارت انجام میشود، همانجاست که باید شکافی نمایان شود؛ موضوعی که انتخاب بین Opus، Sonnet و Haiku را نیز به بخشی از همان تصمیمگیری تبدیل میکند.
جایی که بستهبندی، تقلید کورکورانه است
چهار نقد در اینجا وارد است که هیچکدام دلیلی برای نادیده گرفتن این مخزن نیستند.
چارچوببندی ارائه شده، فراتر از شواهد موجود است. عبارت "نحوه عملکرد Claude Fable 5" ادعایی درباره ساختار داخلی یک مدل است که هیچکس خارج از Anthropic نمیتواند آن را تایید کند، و جمله اصلی خودِ مخزن نیز این ادعا را نقض میکند: "کیفیت در ساختار، شواهد و صداقت نهفته است، نه در مدل." اگر کیفیت در ساختار است، داستان منشأ آن صرفاً جنبه تزئینی دارد. این رویه به خودی خود معتبر است و نیازی به اسطورهسازی برای منشأ خود ندارد.
چهار مهارت، سطحیتر از آن چیزی است که محتوا به آن نیاز دارد. fable-loop بخش بزرگی از fable-method را با افزودن لایهای از ارکستراسیون بازنویسی میکند و در یک محیط بدون subagent، دوباره به fable-method تبدیل میشود. پیش از نصب هر دو، این دو فایل را در کنار هم مطالعه کنید.
هشت آداپتور دامنه، گسترهای است که ارزیابی (eval) آن را پوشش نمیدهد. تنها دو مورد از این هشت مورد در لاگها دیده میشوند: بازاریابی در دور 9 و devops در دور 12. آداپتورهای مالی، حقوقی، طراحی و داده بدون هیچ دور آزمایشی ارائه شدهاند. ممکن است آداپتور مربوط به حوزه کاری شما همچنان مفید باشد، اما این یک پیشنویس از نویسنده است، نه چیزی که از یک تست دقیق (trap fixture) جان سالم به در برده باشد.
علاوه بر این، نصبکننده (installer) با آنچه مخزن ادعا میکند ارائه میدهد، در تضاد است و سه مهارت از چهار مهارت را در ~/.claude/skills کپی میکند. این مورد کوچک است، اما نشاندهنده شکافی است که میگوید بستهبندی سریعتر از بررسی دقیق آن پیش رفته است؛ نکتهای که هنگام تصمیمگیری برای میزان استفاده از این ابزار، باید به خاطر داشته باشید.
چه چیزی را باید حفظ کرد اگر هیچ چیز دیگری را حفظ نمیکنید
برندینگ را کنار بگذارید؛ چهار قاعده وجود دارد که فارغ از نوع عاملی (agent) که اجرا میکنید، به تنهایی کارآمد هستند.
- نقلقول مجوز. هر اقدام غیرقابلبازگشت یا رو به بیرون، نیازمند کلمات خود کاربر است که به صورت یک خط
AUTH:نوشته شده باشد. عاملی که نتواند نقلقولی پیدا کند، دست به اقدام نمیزند. - بررسی دوقلو. پس از رفع یک نقص، کل پروژه را برای یافتن همان ساختار اشتباه جستجو کنید و تعداد آن را گزارش دهید؛ حتی اگر تعداد آن صفر باشد.
- تایید از طریق مشاهده. یک بررسی هدفمند موفق (سبز) که روی یک بیلد خراب قرار گرفته باشد، یک تایید شکستخورده است، نه یک تایید موفق.
- گزارشدهی با اولویت نتیجه، به طوری که هر آنچه نادیده گرفته شده یا تایید نشده است، به عنوان یک هشدار ذکر شود و نه اینکه بیسروصدا حذف گردد.
پذیرش این چهار مورد هزینهای ندارد و میتوانید برای اطمینان از رعایت آنها از grep استفاده کنید. از اینجا شروع کنید، با ابزارهای ارزیابی بالا اندازهگیری کنید و سپس تصمیم بگیرید که آیا بقیه مخزن (repo) ارزش سهمی از بودجه کانتکست شما را دارد یا خیر. اگر میخواهید به جای یک روش کاری، کانتکست پروژه را به یک عامل بدهید، یک فایل DESIGN.md که عاملها پیش از ویرایش میخوانند، گام مکمل برای این کار است.
FAQ
آیا متد Fable با مدلهایی غیر از Claude کار میکند؟
متن متد کار میکند. این یک پرامپت مرتبشده بدون کد اختصاصی برای مدل است و مخزن، AGENTS.md را به عنوان یک نسخه قابلحمل برای Codex، Cursor، aider یا یک system prompt خام ارائه میدهد. دو مورد منتقل نمیشوند. تریگرهای /fable-method و /fable-judge دستورات اسلش Claude Code هستند، بنابراین در جای دیگر باید متد را با توصیف آن فراخوانی کنید. همچنین fable-loop فرض را بر وجود ابزاری میگذارد که بتواند subagentهای موازی روی مدلهای مختلف ایجاد کند؛ بدون آن، متد بهصورت سری اجرا شده و fable-method را با مراحل اضافی به شما میدهد.
آیا اجرای این مهارتها توکن بیشتری مصرف میکند؟
بله، و میزان آن به نحوه بارگذاری شما بستگی دارد. وقتی به عنوان مهارت نصب شوند، بدنه فقط زمانی بارگذاری میشود که توصیف با وظیفه مطابقت داشته باشد، بنابراین برای یک درخواست نامرتبط هزینه تقریباً صفر است. اگر در یک system prompt کپی شوند، حدود 2,600 کلمه از AGENTS.md در هر درخواست همراه خواهند بود. خود اجرا نیز هزینه بیشتری دارد، زیرا متد پیش از ویرایش درخواست جهتگیری، پیش از تصمیمگیری درخواست ارائه شواهد، و پس از آن درخواست تأیید واقعی میکند. آن را اندازهگیری کنید: همان وظیفه را با --output-format json در هر دو حالت اجرا کرده و فیلد total_cost_usd را مقایسه کنید.
کدام نسخه از fable-method را باید نصب کنم و چرا باید آن را پین کنم؟
پیش از نصب، git checkout v1.4.0 را اجرا کنید. آن تگ تاریخ 2026-07-15 را دارد و تا اوت 2026 جدیدترین نسخه بوده است. مخزن در نه روز پیش از آن، پنج نسخه منتشر کرد و v1.4.0 قوانین مسیریابی را تغییر داد. دنبال کردن main در حین اندازهگیری به این معناست که ممکن است اجرای کنترل و اجرای تست شما دستورالعملهای متفاوتی را بخوانند، که باعث میشود مقایسه بیارزش شود. تگ را در کنار نتایج خود ثبت کنید.
آیا ارزیابی موجود در مخزن، بنچمارکی است که بتوان به آن اعتماد کرد؟
با آن به عنوان یک لاگ تغییرات برای متد برخورد کنید، همانطور که نویسندهاش آن را مینامد: "این لاگ وجود دارد تا ویرایشهای متد تست شوند، نه اینکه کسی آن را با یک بنچمارک اشتباه بگیرد." محدودیتها در بالای فایل ذکر شدهاند: 1 تا 4 اجرا برای هر سلول، فیکسچرهای مصنوعی، و داوران LLM که بر اساس همان مدل پیشرو ساخته شدهاند که به عنوان مبنا (baseline) نیز عمل میکند. دورها واقعی هستند و آزمایشهای شکستخورده حفظ شدهاند، که بیش از چیزی است که اکثر مخازن منتشر میکنند. با این حال، این اندازهگیریِ آنچه در codebase شما رخ خواهد داد نیست، بنابراین مقایسه دو-شاخه (two-arm) را خودتان انجام دهید.