आप किसी कर्मचारी को एक-एक करके उन्हें निर्देश टाइप करके प्रबंधित नहीं करते। आप उन्हें एक अनुबंध, एक परिवीक्षा अवधि और यह मापने का एक तरीका देते हैं कि क्या वे अभी भी वेतन के लायक हैं। Fable 5 उसी व्यवहार का हकदार है।
समस्या यह है। Fable 5 आपके बिना घंटों तक चल सकता है, अपने स्वयं के उप-एजेंट स्पिन कर सकता है, और एक सप्ताह का बैकलॉग रातोंरात खत्म कर सकता है। यह प्रति टोकन वास्तविक पैसे भी खर्च करता है, जैसे ही आप दायरा खुला छोड़ते हैं यह ओवर-डिलीवर करता है, और यह एक गलत उत्तर का बचाव अधिकांश मनुष्यों की तुलना में बेहतर करता है जो एक सही उत्तर का बचाव करते हैं।
अप्रबंधित छोड़ दिया जाए, तो यह आत्मविश्वासपूर्ण बकवास पैदा करने का एक महंगा तरीका है। एक अनुबंध पर रखा जाए, तो यह एक पूर्णकालिक कर्मचारी के सबसे करीबी चीज है जिसे आप प्रतिदिन कुछ डॉलर में चला सकते हैं।
यह वह अनुबंध है। इसका सिद्धांत नहीं। वास्तविक फ़ाइलें, जिस क्रम में आप उन्हें लिखते हैं, एक वास्तविक डिप्लॉयमेंट के आसपास बनाई गई हैं: मॉनिटरिंग बॉट जो मैं पहले से ही पेरिस में एक VPS पर pm2 के माध्यम से चलाता हूं। Auth फ़्लो और बिलिंग टेबल मेरा अटैक सरफेस नहीं हैं। RPC कुंजियाँ, वॉलेट पते, और लाइव ब्लॉकचेन लेन-देन हैं। नीचे दिया गया सिस्टम उसके लिए बनाया गया है, न कि किसी सामान्य SaaS रेपो के लिए।
पाँच खंड। प्रत्येक एक फ़ाइल भेजता है। कुल सेटअप समय: दो घंटे से कम।
सेटअप
1claude CLI (Claude Code) Fable 5 एक्सेस के साथ # उपयोग क्रेडिट, सीमित2llm CLI + OpenRouter कुंजी # सस्ते मॉडल के लिए3jq, git, pm2, cron4एक VPS जिसमें बॉट पहले से चल रहे हैं
आपको अंत में क्या मिलता है:
1agent-contract/2 CONTRACT.md # खंड 1: रोजगार की शर्तें3 ops/4 shift.sh # खंड 3: दैनिक शिफ्ट5 dispatcher.md # रूटिंग प्रॉम्प्ट, केवल Fable6 intake.md # सस्ता रीडर, पहले लॉग पढ़ता है7 worker.md # सस्ता मॉडल, टाइपिंग करता है8 reviewer.md # नया Fable, काम की जाँच करता है9 boundaries.md # खंड 2: यह क्या छू सकता है और क्या नहीं10 guardrails/signoff.sh # खंड 2: नियतात्मक हाँ/नहीं11 personnel/12 trust.tsv # खंड 4: जिसने स्वायत्तता अर्जित की है13 standing-checks/ # खंड 4: चीजें जो सत्य रहनी चाहिए14 incidents/15 log.tsv # खंड 5: क्या टूटा और कब16 runbook.md # खंड 5: इसके बारे में क्या करना है17 Makefile
शुरू करने से पहले एक उद्धरण योग्य नियम, क्योंकि यह उसके बाद की हर चीज के लिए स्वर निर्धारित करता है:
एक एजेंट जो अपने स्वयं के होमवर्क को ग्रेड करता है, वह एक एजेंट है जो खुद को वृद्धि देता है।
इस सिस्टम में कुछ भी अपने स्वयं के काम की जाँच नहीं करता। एक बार भी नहीं।
खंड 1: अनुबंध (CONTRACT.md)
एक कर्मचारी अनुबंध सुझावों की सूची नहीं है। यह संख्याएँ, कठोर रुकावटें, और खंड हैं जो लागू किए जाते हैं चाहे कर्मचारी उनसे सहमत हो या नहीं। इस फ़ाइल को उसी तरह लिखें। कोई "कृपया" या "प्रयास करें" नहीं। एक मॉडल नरम भाषा के चारों ओर अनुकूलन करता है जिस तरह एक इंटर्न एक प्रबंधक के चारों ओर अनुकूलन करता है जो कभी जाँच नहीं करता।
1# CONTRACT.md23## कठोर रुकावटें (कोई अपवाद नहीं, दो बार नहीं पूछना)4- अनुमोदन के बिना वॉलेट कुंजियाँ, .env फ़ाइलें, या RPC क्रेडेंशियल को कभी न छुएं।5- पास किए गए साइनऑफ़ के बिना किसी लाइव बॉट प्रक्रिया (pm2 restart) में कभी भी परिवर्तन न करें।6- पहले पूछे बिना कभी भी एक ही कमिट में 150 बदली हुई लाइनों से अधिक न करें।7- आउटपुट के अपने स्वयं के पढ़ने के आधार पर कभी भी किसी कार्य को पूर्ण होने का दावा न करें।8 पूर्ण का अर्थ है कि साइनऑफ़ स्क्रिप्ट ने 0 लौटाया। और कुछ नहीं मायने रखता।9- कभी भी कोई API एंडपॉइंट, कॉन्ट्रैक्ट पता, या कॉन्फ़िग वैल्यू न बनाएं।10 यदि यह रेपो में नहीं है, तो रुकें और पूछें।11- कभी भी कोई नई डिपेंडेंसी न जोड़ें। इसे ops/shift-log.md में लिखें और वहीं रुकें।12- किसी चीज़ को पास कराने के लिए कभी भी किसी टेस्ट, अलर्ट थ्रेशोल्ड, या मॉनिटर स्थिति को संपादित या हटाएं नहीं।13 यह फिक्स नहीं है। यह धोखाधड़ी है।14- कभी भी किसी शिफ्ट के अंदर "high" से ऊपर के प्रयास पर न चलाएं। "xhigh" केवल एक बार की समीक्षाओं के लिए है15 जिसे आप हाथ से ट्रिगर करते हैं, कभी भी स्वचालित लूप के लिए नहीं।16- कभी भी किसी प्रतिक्रिया में अपने आंतरिक तर्क को सुनाएं या समझाएं नहीं। यह17 सहायक के रूप में पढ़ा जाता है। Fable 5 पर यह इसके बजाय एक रिफ्यूज़ल क्लासिफायर को ट्रिगर कर सकता है।1819## कार्य रूटिंग (कौन क्या करता है, सबसे सस्ता सक्षम कर्मचारी जीतता है)20| मॉडल | प्रति कार्य लागत | महत्वाकांक्षा | निर्णय | स्वाद |21|------------------|---------------|----------|----------|-------|22| claude-fable-5 | उच्च | निम्न | 10 | 10 |23| claude-opus-4-8 | मध्यम | मध्यम | 8 | 9 |24| claude-sonnet-5 | निम्न | उच्च | 7 | 7 |25| सस्ता OSS कार्यकर्ता | सबसे कम | सबसे अधिक | 5 | 4 |26271. आगे क्या करना है यह तय करना, एक डिफ की समीक्षा करना, एक गतिरोध तोड़ना -> Fable 5,28 केवल-पढ़ने के लिए, उच्च प्रयास।292. कच्चे लॉग, डंप, या 50k टोकन से अधिक की कोई भी चीज़ पढ़ना -> सस्ता कार्यकर्ता।30 कभी Fable नहीं। यह एक स्प्रेडशीट पढ़ने के लिए एक निदेशक की दर का भुगतान करना है।313. कोई भी चीज़ जिसके साथ कोई उपयोगकर्ता या कोई चेन सीधे इंटरैक्ट करता है -> शिप करने से पहले32 8 या उससे अधिक का स्वाद स्कोर चाहिए।334. बाकी सब कुछ -> sonnet-5, मध्यम प्रयास, एक मिस पर एक स्तर ऊपर बढ़ाएं।3435## परिभाषाएँ36- "निर्णय" = क्या यह बिना किसी पर्यवेक्षण के डेस्क पर सबसे कठिन काम को संभाल सकता है37- "पूर्ण" = साइनऑफ़ स्क्रिप्ट 0 पर बाहर निकली, पूर्ण विराम38- "छोटा" = 50 बदली हुई लाइनों से कम39- "सफाई" = व्यवहार बिट-फॉर-बिट समान है, साइनऑफ़ पहले और बाद में हरा है4041## केवल एकमात्र परिभाषा जो मायने रखती है42- काम शुरू होने से पहले हर कार्य को एक मशीन-जांचने योग्य फिनिश लाइन मिलती है।43- एक समीक्षक जिसने न तो योजना और न ही ड्राफ्ट देखा है, वह इसकी जाँच करता है।44- guardrails/signoff.sh का अंतिम वोट है। समीक्षक का नहीं। स्क्रिप्ट का।45- यदि कार्यकर्ता और समीक्षक लगातार दो बार असहमत होते हैं, तो यह एक मानव के पास जाता है।46 कोई तीसरी राय नहीं, कोई टाईब्रेकर मॉडल नहीं।
अपने स्वयं के नंबरों को बदलें। कोई भी चीज़ जिसे आप 80% समय जाने देते हैं और फिर भी "पूर्ण" कहते हैं, उसके साथ एक संख्या या एक "कभी नहीं" जुड़ा होना चाहिए, या इसे काट दें।
खंड 2: सीमाएं और साइन-ऑफ
एक कर्मचारी अनुबंध का कोई मतलब नहीं है जब तक कि यह जांच न हो कि उन्हें क्या छूने की अनुमति है, और एक प्रबंधक जो कुछ भी शिप होने से पहले हस्ताक्षर करता है। दो फ़ाइलें।
ops/boundaries.md:
1## अकेले काम करता है2एक शाखा पर फिक्स का ड्राफ्ट तैयार करना; shift-log.md अपडेट करना; एक *गैर-उत्पादन*3परीक्षण इंस्टेंस को पुनरारंभ करना; पुराने डेटा फ़ीड को फ़्लैग करना45## मेरे हस्ताक्षर की आवश्यकता है6wallets/, .env*, config/rpc.json के तहत कुछ भी; 300 लाइनों से अधिक का कोई भी डिफ;7किसी लाइव pm2 प्रक्रिया में कोई भी परिवर्तन; कुछ भी जो एक लेन-देन भेजता है89## मुझे तुरंत जगाता है10समीक्षक एक ही फिक्स को दो बार विफल करता है; राउटर ने अनुरोधित से भिन्न मॉडल11परोसा; दैनिक खर्च ने रेखा पार कर ली; एक स्थायी जाँच लाल हो जाती है;12कुछ भी एक निजी कुंजी मांगता है
ops/guardrails/signoff.sh (अपने बॉट्स से मेल खाने के लिए कमांड संपादित करें):
1#!/usr/bin/env bash2set -e3npm run typecheck --if-present4npm test --if-present5pm2 describe "$BOT_NAME" | grep -q "status.*online" || exit 1
इस सिस्टम में कुछ भी लाइव होने से पहले इसे एक बार हाथ से चलाएं। यदि यह आपके वर्तमान सेटअप पर साफ पास नहीं होता है, तो यह वास्तविक पहला कार्य है। इसके बाद की हर चीज़ मान लेती है कि यह स्क्रिप्ट सच बताती है।
खंड 3: शिफ्ट
यहाँ वह गणित है जो इसे बनाता या तोड़ता है। Fable 5 के साथ टाइपिंग करने वाला एक पूर्ण सत्र वास्तविक पैसे में तेजी से चलता है, यदि आप इसे घंटों तक लिखने देते हैं तो चार अंक। Fable 5 निर्णय ले रहा है जबकि एक सस्ता मॉडल टाइपिंग कर रहा है, यह पूरी तरह से अलग बिल है, लगभग 15-20% टोकन 100% निर्णय कॉल के लिए।
तो शिफ्ट में चार कर्मचारी हैं, एक नहीं:
- एक लगभग-मुफ्त मॉडल रात भर के लॉग और pm2 आउटपुट पढ़ता है। "शांत" या "कार्रवाई योग्य" कहता है। बस इतना ही।
- Fable 5, केवल-पढ़ने के लिए, करने के लिए सबसे उच्च-मूल्य वाली एक चीज़ तय करता है और एक कार्य आदेश लिखता है। यह कोड को नहीं छूता है।
- एक सस्ता कार्यकर्ता मॉडल एक पृथक शाखा पर कार्य आदेश निष्पादित करता है।
- एक नया Fable 5 इंस्टेंस, केवल स्पेक और डिफ देखकर, पास या फेल वोट करता है।
खंड 2 में नियतात्मक स्क्रिप्ट टाईब्रेकिंग वोट डालती है। हर बार।

ops/shift.sh:
1#!/usr/bin/env bash2set -euo pipefail3cd "$(dirname "$0")"4DAILY_BUDGET="${DAILY_BUDGET_USD:-5}"5INTAKE_MODEL="${INTAKE_MODEL:-openrouter/deepseek/deepseek-v4-flash}"6WORKER_MODEL="${WORKER_MODEL:-openrouter/moonshotai/kimi-k2.6}"78# 1. इनटेक, पैसे9pm2 logs --lines 100 --nostream | llm -m "$INTAKE_MODEL" -s "$(cat intake.md)" \10 >> shift-log.md11grep -q "status: actionable" shift-log.md || { echo "शांत शिफ्ट"; exit 0; }1213# 2. डिस्पैच, Fable, xhigh, केवल-पढ़ने के लिए, निर्णय लेता है और रुक जाता है14claude -p "$(cat dispatcher.md)15लॉग: $(cat shift-log.md)16विश्वास: $(cat personnel/trust.tsv)17सीमाएं: $(cat boundaries.md)" \18 --model claude-fable-5 --effort xhigh --allowedTools "Read" \19 --output-format json > /tmp/order.json2021SERVED=$(jq -r '.modelUsage | keys[0] // "claude-fable-5"' /tmp/order.json)22[[ "$SERVED" != *fable* ]] && { echo "पुनर्निर्देशित, इस रन को छोड़ें" >> shift-log.md; exit 2; }2324jq -r '.result' /tmp/order.json > work-order.json25ACTION=$(jq -r .action work-order.json)26[[ "$ACTION" == "stop" ]] && exit 027[[ "$ACTION" == "queue" ]] && { echo "हस्ताक्षर के लिए कतारबद्ध" >> shift-log.md; exit 0; }2829# 3. निष्पादित करें, सस्ता कार्यकर्ता, पृथक शाखा30BR="shift-$(date +%s)"31git worktree add "../$BR" -b "$BR" >/dev/null32( cd "../$BR" && llm -m "$WORKER_MODEL" -s "$(cat "$OLDPWD/worker.md")" \33 "$(cat "$OLDPWD/work-order.json")" > shift-notes.md )3435# 4. समीक्षा, नया Fable, केवल स्पेक और डिफ, और कुछ नहीं36VERDICT=$(claude -p "$(cat reviewer.md)37स्पेक: $(jq -r .spec work-order.json)38डिफ: $(cd "../$BR" && git diff)" \39 --model claude-fable-5 --effort high --allowedTools "" \40 --output-format json | jq -r .result)4142# 5. एकमात्र वोट जो कुछ भी शिप करता है43if [[ "$VERDICT" == PASS* ]] && ( cd "../$BR" && "$OLDPWD/guardrails/signoff.sh" ); then44 echo "पास, विश्वास स्तर के अनुसार शिप या कतारबद्ध" >> shift-log.md45else46 echo "विफल: $BR समीक्षा के लिए रोका गया" >> shift-log.md47fi
Fable द्वारा लिया गया निर्णय और Fable द्वारा टाइप की गई कोड की एक पंक्ति दो अलग-अलग मूल्य टैग हैं। केवल निर्णय के लिए उच्च वाला भुगतान करें।
खंड 4: कार्मिक फ़ाइल
विश्वास कंपनी-व्यापी सेटिंग नहीं है। यह प्रति कार्य अर्जित किया जाता है, उसी तरह जैसे आप एक नए कर्मचारी को पहले दिन उत्पादन कुंजियाँ नहीं सौंपेंगे, भले ही उनका पोर्टफोलियो कितना भी अच्छा क्यों न दिखे।
personnel/trust.tsv प्रत्येक आवर्ती कार्य को नाम से ट्रैक करता है: रन, पास, वर्तमान स्तर।
- निगरानी: 10 रन से कम, या 90% पास दर से कम। केवल ड्राफ्ट, कोई अपवाद नहीं।
- परिवीक्षा: 10-19 रन 90%+ पर। आपके हस्ताक्षर के लिए कतारबद्ध, हर बार।
- स्वीकृत: 20+ रन 95%+ पर। आपके बिना शिप करता है।

एक स्वीकृत कार्य पर एक मिस को चेतावनी नहीं मिलती है। यह सीधे वापस परिवीक्षा में आ जाता है और stderr पर प्रिंट करता है, जिसे आपका क्रॉन आपको मेल करता है। स्वचालित पदावनति ही एकमात्र प्रकार है जो वास्तव में टिकती है।
कार्मिक फ़ाइल का दूसरा भाग personnel/standing-checks/ है। प्रत्येक समाप्त कार्य यहाँ एक कमांड के रूप में स्नातक होता है जिसे हमेशा सत्य लौटते रहना होता है, हमेशा के लिए, दिन में एक बार जाँच की जाती है:
1# personnel/standing-checks/bankr-claim-monitor.md2predicate: pm2 describe bankr-claim-monitor | grep -q "status.*online" && \3 sqlite3 claims.db "select count(*) from claims where ts > strftime('%s','now','-1 day')" | grep -qv "^0$"4last-verified: 2026-07-085on-violation: मुझे जगाएं, आँख बंद करके ऑटो-पुनरारंभ न करें
एक कार्य जिसे आपने केवल एक बार सत्यापित किया है, वह समाप्त नहीं है। यह उस पर एक टाइमस्टैम्प के साथ एक धारणा है।
क्रॉन के माध्यम से प्रतिदिन जाँच चलाएं। एक विफल predicate का मतलब है कि जो चीज़ पहले सत्य थी, वह चुपचाप सत्य होना बंद हो गई, और इस फ़ाइल के बिना किसी ने भी ध्यान नहीं दिया होता।
खंड 5: घटना रिपोर्ट
यह वह खंड है जिसे मूल प्लेबुक छोड़ देते हैं, और यह वह है जो वास्तव में मायने रखता है जब सिस्टम उस बुनियादी ढांचे पर लाइव होता है जो वास्तविक पैसे चलाता है। हर एजेंटिक सिस्टम अंततः कुछ ऐसा करता है जो आप नहीं चाहते थे। सवाल यह है कि क्या आपको एक साफ लॉग से पता चलता है या एक खाली वॉलेट से।
ops/incidents/runbook.md:
1| संकेत | अर्थ | यह करें2|----------------------------------|---------------------------------------|--------3| exit 2 (पुनर्निर्देशित) | एक भिन्न मॉडल ने अनुरोध परोसा | आउटपुट को फेंक दें, उस पर कभी निर्माण न करें, कल पुनः प्रयास करें4| stop_reason: refusal | सुरक्षा क्लासिफायर ने अस्वीकार कर दिया, HTTP 200 | त्रुटि नहीं, लॉग जांचें; यदि कोई कार्य बार-बार अस्वीकार करता है, तो कार्य शायद कुछ ऐसा छू रहा है जिसे नहीं छूना चाहिए5| signoff दो बार विफल होता है, एक ही फिक्स | कार्यकर्ता और समीक्षक एक साथ नहीं आ सकते | इसे मानव समीक्षा में खींचें, तीसरी बार स्वचालित रूप से पुनः प्रयास न करें6| स्थायी जाँच लाल हो जाती है | कुछ समाप्त सत्य होना बंद हो गया | last-verified तिथि जांचें, तब से क्या शिप हुआ है, इसका अंतर देखें, स्वचालित रूप से वापस न करें7| दैनिक खर्च रेखा पार करता है | बजट का उल्लंघन हुआ | शिफ्ट रोकें, shift-log.md पढ़ें, पता लगाएं कि कौन सा चरण बढ़ गया8| कोई कार्य wallets/.env/rpc को छूता है | सीमा उल्लंघन का प्रयास | कठोर रुकावट, यदि boundaries.md का सम्मान किया जाता है तो यह कभी नहीं चलना चाहिए, किसी भी घटना को सिस्टम में ही एक बग के रूप में मानें
इनमें से प्रत्येक को incidents/log.tsv में एक टाइमस्टैम्प के साथ लॉग करें, चाहे आपने उस पर कार्रवाई की हो या नहीं। लक्ष्य शून्य घटनाएँ नहीं है। यह शून्य घटनाएँ हैं जिनके बारे में आपको बहुत देर से पता चलता है।
सप्ताह में एक बार, एक कम्पोस्ट पास चलाएं: घटना लॉग, विश्वास फ़ाइल की पदावनतियाँ, और कोई भी चीज़ जो 3 दिनों से अधिक समय से कतारबद्ध और अहस्ताक्षरित रही है, उसे पढ़ें। अधिकतम तीन प्रस्ताव निकालें: CONTRACT.md के लिए एक नई कठोर रुकावट, एक नौकरी विवरण में एक फिक्स, या एक स्थायी जाँच जो आपको याद आ रही थी। आप तीनों पर हाथ से हस्ताक्षर करते हैं। सिस्टम अपने स्वयं के अगले नियम का प्रस्ताव कर सकता है। इसे कभी भी एक लिखने की अनुमति नहीं है।
परिवीक्षा अनुसूची
तीन चेकपॉइंट, तीस दिनों की बेबीसिटिंग नहीं:

चेकपॉइंट 1. एक सप्ताह तक प्रतिदिन हाथ से शिफ्ट चलाएं। हर पंक्ति पढ़ें। जब लगातार तीन शिफ्ट बिल्कुल उसी तरह रूट करें जैसे आप करते, तब स्नातक करें।
चेकपॉइंट 2. क्रॉन शिफ्ट ले लेता है। आप इसे स्वयं चलाने के बजाय कॉफी के साथ कतार की समीक्षा करते हैं। जब दो आवर्ती कार्य 20 लॉग किए गए रन पार कर जाएं, तब स्नातक करें।
चेकपॉइंट 3. आपका सबसे अच्छा प्रदर्शन करने वाला कार्य बिना पर्यवेक्षण के शिप होता है। जब यह आपके किसी भी हस्तक्षेप के बिना पूरे एक सप्ताह चलता है, तब स्नातक करें।
नियम, संक्षिप्त
- एक अनुबंध एक संख्या या एक कभी नहीं है। इससे नरम कुछ भी अनुकूलित किया जाता है।
- डिस्पैचर निर्णय लेता है। कार्यकर्ता टाइप करता है। कोई भी अपने स्वयं के काम की जाँच नहीं करता।
- Fable का निर्णय कीमत के लायक है। Fable की टाइपिंग आमतौर पर नहीं है।
- विश्वास प्रति कार्य है, कंपनी-व्यापी नहीं, और पदावनति स्वचालित और जोरदार है।
- एक समाप्त कार्य जिसे पुनः जाँच नहीं किया गया है, वह समाप्त नहीं है, यह उस पर एक तारीख के साथ एक अनुमान है।
- सीमाएं एक फ़ाइल में रहती हैं जिसे आप दस सेकंड में पढ़ सकते हैं, आपकी स्मृति में नहीं।
- घटना लॉग मौजूद है ताकि आप एक रिपोर्ट से समस्याएं पाएं, बैलेंस से नहीं।
- उस मॉडल के आउटपुट पर कभी निर्माण न करें जिसे आपने मांगा नहीं था।
- सप्ताह में एक बार, सिस्टम एक नया नियम प्रस्तावित कर सकता है। आप अभी भी वह हैं जो उस पर हस्ताक्षर करता है।
मॉडल कभी भी कठिन हिस्सा नहीं था। उसके चारों ओर कुछ ऐसा बनाना जो ईमानदार रहे जब कोई नहीं देख रहा हो, यही वास्तविक काम है। यह है कि कोडबेस के बजाय बॉट फ्लीट के लिए यह कैसा दिखता है।
guardrails/signoff.sh से शुरू करें। एक शिफ्ट हाथ से चलाएं। अपने अंतिम शिप किए गए बॉट के लिए एक स्थायी जाँच लिखें। पहली बार जब यह कुछ ऐसा पकड़ता है जिसके बारे में आपको यकीन था कि ठीक है, तो बाकी का यह वैकल्पिक होना बंद हो जाता है।
अधिक ऐसे विश्लेषणों के लिए @GipArcAI को फॉलो करें, और मुझे X पर यहां खोजें: https://x.com/gippp69।





