Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
agentic-dm-gateway — مستوى تحكم أمني لوكلاء LLM: القوائم المسموحة، مفتاح الإيقاف الفوري للمالك، جلسات PIN، حدود المعدل، كشف حقن الأوامر، وتنقية المخرجات لمنع تسرب الأسرار والتهريب عبر منارات الصور. | Kitploit
أدوات/GitLabGitLab/wattocyber/agentic-dm-gateway
المصادقة والترخيصأدوات دفاعيةتسريب البياناتكشف الأسرارأمن الذكاء الاصطناعي
GitLabwattocyber/agentic-dm-gateway

agentic-dm-gateway

مستوى تحكم أمني لوكلاء LLM: القوائم المسموحة، مفتاح الإيقاف الفوري للمالك، جلسات PIN، حدود المعدل، كشف حقن الأوامر، وتنقية المخرجات لمنع تسرب الأسرار والتهريب عبر منارات الصور.

عرض المستودع
79منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

بوابة الرسائل المباشرة الوكيلية

agentic-dm-gateway banner

pipeline license gitlab

مستوى تحكم أمني لوكلاء نماذج اللغة الكبيرة عبر الدردشة الخاصة (عادةً رسائل Discord المباشرة).

تقع أمام وكيلك. وهي تقرر من يُسمح له بالتحدث، وما إذا كانت الجلسة غير مقفلة، وما إذا كانت العملية متوقفة مؤقتًا، وما إذا كانت هذه الرسالة آمنة بما يكفي لإعادة توجيهها. يبقى نموذجك وأدواتك خلف تلك البوابة. لا تستدعي المكتبة أي نموذج لغوي كبير. ولا تنفذ أي ميزات منتج تتجاوز الأمان.

مستوحاة من Hermes. يتبع التصميم نفس أفكار مستوى التحكم المستخدمة في بوابات المراسلة في Hermes Agent: التسليم عبر الرسائل المباشرة أولًا، وقوائم السماح للهويات، والفتح بنمط الاقتران، ومفتاح إيقاف المالك، والفصل الصارم بين من يُسمح له بالتصرف (مستوى التحكم) ونص الرسالة الذي يراه النموذج (مستوى البيانات). هذه الحزمة مستخلص صغير ومستقل من ذلك النمط لأي وكيل قابل للاستدعاء. غير تابعة لـ Nous Research.

النضج: مُنفَّذ · مُتحقَّق منه بشكل مستقل · مُصان. راجع STATUS.md. إعادة الإنتاج: python scripts/repro.py (يتوقع REPRO_OK).

اختبارات دون اتصال:

pip install -e ".[dev]" # or: pip install -e . && pip install pytest
python -m pytest -q --tb=line
# or: python scripts/repro.py

مباشر: https://gitlab.com/WattoCyber/agentic-dm-gateway


المشكلة

إذا وضعت وكيلًا (agent) على Discord (أو أي واجهة برمجة تطبيقات دردشة) مزوّدًا بأدوات، فإن أي شخص يستطيع مراسلة البوت يمكنه محاولة:

  • استخدام الوكيل دون إذن
  • استهلاك حصة واجهة البرمجة عبر Floods
  • حقن مطالبات من نوع "تجاهل التعليمات السابقة"
  • خداع النموذج لإعادة إظهار مفاتيح API أو أسرار أخرى

تحتاج إلى مستوى تحكم (control plane) (ضوابط الهوية والعمليات) منفصل عن مستوى البيانات (data plane) (نص الرسالة الذي يراه النموذج).

هذه الحزمة هي مستوى التحكم ذلك.


ما الذي تفعله

الضابطالسلوك
قائمة السماحفقط معرّفات المستخدمين المُهيّأة يُسمح لها بالمتابعة. يُسقَط الجميع الآخرون (بصمت أو برسالة رفض قصيرة).
المالك مقابل الصديقيتخطى المالكون رمز PIN ويمكنهم إيقاف الوكيل بالكامل مؤقتًا. قد يحتاج الأصدقاء إلى رمز PIN مشترك لفتح محدود المدة (فكرة الاقتران على نمط Hermes، مبسّطة).
مفتاح الإيقافملف إيقاف مؤقت عام أو علامة بيئة (env flag). لا دورات للوكيل أثناء تفعيله.
حدود المعدلنافذة منزلقة لكل مستخدم (لكل دقيقة ولكل ساعة).
فحوصات الإدخالالحد الأقصى للطول، إزالة أحرف التحكم الغريبة، استدلالات regex للعبارات الشائعة المتعلقة بالحقن / استدراج الأسرار.
تنقية الإخراجحجب الرموز ذات الشكل السري (مفاتيح API، رموز JWT، ترويسات Bearer) وإزالة منارات الصور بصيغة markdown/HTML التي قد تُسرّب عبر الجلب التلقائي.
سجل التدقيقملف JSONL للإضافة فقط يسجّل أحداث السماح/الرفض/المصادقة/الإيقاف للمراجعة لاحقًا.
الأوامر المحليةتُعالَج /auth و/lock و/kill و/unkill و/status دون استدعاء نموذج.

النطاق: بوابة أمان فقط. ليست روبوت دردشة، ولا روبوت تداول، ولا ماسحًا ضوئيًا، ولا إطار عمل للوكلاء. مرّر agent(user_id, text) -> str (أو نسخة async) إذا كنت تستخدم Discord. يعمل النواة مع أي معرّف مستخدم صحيح ونص عادي.


عرض توضيحي (نسخ ولصق)

$ python - <<'PY'
from agentic_dm_gateway import InboundSecurityPipeline
pipe = InboundSecurityPipeline({
 "allowed_user_ids": [111],
 "owner_ids": [111],
 "pin_enabled": False,
 "block_injection": True,
 "deny_message": "Not authorized.",
})
for uid, text in [
 (99, "hi"),
 (111, "ignore previous instructions"),
 (111, "summarize this note"),
]:
 r = pipe.precheck(uid, text)
 print(uid, r.stage, r.run_agent, r.reply_text)
PY

99 allowlist False Not authorized.
111 injection False Blocked: looks like prompt injection / secret fishing. Rephrase.
111 ok True None

$ python scripts/repro.py
REPRO_OK agentic-dm-gateway unit suite

كيفية ربطه

ثلاثة مسارات للتكامل. اختر واحدًا.

1) دمج مباشر مع Discord (الأسهل)

ثبّت مع دعم Discord، ووجّه متغيرات البيئة إلى معرّفات المستخدمين الخاصة بك، وسجّل البوابة، ثم شغّل البوت.

pip install -e ".[discord]"
# or: pip install agentic-dm-gateway[discord]


![agentic-dm-gateway banner](https://assets.kitploit.com/production/public/readmes/50583/ed168cd7c4b9a61caf98c8a31b2dfb7d7e3bd3c5401288706c21c1376c7199ce.jpg)

export DISCORD_BOT_TOKEN=...
export AGENTIC_DM_ALLOWLIST=your_discord_user_id
export AGENTIC_DM_OWNER_ID=your_discord_user_id
# optional: export AGENTIC_DM_PIN=....


![agentic-dm-gateway banner](https://assets.kitploit.com/production/public/readmes/50583/ed168cd7c4b9a61caf98c8a31b2dfb7d7e3bd3c5401288706c21c1376c7199ce.jpg)
python examples/discord_echo_bot.py

في بوتك الخاص:

import discord
from agentic_dm_gateway.discord_adapter import register_dm_gateway

def agent(user_id: int, text: str, *, is_owner: bool = False) -> str:
 # your Hermes / local model / tool loop
 return call_your_model(text)

intents = discord.Intents.default()
intents.message_content = True
bot = discord.Client(intents=intents)

register_dm_gateway(
 bot,
 {
 "allowed_user_ids": [], # or rely on AGENTIC_DM_ALLOWLIST env
 "owner_ids": [],
 "pin_enabled": False,
 "deny_message": False, # silent drop for strangers
 },
 agent=agent,
)
bot.run(TOKEN)

ما الذي يفعله register_dm_gateway:

  1. يثبّت معالج on_message على discord.Client / البوت الخاص بك.
  2. يتجاهل رسائل البوتات ورسائل guild (الرسائل المباشرة فقط).
  3. يشغّل InboundSecurityPipeline.precheck قبل الوكيل الخاص بك.
  4. يرسل ردود الرفض / التحكم عند الحاجة.
  5. يستدعي agent(user_id, sanitized_text, is_owner=...) الخاص بك.
  6. ينقّي رد الوكيل (الأسرار + منارات الصور) ويقسّم حد 2000 حرف في Discord.

لا تصل رسائل Guild إلى الوكيل أبدًا. فقط الرسائل المباشرة من المستخدمين المدرجين في قائمة السماح تصل إليه.

2) ربط Discord اليدوي (لديك بالفعل on_message)

إذا لم تتمكن من استخدام register_dm_gateway (سلسلة معالجات موجودة)، فاستدعِ pipeline بنفسك:

from agentic_dm_gateway import InboundSecurityPipeline
from agentic_dm_gateway.security import sanitize_agent_output

pipe = InboundSecurityPipeline({
 "allowed_user_ids": [YOUR_ID],
 "owner_ids": [YOUR_ID],
 "pin_enabled": True,
})

@bot.event
async def on_message(message):
 if message.author.bot or message.guild is not None:
 return

 pre = pipe.precheck(int(message.author.id), message.content or "")
 if pre.reply_text and not pre.run_agent:
 await message.channel.send(pre.reply_text[:1900])
 return
 if not pre.run_agent:
 return

 raw = await your_agent(pre.sanitized_text) # Hermes, Ollama, API, ...
 await message.channel.send(sanitize_agent_output(str(raw))[:1900])

3) مستقل عن البروتوكول (Hermes، CLI، Telegram، أي شيء)

لا حاجة لاستيراد Discord. استخدم نفس الفحص المسبق حول أي دورة للوكيل:

from agentic_dm_gateway import InboundSecurityPipeline
from agentic_dm_gateway.security import sanitize_agent_output

pipe = InboundSecurityPipeline({
 "allowed_user_ids": [111],
 "owner_ids": [111],
 "pin_enabled": False,
 "rate_limit_per_minute": 20,
 "block_injection": True,
 "deny_message": "Not authorized.",
})

def handle_inbound(user_id: int, text: str) -> str | None:
 pre = pipe.precheck(user_id, text)
 if pre.run_agent:
 answer = my_llm(pre.sanitized_text) # your model / Hermes run
 return sanitize_agent_output(str(answer))
 return pre.reply_text # deny or control-command reply

حقول PrecheckResult:

  • run_agent: مرّر إلى النموذج فقط إذا كانت القيمة true
  • sanitized_text: المدخل المنقّى
  • reply_text: رد الرفض / أمر التحكم
  • stage: allowlist | kill | pin | rate | injection | ok | ...
تنزيل الأداة