খরচ অপ্টিমাইজেশনগাইড
Claude Code টোকেন ব্যবহার: টুল আউটপুট কনটেক্সটের বাইরে রাখুন
কীভাবে একটি PreToolUse হুক এবং context-mode প্লাগইন টেস্ট লগগুলো Claude Code-এর কনটেক্সটের বাইরে রাখে, সাথে ফিল্টারসহ ও ছাড়া একটি সেশনের খরচের অনুমান।

এই পৃষ্ঠায়
আপনার এজেন্ট টেস্ট স্যুট তিনবার চালিয়েছে, আর বিলটা কাজের চেয়ে বড়। কারণটা খুব কমই সে যে কোড লিখেছে সেটা। কারণটা হলো টেস্ট লগ: একবার কোনো টুলের ফলাফল Claude Code-এর কনটেক্সটে ঢুকলে, পরের প্রতিটি রিকোয়েস্ট সেটা আবার বহন করে। সমাধান হলো মডেল দেখার আগেই টুল আউটপুট ছোট করে ফেলা। অফিসিয়াল উপায় হলো Bash-এ একটি PreToolUse হুক; থার্ড-পার্টি উপায় হলো context-mode প্লাগইন। দুটোই নিচে দেওয়া, সাথে CheapTokens মডেলে একটি দীর্ঘ সেশনের খরচের অনুমান।
কেন একটি লগের দাম অনেকবার দেওয়া হয়#
Claude Code খরচের পেজ অনুযায়ী (https://code.claude.com/docs/en/costs, ২৩ অক্টোবর ২০২৬-এ যাচাই করা), Claude Code প্রতিটি রিকোয়েস্টের সাথে পুরো কথোপকথন পাঠায়, এবং প্রতিটি টুল ব্যবহার আরেকটি রিকোয়েস্ট ট্রিগার করে যা টুলের ফলাফল বহন করে। প্রম্পট ক্যাশিং ইতিহাসটি সস্তা ক্যাশড রেটে আবার পড়ে, কিন্তু টোকেনগুলো তখনও থাকে।
ধরুন এজেন্ট npm test চালায় এবং ১০,০০০ লাইনের একটি লগ পায়। ডকুমেন্টেশন বলে এ ধরনের লগ কয়েক হাজার থেকে কয়েক ডজন হাজার টোকেন হতে পারে। ধরে নিন ৩০,০০০ টোকেন। এরপর আপনি যা-ই করুন না কেন, সেই ৩০,০০০ টোকেন ধাপ ১১, ধাপ ১২, ধাপ ১৩, এবং এভাবে চলতে থাকবে যতক্ষণ না আপনি /clear বা কম্প্যাক্ট করেন। আর এটাই ফাঁদ: লগটি এক ধাপের জন্য উপকারী, আর আপনি এর জন্য ত্রিশ ধাপ ধরে দাম দিচ্ছেন।
সমাধান ১: একটি PreToolUse হুক যা টেস্ট আউটপুট ফিল্টার করে#
একই ডকুমেন্টেশন পেজ হুককে প্রিপ্রসেসিং হিসেবে প্রস্তাব করে: Bash-এ একটি PreToolUse হুক টেস্ট কমান্ডগুলো (npm test, pytest, go test) পুনর্লিখন করে যাতে সেগুলো grep --এর মধ্য দিয়ে পাইপ হয়। তখন এজেন্ট শুধু ব্যর্থতা এবং কয়েক লাইন কনটেক্সট দেখে, ১০,০০০ লাইনের সবুজ ডট নয়। ডকুমেন্টেশন বলে এটি কয়েক ডজন হাজার টোকেনকে কয়েকশতে নামিয়ে আনতে পারে।

এটি সেই ডকুমেন্টেশন পেজের স্ক্রিপ্ট (২৩ অক্টোবর ২০২৬-এ যাচাই করা)। এটির জন্য jq দরকার। mkdir - দিয়ে ফোল্ডার তৈরি করুন, স্ক্রিপ্টটি ~/ হিসেবে সেভ করুন এবং এটির উপর chmod +x চালান:
#!/bin/bash
input=$(cat)
cmd=$(echo "$input" | jq -r '.tool_input.command')
pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'
if [[ "$cmd" =~ $pattern ]]; then
filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"
echo "$input" | jq --arg filtered "$filtered_cmd" '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'
else
echo "{}"
fiতারপর ~/-এ এটি রেজিস্টার করুন:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "~/.claude/hooks/filter-test-output.sh" }]
}
]
}
}এটি কাজ করছে কিনা যাচাই করতে, Claude Code-এর ভিতরে /hooks খুলুন এবং PreToolUse এন্ট্রিটি খুঁজুন, অথবা claude - দিয়ে শুরু করুন এবং এজেন্টকে npm test চালাতে বলুন। যখন হুক কমান্ডটি পুনর্লিখন করেছে, ফাইলটিতে command ফিল্ডসহ একটি modified tool input keys লাইন থাকে। যদি টেস্ট পাস করে, আউটপুট খালি থাকে, তাই এজেন্ট একটি নীরব সফলতা পায়; আপনার রানার যদি ব্যর্থতাগুলো ভিন্নভাবে প্রিন্ট করে তবে প্যাটার্নটি সমন্বয় করুন।
সমাধান ২: বড় টুল ফলাফলের জন্য context-mode#
একটি হুক শুধু সেই কমান্ডগুলো কভার করে যেগুলো আপনি পাইপ করতে পারেন। Playwright থেকে পেজ স্ন্যাপশট বা বিশটি GitHub ইস্যুর একটি তালিকা MCP টুল থেকে আসে। context-mode সেটাই লক্ষ্য করে। এর README অনুযায়ী (https://github.com/mksglu/context-mode, ২৩ অক্টোবর ২০২৬-এ যাচাই করা; এতে কোনো সংস্করণ বা তারিখ দেখানো হয়নি), এটি একটি MCP সার্ভার এবং প্লাগইন যা কাঁচা টুল আউটপুট কনটেক্সট উইন্ডোর বাইরে রাখে, সেশন স্টেট SQLite-এ সংরক্ষণ করে এবং হুকের মাধ্যমে টুল কল রাউট করে। এটির জন্য Claude Code v1.0.33 বা নতুনতর দরকার, এবং এর লাইসেন্স Elastic License 2.0, যা OSI ওপেন-সোর্স লাইসেন্স নয়।
Claude Code-এর ভিতরে ইনস্টল করুন:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-modeরিস্টার্ট করুন বা /reload-plugins চালান, তারপর / দিয়ে যাচাই করুন। শুধু-MCP ভ্যারিয়েন্ট, claude mcp add context-, টুলগুলো যোগ করে কিন্তু স্বয়ংক্রিয় রাউটিং নেই।
প্রজেক্টটি বড় হ্রাসের কথা জানায়: ৩১৫ KB হয় ৫.৪ KB (৯৮%), একটি ৫৬ KB পেজ স্ন্যাপশট হয় ২৯৯ বাইট, ৯৮৬ KB হয় ৬২ KB। এগুলো লেখকের নিজের সংখ্যা: এগুলোকে সর্বোচ্চ সীমা ধরে নিন এবং আপনার নিজের সেশনে /context দিয়ে আগে ও পরে মাপুন।
একটি দীর্ঘ সেশনের খরচ, ফিল্টারসহ ও ফিল্টার ছাড়া#
এখানে একটি অনুমিত সেশনের হিসাব। এটি একটি ৪০-ধাপের কোডিং সেশন, ২০,০০০-টোকেন গড় বেস কনটেক্সট, প্রতি ধাপে ৫০০ আউটপুট টোকেন, এবং তিনটি টেস্ট রান, ধাপ ১০, ২০ ও ৩০-এ। প্রতিটি কাঁচা লগ ৩০,০০০ টোকেন; ফিল্টার করা সংস্করণ ৫০০।
- ধাপ ১০-এর একটি লগ তার পরের ৩০টি রিকোয়েস্টে আবার পাঠানো হয়: ৩০ × ৩০,০০০ = ৯০০,০০০ টোকেন। ধাপ ২০: ২০ × ৩০,০০০ = ৬০০,০০০। ধাপ ৩০: ১০ × ৩০,০০০ = ৩০০,০০০। অতিরিক্ত ইনপুট: ৯০০,০০০ + ৬০০,০০০ + ৩০০,০০০ = ১,৮০০,০০০।
- ফিল্টার করা: (৩০ + ২০ + ১০) × ৫০০ = ৩০,০০০ অতিরিক্ত ইনপুট।
- বেস ইনপুট: ৪০ × ২০,০০০ = ৮০০,০০০। আউটপুট: ৪০ × ৫০০ = ২০,০০০।
- তাই সেশনটি ফিল্টার ছাড়া ৮০০,০০০ + ১,৮০০,০০০ = ২,৬০০,০০০ ইনপুট টোকেন এবং ফিল্টারসহ ৮০০,০০০ + ৩০,০০০ = ৮৩০,০০০, উভয় ক্ষেত্রেই ২০,০০০ আউটপুট টোকেন।
হিসাবটি প্রতিটি ইনপুট টোকেনকে পূর্ণ রেটে গোনে। ক্যাশিং প্রকৃত সংখ্যা কমায়, কিন্তু একই যুক্তিতে উভয় ক্ষেত্রেই কমায়। MiniMax-M2.7-এর লাইভ দাম (MiniMaxAI/, ১৮০K কনটেক্সট, সর্বোচ্চ ৮,১৯২ আউটপুট টোকেন), যা এই ধরনের ইনপুট-ভারী এজেন্ট লুপের উপযুক্ত মডেল, নিচের চার্টে দেওয়া।
অনুমান: ৪০ ধাপ, ২০,০০০-টোকেন বেস কনটেক্সট, প্রতি ধাপে ৫০০ আউটপুট টোকেন, ৩০,০০০ টোকেনের তিনটি টেস্ট রান (ফিল্টার করা: ৫০০)।
MiniMax-M2.7-এ সেশনটির খরচ ফিল্টার ছাড়া $0.133 এবং ফিল্টারসহ $0.0445, এবং মোট, ইনপুট ও আউটপুট একসাথে গুনলে, এটি OpenRouter-এর রেফারেন্স দামের চেয়ে সস্তা। ফিল্টার ছাড়া ক্ষেত্রে ইনপুটের প্রায় দুই-তৃতীয়াংশ হলো লগ যা এজেন্ট একবার পড়েছে।
মূল বিষয় সঠিক ডলার নয়। মূল বিষয় হলো ফিল্টারটি যেকোনো মডেলে ২,৬০০,০০০ ইনপুট টোকেনের মধ্যে প্রায় ১,৭৭০,০০০ সরিয়ে দেয় (২,৬০০,০০০ − ৮৩০,০০০ = ১,৭৭০,০০০), এবং একটি সস্তা মডেল বাকি প্রতিটি টোকেনের দাম কমায়।
একটি CheapTokens মডেলে Claude Code চালান#
Claude Code Anthropic Messages প্রোটোকল ব্যবহার করে, এবং CheapTokens এটি সমর্থন করে। Claude Code-এর বেস URL-এ /v1 নেই। সম্পূর্ণ সেটআপ কীভাবে Claude Code-কে CheapTokens-এ সংযুক্ত করবেন-এ আছে। সংক্ষিপ্ত সংস্করণ, একটি প্লেসহোল্ডার কী সহ:
export ANTHROPIC_BASE_URL=https://api.cheaptokens.dev
export ANTHROPIC_AUTH_TOKEN=YOUR_CHEAPTOKENS_KEY
export ANTHROPIC_MODEL=MiniMaxAI/MiniMax-M2.7
claudedocs থেকে সম্পূর্ণ id ব্যবহার করুন; প্রাইস টেবিলের ছোট নাম API গ্রহণ করে না। প্রতিটি মডেলের দাম pricing page-এ আছে। Claude Code-এর বিল কমানোর অন্যান্য অভ্যাসের জন্য (/clear, /compact, /mcp, সাবএজেন্ট), দেখুন How to make Claude Code cheaper। একটি বাস্তব রিকোয়েস্টে ইনপুট ও আউটপুট কীভাবে গোনা হয় তা দেখতে, পড়ুন How many tokens does an API request use।
দ্রুত চেকলিস্ট#
- একটি দীর্ঘ সেশনে
/contextচালান এবং দেখুন কী জায়গা নিচ্ছে। - টেস্ট কমান্ডের জন্য Bash হুক যোগ করুন;
/hooksবা ডিবাগ লগে পুনর্লিখন নিশ্চিত করুন। - যদি MCP টুল বড় স্ন্যাপশট ফেরত দেয়, context-mode চেষ্টা করুন এবং আগে ও পরে
/contextতুলনা করুন। - সম্পর্কহীন কাজের মধ্যে
/clear, যাতে পুরনো লগগুলো আর সাথে না চলে।



