SSD Nodes Learn 🎉 VPS $5.50/महिन्यापासून
मार्गदर्शक Matt Connorद्वारे Matt Connor · अपडेटेड 2026-08-13

Agent skills, MCP servers की rules files: काय निवडावे?

Coding agent ला context देण्यासाठी skill, MCP server आणि rules file यांतील फरक समजून घ्या. प्रत्येकाची token किंमत, upkeep आणि योग्य वापराचे एक स्पष्ट नियम जाणून घ्या.

Agent skills, MCP servers आणि rules files: थोडक्यात उत्तर

Agent skills, MCP servers आणि rules files हे सर्व coding agent समोर ज्ञान उपलब्ध करून देतात. ज्ञान काय करते, यानुसार पर्याय निवडा. MCP (model context protocol) हे पुढच्या वेळी पाहिल्यावर बदललेले असू शकणाऱ्या डेटासाठी वापरा. Skill ही अशी प्रक्रिया असते, जी आज लिहून ठेवली तरी सहा आठवड्यांनंतरही योग्य राहील. Rules file ही प्रत्येक session मध्ये लागू राहिलीच पाहिजेत अशा मोजक्या तथ्यांसाठी असते.

या निवडीची एक किंमत आहे आणि ती म्हणजे context. Agent ला आवश्यक नसलेल्या instruction वर खर्च होणारा प्रत्येक token तो वाचत असलेल्या code साठी उपलब्ध राहत नाही. प्रत्येक turn वर त्याच token साठी पुन्हा पैसे द्यावे लागतात, कारण प्रत्येक request सोबत संपूर्ण context window पुन्हा पाठवली जाते. त्यामुळे उपयुक्त प्रश्न हा कोणती यंत्रणा हे काम करू शकते हा नाही. बहुतेक दिवशी तिन्ही यंत्रणा ते करू शकतात. प्रश्न हा आहे की idle असताना कोणत्या यंत्रणेचा खर्च सर्वात कमी असतो.

वापरण्यापूर्वी प्रत्येकाची किंमत

हे तिन्ही वेगवेगळ्या वेळी लोड होतात. हाच त्यांच्यातील मुख्य फरक आहे.

Rules file सुरू होताना प्रत्येक session मध्ये पूर्णपणे लोड होते. ती संबंधित असो वा नसो, तिचा संपूर्ण मजकूर लोड केला जातो. Claude Code प्रत्येक conversation च्या सुरुवातीला CLAUDE.md वाचते आणि file कितीही मोठी असली तरी ती पूर्णपणे लोड करते. दस्तऐवजीकरणानुसार प्रत्येक file 200 lines पेक्षा कमी असावी, कारण मोठ्या file मुळे अधिक context खर्च होतो आणि तिचे नियम कमी विश्वासार्हपणे पाळले जातात. हे दोन्ही परिणाम एकाच दिशेने काम करतात. त्यामुळे 900-line rules file उपयुक्ततेपेक्षा अधिक हानिकारक ठरते.

Skill दोन टप्प्यांत लोड होते. Startup वेळी प्रत्येक SKILL.md frontmatter मधील फक्त description line context मध्ये येते. त्यामुळे model ला skill उपलब्ध आहे आणि ती साधारणपणे कधी लागू होते हे समजते. Skill invoke केल्यावर तिचा body लोड होतो. त्यामुळे 400-line reference document ची गरज भासेपर्यंत त्याचा context वर जवळजवळ कोणताही खर्च होत नाही.

पूर्वी MCP server हा सर्वाधिक खर्चिक घटक होता. सध्या तुम्हाला आढळणाऱ्या अनेक तुलना याच कारणामुळे कालबाह्य आहेत. सध्याच्या Claude Code मध्ये tool search default ने सुरू असतो. Session सुरू होताना फक्त tool names आणि server चा instructions field लोड होतो. Claude त्यांचा शोध घेतो तेव्हा पूर्ण JSON (JavaScript object notation) schemas लोड होतात. त्यामुळे server जोडल्यावर आता सुरुवातीलाच हजारो tokens खर्च होत नाहीत. तरीही काही खर्च होतो. तसेच tool search बंद असलेल्या configuration मध्ये संपूर्ण खर्च सुरुवातीलाच होतो.

ChartStartup and post-use context cost, estimated tokens
The data behind this chart
[
  {
    "label": "Rules file, 200 lines",
    "at_startup": "2,500",
    "after_use": "2,500"
  },
  {
    "label": "Skill, 12 KB body",
    "at_startup": 40,
    "after_use": "3,000"
  },
  {
    "label": "MCP server, tool search on",
    "at_startup": 500,
    "after_use": "3,200"
  },
  {
    "label": "MCP server, tool search off",
    "at_startup": "4,500",
    "after_use": "4,500"
  }
]

ही अंदाजे आकडेवारी आहे; तुमच्या machine वरील मोजमाप नाही. प्रत्येक mechanism जितका मजकूर लोड करतो, त्याच्या आकारावर हे अंदाज आधारित आहेत. साधारणपणे 1 token साठी 4 characters धरले आहेत: 200-line rules file सुमारे 10 KB markdown असते, skill description सुमारे 160 characters असते आणि 12 tools उपलब्ध करून देणाऱ्या server मध्ये सुमारे 18 KB schema तसेच 2 KB instructions block असतो. Claude Code प्रत्येक tool description आणि प्रत्येक server instructions field ला 2 KB वर truncate करते. त्यामुळे त्या भागाला कमाल मर्यादा आहे. पुढील section मध्ये तुमचे स्वतःचे वास्तविक आकडे कसे वाचायचे ते दाखवले आहे.

पहिल्या दोन rows एकत्र वाचा. ज्या session मध्ये rules file ची गरज पडली नाही, त्या session मध्ये तिचा खर्च 2,500 tokens असतो. त्याच session मध्ये skill चा खर्च 40 tokens असतो. ती वापरली जाणाऱ्या दहा session पैकी एका session मध्ये तिचा खर्च 3,000 tokens असतो. शेवटच्या दोन rows मध्ये तोच server दोनदा दाखवला आहे: tool search सुरू असताना आणि बंद असताना. त्यांचा खर्च अनुक्रमे 500 आणि 4,500 tokens असतो. जुन्या MCP context bloat संबंधी सूचना अजूनही आढळण्याचे कारण हेच अंतर आहे.

Tool search साठी tool_reference blocks समर्थित करणारे model आवश्यक आहे. August 2026 पर्यंत यामध्ये Claude Sonnet 4.5, Haiku 4.5, Opus 4.5 आणि त्यानंतरच्या versionsचा समावेश होतो. ANTHROPIC_BASE_URL अशा host कडे निर्देश करत असल्यास Claude Code tool search बंद करते, जर तो host first party नसेल. कारण बहुतेक proxies हे blocks forward करत नाहीत. Tool search नियंत्रित करण्यासाठी ENABLE_TOOL_SEARCH सेट करा: false प्रत्येक schema सुरुवातीपासून लोड करते, true सर्व schemas defer करते आणि auto schemas context window च्या 10% मध्ये बसत असतील तेव्हाच ती सुरुवातीपासून लोड करते.

# Load schemas up front only if they fit in 5% of the window
ENABLE_TOOL_SEARCH=auto:5 claude

निर्णायक प्रश्न: प्रत्येक invocation दरम्यान डेटा बदलतो का?

हा प्रश्न प्रथम विचारा, कारण त्यामुळे एक पर्याय लगेच बाद होतो. Agent ला पुढच्या वेळी पाहताना बदललेले असू शकणारे काहीतरी वाचायचे किंवा लिहायचे असेल, तर server आवश्यक आहे. Issue tracker, database, monitoring dashboard किंवा तुमचा अंतर्गत API (application programming interface) यांसाठी server लागतो. ते लिहून ठेवणे उपयोगी ठरत नाही, कारण दुसऱ्या व्यक्तीने record संपादित करताच तुम्ही लिहिलेली माहिती stale होते.

कोणीही देखभाल न करता सहा आठवड्यांनंतरही उत्तर अचूक राहणार असेल, तर skill वापरा. Release checklist. Migration procedure. तुमच्या error responses ची रचना. या repository मध्ये tests कसे लिहायचे. Skill ही git मधील file असते. तिचा कोणताही port किंवा process नसतो. ती चुकीची असण्यापलीकडे तिची failure mode नसते आणि code review मध्ये ती चूक पकडता येते.

तुम्ही अजून विचार केलेले नसलेल्या कामांनाही लागू होणारे एक तथ्य असेल, तर ते rules file मध्ये ठेवा. Run make lint before committing. Never push to main. Handlers live in src/api/handlers/. प्रत्येक entry एका ओळीत ठेवा. एखादी entry steps मध्ये विस्तारू लागली की ती तथ्य राहात नाही; ती procedure बनते आणि skill मध्ये हलवली पाहिजे.

नियमांची फाइल पुरेशी असेल तेव्हा

नियमांच्या फाइल्स अनेक ठिकाणांहून लोड केल्या जातात. व्यापक स्तरापासून अधिक विशिष्ट स्तरापर्यंत त्यांचा क्रम असा असतो: managed policy file, तुमची वैयक्तिक ~/.claude/CLAUDE.md, प्रकल्पाची ./CLAUDE.md किंवा ./.claude/CLAUDE.md आणि gitignored ./CLAUDE.local.md. सापडलेल्या सर्व फाइल्स एकमेकींना override न करता जोडल्या जातात. तुमच्या working directory जवळच्या फाइल्स शेवटी वाचल्या जातात.

Claude Code CLAUDE.md वाचते, AGENTS.md नाही. तुमच्या repository मध्ये इतर tools साठी आधीच AGENTS.md असल्यास, परस्पर विसंगत होणाऱ्या दोन प्रती ठेवू नका.

ln -s AGENTS.md CLAUDE.md

Symlink यशस्वी झाल्यावर काहीही print करत नाही. Session सुरू करा, /context चालवा आणि Memory files अंतर्गत CLAUDE.md दिसत आहे याची खात्री करा. तेथे ते सूचीबद्ध नसेल, तर agent ने ते कधीही पाहिलेले नाही. अशा वेळी शब्दरचना बदलून काही उपयोग होणार नाही. Claude-specific lines देखील हव्या असल्यास, त्याऐवजी import form वापरा आणि त्या lines import च्या खाली ठेवा.

@AGENTS.md

## Claude Code

Use plan mode for changes under `src/billing/`.

येथे एक महत्त्वाचा सापळा आहे. @path imports context जतन करत नाहीत. Referencing file सोबत imported file launch वेळी expand करून load केली जाते आणि ही प्रक्रिया जास्तीत जास्त four hops पर्यंत होते. 600-line rules file चे six imports मध्ये विभाजन केल्याने ते humans साठी व्यवस्थित होते; token cost मध्ये मात्र अगदी शून्य बदल होतो. Layout ठरवण्यापूर्वी AGENTS.md आणि त्याच्या human-facing twin मागील conventions वाचणे उपयुक्त ठरेल.

paths field असलेले .claude/rules/ token cost कमी करते. paths frontmatter असलेली rule file agent ने patterns पैकी एखाद्याशी जुळणारी file वापरली असेल तेव्हाच load होते.

---
paths:
  - "src/api/**/*.ts"
---

# API rules

- Every endpoint validates its input.
- Use the standard error response shape.

paths field नसलेली rule launch वेळी .claude/CLAUDE.md इतक्याच priority ने load होते. त्यामुळे उपयुक्त पद्धत अशी आहे: लहान unconditional rules ठेवा आणि फक्त एखाद्या directory मध्ये लागू होणाऱ्या गोष्टींसाठी paths list वापरा.

जेव्हा तुम्हाला एखादे skill हवे असेल

skill म्हणजे त्यात SKILL.md असलेली directory. वैयक्तिक skills ~/.claude/skills/<name>/SKILL.md येथे असतात आणि तुमच्या मशीनवरील प्रत्येक project ला लागू होतात. Project skills .claude/skills/<name>/SKILL.md येथे असतात. त्या repository सोबत राहतात आणि इतर कोणत्याही file प्रमाणे pull request मध्ये त्यांचे review करता येते.

mkdir -p ~/.claude/skills/summarize-changes
---
name: summarize-changes
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---

Run `git status` and `git diff` against the merge base.
Group the changes by intent, not by file.
Call out anything touching auth, migrations or deletions.

description हा file मधील skill चालण्यापूर्वी context मध्ये असलेला एकमेव भाग आहे. त्यामुळे त्याची दोन कामे आहेत. तो skill काय करतो हे सांगतो आणि तो कधी वापरायचा हेही सांगतो. "Helps with deploys" असे description असल्यास request शी जुळवण्यासाठी model कडे पुरेशी माहिती राहत नाही. त्यामुळे skill शांतपणे कधीच चालत नाही आणि skills काम करत नाहीत असा तुमचा निष्कर्ष होतो.

Directory चे नाव command बनते. त्यामुळे वरील उदाहरणात तुम्हाला /summarize-changes मिळते. Personal किंवा project skill मध्ये frontmatter मधील name फक्त listings मधील display label ठरवते.

skill invoke केल्यानंतर त्यातील rendered content एकाच message म्हणून conversation मध्ये येते आणि session संपेपर्यंत तिथेच राहते. Claude Code पुढील turns मध्ये file पुन्हा वाचत नाही. एकदाच करायच्या steps ऐवजी कायम लागू राहणाऱ्या instructions लिहा. Body लहान ठेवा, कारण त्या क्षणापासून प्रत्येक line प्रत्येक request वर पुन्हा येणारा खर्च बनते. Auto-compaction नंतर Claude Code प्रत्येक skill चा सर्वात अलीकडील invocation पुन्हा जोडतो. प्रत्येक skill मधील पहिले 5,000 tokens एकत्रित 25,000 tokens च्या budget मध्ये ठेवले जातात. एका session मध्ये अनेक मोठे skills invoke केल्यास सर्वात जुने skills पूर्णपणे काढले जातात. त्यामुळे दीर्घ conversation नंतर एखादा skill महत्त्वाचा राहिलेला नाही असे वाटू शकते. तो पुन्हा invoke केल्यास तो परत येतो. एकच procedure एकापेक्षा अधिक codebase ला लागू होत असल्यास file च्या प्रती वेगवेगळ्या ठिकाणी ठेवण्याऐवजी अनेक repositories मध्ये एक skill share करा.

MCP सर्व्हरची आवश्यकता कधी असते

MCP सर्व्हर जोडण्यासाठी एकच command लागतो आणि transport त्याची रचना ठरवतो.

# Remote HTTP server
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Remote HTTP server behind a bearer token
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

# Local stdio server: everything after -- is passed through untouched
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

-- महत्त्वाचे आहे. stdio सर्व्हरसाठी ते Claude Code चे स्वतःचे options आणि तुमचा सर्व्हर सुरू करणारी command line यांच्यात विभाजन करते. ते वगळल्यास, सर्व्हरसाठी असलेला --port 8080 हा claude mcp add च्या option म्हणून parse केला जातो आणि claude mcp add तो नाकारतो.

claude mcp list
claude mcp get notion

claude mcp add ही क्रिया Added ... line सह यशस्वी झाल्याची पुष्टी करते. यावरून फक्त configuration disk वर लिहिली गेली आहे, एवढेच समजते. प्रत्येक सर्व्हरच्या बाजूला health status दाखवणारी खरी पडताळणी claude mcp list करते: ✔ Connected, ! Needs authentication किंवा ✘ Failed to connect. failure status म्हणजे Claude Code त्या सर्व्हरपर्यंत पोहोचू शकले नाही; list command मध्ये बिघाड झाला, असा त्याचा अर्थ नाही. Session मध्ये /mcp प्रत्येक सर्व्हरसाठी हीच माहिती आणि tool count दाखवते.

MCP सर्व्हरला केलेली प्रत्येक call स्वतंत्र असते आणि त्यासाठी आवश्यक असलेली माहिती ती स्वतःसोबत घेऊन जाते. म्हणूनच MCP सर्व्हरला तुमची मागील विनंती आठवत नाही. हा रचनेचा एक निर्णय आहे आणि त्याचा परिणाम तुम्हाला स्वीकारावा लागतो: जतन करणे आवश्यक असलेली कोणतीही state सर्व्हरच्या मागे, database किंवा file मध्ये ठेवावी लागते आणि आता त्या घटकाचे संचालनही तुम्हालाच करावे लागते.

MCP server हे तुम्हाला चालवावे लागणारे process आहे

Vendor comparisons मध्ये वगळलेली किंमत येथे आहे. Skill ही एक file असते. MCP server हे कुठेतरी चालणारे software असते. आणि ते ठिकाण तुमचा VPS (virtual private server) असेल, तर त्याची uptime राखण्याची जबाबदारी तुमची असते.

Stdio server हा कमी खर्चाचा पर्याय आहे. Session सुरू झाल्यावर Claude Code त्याला child process म्हणून सुरू करते आणि session संपल्यावर तो बंद होतो. त्याचे स्वतंत्रपणे monitoring किंवा patching करण्याची गरज नसते. Remote HTTP server ही दीर्घकाळ चालणारी service असते. त्यामुळे अशा प्रत्येक service साठी आवश्यक असलेल्या गोष्टी तिलाही आवश्यक असतात.

[Unit]
Description=Notes MCP server
After=network-online.target
Wants=network-online.target

[Service]
User=mcp
WorkingDirectory=/srv/notes-mcp
ExecStart=/usr/bin/node /srv/notes-mcp/dist/server.js
Environment=PORT=8931
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now notes-mcp
systemctl is-active notes-mcp
journalctl -u notes-mcp -n 50 --no-pager

systemctl is-active ने active दाखवले पाहिजे. त्याऐवजी failed दिसत असेल, तर journal मध्ये त्याचे कारण असते. पहिल्यांदा चालवताना कारण बहुतेक वेळा missing environment variable किंवा दुसऱ्या process ने आधीच वापरलेला port असते. येथे Restart=on-failure ऐच्छिक नाही, कारण crash झालेला MCP server स्वतःची माहिती देत नाही. Agent तुमच्या issue tracker मधील माहिती वाचू शकत नसल्याचे सांगते, तेव्हा तुम्हाला समस्या कळते.

Process ला 127.0.0.1 वर bind करा आणि त्याच्या पुढे TLS (transport layer security) असलेला reverse proxy ठेवा. Database पर्यंत पोहोचणारा आणि authentication शिवाय public port वर उत्तर देणारा MCP server म्हणजे तुम्ही सार्वजनिकपणे उपलब्ध करून दिलेला database आहे. VPS वर MCP server चालवणे या लेखात proxy, certificate आणि firewall यांची योग्य पद्धतीने माहिती दिली आहे.

त्यानंतर वारंवार करावे लागणारे काम प्रामाणिकपणे मोजा. ही service तिच्या स्वतःच्या वेळापत्रकानुसार security updates घेते. तिच्याशी संवाद साधणाऱ्या agent च्या वेळापत्रकाशी त्याचा संबंध नसतो. तिचा OAuth token expire होतो आणि गैरसोयीच्या वेळी claude mcp list मध्ये ! Needs authentication छापले जाऊ लागते. तिची credentials config file किंवा Authorization header मध्ये ठेवलेली असतात. त्यामुळे इतर कोणत्याही secret प्रमाणेच त्यांची काळजी घ्यावी लागते. हा स्वतंत्र आणि मोठा विषय आहे: AI agent च्या आवाक्याबाहेर secrets ठेवणे. Skill साठी यापैकी कोणतेही काम करावे लागत नाही.

तुम्ही तो server तयार करण्यापूर्वी पर्यायाचा विचार करा. प्रस्तावित server मागील data साधारणपणे तिमाहीतून एकदाच बदलत असेल, तर agent ला कुठे पाहायचे आणि fields चा अर्थ काय आहे हे सांगणारी skill, सतत चालू ठेवावी लागणाऱ्या service पेक्षा स्वस्त ठरते.

स्वतःचा context cost कसा मोजावा

अंदाज बांधणे थांबवा आणि session मध्ये /context चालवा. हे startup breakdown दाखवते: system prompt, memory files, tools आणि MCP servers, तसेच प्रत्येकाचा token weight.

दोन गोष्टी तपासा. Memory files अंतर्गत अपेक्षित असलेली प्रत्येक rules file सूचीबद्ध आहे का ते पडताळा. एखादी file नसल्यास agent ला ती दिसत नाही. त्यामुळे instructions दुर्लक्षित होत असतील, तर सर्वप्रथम हे कारण दूर करा. त्यानंतर तुमच्या servers साठी लागणारा context पाहा. महिन्यातून दोनदा वापरत असलेला server त्या यादीतील सर्वात मोठ्या entries पैकी एक असल्यास, /mcp मध्ये तो बंद करा आणि ज्यांना त्याची आवश्यकता आहे अशा sessions साठी पुन्हा सुरू करा. कोणत्याही स्थितीत configuration जतन राहते.

Remote server cached 2h ago · connects on first use · 5 tools सारखी status देखील दाखवू शकतो. याचा अर्थ Claude Code ने startup वेळी connect होण्याऐवजी मागील session मधून tool list वाचली आहे. Tool पहिल्यांदा call केल्यावर ते connect होईल. Tools पहिल्या message पासून उपलब्ध असतात, त्यामुळे काहीही दुरुस्त करण्याची आवश्यकता नाही. प्रत्येक server startup वेळी connect व्हावा असे वाटत असल्यास MCP_DISCOVERY_CACHE=0 सेट करा. अधिक विस्तृत माहितीसाठी, Claude Code context window व्यवस्थापित करणे मध्ये compaction नंतर काय टिकून राहते हे स्पष्ट केले आहे आणि या tokens साठी प्रत्यक्षात किती खर्च येतो या संख्यांचे पैशांमध्ये रूपांतर करून दाखवते.

माझे skill कधीच का सुरू होत नाही?

याचे नेहमीचे कारण description असते. skill सुरू होण्यापूर्वी context मध्ये असलेला हा एकमेव मजकूर असतो. त्यामुळे त्यात परिस्थितीचा उल्लेख नसेल, तर कोणतीही जुळवणी होत नाही. Trigger थेट वाक्यात लिहा: "वापरकर्त्याने काय बदलले ते विचारल्यास, commit message मागितल्यास किंवा त्यांचा diff तपासण्यास सांगितल्यास वापरा." अस्पष्ट वर्णने शांतपणे अपयशी ठरतात. त्यामुळे ही समस्या लक्षात येणे कठीण होते.

दुसरे कारण frontmatter मधील typo असते. या वेळी त्रुटी स्पष्टपणे दिसते. अज्ञात key थेट नाकारली जाते:

Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name

तिसरे कारण location असते. Project skills तुमच्या working directory मधील आणि repository root पर्यंतच्या प्रत्येक parent directory मधील .claude/skills/ मधून load होतात. तुम्ही काम सुरू केलेल्या directory च्या खालील nested directories मधील skills launch वेळी load होत नाहीत. Agent त्या subdirectory मधील एखादी file पहिल्यांदा वाचतो किंवा edit करतो, तेव्हा ती skills उपलब्ध होतात. तोपर्यंत त्या autocomplete मध्ये दिसत नाहीत आणि नावाने invoke करता येत नाहीत.

या silent failure चे MCP मधील समतुल्य म्हणजे url असलेली आणि type नसलेली .mcp.json entry. type नसलेल्या कोणत्याही entry ला Claude Code stdio server समजतो. त्यामुळे ती entry वगळली जाते आणि पुढील संदेश दिला जातो:

MCP server "notes" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry

तीन्ही एकत्र वापरणे

हे तिन्ही mechanisms एकाच जागेसाठी स्पर्धा करत नाहीत. कार्यक्षम setup मध्ये प्रत्येक mechanism जिथे कमी खर्चात उपयुक्त ठरतो तिथे वापरला जातो. rules file मध्ये सर्वत्र लागू होणाऱ्या काही ओळी असतात. Skills मध्ये procedures असतात आणि त्या लागू असतील तेव्हाच load केल्या जातात. एक MCP server, आणि कधीकधी दोन MCP servers, ज्यांची सामग्री आधीच सांगता येत नाही अशा systems शी connect होतात. पहिल्या mechanism चे mental model अजून तयार करत असाल, तर agent skill नेमके काय आहे यामध्ये format चे सविस्तर वर्णन आहे.

एखादी गोष्ट कुठे ठेवायची यावरील बहुतेक वाद एका test ने मिटतात. ती गोष्ट delete करा, fresh session सुरू करा आणि agent ला task द्या. agent फक्त धीम्या गतीने काम करत असेल, तर ती skill मध्ये असायला हवी होती. agent आत्मविश्वासाने चुकीचे उत्तर देत असेल, तर ती rules file मध्ये असायला हवी होती. agent ला माहिती अजिबात मिळत नसेल, तर server आवश्यक होता; आता तो server चालू ठेवण्यासाठी plan देखील आवश्यक आहे.

FAQ

मी skill लिहावा की MCP server उभारावा?

माहिती प्रत्येक invocation दरम्यान बदलते का, यावर निर्णय घ्या. Issue tracker, database किंवा dashboard यांसारखी दुसरी व्यक्ती संपादित करू शकत असलेली live state agent ने वाचणे आवश्यक असल्यास, तुम्हाला MCP server आवश्यक आहे. कारण record बदलताच तुम्ही लिहून ठेवलेली कोणतीही माहिती stale होते. तुम्ही उत्तर एकदा लिहून ठेवले आणि सहा आठवड्यांनंतरही ते बरोबर राहणार असेल, तर skill लिहा. Skill ही git मधील एक file असते. ती चालवण्यासाठी process, उघडण्यासाठी port किंवा patch schedule आवश्यक नसते. त्यामुळे शक्य असल्यास हा कमी खर्चाचा पर्याय आहे.

MCP servers अजूनही माझी context window भरतात का?

पूर्वीपेक्षा खूपच कमी. सध्याच्या Claude Code मध्ये tool search default ने enabled असते. त्यामुळे session सुरू होताना फक्त tool names आणि server चे instructions field load होतात. Claude त्यांचा शोध घेतो तेव्हा full schemas fetch केले जातात. Tool search बंद असल्यास upfront loading अजूनही होते: ENABLE_TOOL_SEARCH=false सह, ANTHROPIC_BASE_URL ला first party नसलेल्या proxy कडे point केले असल्यास, किंवा Claude 4.5 generation पेक्षा जुन्या model वर. तुम्ही कोणत्या परिस्थितीत आहात हे पाहण्यासाठी /context चालवा. कारण जुन्या comparison posts मधील numbers upfront loading गृहीत धरतात.

Claude Code AGENTS.md वाचते का?

नाही. Claude Code CLAUDE.md वाचते. तुमच्या repository मध्ये इतर agents साठी आधीच AGENTS.md असल्यास, दोन copies ठेवण्याऐवजी त्यापैकी एकाला दुसऱ्याकडे point करा. Plain symlink साठी ln -s AGENTS.md CLAUDE.md चालवा. किंवा CLAUDE.md च्या पहिल्या line वर @AGENTS.md ठेवा आणि त्याखाली Claude-specific instructions जोडा. त्यानंतर session सुरू करा आणि /context चालवून CLAUDE.md Memory files अंतर्गत दिसत असल्याची पुष्टी करा.

Session च्या मध्यावर माझ्या skill चा परिणाम का थांबला?

सामान्यतः याचे कारण auto-compaction असते. Conversation summarize केल्यावर Claude Code प्रत्येक skill ची सर्वात अलीकडील invocation पुन्हा जोडते. प्रत्येक skill मधील पहिले 5,000 tokens ठेवले जातात आणि सर्व skills साठी एकत्रित budget 25,000 tokens असतो. हा budget सर्वात अलीकडे invoked झालेल्या skill पासून भरला जातो. त्यामुळे तुम्ही अनेक मोठे skills invoke केले असल्यास जुने skills पूर्णपणे वगळले जातात. पूर्ण content पुन्हा आणण्यासाठी skill पुन्हा invoke करा.

प्रत्येक session मध्ये मोठी rules file load होणे कसे थांबवू?

फक्त काही वेळा आवश्यक असलेले भाग .claude/rules/ files मध्ये हलवा. त्यांच्या frontmatter मध्ये paths field ठेवा. त्यामुळे agent matching file वर काम करेल तेव्हाच प्रत्येक file load होईल. File ला @path imports मध्ये विभागल्याने मदत होत नाही. कारण imported files expand होऊन launch वेळी त्या file सोबत load होतात जिच्यात त्यांचा reference आहे. Multi-step procedure असलेली कोणतीही गोष्ट standing fact ऐवजी skill बनवा. Skill body invoke करेपर्यंत त्यासाठी कोणताही खर्च होत नाही.