AI एजेंट के कोडबेस मालफंक्शन को रिवर्स-ट्रैक और रिकवर करने का तरीका
30 de julio de 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
100,000 पंक्तियों से अधिक वाले बैकएंड रिपॉजिटरी में जब आप Claude Code या Codex जैसे AI एजेंट को जोड़ते हैं, तो शुरू में आप इसकी गति देखकर हैरान रह जाते हैं। लेकिन फिर किसी क्षण, यदि कुछ पंक्तियों का गलत प्रॉम्प्ट चला जाता है, तो AI सुरक्षा घेरे को तोड़कर बाहर निकल जाता है और सामान्य यूटिलिटीज या एनवायरनमेंट कॉन्फ़िगरेशन फ़ाइलों तक में बदलाव कर देता है। सेशन लॉग्स कई मेगाबाइट तक बढ़ जाते हैं, बिल्ड फेल हो जाता है, और जब आप कारण बनने वाली फ़ाइल को खोजने के लिए एक घंटे तक Git Diff को खंगालते हैं, तो ऐसा लगता है कि इसे शुरू से ही खुद लिखना बेहतर होता।
एजेंट को स्वायत्तता देते हुए अनावश्यक फ़ाइल क्षति को रोकने के लिए, एक स्पष्ट हार्ड आइसोलेशन और विज़ुअलाइज़्ड ट्रेस-ट्रैकिंग सिस्टम की आवश्यकता होती है।
प्राकृतिक भाषा निर्देश फ़ाइलें जैसे CLAUDE.md या .aiignore अक्सर तब बायपास हो जाती हैं जब कॉन्टेक्स्ट विंडो लंबी हो जाती है। प्रॉम्प्ट स्तर पर अनुरोध केवल अनुशंसाएं मात्र हैं, इसलिए जैसे ही AI संदर्भ खोता है, एजेंट टूल निष्पादन बिना किसी झिझक के सीमाओं को पार कर जाता है।
एजेंट की पहुँच को भौतिक रूप से अवरुद्ध करने के लिए, आपको प्रोजेक्ट रूट में सीधे एक नियतात्मक (deterministic) अनुमति नियंत्रण इंजन .claude/settings.json रखना होगा।
json { "permissions": { "deny": [ "Edit(src/core/config/**)", "Edit(src/shared/utils/**)", "Read(./.env*)", "Bash(rm -rf *)" ], "ask": [ "Edit(src/api/v1/legacy/**)" ] } }
स्पष्ट ब्लॉक नियम स्थापित करने के बाद, सुरक्षा के लिए फ़ाइल सिस्टम स्तर पर भी इसे एक बार फिर लॉक कर देना सुरक्षित रहता है। प्रोडक्शन बिल्ड स्क्रिप्ट या सुरक्षा कुंजी फ़ाइलों के लिए OS स्तर पर राइट अनुमति (write permission) हटा देना अधिक बेहतर होता है।
.claude/settings.json लिखें।permissions.deny एरे में एनवायरनमेंट सेटिंग्स, सामान्य यूटिलिटी पथ और विनाशकारी Bash कमांड्स दर्ज करें।chmod 444 .env* कमांड चलाकर प्रोसेस राइट अनुमति को अवरुद्ध करें।इस प्रकार अनुमतियों को नियंत्रित करके, आप AI द्वारा अचानक सामान्य मॉड्यूल को संशोधित करने से उत्पन्न होने वाली बिल्ड त्रुटियों के एक बड़े हिस्से को खत्म कर सकते हैं।
यदि आप सेशन लॉग्स (.jsonl) को केवल डेवलपर के स्थानीय परिवेश में रखते हैं, तो बाद में साइड इफ़ेक्ट होने पर कारण का पता लगाना मुश्किल हो जाता है। PR सबमिट करते समय सेशन ट्रेस को कंप्रेस करके सत्यापित करने के लिए एक GitHub Actions वर्कफ़्लो बनाएं।
`yaml
name: AI Agent Session Audit & Risk Analysis
on:
pull_request:
types: [opened, synchronize]
jobs:
audit-session:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Mindwalk Telemetry Extractor
run: |
docker run --rm -v ${{ github.workspace }}:/workspace \
cosmtrek/mindwalk:v0.1.0 parse --log-dir=./.claude/sessions --out=telemetry.json
- name: Run Deterministic Repo Audit
id: repo_audit
run: |
curl -sSL https://github.com/aletheore/releases/download/v1.0/aletheore -o aletheore
chmod +x aletheore
./aletheore audit --telemetry=telemetry.json --max-allowed-depth=3
- name: Upload Mindwalk 3D Visual Artifact
uses: actions/upload-artifact@v4
with:
name: mindwalk-3d-trace-${{ github.event.pull_request.number }}
path: telemetry.json
`
Rust आधारित विश्लेषण इंजन या Tree-sitter को एकीकृत करके यह जांचने से कि क्या एजेंट अपनी सीमा से बाहर गया है, आप अनुमति सीमा से बाहर के उच्च-स्तरीय मॉड्यूल संशोधन के मामले में CI बिल्ड को तुरंत विफल कर सकते हैं।
परिवर्तन जोखिम की गणना केवल कोड की पंक्तियों की संख्या के बजाय नोड कनेक्टिविटी के आधार पर करना अधिक उपयोगी है।
यहाँ संशोधित फ़ाइलों की संख्या है, और परिवर्तित नोड्स की औसत 3D कनेक्टिविटी है। यदि यह थ्रेशोल्ड से अधिक हो जाता है, तो स्लैक (Slack) नोटिफिकेशन द्वारा 3D विज़ुअलाइज़ेशन मैप लिंक भेजने के लिए सेट अप करें, जिससे समीक्षक (reviewer) तुरंत जोखिम का आकलन कर सके।
जब एजेंट गड़बड़ी कर देता है, तो पूरी कमिट (commit) को हटाने के बजाय, टाइमलाइन को ट्रैक करना चाहिए और केवल दूषित फ़ाइलों को चुनिंदा रूप से पुनर्प्राप्त (recover) करना चाहिए। यदि आपने उस विशिष्ट समय सीमा को निकाल लिया है जब मालफंक्शन शुरू हुआ था, तो JSONL लॉग से jq का उपयोग करके उस समय का प्रॉम्प्ट और रीज़निंग पाथ निकालें।
bash jq -c 'select(.timestamp >= "2026-07-11T14:20:00Z" and .timestamp <= "2026-07-11T14:25:00Z") | {timestamp: .timestamp, prompt: .payload.prompt, tool_use: .payload.tool_use, thinking: .payload.thinking}' \ ./.claude/sessions/session_abc123.jsonl
कारण की पुष्टि करने के बाद, पुनर्प्राप्ति कार्य को निम्नलिखित 3 चरणों में विभाजित करके आगे बढ़ाएं:
git checkout <PRE_AI_COMMIT_SHA> -- src/legacy/broken_module.ts)git clean -fd -- src/unwanted_generated_dir/)इस तरीके का उपयोग करके, आप सामान्य रूप से काम करने वाले कोड को खोए बिना केवल क्षतिग्रस्त फ़ाइलों को सफाई से पुनर्प्राप्त कर सकते हैं।
मोनोरेपो परिवेश में जब नोड्स की संख्या दसियों हज़ार तक बढ़ जाती है, तो विज़ुअलाइज़ेशन टूल खुद ही क्रैश हो जाता है। यदि ब्राउज़र धीमा हो जाता है, तो डिबगिंग भी कठिन हो जाती है। रेंडरिंग टारगेट से अनावश्यक डायरेक्टरी को हटाने के लिए mindwalk.config.json में एक्सक्लूजन फ़िल्टर को ठीक से सेट करना आवश्यक है।
json { "visualization": { "excludePatterns": [ "**/node_modules/<strong>", "</strong>/vendor/<strong>", "</strong>/.git/<strong>", "</strong>/dist/<strong>", "</strong>/coverage/<strong>", "</strong>/*.log", "**/*.pb.go" ], "maxDepth": 5, "groupingStrategy": "directory-segmented" } }
अंत में, जब बैकग्राउंड Docker कंटेनर के रूप में विज़ुअलाइज़ेशन पाइपलाइन या विश्लेषण टूल चला रहे हों, तो संसाधन आवंटन सीमाएं (resource allocation limits) निर्धारित की जानी चाहिए ताकि स्थानीय IDE बंद न हो।
mindwalk.config.json लिखें।--cpus="1.5" और --memory="2g" विकल्प निर्दिष्ट करें।--nice=19 फ़्लैग जोड़ें।