- بواسطة x32x01 ||
كنت شغال على جزء Optimization لتقليل استهلاك الـ tokens في مشروع بيعتمد على LLMs
الموديل المستخدم كان gpt-5.1، والبروجيكت عبارة عن AI Chat Agents الناس بتدخل تكلمه 💬
الصدمة؟
أي رسالة من اليوزر حتى: "سلام عليكم"
كانت بتستهلك 5000 token 🤯
قلت أكيد:
بس مش موافق يدخلوا كلهم مع كل رسالة 😅
رجعت بقى للصح:
بدل ما:
نعملهم: Embedding 👉 وندخلهم في RAG 👉
يعني:
اسمها: Tool Prediction 👉
الجزء ده:
🟢 رسالة:"عايز أعرف انتوا مين وتفاصيلكم" الـ prediction هيقول:
الفكرة بسيطة… لكن تأثيرها على التكلفة ضخم جدًا 💰
💬 حبيت أشارك التجربة يمكن حد يستفاد
ولو عندك حالة شبه كده أو مشكلة في استهلاك الـ tokens
شاركنا 👇 يمكن نطلع بحل أذكى 💡
الموديل المستخدم كان gpt-5.1، والبروجيكت عبارة عن AI Chat Agents الناس بتدخل تكلمه 💬
الصدمة؟
- من 5000 token للرسالة
- لـ 80 ~ 150 token بس 😳
- من 5000$
- لـ 115$ فقط
🔍 المشكلة ظهرت فين؟
وأنا ببص على الـ logs لاحظت حاجة مرعبة 😱أي رسالة من اليوزر حتى: "سلام عليكم"
كانت بتستهلك 5000 token 🤯
قلت أكيد:
- الـ prompt بايظ؟ ❌
- الـ RAG results؟ ❌ (تمام وزي الفل)
🛠️ الصدمة: 50 Tool شغالين مع كل رسالة
دخلت أعمل Debugging ولقيت إن الـ agent عنده:- 50 Tool
- كل Tool فيها:
- title
- description
- input schema
❓ طب نعمل إيه من غير ما نمسح الـ Tools؟
أنا موافق أستخدم الـ 50 Tool كلهمبس مش موافق يدخلوا كلهم مع كل رسالة 😅
رجعت بقى للصح:
- Papers
- Research
- Articles
🧠 الحل الذكي: Tools Metadata تدخل RAG مش Context
الفكرة ببساطة 👇بدل ما:
- title
- description
نعملهم: Embedding 👉 وندخلهم في RAG 👉
يعني:
- الـ Agent مش شايف كل الـ Tools طول الوقت
- بيشوف بس اللي محتاجه فعلًا
🔮 طب الـ Agent هيعرف يستخدم أنهي Tool إزاي؟
قبل ما نخلق الـ Agent نفسه، بنضيف خطوة صغيرة جدًا ⚡اسمها: Tool Prediction 👉
الجزء ده:
- بياخد رسالة اليوزر
- يتوقع أنهي Tools محتاجها
✨ مثال بسيط
🟢 رسالة:"سلام عليكم" الـ prediction model هيقول:- محتاج Tools؟ ❌
- عدد Tools = 0
🟢 رسالة:"عايز أعرف انتوا مين وتفاصيلكم" الـ prediction هيقول:
- محتاج Tool اسمها مثلًا: retrieve_knowledge
- يستخدم Tool واحدة بس
- الاستهلاك يوصل لـ ~150 token
مش 5000 😎
💻 مثال توضيحي (Pseudo Code)
Python:
user_message = "سلام عليكم"
predicted_tools = predict_tools(user_message)
if len(predicted_tools) == 0:
run_agent(context_only=True)
else:
run_agent(
context_only=False,
tools=predicted_tools
) 🚀 النتيجة النهائية
- نفس الموديل
- نفس الجودة
- نفس الـ Tools
- Tokens أقل
- Performance أحسن
- فاتورة أقل بكتير 🔥
🔚 الخلاصة
- أكبر استهلاك tokens مش دايمًا من الـ prompt
- Tools الكتير ممكن تدمّر الميزانية
- Tool Prediction + RAG = حل عبقري
- Optimization مش رفاهية… ده ضرورة
💬 حبيت أشارك التجربة يمكن حد يستفاد
ولو عندك حالة شبه كده أو مشكلة في استهلاك الـ tokens
شاركنا 👇 يمكن نطلع بحل أذكى 💡