تخطَّ إلى المحتوى
kazma.
البحث في كاظمه والتوثيق
EN

متغيرات البيئة

مرجع متغيرات البيئة الكامل للتشغيل المحلي وDocker والإنتاج. فضّل الأسرار القوية؛ ولا تُودِع .env بمفاتيح حقيقية أبدًا. انظر أيضًا الإعداد لkazma.yaml وConfigStore.

المتغيرالافتراضيالغرض
KAZMA_COMPUTER_USE10 يعطّل أداة computer_use
KAZMA_LANGFUSE(unset)0 يفرض التتبع في الطرفية حتى عند وجود مفاتيح Langfuse
LANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEYمع logging.langfuse.enabled: auto، ضبطهما معًا ← الطرف الخلفي Langfuse
KAZMA_EMBED_FLEET(unset)1 + مفتاح OpenAI/Voyage ← تضمينات مستضافة (القضية #78)
KAZMA_DOCLING1نقض إضافي على إنقاذ Docling المحلي لاستخراجات PDF الضعيفة، الذي تحكمه documents.security.local_salvage (مفعّلة افتراضيًا): القيم 0/false/off/no تطفئه؛ ولا قيمة لهذا المتغير تشغّله. ويعمل الإنقاذ داخل عامل المحلّل المحدود.
KAZMA_REMOTE_PARSEunset (لا نقض)الإنقاذ البعيد معطل افتراضيًا. إنقاذ PDF البعيد (LlamaParse/Reducto) يرسل المستند الأصلي إلى طرف ثالث، لذا تحكمه documents.security.remote_parse وقيمتها الافتراضية False. هذا المتغير نقض لا مفتاح تشغيل: القيم 0/false/off/no تعطّل الإنقاذ حتى حيث تسمح السياسة؛ وتركه غير مضبوط أو أي قيمة أخرى يترك السياسة على حالها ولا يفعّل الإنقاذ وحده أبدًا. وتُقرأ السياسة والنقض من جديد قبل كل مزوّد. وجود مفتاح API مضبوط ليس موافقة — فعّل السياسة عمدًا.
LLAMAPARSE_API_KEY / REDUCTO_API_KEYمفاتيح المزوّدين للإنقاذ البعيد، تُستخدم فقط ما دامت documents.security.remote_parse مفعّلة: تُجرَّب بالترتيب LlamaParse ثم Reducto (يُتخطى المزوّد الذي لا مفتاح له، والفاشل يُنتقل منه إلى التالي)، وتُدقَّق كل محاولة قبل الرفع. تقرؤها عملية كاظمه، لا عامل المحلّل أبدًا؛ والقراءة العابرة لمرفق دردشة لا ترفع شيئًا أبدًا.
KAZMA_SILERO_VAD(unset)1 يجرب Silero VAD (يلجأ إلى الطاقة عند الفشل)
KAZMA_LITELLM_URL(unset)وسيط LiteLLM للمزوّدين المتوافقين مع OpenAI فقط (مثل http://127.0.0.1:4000)
KAZMA_LITELLM10 يعطّل وسيط LiteLLM حتى لو ضُبط عنوان URL
KAZMA_LITELLM_LOCAL(unset)1 يمرر أيضًا Ollama/LM Studio على loopback عبر الوسيط
KAZMA_LITELLM_FALLBACK_DIRECT(unset)1 يعيد المحاولة على URL المزوّد الأصلي إن تعذر الوصول إلى الوسيط
LITELLM_MASTER_KEY / LITELLM_API_KEY / KAZMA_LITELLM_KEYمفتاح Bearer المرسل إلى الوسيط (وإلا يعاد استخدام مفتاح المزوّد)
LIVEKIT_URL(unset)عنوان LiveKit WebRTC للصوت الازدواجي على الويب (مثل wss://…livekit.cloud)
LIVEKIT_API_KEY / LIVEKIT_API_SECRETاعتمادات LiveKit API (رموز الغرفة). الثلاثة مطلوبة جميعًا لتفعيل الازدواج
KAZMA_VOICE_DUPLEX10 يعطّل ازدواج LiveKit حتى لو ضُبطت الاعتمادات
KAZMA_CUA_PLANNER10 يُبقي computer_use على vision-JSON (بلا تعيين Anthropic CUA / Gemini)
KAZMA_MCP_SAMPLING01 يسمح بMCP sampling/createMessage بعد بطاقة HITL (لا أدوات على استدعاء الـLLM ذاك)
KAZMA_MCP_SAMPLING_TIMEOUT60ثواني انتظار بطاقة HITL لأخذ العينات
  1. المساعدات المحددة قد تقرأ البيئة أولًا (KAZMA_SECRET، والخزانة، والإفصاح).
  2. قاعدة بيانات ConfigStore تتفوق لمعظم إعدادات التشغيل.
  3. kazma.yaml يزرع مفاتيح قاعدة البيانات الناقصة.
  4. الافتراضيات المضمّنة في الشيفرة أخيرًا.

لا تُراكب ConfigStore.get() العامة كل متغير بيئة تلقائيًا — فقط المفاتيح الموثقة أدناه التي تقرؤها الشيفرة صراحةً.

حدود منصة المستندات، وOCR، والعمال، والاحتفاظ، والسعة، وأعلام الطرح مفاتيح ConfigStore / kazma.yaml (تُقرأ حية)، لا مصفوفة بيئة موازية. المفاتيح الأساسية متداخلة، مثل:

  • documents.enabled / documents.shadow / documents.default_authoritative
  • documents.intake.max_bytes، وdocuments.intake.lease_seconds، وdocuments.limits.max_pages
  • documents.ocr.* (بما فيها documents.ocr.tables، قراءة الجداول المسطّرة في الصفحات الممسوحة ضوئيًا خلية خلية)، وdocuments.workers.*، وdocuments.capacity.*
  • documents.retention.*، وdocuments.gc.*، وdocuments.security.*

انظر ذكاء المستندات — الإعداد الحي وkazma_core.documents.config.DocumentConfig. ملف التنفيذ الصارم security.execution.container_required (إعداد، لا متغير) يرفض ملف العامل process أدناه (worker_isolation_required). حجم نقع الشهادة الاختياري: KAZMA_DOCUMENT_SOAK_ITERATIONS (يستخدمه scripts/certify_documents.py --soak).

المتغيرالافتراضيالغرض
KAZMA_DOCUMENTS_JOBS_BACKENDunset‏sqlite (أو sqlite3) يفرض طابور مهام SQLite؛ وأي قيمة أخرى تتبع المنصة: Postgres حين تكون قاعدة بيانات كاظمه Postgres. ومجمّع Postgres الذي يتعذر الوصول إليه عند البدء يتراجع إلى SQLite، وتُبلغ عنه الجاهزية بوصفه متدهورًا.
KAZMA_DOCUMENTS_METADATA_BACKENDunset (auto)sqlite / postgres (وأيضًا postgresql، وpg) / auto (غير مضبوط أو auto: يتبع طرف المهام)؛ وأي قيمة أخرى تعني SQLite. بيانات Postgres الوصفية تفعّل CRUD متعدد النسخ؛ وعلام/مسح GC مستقل عن الطرف (repository.gc_mark)
KAZMA_DOCUMENT_SOAK_ITERATIONS100تكرارات اختبار التحليل المتكرر الممتد في certify_documents.py --soak. وليس نقعًا متعدد الأيام، ولا يُبلَّغ عنه بوصفه كذلك.
KAZMA_DOCUMENT_FONT_DIRvendored documents/assets/fonts/دليل الخطوط لPDF/DOCX/HTML المولدة. المسار الذي ليس دليلًا يُتجاهل مع تحذير، ويُستخدم IBM Plex Sans Arabic المرفق. ما زالت الخطوط تُختار بتغطية محارف مُتحقَّقة.
KAZMA_DOCUMENT_WORKER_ISOLATIONunset (إعداد المشرف، وإلا process)أين تعمل عمّال المحلّل والتعديل والعرض، حين يُضبط: يتقدم على إعداد المشرف security.execution.document_worker_isolation (الإعدادات ← المستندات)، الذي يقرر في غير ذلك. ‏process: عملية فرعية محلية بحدود للوقت والمخرجات والموارد، وبلا عزل لنظام الملفات أو الشبكة (تُبلغ الجاهزية hostile_document_profile: unqualified)؛ ويُرفض حين يكون security.execution.container_required مفعّلًا. ‏container: يذهب كل تشغيل إلى وسيط عامل المستندات، الذي يشغّله في حاوية جديدة مُصادَق عليها بلا شبكة ولا تركيبات (mounts)، والمحركات التي يُبلغ عنها كاظمه هي التي تُبلغ عنها صورة العامل؛ والوسيط الذي يتعذر الوصول إليه أو غير المُصادَق عليه أو الممتلئ يرفض التشغيل (worker_isolation_unavailable، يُعاد محاولته؛ ولا تراجع إلى process). وأي قيمة أخرى ترفض كل تشغيل (worker_isolation_invalid).
KAZMA_OCR_MODEL_DIRunset (models/ocr في دليل البيانات)حيث توجد نماذج محرك OCR العصبي (documents.ocr.engine: ‏neural أو auto). يكتبها python scripts/ocr_models.py install هناك مع manifest.json؛ ولا يستخدمها عامل المستندات إلا حين يطابق كل ملف بصمة SHA-256 الخاصة به في ذلك البيان، وإلا يقرأ Tesseract الصفحات. وتضبطه صورة العامل على نسختها الخاصة للقراءة فقط (/opt/kazma/ocr-models).
KAZMA_DOCUMENT_BROKER_URLset by the guardالوسيط لعزل container: ‏unix:///path/to/broker.sock أو tcp://host:port. يعطي الحارس الخادم الذي يُفرخه عنوان loopback لوسيطه الخاص؛ والقيمة من .env تتقدم (وسيط آخر: compose، أو وسيط يُشغَّل يدويًا)، ولا يشغّل الحارس حينئذ أي وسيط. ومن دونه يرفض container كل تشغيل. مكان TCP شبكة خاصة: الرمز هو المصادقة الوحيدة.
KAZMA_DOCUMENT_BROKER_TOKEN_FILEset by the guardالملف الذي يحمل رمز الوسيط المشترك (32 حرفًا على الأقل؛ ويُشغَّل الوسيط بالملف نفسه). ملف الحارس هو .kazma/document_broker.token، يُنشأ مرة واحدة ولا يقرؤه إلا حساب الحارس. يُقرأ في كل تشغيل، فيسري الرمز المُدوَّر دون إعادة تشغيل.

تشغيلات تأهيل للاختبار فقط، اختيارية (يتخطى كل اختبار نفسه دون متغيره؛ وتشرح صفحة معالجة المستندات كيف تُشغَّل): KAZMA_TEST_DOCUMENT_WORKER_IMAGE (صورة عامل مبنية: ملف الحاوية على Docker حقيقي)، وKAZMA_TEST_CONTAINER_LEASE_DRILL_IMAGE (تمرين عقد إيجار الاستيعاب عبر المضيفين)، وKAZMA_TEST_RESTORE_DRILL_DOCUMENTS مع KAZMA_TEST_RESTORE_DRILL_KIB (الافتراضي 64) وKAZMA_TEST_RESTORE_DRILL_WRITERS (الافتراضي 1) (تمرين استعادة Postgres على نطاق واسع)، وKAZMA_TEST_REAL_SCANS_MANIFEST (قياسات المسح الضوئي الحقيقي).


العملية الأساسية والربط

Section titled “العملية الأساسية والربط”
المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
KAZMA_HOST127.0.0.1اضبطه عمدًاعنوان الربط. غير الـloopback يستلزم KAZMA_SECRET.
KAZMA_PORT / معامل serve9090 (CLI)لامنفذ HTTP (kazma serve [port]). قد تختلف صور Docker — راجع compose.
KAZMA_SECRETيولَّد على loopbackنعم على ربط عامالسر المشترك للمصادقة / مادة الجلسة. الافتراضي السيئ المعروف يُرفض.
KAZMA_PRODUCTIONunsetنعم للإنتاجيفعّل اشتراط الخزانة، وجذر مساحة العمل، وسياسة code_exec، والحجب القاسي لYOLO، وغيرها.
KAZMA_ENVunsetاختياريبعض المسارات تعامل production بطريقة خاصة.
KAZMA_PUBLIC_URLunsetيوصى به خلف وسيطالأصل العام لإعادة توجيه OAuth/OIDC.
KAZMA_CORS_ORIGINSunsetإن كان المتصفح عابر الأصولأصول HTTP(S) صريحة مفصولة بفواصل موثوقة لCORS المُعتمد وطفرات API. يجب أن يطابق المخطط والمنفذ؛ وتُرفض البدل (wildcards). منافذ التطوير المحلي غير موثوقة افتراضيًا. أعلن أصل الوسيط العكسي الخارجي بKAZMA_PUBLIC_URL. أعد التشغيل بعد تغيير هذه الإعدادات.
KAZMA_ENV_FILEunsetلامسار مطلق لملف .env إضافي، يُحمَّل أخيرًا فيتفوق. سلّم .env هو: <kazma home>/.env ← <cwd>/.env ← هذا. أما kazma mcp وkazma ask، اللذان تشغّلهما برامج أخرى من مجلداتها، فيقرآن ملف .env في نسخة التثبيت بدل ملف مجلد التشغيل. لا يُقرأ شيء خارج التثبيت ما لم تسمّه هنا.
KAZMA_TRUSTED_PROXIESunsetنعم خلف أي وسيطعناوين أو نطاقات CIDR مفصولة بفواصل يتصل الوسيط العكسي منها (127.0.0.1 لnginx/Caddy على نفس المضيف أو Cloudflare Tunnel، أو IP الجسر أو 172.17.0.0/16 تحت Docker). فقط هؤلاء الأقران يجوز لهم ضبط X-Forwarded-For / X-Forwarded-Proto؛ وتُتجاهل *. انظر التحذير أدناه.
KAZMA_LOOPBACK_AUTOLOGIN0أبقِه 0يعيد تفعيل دخول loopback بلا اعتمادات حتى مع إعلان وسيط. فقط لمضيف يكون 127.0.0.1 فيه حقًا أنت وحدك.
KAZMA_TRUST_LAN0أبقِه 0 إلا للحاجةثقة الشبكة المحلية لبرمجية المصادقة الوسيطة.
KAZMA_AUTH_DISABLEDunsetأبدًا في الإنتاجيعطّل مساعدات المصادقة — للتطوير فقط.
KAZMA_ALLOW_YOLOunsetتجنّبهالسبيل الوحيد لإعادة تفعيل YOLO مع KAZMA_PRODUCTION=1.
KAZMA_VERBOSE_ERRORS0أبقِه 0يُلحق رسالة الاستثناء الحقيقية بأخطاء API (ما زالت منقحة للمسارات والاعتمادات). للتطوير فقط — يُعيد الإنتاج رمزًا مع معرّف ترابط.
KAZMA_BASE_URLunsetلاعنوان إضافي يجوز للوكيل استخدامه للوصول إلى API هذا الخادم نفسه (بعد KAZMA_PUBLIC_URL في ملاحظة وقت تشغيل الوكيل، وبعد مرشحي loopback لاستدعاءات API المحلية).
KAZMA_GIT_SHAgit rev-parseلامعرّف الالتزام الظاهر في سلسلة الإصدار (0.10.0+g<sha>). يُقرأ أولًا منه، ثم GITHUB_SHA، ثم git؛ اضبطه في الصور التي تُشحن بلا دليل .git.

:::danger KAZMA_TRUSTED_PROXIES مطلوب خلف وسيط عكسي

تعامل كاظمه عميل loopback مع المشغّل المحلي وتصدر له جلسة إدارية تلقائيًا — هذا ما يجعل استخدام localhost لمشغّل واحد يعمل بلا تسجيل دخول.

خلف nginx/Caddy على نفس المضيف، يكون request.client.host هو 127.0.0.1 لكل زائر من الإنترنت تقريبًا. لذا، دون KAZMA_TRUSTED_PROXIES، يُعامل كل منهم مشغّلًا وتُسلَّم له جلسة إدارية عند أول تحميل صفحة، عبر HTTP وWebSocket معًا. كان هذا نتيجة التدقيق F-01 (2026-08-29).

اضبطه على عنوان الوسيط فتقرأ كاظمه العميل الحقيقي من X-Forwarded-For بدلًا منه، وتتوقف عن معاملة عنوان النظير كاعتماد:

نافذة طرفيّة
KAZMA_TRUSTED_PROXIES=127.0.0.1

يجب أن يرسل وسيطك الترويسات المُعاد توجيهها وأن يستبدل قيمةً زوّدها العميل بدلًا من إلحاقها؛ وdeploy/nginx-ha.conf المرفق يفعل ذلك أصلًا. تطبق كاظمه هذا المتغير بنفسها (برمجية وسيطة داخل التطبيق)، وكل مُشغِّل يبدأ uvicorn بproxy_headers=False؛ وإن أطلقته بنفسك فاستخدم --no-proxy-headers.

تحت Docker هذا عنوان حاوية الوسيط على شبكة الجسر (غالبًا 172.17.0.1 أو بوابة شبكة compose)، وليس 127.0.0.1. الخطأ فيه لم يعد يفشل منفتحًا: ترويسة مُعاد توجيهها من نظير غير معلن تعطّل ثقة عنوان النظير للعملية وتسجل العنوان الواجب ضبطه.

تحقق بعد النشر — يجب أن يقرأ authenticated بالقيمة false قبل تسجيل الدخول، وينبغي أن يقرأ proxy.state بالقيمة declared (direct خلف وسيط تعني أن المتغير لم يُفعَّل؛ وundeclared_proxy تعني أنه مضبوط على العنوان الخطأ، وproxy.hint يسمي الصحيح):

نافذة طرفيّة
curl -s https://your.domain/api/auth/status

:::


الأسرار والخزانة والتشفير

Section titled “الأسرار والخزانة والتشفير”
المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
KAZMA_VAULT_KEYunsetنعم في الإنتاجالمادة الرئيسية لخزانة AES.
KAZMA_JWT_SECRETunsetإن استُخدمت مسارات JWTتوقيع JWT لرموز المستأجر/API.
KAZMA_DISCLOSURE_KEYunsetاختياريمساعد تشفير الإفصاح عن الثغرات.

قاعدة البيانات والنسخ المتعددة

Section titled “قاعدة البيانات والنسخ المتعددة”
المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
KAZMA_DATABASE_URLunset (SQLite)النسخ المتعددة نعمDSN لPostgres ← مخازن مزدوجة الطرف + نقطة تفتيش LangGraph.
DATABASE_URLunsetبديليقبله سكربت الترحيل اسمًا بديلًا.
KAZMA_DB_BACKENDautoاختيارييفرض postgres / sqlite.
KAZMA_DB_CONTAINERkazma-dbالترحيلاسم حاوية Docker لاكتشاف pg_dump / pg_restore أثناء kazma migrate. انظر الترحيل.
KAZMA_DB_INTERNAL_PORT5432الترحيلمنفذ Postgres داخل الحاوية عندما يعمل pg_dump / pg_restore عبر docker exec (منفذ المضيف المُمرَّر لا يمكن الوصول إليه من داخل الحاوية).
KAZMA_DOCKER_BINunsetاختياريالمسار المطلق لCLI الـdocker. تبحث عنه كاظمه هنا، ثم في PATH، ثم في مجلدات تثبيت Docker القياسية (مثل C:\Program Files\Docker\Docker\resources\bin). مطلوب فقط عندما يعيش docker في مكان آخر: نسخ Postgres الاحتياطي (pg_dump عبر docker exec)، وسجن python_exec في Docker، ووسيط عامل المستندات (documents/worker_broker.py، الذي توجّهه صورة الوسيط إلى CLI الخاص بها بهذا المتغير) كلها تستخدمه. تحديث Docker Desktop يسقط مجلده من PATH لم يعد يوقف النسخ الاحتياطية (2026-09-25).
KAZMA_PG_POOL_RETRIES5اختياريعدد إعادة محاولات إنشاء مجموعة الاتصالات. يتعامل مع الإخفاقات العابرة (جسر Docker على Windows، وحاوية في منتصف الإقلاع).
KAZMA_PG_POOL_RETRY_DELAY1.0اختياريثوانٍ بين إعادة محاولات إنشاء المجموعة.
KAZMA_PG_POOL_MIN1اختياريأقل عدد اتصالات في مجموعة psycopg.
KAZMA_PG_POOL_MAX10اختياريأكثر اتصالات في مجموعة psycopg.
KAZMA_PG_POOL_TIMEOUT5اختياريثوانٍ ينتظرها المستدعي لاتصال حر في المجموعة. كان تعليق هنا يجمد معه /health/ready على حلقة الأحداث.
KAZMA_REPLICA_AFFINITYonالنسخ المتعددة0 يوقف ضبط كوكي kazma-replica (HttpOnly). تعيش SSE الدردشة وبعض حالة السرب في عملية واحدة، فخلف موازن حمل أبقه مفعّلًا واجعل الموازن لاصقًا على تلك الكوكي (أو على تجزئة IP المصدر).
KAZMA_REPLICA_IDhostnameالنسخ المتعددةالقيمة التي تكتبها هذه العقدة في كوكي kazma-replica.
KAZMA_SHARED_BREAKERSon in production / multi-userالنسخ المتعددةإبقاء حالة قواطع دائرة السرب في مخزن الإعدادات (swarm.breaker.<worker>) لترى كل نسخة قاطعًا فتحته نسخة أخرى. القيمتان 1 / 0 تفرضانها في الاتجاهين.
KAZMA_SWARM_MAX_ACTIVEswarm max_concurrent_tasks (10)لاكم مهمة سرب يجوز أن تعمل دفعة واحدة؛ والتالية تُرفض (“Swarm at capacity”). خطوط الأنابيب المتوقفة عند نقطة تفتيش لا تُحتسب.
KAZMA_MIGRATE_CHECK_PORToffالترحيل1 يجعل kazma migrate import يرفض أيضًا أثناء استماع شيء على KAZMA_PORT / PORT (الافتراضي 9090). الفحص الرئيسي هو نبض الخادم العامل؛ وفحص المنفذ معطل افتراضيًا لأن خادم تطوير غير ذي صلة على ذلك المنفذ كان سيحجب كل استيراد.
KAZMA_DB_BACKEND_SOURCE—ليس دخلًايُكتب ولا يُقرأ أبدًا: يسجل kazma migrate export طرف قاعدة البيانات المصدر بهذا الاسم في meta.env للحزمة.
KAZMA_PG_RESTORE_REHEARSALunset (on with Postgres)اختياري0 يطفئ تمرين الاستعادة الأسبوعي (مفعل افتراضيًا منذ 2026-09-27) مهما قالت الإعداد؛ و1 يفعّله فوق إعداد خاطئ. التمرين: تُستعادة أحدث pg_dump إلى قاعدة بيانات مؤقتة kazma_restore_rehearsal_<epoch> على نفس الخادم، وتُفحص (جداول كاظمه موجودة، وkazma_settings ليست فارغة) ثم تُحذف. يحتاج المستخدم إلى CREATEDB؛ وبدونه يبلغ التمرين UNVERIFIED مع المنحة الواجب إضافتها. قواعد البيانات المؤقتة المتخلفة الأقدم من يوم يزيلها التشغيل التالي؛ ولا شيء آخر يُنشأ أو يُحذف أبدًا.

الصندوق الرملي (E2B) والسرب المتين (Temporal)

Section titled “الصندوق الرملي (E2B) والسرب المتين (Temporal)”

يبقى الافتراضي python_exec عبر Docker/المحلي والسرب داخل العملية. هذان تفعيل اختياري للشيفرة غير الموثوقة والعمل متعدد الساعات. انظر البنية المعمارية والإضافتين kazma[sandbox] / kazma[durable].

المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
KAZMA_E2B_API_KEY / E2B_API_KEYunsetشيفرة غير موثوقة / متعددة المستخدمينE2B Firecracker لpython_exec بموافقة HITL.
KAZMA_E2Bauto if key setلا0 يُبقي Docker/المحلي حتى مع مفتاح.
KAZMA_CODE_EXEC_DOCKERautoسجن المشغّل الواحدتتطلب 1/true/on/yes/docker/force/required Docker دون بديل محلي وتحجب صدفة المضيف إلا بمنحة صريحة. يطلب 0 التنفيذ المحلي، الذي تظل سياسة الإنتاج وتعدد المستخدمين ترفضه.
KAZMA_HOST_SHELLunsetمنفذ نجاةترفض ملفات الإنتاج وتعدد المستخدمين وDocker الإجباري صدفة المضيف افتراضيًا. يمنحها 1 صراحة بعد HITL؛ وهذا يعيد قدرة المضيف، لا العزل. ترفضها أعطال قراءة السياسة.
KAZMA_CODE_EXEC_IMAGEpython:3.12-slimلاصورة سجن Docker الذي يشغّل python_exec / code_exec (بلا شبكة، وقرص عمل للقراءة فقط، وtmpfs على /tmp، وسقف ذاكرة).
KAZMA_LIVE_EVALunsetلا1 يشغّل تقييم النموذج الحي الاختياري (tests/test_hands_live.py). تتخطاه CI.
KAZMA_TEMPORAL_HOST / TEMPORAL_ADDRESSunsetسرب متعدد الساعاتواجهة Temporal الأمامية (localhost:7233). كل مهمة سرب مقبولة تعمل عبر سير عمل Temporal ينفّذ نشاطُه تشغيلَ المحرك نفسه في هذه العملية (دليل السرب §1.0a).
KAZMA_TEMPORALauto if host setلا0 يُبقي السرب داخل العملية.
KAZMA_TEMPORAL_REQUIREDunsetتنفيذ دائم مطلوبيفشل 1 المهمة إذا عُطّل Temporal/SDK أو توقف، أو لم يكن عامل هذه العملية يعمل؛ وتُؤجَّل الموافقة حينئذ مع ترك نقطة تفتيشها مفتوحة. وتتطلب الجاهزية العامل الجاري أيضًا. بعد الإرسال لا يسمح أي ملف ببديل محلي. لا يعيد Temporal أبدًا محاولة نشاط مهمة.
KAZMA_TEMPORAL_NAMESPACEdefaultلانطاق Temporal.
KAZMA_TEMPORAL_QUEUEkazma-swarmلاطابور مهام سير العمل. وتستخدم أنشطة كل عملية <queue>-run-<tag>، وهو طابور لا تستطلعه إلا تلك العملية (يُختار الوسم عند البدء).
KAZMA_CODE_INDEXonلا0 يعطّل فهرس رموز مساحة العمل + codebase_search.
KAZMA_IDE_LSPonلا0 يعطّل الطرف الخلفي /api/ide/lsp. محرر الويب /ide هو CodeMirror 5 (نحو فقط)؛ وواجهة hover/complete غير مربوطة.

للاختبار فقط: KAZMA_TEST_TEMPORAL_REQUIRED=1 يجعل تأهيل المسار الدائم (tests/test_swarm_temporal_durable.py، على خادم اختبار Temporal الذي يتخطى الزمن) يفشل بدل أن يُتخطى حين تكون SDK مفقودة أو يتعذر بدء خادم الاختبار؛ وتضبطه مهمة CI الخاصة به.


المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
OPENAI_API_KEYunsetمفتاح مزوّد واحدمفتاح متوافق مع OpenAI؛ يُستخدم أيضًا للطرف الخلفي dall-e لتوليد الصور.
KAZMA_API_KEYunsetاحتياطاحتياط مفتاح API عام.
KAZMA_PROVIDERunsetإقلاع اختياريمعرّف المزوّد عند الإقلاع.
KAZMA_MODELunsetإقلاع اختياريمعرّف النموذج عند الإقلاع.
ANTHROPIC_API_KEYunsetلClaudeواجهة Anthropic Messages الأصلية (anthropic_llm.py).
AZURE_OPENAI_ENDPOINT / AZURE_OPENAI_API_KEY / AZURE_OPENAI_DEPLOYMENT / AZURE_OPENAI_API_VERSIONunsetلAzureAzure OpenAI (azure_llm.py).
AWS_REGION / AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEYunsetلBedrockAWS Bedrock عبر سلسلة اعتمادات boto3 القياسية (bedrock_llm.py).
STABILITY_API_KEYunsetاختياريالطرف الخلفي Stability SDXL لتوليد الصور.
FAL_KEYunsetاختياريالطرف الخلفي Flux لتوليد الصور (FAL.ai).
KAZMA_IMAGE_PROVIDERunsetاختيارييفرض طرف صور (pollinations/dall-e/stability/flux)؛ الافتراضي auto.
KAZMA_STRICT_TOOLSunset (off)لا1 يختم OpenAI بfunction.strict: true على مخططات الأدوات المغلقة (كل الخصائص مطلوبة؛ والاختيارية T | null). الافتراضي كائنات مغلقة بadditionalProperties: false فقط — المحلي / Anthropic / Gemini كثيرًا ما تعيد 400 على strict.
KAZMA_LLM_STREAMonلا0 يلجأ إلى chat() الحاجب (بلا SSE للرموز).
KAZMA_TOOL_HOOKSonلا0 يعطّل PreToolUse / PostToolUse (داخل العملية وكأمر). القوائم agent.hooks.* الفارغة لا تفعل شيئًا. لا تستطيع الخطافات تخطي HITL.
KAZMA_PLAN_MODEonلا0 يعطّل دخول/تنفيذ /plan. وضع الخطة ليس تجاوزًا لHITL.
GOOGLE_CALENDAR_TOKEN / MS_CALENDAR_TOKENunsetاختياريتجاوز فقط. تعيش رموز التقويم عادةً في الخزانة (calendar.google.* / calendar.microsoft.*) عبر الإعدادات ← البريد ← ربط التقويم / الاتصال بMicrosoft.
KAZMA_CALENDAR_PROVIDERautoلاطرف التقويم حين لا يسمي الاستدعاء واحدًا: auto يختار Google إن كان متصلًا، وإلا Microsoft، وإلا الصندوق الرملي. وgoogle أو outlook (أيضًا microsoft / graph) أو sandbox تفرض واحدًا؛ والمزوّد المفروض بلا اعتمادات يفشل بدل اللجوء إلى غيره.
KAZMA_VISION_MODELSunsetلاأنماط معرّفات نماذج إضافية مفصولة بفواصل (بدل shell، غير حساسة لحالة الأحرف) تُعامل كقادرة على الرؤية، مثلًا لكي يلتقط analyze_image نموذجًا لا تعرفه القائمة المدمجة. قائمة النص فقط المدمجة ما زالت تتفوق.
خاصة بالمزوّد—حسب الاستخداممثل DeepSeek، وGroq، وxAI، وOpenRouter، وMistral، وTogether، وCohere، وFireworks، وPerplexity، وAI21، وGoogle ADC — انظر الإعداد.

مساحة العمل والذاكرة والعرض التجريبي

Section titled “مساحة العمل والذاكرة والعرض التجريبي”
المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
KAZMA_WORKSPACEمساحة WorkspaceStore / دليل البيانات النشطسياسة جذر الإنتاججذر مساحة ملفات الوكيل.
KAZMA_VECTOR_COLLECTIONagent_memoryلااسم مجموعة Chroma.
KAZMA_VECTOR_MODELBAAI/bge-m3لااسم بديل قديم لمعرّف نموذج التضمين (يفضَّل KAZMA_EMBED_MODEL).
KAZMA_EMBED_PROVIDERlocalلامزوّد التضمين (local أو openai-compatible).
KAZMA_EMBED_MODELBAAI/bge-m3لامعرّف نموذج التضمين (يتجاوز memory.embedding.model).
KAZMA_EMBED_DIM1024لابُعد التضمين (يجب أن يطابق مخرجات النموذج).
KAZMA_EMBED_BASE_URLunsetبعيد فقطعنوان URL الأساسي لنقطة النهاية /embeddings لopenai-compatible.
KAZMA_EMBED_API_KEYunsetبعيد فقطمفتاح API لنقطة النهاية /embeddings البعيدة.
KAZMA_EMBEDDER_PREWARMunset (on)لا0 يتخطى تحميل المُضمِّن عند الإقلاع؛ ويحمّله أول استدعاء ذاكرة يحتاج إليه. تضبطه مجموعة الاختبارات: كل تطبيق بناه اختبارٌ كان يحمّل النموذج المحلي هنا.
KAZMA_DEMO_MODEunsetلاعُدد العرض التجريبي — لا تفعّله في إنتاج حقيقي أبدًا.
KAZMA_MEMORY_ENFORCE_TENANTunsetتعدد مستأجرين فقطعندما يكون 1/true — ودائمًا تحت KAZMA_PRODUCTION=1 أو متعدد المستخدمين — يُنطق كل مسار /api/memory القراءات، والعدادات، والطفرات المفتاحة بالمعرّف، ورموز التراجع، والنظافة، ومسح الرسم بمستأجر الطلب (تضبطه برمجية المصادقة الوسيطة من مطالبات JWT/جلسة-opaque مُتحقَّقة). غير مضبوط خارج الإنتاج ومتعدد المستخدمين = مستأجر مفرد default.
KAZMA_MEMORY_STATE_ROLEunset (mirror)نسخ متعددة فقطprimary يجعل طرف حالة Postgres مصدر حقيقة الاسترجاع (فشل مغلق إن كان متوقفًا — بلا SQLite صامت). البحث الكثيف pgvector مدموج مع ILIKE. لا تفعّله حتى يبلغ python scripts/reconcile_memory_mirror.py --dry-run انعدام الصفوف ميتة-في-المرآة / موجودة-في-المرآة-فقط.
KAZMA_PGVECTORauto when a Postgres DSN is setلا0 يُبقي sqlite-vec حتى مع تفعيل Postgres، دون فحص الخادم. غير مضبوط = اختيار pgvector تلقائيًا من KAZMA_DATABASE_URL / memory.backends.state.url، ويُستخدم فقط إن كان ذلك الـPostgres يأتي بامتداد vector (يُفحص عند الإقلاع؛ وpostgres:16-alpine لا يأتي به). Qdrant الصريح في الإعدادات ما زال يتفوق.
KAZMA_WORKSPACE_ROOTunsetتحصين متعدد المشاريععند ضبطه، يجب أن تعيش مساحة عمل مختارة في الواجهة (Switch Repo، منتقي المسار) تحت هذا الدليل. وهو أيضًا أساس يجوز تحته حذف مساحات العمل المستنسخة.
KAZMA_CLONE_DIR~/kazma-reposلاحيث تُوضع المستودعات المستنسخة من الواجهة أو /ide clone؛ ومساحات العمل المستنسخة تحته يجوز حذفها من الواجهة.
KAZMA_MEMORY_STATE_REGIONunsetمناطق متعددة فقطمعرّف المنطقة المختوم على الصفوف التي يعكسها هذا التثبيت إلى طرف حالة Postgres.
KAZMA_MEMORY_CONFLICT_POLICYlast_write_winsمناطق متعددة فقطما تفعله كتابة منعكسة بصف كتبته منطقة أخرى أولًا: last_write_wins تستبدله؛ وorigin_wins تبقي صف المنطقة الأخرى بصمت (تحتسبه صحة الذاكرة kept_by_origin)؛ وfail_closed ترفض الكتابة نفسها وتبلغ عنها: صحة الذاكرة تحسب region_conflicts، ومزامنة المرآة تسجل تحذيرًا كل تمريرة وتنادي المشغّل (memory.region_conflict، بحد أقصى كل 6 ساعات).
KAZMA_GRAPH_PROVIDERsqliteلاneo4j يضع رسم المعرفة على Neo4j، وكذلك ضبط KAZMA_NEO4J_URL / NEO4J_URI أو KAZMA_NEO4J_DEFAULT=1. هذه تملأ إعدادات فارغة فقط: المزوّد المختار مسبقًا في الإعدادات يتفوق.
KAZMA_NEO4J_URLbolt://localhost:7687لاعنوان Neo4j (NEO4J_URI / NEO4J_URL مقبولة أيضًا)؛ وضبطه يختار Neo4j.
KAZMA_NEO4J_USERneo4jلامستخدم Neo4j (NEO4J_USER مقبول أيضًا).
KAZMA_NEO4J_PASSWORDunsetلاكلمة مرور Neo4j (NEO4J_PASSWORD مقبولة أيضًا)؛ تملأ كلمة مرور فارغة فقط.
KAZMA_NEO4J_DEFAULTunsetلا1 يختار Neo4j بالافتراضيات أعلاه؛ ويضبطه ملف تعريف docker-compose.neo4j.
KAZMA_AUTO_STORE_BELIEFSconservativeلاأي الحقائق يحفظها مستخرج الذاكرة من محادثة دون أن يُطلب منه: off، أو conservative (الافتراضي) أو aggressive (كل معتقد مستخرج — السلوك القديم). يتفوق على memory.auto_store_beliefs.
KAZMA_TRANSCRIPT_RECALLonلا0 يوقف البحث في نصوص دردشة الويب الماضية عندما يعود استرجاع الذاكرة فارغًا (ConfigStore ‏memory.transcript_fallback؛ قيمة البيئة تتفوق). نص المحادثة يصل النموذج مسيّجًا كبيانات غير موثوقة.

للاختبار فقط، باشتراك صريح: KAZMA_TEST_NEO4J_URL مع KAZMA_TEST_NEO4J_USER (الافتراضي neo4j) وKAZMA_TEST_NEO4J_PASSWORD تشغّل tests/test_neo4j_graph_cypher.py على خادم Neo4j حقيقي. وجّهها إلى خادم يمكن الاستغناء عنه: الاختبارات تكتب وتحذف عُقد مستأجر الاختبار الخاص بها فقط، ولا تمسّ شيئًا آخر، لكن الرسم الحي ليس مكان التجربة.


بحث الويب والكشط والبحث العميق

Section titled “بحث الويب والكشط والبحث العميق”

انظر بحث الويب للأدلة. تُستخدم الأدوات من الدردشة (لا يوجد أمر شرطة /research).

المتغيرالافتراضيالغرض
KAZMA_SEARXNG_URLmulti-base auto-discoveryطرف البحث المفضل لweb_search (أيضًا ConfigStore ‏search.searxng_url).
KAZMA_READ_URL_MAX_CHARS16000حجم النافذة الافتراضي لاستجابة read_url / crawl_page واحدة.
KAZMA_TOOL_RESULT_MAX_CHARS100000محارف نتيجة أداة عادية واحدة يراها النموذج؛ والباقي يُقتطع. 0 أو أقل = بلا حد.
KAZMA_TOOL_RESULT_RESEARCH_MAX_CHARS200000سقف أعلى لأدوات البحث والتنفيذ (read_url، وcrawl_site، والهضمات، وweb_search، وshell_exec، وpython_exec، …).
KAZMA_RESEARCH_DIRresearchالمجلد الفرعي الافتراضي لمساحة العمل لحفظ read_url_to_file / الزحف ذي التسمية التلقائية.
KAZMA_RESEARCH_DIGEST_MAX12000أقصى حجم لمخرجات digest_research_file.
KAZMA_CRAWL_MAX_PAGES50السقف الصلب لmax_pages في crawl_site.
KAZMA_CRAWL_MAX_DEPTH5السقف الصلب لmax_depth في crawl_site.
KAZMA_ACQUISITION_MODElocal_onlyHTTP واستخراج وChromium محليون افتراضيًا. يسمح local_first_with_remote_fallback بالمزوّدين المسمّين أدناه فقط.
KAZMA_ACQUISITION_REMOTE_PROVIDERSفارغjina وfirecrawl وproxy مفصولة بفواصل؛ تحتاج الوضع البعيد أيضًا. لا تمنح المفاتيح والأعلام القديمة إذنًا.
KAZMA_FETCH_DEADLINE_SECONDS90مهلة جلب النص الكاملة بما فيها DNS ومحاولات HTTP والعرض؛ 1–300 ثانية.
KAZMA_REMOTE_JOB_REQUESTS256حصة طلبات خارجية دائمة لكل مهمة جلب أو بحث أو زحف، 0–1024. تستهلك الإخفاقات والمحاولات غير المؤكدة الحصة؛ والطلبات المتداخلة تشترك فيها. حد أعلى للطلبات لا سقف إنفاق مالي.
KAZMA_REMOTE_DAY_REQUESTS1024حصة طلبات خارجية دائمة للتثبيت لكل يوم UTC، 0–4096. مشتركة بين المزوّدين والعمليات. يمنع الصفر الإرسال الخارجي. استخدام رصيد المزوّد وأرصدته منفصلان.
KAZMA_BROWSER_CGROUP_ROOTمجموعة Linux الحاليةجذر cgroup v2 مفوّض مطلق وقابل للكتابة لشجرة مشغّل Chromium المحلي. يحتاج ضوابط الذاكرة وswap وpids وCPU وقتل المجموعة. يمنع غيابها العرض؛ ولا تضبط كاظمه متحكمات المضيف. يستخدم Windows كائنات Job Object.
KAZMA_FETCH_BACKENDautoاختيار بعيد قديم: auto | httpx | jina | firecrawl؛ يخضع دائمًا لسياسة الجلب.
KAZMA_FIRECRAWL_API_KEYغير مضبوطاعتماد Firecrawl اختياري؛ يستخدم بعد فشل المحلي فقط حين تسمح السياسة. المفتاح وحده ليس إذنًا.
KAZMA_FIRECRAWL_URLhttps://api.firecrawl.devأساس Firecrawl API (الاستضافة الذاتية مقبولة).
KAZMA_JINA_READERغير مضبوطيمنع 0/off Jina. لا تتجاوز القيم الأخرى سياسة الجلب وقائمة المزوّدين.
JINA_API_KEY / KAZMA_JINA_API_KEYunsetرمز Bearer اختياري لJina لحدود معدل أعلى.
KAZMA_FETCH_MAX_BYTES5000000سقف جسم الاستجابة المفكوك لـ HTTP المباشر والكشط المستضاف؛ محصور في 65536–20000000 بايت. استهلاك الشبكة وتوسع gzip/deflate محدودان. الاقتطاع صريح؛ وتُرفض حمولة الخدمة وJSON الناقصان. حد لكل استجابة، لا ميزانية ذاكرة المهمة أو المتصفح كاملة.
KAZMA_CRAWL_RESPECT_ROBOTS1فرض سياسة KazmaBot على الزحف الآلي واكتشاف المعرفة واستيعابها وحفظ البحث. يمنع فشل الفحص الإرسال؛ و404/410 يعنيان قواعد غائبة. يُسجل 0 الصريح أو crawl_site(respect_robots=False) كتغيير من المشغّل. القيمتان 0/1 فقط صالحتان.
KAZMA_RESEARCH_ROUTEsoftلطلب بصياغة بحث عميق، يخبر الدور الأول الوكيل باستخدام run_research_pipeline مرة واحدة بدل سلسلة بحثات يدوية كثيرة. 0 يزيل التلميح.
KAZMA_RESEARCH_SOFT_NUDGEdeepحين يكون الوكيل قد بحث وقرأ أقل من KAZMA_RESEARCH_MIN_SOURCES مصدرًا كاملًا، يُخبَر مرة واحدة بعدم الإجابة من المقتطفات: deep للطلبات العميقة الصياغة، وأي قيمة أخرى لكل طلب بحث، و0 أبدًا.
KAZMA_RESEARCH_MIN_SOURCES2المصادر الكاملة (read_url، وread_url_to_file، والزحف، والهضمات) التي تُحتسب كافية لذلك التنبيه (1–8).
KAZMA_RESEARCH_ALLOW_THINunset1 يتيح لخط أنابيب depth="deep" أن ينتهي بمصادر أقل من حده الأدنى. بدونه يفشل التشغيل العميق؛ والتشغيل القياسي يحذر فقط.
KAZMA_RESEARCH_EXPORT_DOCXunset1 يصدّر كل تقرير خط أنابيب أيضًا كDOCX، كما لو مُرر export_docx=True.
KAZMA_RESEARCH_GAP_LOOPonبعد التركيب الأول للتشغيل العميق، يجوز لناقد أن يطلب جولة مصادر إضافية واحدة. 0 تتخطاها.
KAZMA_RESEARCH_LLM_PLANNERon0 يخطط استعلامات البحث بالاستدلال بدل استدعاء LLM.
KAZMA_RESEARCH_LLM_CRITICon0 يفحص المسودة للفجوات بالاستدلال بدل استدعاء LLM.
KAZMA_RESEARCH_SYNTH_MAX_IN48000محارف ملفات البحث التي يقرؤها استدعاء research_synthesize واحد (4000–200000).

حزمة اختيارية: Playwright عبر pip install -e ".[web]" ثم playwright install chromium (جدران البوتات / الأصداف الرقيقة بJS).

تشغيل SearXNG: docker compose --profile search up -d searxng ← http://127.0.0.1:8088 (‏JSON مفعّل في deploy/searxng/settings.yml).

قاعدة المعرفة (المكتبات)

Section titled “قاعدة المعرفة (المكتبات)”
المتغيرالافتراضيالغرض
KAZMA_KB_AUTO_INJECTonمقاطع المكتبات الموسومة بحقن تلقائي يجوز إضافتها إلى سياق الدور. 0 يطفئ ذلك لكل مكتبة.
KAZMA_KB_AUTO_INJECT_TOP_K3مقاطع تُحقن لكل دور (1–10).
KAZMA_KB_SMART_SEARCHoff1 يحقن أيضًا من كل مكتبة نشطة ذات محتوى (ليس الموسومة بحقن تلقائي فقط) حين تبدو الرسالة تقنية. ConfigStore ‏knowledge.smart_search؛ قيمة البيئة تتفوق. مرشحات المستأجر والأرشيف ما زالت تنطبق.
KAZMA_KB_MAX_PAGES200صفحات يجلبها عمل استيعاب مكتبة واحد (1–1000).
KAZMA_KB_MAX_DEPTH10عمق روابط زحف الاستيعاب حين لا يكون للموقع sitemap (0–20).
KAZMA_KB_DELAY_MS300توقف بين جلبات صفحات عمل استيعاب واحد (0–5000 ملّي ثانية).
RAYON_NUM_THREADSتضبطه كاظمه على 1 إن لم يكن مضبوطًاليس متغيّرًا من كاظمه: عدد خيوط مجمّع خيوط Rust في chromadb (وفي tokenizers). تضبطه كاظمه على 1 قبل أن يبدأ مخزن متجهات مكتبة المعرفة، لأن إعادة Chroma المتوازية لسجل كتابات مكتبة قد تُسقط العملية. القيمة التي تضبطها بنفسك تُحفظ، مع WARNING في السجل؛ اتركه غير مضبوط. انظر مكتبة المعرفة.
KAZMA_KB_SCOPE_MODEtreeأي الروابط يتبعها زحف الاستيعاب: tree (نفس المضيف ومقطع مسار موضوع مشترك)، أو prefix (بادئة مسار صارمة)، أو domain (نفس المضيف، أي مسار)، أو exact (الصفحة الواحدة).
KAZMA_KB_JINA_FALLBACKمحكوم بالسياسةبديل اكتشاف Jina يتطلب الوضع البعيد وإذن jina. يمنعه 0 أو KAZMA_JINA_READER=0؛ ولا يمنح 1 إذنًا.

المتغيرالافتراضيمطلوب في الإنتاج؟الغرض
KAZMA_OIDC_ISSUERunsetإن كان SSOعنوان URL لمُصدر OIDC.
KAZMA_OIDC_CLIENT_IDunsetإن كان SSOمعرّف العميل.
KAZMA_OIDC_CLIENT_SECRETunsetإن كان SSOسر العميل (مطلوب لid_token من نوع HS*).
KAZMA_OIDC_TENANT_CLAIMunsetلاالمطالبة في id_token التي تسمّي مستأجر المستخدم في كاظمه؛ تُربط بالجلسة عند تسجيل الدخول. غير مضبوطة = كل مستخدم OIDC يتشارك المستأجر الافتراضي.
KAZMA_OIDC_REDIRECT_URI{KAZMA_PUBLIC_URL}/api/auth/oidc/callbackإن لم يكن هناك عنوان عامعنوان رد النداء المسجل لدى IdP. يرفض تسجيل الدخول البدء حين لا يكون هذا ولا KAZMA_PUBLIC_URL مضبوطًا.
KAZMA_OIDC_SCOPESopenid profile emailلاالنطاقات المطلوبة عند تسجيل الدخول.
KAZMA_OIDC_ROLE_CLAIMroleلامطالبة id_token التي تسمّي دور المستخدم (roles ثم groups تُجربان تاليًا). تُستخدم admin / operator / viewer كما هي؛ وowner وmember وreadonly وما شابه تُرسم إلى أدوار.
KAZMA_OIDC_DEFAULT_ROLEoperatorأبقِه operator أو viewerالدور لمستخدم لا يسمّي رمزه دورًا معروفًا. ضبط admin يجعل كل هؤلاء المستخدمين مدراء.
KAZMA_MULTI_USERunsetتعدد مستخدمين1 يطبق وضعية تعدد المستخدمين قبل وجود أي مستخدم منصة: ترشيح لكل مستأجر، وجلسات opaque دائمًا، وفحص RBAC لا يستطيع العمل يرفض الطلب بدل السماح به.
KAZMA_SESSION_TTL_SECONDS1209600 (14 يومًا)لاعمر جلسة المتصفح؛ 300 على الأقل.
KAZMA_TENANT_IDdefaultCLI فقطالمستأجر الذي يتصرف باسمه CLI ‏kazma.

انظر إعداد OIDC IdP وSaaS متعدد المستخدمين.


البريد (Gmail / Microsoft Graph / الصندوق الرملي)

Section titled “البريد (Gmail / Microsoft Graph / الصندوق الرملي)”

مهارة أصلية email-manager. المزوّد الافتراضي auto: حساب حقيقي إن كان مضبوطًا، وإلا الصندوق الرملي.

المتغيرالغرض
EMAIL_DEFAULT_PROVIDERauto | sandbox | gmail | microsoft | imap | pop
EMAIL_GMAIL_ADDRESSعنوان Gmail (تملؤه OAuth أو IMAP/POP)
EMAIL_GMAIL_APP_PASSWORDكلمة مرور تطبيق لIMAP/POP (كثيرًا ما تُحجب على Workspace)
EMAIL_GMAIL_AUTHoauth | imap | pop (تضبطها الإعدادات / OAuth)
EMAIL_GMAIL_CLIENT_ID / EMAIL_GMAIL_CLIENT_SECRETعميل Google OAuth على الويب (موصى به)
EMAIL_GMAIL_ACCESS_TOKEN / EMAIL_GMAIL_REFRESH_TOKENتضبطهما رد نداء OAuth / التحديث
EMAIL_GMAIL_REDIRECT_URIتجاوز رد النداء (الافتراضي {public}/api/email/oauth/gmail/callback)
EMAIL_MS_ACCESS_TOKENرمز Graph حامل (قصير العمر)
EMAIL_MS_REFRESH_TOKENرمز تحديث Graph
EMAIL_MS_CLIENT_IDمعرّف عميل تطبيق Azure
EMAIL_MS_CLIENT_SECRETسر تطبيق Azure (العملاء السريون)
EMAIL_MS_TENANT_IDالمستأجر (common افتراضيًا)
EMAIL_MS_REDIRECT_URIتجاوز رد النداء (الافتراضي {public}/api/email/oauth/microsoft/callback)
EMAIL_MS_AUTHoauth | imap | pop
EMAIL_MS_ADDRESS / EMAIL_MS_PASSWORDدخول Microsoft IMAP/POP
EMAIL_MS_IMAP_HOST / EMAIL_MS_POP_HOST / EMAIL_MS_SMTP_HOSTتجاوز مضيفات بروتوكولات M365
KAZMA_PUBLIC_URLالأصل العام لإعادة توجيه OAuth خلف الوسيط
EMAIL_ADDRESS / EMAIL_PASSWORDمستخدم IMAP/POP عام
EMAIL_PROTOCOLimap | pop للحساب العام
EMAIL_IMAP_HOST / EMAIL_IMAP_PORTIMAP (الافتراضي 993)
EMAIL_POP_HOST / EMAIL_POP_PORTPOP3 SSL (الافتراضي 995)
EMAIL_SMTP_HOST / EMAIL_SMTP_PORTSMTP (الافتراضي 587 STARTTLS)
EMAIL_ACCOUNTSكنى حسابات متعددة مفصولة بفواصل
EMAIL_ACCOUNT_{ALIAS}_TYPEgmail | microsoft | imap | pop
EMAIL_ACCOUNT_{ALIAS}_ADDRESS / _PASSWORDاعتمادات لكل حساب
EMAIL_ACCOUNT_{ALIAS}_*IMAP_HOST، وPOP_HOST، وREFRESH_TOKEN، وCLIENT_ID، …

‏API: GET /api/email/status، وGET /api/email/presets، وPOST /api/email/protocol/connect\|disconnect، ومسارات بدء/رد نداء OAuth.
HITL: email_send، وemail_delete، وemail_categorize. الدليل: تكامل البريد.


ناشر X (واجهة API الرسمية)

Section titled “ناشر X (واجهة API الرسمية)”

مهارة أصلية x-publisher. تعيش الاعتمادات في الإعدادات ← X (مفاتيح ConfigStore في الخزانة) أو البيئة. حرّر وخطّط على X Studio (/x). الدليل: ناشر X.

المتغيرالافتراضيالغرض
KAZMA_X_POSTunset (on if Settings enabled)0 يعطّل النشر تعطيلًا قاسيًا (Studio، والدردشة، وإطلاق المجدول، ومنشورات الرد التلقائي).
KAZMA_X_SCHEDULEunset (on)0 يعطّل الجدولة فقط (book_x_post / جدولة Studio).
KAZMA_X_REPLYunset (on if Settings enabled)0 يعطّل الرد التلقائي على الذكر فقط. المنشورات المجدولة ما زالت تعمل.
KAZMA_X_SHADOWunsetحارس داخلي يضبطه عامل التقييم المعزول scripts/x_shadow.py. تمنع القيمة 1 جميع طلبات شبكة X وتسليم التنبيهات؛ استخدم برنامج التقييم بدل ضبطه على تثبيت يعمل.
X_API_KEYunsetمفتاح مستهلك OAuth 1.0a (وإلا connectors.x.api_key).
X_API_KEY_SECRETunsetسر المستهلك.
X_ACCESS_TOKENunsetرمز وصول المستخدم.
X_ACCESS_TOKEN_SECRETunsetسر رمز وصول المستخدم.

لا تستخدم رمز Bearer الخاص بالتطبيق فقط. يجب أن تكون مصادقة المستخدم قراءة وكتابة.


حمايات الأمان وتنزيلات المضمِّن (2026-08-19)

Section titled “حمايات الأمان وتنزيلات المضمِّن (2026-08-19)”

تحصين اختياري من تدقيق البنية العميقة (docs/audits/AUDIT_DEEP_STRUCTURE_2026-08-19.md) — كلها معطلة افتراضيًا (السلوك الحالي محفوظ) ما لم يُذكر غير ذلك.

المتغيرالافتراضيالغرض
KAZMA_HITL_CANONICAL_FLOORonقائمة require_approval_for الفعلية تتضمن دائمًا أدوات الخطر القانونية، فلا تستطيع الإعدادات/YAML تضييقها دونها. 0 ينصرف ويشغّل تحذيرًا؛ وتحذير الانحراف يتكرر كل 15 دقيقة في الحالتين. (كان اختياريًا ب1 حتى 2026-09-16؛ ومفعلًا افتراضيًا منذ نتيجة التدقيق F-5.)
KAZMA_GATEWAY_STRICT_ALLOWLISTunset (compat)إيقاف فرض _allow_all على محولات Telegram/Discord/Slack — فتفشل قائمة السماح الفارغة مغلقًا (لا رسائل). بدونه، يسجل الفرض القسري للسماح-للكل تحذير WARNING يسمي المعالجَين حين لا تكون قائمة سماح مضبوطة.
KAZMA_MCP_SCOPE_GUARD1 (on)إغلاق فاشل لاستدعاءات أدوات MCP حين يستهدف workspace_scope الخاص بكل مهمة جذرًا مختلفًا عن جذر MCP المرتبط بالعملية (يمنع عمليات مستودع-خاطئ صامتة). اضبط 0 فقط إن كان الحارس يحجب تدفقًا مشروعًا.
KAZMA_EMBED_ALLOW_DOWNLOADunset (contextual)السماح القسري للمضمِّن المحلي بتنزيل نموذجه من HuggingFace. المضمِّنات الاحتياطية (مزوّد مجهول / إعداد بعيد مكسور) لا تنزل أبدًا — تفحص ذاكرة HF المحلية وتتدهور إلى لا تضمينات مع تحذير قابل للتنفيذ بدل التعليق على تنزيل ~2GB. إعدادات local المتعمدة تحتفظ بحقوق تنزيل أول تشغيل.
KAZMA_PERMISSIONS_ENFORCEunset1 يفرض قوائم السماح لكل مستخدم في kazma-permissions.yaml حتى قبل وجود أي إدخال users:، ويرفض كل أداة إن تعذرت قراءة الملف. بدونه، يبدأ الفرض متى امتلك مستخدم قائمة سماح أو رفض.
KAZMA_DIVISIONunset (ConfigStore agent.division)يشغّل هذا التثبيت كقسم: خوادم MCP المسرودة تحت divisions.<name>.denied_mcp_servers في kazma-permissions.yaml محجوبة، وكل استدعاء محجوب يودع طلب وصول. غير مضبوط = لا فحوص أقسام إطلاقًا.
KAZMA_DIVISION_USERdefaultمعرّف المستخدم الذي تُودع له طلبات وصول القسم.
KAZMA_SELF_IMPROVEMENTon0 يوقف محرك التحسين الذاتي على مساري الدردشة والسرب: لا فروق Soul جديدة تُتعلم أو تُحقن. يُقرأ حيًّا.
KAZMA_BUS_BRIDGEonيتيح لkazma mcp (عملية بلا ناقل موافقات) طلب الموافقة عبر سجلّ البوابات، حيث تعرض لوحة التحكم البطاقة. 0 يزيل ذلك المسار، فيحجب kazma mcp كل أداة خطر.
KAZMA_WATCHER_STALE_SECONDS120ما يجب أن يكون حديثًا نبضُ مراقب الموافقات للخادم العامل ليشتبك ذلك الجسر. بلا نبض حديث لا أحد يقرأ الموافقات، فتُرفض الأداة فورًا بدلًا من بعد مهلة.

مفاتيح تُضعف افتراضًا أمنيًا

Section titled “مفاتيح تُضعف افتراضًا أمنيًا”

كل متغير هنا يطفئ حماية. جُمعت معًا في الصفحة الموجهة للمشغّل، لأن مفتاحًا لا يستطيع أحد اكتشافه مفتاح لا يستطيع أحد تدقيقه — بما في ذلك المشغّل الذي ضبطه قبل سنتين. كل صف يقول ما الذي توقف عن حمايتك، لا ما يفعله العلم فقط.

يفشل tests/test_static_gates.py::test_security_env_vars_are_documented البناء إن قرأت الشيفرة أحدها وكان غائبًا عن .env.example وهذا الجدول معًا.

المتغيرالافتراضيما يطفئهمتى يكون ضبطه آمنًا
KAZMA_ACQUISITION_MODE / KAZMA_ACQUISITION_REMOTE_PROVIDERSlocal_only / فارغيسمح local_first_with_remote_fallback مع مزوّدين مسمّين بالاستخراج المستضاف أو وكلاء الكشط المضبوطين. قد تغادر الروابط والمحتويات الجهاز وقد تتقاضى الخدمات رسومًا.يسمح المشغّل بهؤلاء المزوّدين عمدًا. تحد حجوزات الطلبات الدائمة إرسال المهمة واليوم؛ وليست سقوفًا مالية أو رسومًا مرصودة. يحتاج رصيد Firecrawl تحديثًا صريحًا يُحتسب؛ وتبقى الأرصدة غير المدعومة مجهولة. المفتاح وحده لا يمنح شيئًا.
KAZMA_AUTH_DISABLEDunsetبوابة مصادقة HTTP بأكملها. يصبح KAZMA_SECRET المضبوط بلا أهمية — المفتاح يعطّل الفحص الذي يقرأه.لجهاز loopback فقط، ولا وكيل أمامه. يُرفض عند الإقلاع مع ربط بغير loopback أو خلف وكيل مُعلَن (KAZMA_TRUSTED_PROXIES، security/boot_guard.py). وما دام مضبوطًا يُجاب الطلب الذي جاء عبر وكيل بالرمز 503. ويُرفض كليًا مع KAZMA_PRODUCTION=1.
KAZMA_DEV_WS_BYPASSunsetالمصادقة على كل مصافحة WebSocket، بما فيها مقبس الدردشة الذي يحمل تدفق الدور. مصادقة HTTP غير متأثرة، وهو ما يجعل من السهل تفويته.لجهاز loopback فقط، ولا وكيل أمامه. يُرفض عند الإقلاع مع ربط بغير loopback أو خلف وكيل مُعلَن، بالحارس نفسه الذي يرفض KAZMA_AUTH_DISABLED.
KAZMA_DEMO_MODEunsetبوابة المصادقة، عمدًا، لعرض تجريبي عام قابل للرمي (fly.toml). مسموح على ربط عام ومُعلن بصوت عال عند الإقلاع.نسخة تجريبية قابلة للرمي بلا بيانات أو اعتمادات أو خزانة حقيقية. أبدًا على تثبيت يهمك.
KAZMA_AUTOLOGIN_HOSTSloopback setيقيّد أي المضيفين يجوز أن تُصدر لهم كوكي جلسة تلقائيًا دون تقديم السر. توسيعه يمنح جلسات إدارية صامتة لأولئك المضيفين.تتحكم بكل مضيف في القائمة. إضافة مضيف غير loopback تكافئ نشر السر له.
KAZMA_GATEWAY_ADMINSunsetمن يجوز له تشغيل أوامر منصات الدردشة المميزة. الفراغ يعني أن قائمة السماح الخاصة بالمحول هي البوابة الوحيدة.اضبطه صراحةً على أي منصة دردشة متعددة المستخدمين.
KAZMA_GATEWAY_STRICT_ALLOWLISTunset (compat)يفعّل المحولات الفاشلة مغلقًا. تركه غير مضبوط يُبقي فرض _allow_all القديم حين لا تكون قائمة سماح مضبوطة.اضبطه 1 على أي نشر يستطيع أكثر من شخص مراسلته.
KAZMA_HITL_CANONICAL_FLOORon0 يطفئ الأرضية: عندئذ يجوز للإعدادات/YAML تضييق require_approval_for دون قائمة الخطر القانونية. تبقى تلك الأدوات مبوّبة بطبقتها، لكن مقاطعة الرسم البياني وناقل السرب يقرآن القائمة نفسها.أبدًا — لا نشر يحتاج قائمة أضيق.
KAZMA_MCP_ALLOW_UNGATEDunsetموافقة HITL لأدوات MCP التي لم تُصنَّف آمنة. أسماء أدوات خادم MCP دخل غير موثوق.أبدًا، على تثبيت باعتمادات حقيقية. تنقيح خادم محلي واحد موثوق على الأكثر.
KAZMA_MCP_SAFE_ALLOWLISTbuilt-inيوسّع مجموعة أدوات MCP التي تتخطى HITL بالاسم. الأسماء تأتي من الخادم، فهذه قائمة أسماء تثق بطرف ثالث أن يختارها بصدق.فقط لأدوات قرأت تنفيذها.
KAZMA_MCP_TRUSTED_IN_PRODunsetرفض الإنتاج لخوادم MCP غير الموسومة موثوقة.تملك كل خادم مسرود.
KAZMA_CODE_EXEC_ALLOW_LOCALunsetحظر تشغيل python_exec كعملية ابنة على المضيف حين لا يكون Docker موجودًا. للاحتياط المحلي قائمة حظر استيراد؛ وهو ليس سجنًا.جهاز مخبر لا شيء فيه يستحق السرقة. الإنتاج ومتعدد المستخدمين يحظرانه بكل حال — انظر KAZMA_CODE_EXEC_DOCKER=force.
KAZMA_SHELL_ALLOW_MUTATEunset‏PATH/قائمة السماح المقيدة المطبقة على shell_exec بعد أن يوافق الإنسان. الموافقة رضا؛ وقائمة السماح هي الاحتواء.تقبل بأن أمر شل موافقًا عليه يعمل بلا قيود.
KAZMA_YOLO_TTL_SECONDS3600يطيل النافذة التي تُوافق فيها أدوات الخطر الأخرى تلقائيًا بعد منحة YOLO واحدة. TTL طويلة تحول موافقة واحدة إلى جلسة مفتوحة. off / none / infinite = بلا انتهاء؛ والأرقام ثوانٍ، 60 على الأقل (0 تعني 60).قيم قصيرة فقط. هذا قرص نطاق انفجار.
KAZMA_DISABLE_COST_BREAKERunsetسقف الإنفاق الذي يوقف حلقة جامحة.أبدًا دون مراقبة.
KAZMA_CHAOS_ENABLEDunsetيفعّل مسارات حقن الأعطال. معطل افتراضيًا؛ ولا يُركّب الموجّه بدونه.بيئات الاختبار فقط — يجب أن يبقى معطلًا في الإنتاج.
KAZMA_WS_ORIGIN_CHECKon0 يطفئ فحص Origin على مصافحات WebSocket. صفحة على أي موقع آخر، مفتوحة في متصفح المشغّل، تستطيع عندئذ فتح مقبس موثق إلى كاظمه من عنوان loopback أو شبكة محلية موثوقة (اختطاف WebSocket عابر للمواقع).أبدًا على تثبيت يستطيع متصفح الوصول إليه.
KAZMA_WS_EXTRA_ORIGINSunsetيضيف أصولًا يقبلها فحص Origin للـWebSocket ‏(scheme://host[:port] مطابقًا، مفصولة بفواصل). كل أصل مسرود يجوز له فتح مقبس موثق.أنت تخدم الواجهة من ذلك الأصل بنفسك (نفق، دومين ثانٍ).
KAZMA_OPAQUE_SESSIONSon0 يجعل كوكي المتصفح تحمل KAZMA_SECRET المشترك نفسه بدل معرّف جلسة عشوائي على الخادم: لا يمكن إلغاء الجلسات واحدةً واحدة، والكوكي المسروقة هي سر التثبيت. وضع تعدد المستخدمين يتجاهله.أبدًا على تثبيت قابل للوصول من الشبكة.
KAZMA_RATE_LIMIT_ENABLEDon when auth is on0 يزيل حدود المعدل لكل عميل على تدفقات الدردشة، والصوت، وجلسات البحث، وإرسال السرب، وفلش النظام. (معطلة أصلًا بلا KAZMA_SECRET وفي وضع العرض التجريبي.)تثبيت loopback لمشغّل واحد.
KAZMA_TENANT_FILTERon0 يوقف نطق مكتبات قاعدة المعرفة وقوائم مهام السرب بمستأجر المتصل في الإنتاج / وضع تعدد المستخدمين، فيقرأ كل مستأجر صفوف كل مستأجر.تثبيت بمستأجر واحد، حيث لا يغيّر شيئًا.
KAZMA_SESSION_OPEN_TAKEOVERunsetفحص المالك على /session <id> في منصات الدردشة. مع 1 يستطيع أي مرسل مسموح التبديل إلى جلسة مستخدم آخر، ومواصلتها، والإجابة على بطاقات الموافقة المنتظرة عليها (نتيجة التدقيق H-3).كل مرسل مسموح ينتمي إلى فريق واحد يتشارك كل شيء.
KAZMA_SEMANTIC_CACHEمتقاعدلا شيء: أُزيلت خبيئة ردود LLM الدلالية في 2026-09-30. كانت تُفهرس على المحادثة كاملة، ويغلب موجّه النظام المشترك على تمثيلها المتجهي، فتعيد جواب دور واستدعاءات أدواته لطلبات لاحقة مختلفة (تدقيق AUD-001). ضبطها لا يفعل إلا تسجيل تحذير عند الإقلاع.—
KAZMA_MCP_INHERIT_ENVunsetقائمة سماح البيئة لخوادم MCP عبر stdio. مع 1 تتلقى كل عملية خادم MCP بيئة كاظمه كاملة — KAZMA_SECRET، وKAZMA_VAULT_KEY، ومفاتيح API للمزوّدين — بدل PATH، وTEMP، وHOME وما شابه. إعداد env / auth الخاص بالخادم يُمرر في الحالتين.عمليًا أبدًا؛ مرر ما يحتاجه خادم واحد في إعداده بدلًا من ذلك.
KAZMA_CHILD_ENV_ALLOWunsetأسماء (مفصولة بفواصل) تُمرر عبر مرشح الأسرار على العمليات التي تبدؤها الأدوات — pytest، وتثبيتات pip/npm، وruff، وgit (security/child_env.py). تلك الأبناء يشغّلون اختبارات مستودع وخطافاته وسكربتات تثبيت الحزم؛ وافتراضيًا يحصلون على بيئة الخادم بلا أي متغير KAZMA_* أو متغير باسم اعتمادي (*_TOKEN، و*_API_KEY، و*_PASSWORD، …) أو URL يحمل كلمة مرور. الاسم المسرود يصل كل ابن كهذا. أسماء KAZMA_* لا تُمرر أبدًا.اسم واحد يحتاجه الابن حقًا، مثل NPM_TOKEN لسجل npm خاص.
KAZMA_ALLOW_PRIVATE_LLMunsetفحص SSRF على اكتشاف النماذج للمزوّدين المخصصين المتوافقين مع OpenAI. مع 1، قد يستدعي سرد نماذج مزوّد عنوانًا خاصًا أو داخليًا، مرسلًا مفتاح API ذلك المزوّد إليه. اكتشاف Ollama وLM Studio منفصل وغير متأثر.خادم النماذج على شبكة خاصة ومديرون فقط يستطيعون تحرير المزوّدين.
KAZMA_CLONE_HOSTSunset (github.com only)قاعدة github.com-فقط للاستنساخ من الواجهة. المضيف المسرود يُقبل بأي مخطط، بما فيه http:// الصريح.GitHub Enterprise أو خادم git خاص بك، عبر https.
KAZMA_UPDATE_REMOTE_ALLOWLISTgithub.com/mubder/kazmaأي remotes لorigin يثق بها kazma update، كسلاسل فرعية مفصولة بفواصل. يعيد المحدّث تعيين التثبيت قسرًا إلى ذلك الـremote ويشغّل مثبّته، فهذه القائمة تقرر لمن تشتغل شيفرة من.نسخة تتحكم بها؛ اجعل كل إدخال محددًا بما يكفي لئلا يطابق مستودع شخص آخر.
KAZMA_HITL_GRANT_TTL_SECONDS1800كم تدوم موافقة “لهذه الأداة” على خيط؛ حتى ذلك الحين تعمل تلك الأداة بلا سؤال. off / none / infinite تبقيها حتى تُمسح؛ والأرقام ثوانٍ، 60 على الأقل (0 تعني 60).قيم قصيرة. مثل KAZMA_YOLO_TTL_SECONDS، قرص نطاق انفجار.
KAZMA_UNRESTRICTED_TTL_SECONDS3600كم يبقى /unrestricted (وضع المهمة، وكل أداة خطر بلا موافقة) مفعلًا بعد آخر رسالة مستخدم. القيمتان 0 / off تبقيانه مفعلًا حتى /unrestricted off؛ والأرقام الأخرى 60 على الأقل.قيم قصيرة؛ وأبدًا 0 على تثبيت يستطيع آخرون مراسلته.
KAZMA_SHELL_STRICTon in production0 في الإنتاج يجعل shell_exec موافقًا عليه يبحث عن برنامجه (المسموح) على PATH العملية كلها بدل أدلة النظام، فيعمل بدلًا منه تنفيذي بالاسم نفسه مزروع أبكر في أي دليل PATH. و1 يفعّل البحث الصارم خارج الإنتاج.أبدًا 0 في الإنتاج.
KAZMA_SHELL_ALLOW_ARCHIVEunsetيعيد tar، وgzip، وgunzip، وzip، وunzip إلى قائمة سماح shell_exec في الوضع الصارم للإنتاج. الأرشيف يستطيع الكتابة خارج دليل العمل عبر مسارات أعضاء مطلقة أو ../.تحتاج الأرشيفات في الإنتاج وتقبل الاستخراج في أي مكان تستطيع العملية الكتابة فيه.
KAZMA_GATE_REGISTRYonيوقف 0 إسقاطات دورة حياة الموافقة. تبقى قرارات التنفيذ على الويب والمنصات والمهلة معلّقة لأن تسجيل القرار الدائم مطلوب.للتشخيص فقط؛ يجب استعادة السجل قبل استئناف الأدوات.
KAZMA_COMMITMENT_ENABLEDon0 يزيل طبقة الالتزام: لم تعد التذكيرات تُفحص ضد الذاكرة (تاريخ اخترعه النموذج يُجدول كما كُتب)، ولم تعد قائمة رفض التنفيذ توقف أوامر كارثية قبل بطاقة الموافقة، وتتوقف مفاتيح الإعداد المحمية وقائمة سماح الصادر عن الانطباق، ويفقد عمال السرب سقف نطاقهم.أبدًا على تثبيت حقيقي؛ وُجد لاستبعاد الطبقة أثناء التشخيص.
KAZMA_COMMITMENT_SWARM_SCOPE_ENFORCEon0 يرفع السقف عن عمال السرب المرسلين: عندئذ يجوز لهم محاولة أعمال تنفيذ وصادر وإعداد وهوية، بما فيها تغييرات Soul (بطاقات الموافقة ما زالت تنطبق).أبدًا مع عمال لم تكتبها.
KAZMA_COMMITMENT_SOUL_REQUIRES_CONFIRMoff; on in production / multi-user0 في الإنتاج أو وضع تعدد المستخدمين يجعل تغييرات Soul للتحسين الذاتي تُطبق دون أن يؤكدها مشغّل. و1 يشترط التأكيد في أي مكان.تثبيت مشغّل واحد يراجع تغييرات Soul بطريقة أخرى.
KAZMA_COMMITMENT_MODEbalancedyolo يتخطى فحصَي التذكير والإلغاء، فيُجدول تذكير بأي وقت كتبه النموذج — فئة الحادث التي وُجدت الطبقة لأجلها؛ وautonomous يتوقف عن السؤال حين يكون التذكير غامضًا ويأخذ تاريخ من-الآن. بطاقات الموافقة وقائمة رفض التنفيذ ما زالتا تنطبقان. وstrict يسأل أكثر.balanced أو strict؛ وyolo للاختبار فقط.

حلقة الوكيل والأدوار والسياق

Section titled “حلقة الوكيل والأدوار والسياق”
المتغيرالافتراضيالغرض
KAZMA_TURN_TIMEOUT_SECONDSالإعداد (بلا حد)ميزانية الوقت الفعلي لمقطع عامل واحد من دور، بالثواني الكاملة، على كل سطح: دردشة الويب، وتطبيقات الدردشة، وkazma ask، والتذكيرات، ومشغّل الوكيل (kazma_core/agent/turn_budget.py، منذ 2026-10-15؛ لم يكن لدردشة الويب حد قبل ذلك، وكان مشغّل الوكيل يحتفظ بافتراضيه الخاص 600 ثانية). يتقدم على agent.turn_timeout_seconds (الإعدادات ← النظام)؛ و0 يعني بلا حد، والقيمة التي ليست عددًا صحيحًا من 0 إلى 86400 تُتجاهل، مع تحذير واحد. يمتد المقطع من رسالة جديدة، أو من الاستئناف بعد موافقة، حتى يجيب الدور أو يتوقف مؤقتًا: انتظار الموافقة لا يُحتسب أبدًا. والدور الذي يتجاوزه يُلغى، وينتهي برد صادق ⚠️ Turn timed out على كل سطح، ويُرسَل تنبيه التشغيل turn.timed_out. والدردشة التي فيها /long نشط بلا حد.
KAZMA_TOOL_TIMEOUT_SECONDS120حد الوقت الفعلي لاستدعاء أداة واحد؛ و0 أو أقل يعطلها. ConfigStore ‏agent.tool_timeout_seconds تتفوق.
KAZMA_TOOL_RESULT_FILE_MAX_CHARS32000سقف لأدوات الملفات (file_read، وfile_search، وcodebase_search، وقراءات MCP لنظام الملفات، …) — أضيق من سقف البحث، فلا تستطيع قراءة ملف إعادة نفخ تلميح قُلم للتو.
KAZMA_NO_TRUNCATEunset1 يطفئ اقتطاع نتائج الأدوات كليًا؛ عندئذ تستطيع نتيجة كبيرة واحدة ملء نافذة السياق.
KAZMA_COMPACT_PRESERVE_TOOL_RESULTS12نتائج أدوات تُحفظ عند تكثيف محادثة. إسقاطها كلها كان يجعل الوكيل يكرر نفس الاستدعاءات.
KAZMA_SEMANTIC_COMPACTonعند قلم التاريخ (/compact، وميزانية الـ80%، وخطأ فيض السياق)، يُلخَّص الجزء المُسقط ويعاد إلى المحادثة. 0 يُسقطه بلا تلخيص.
KAZMA_SUMMARIES_MAX_ENTRIES500ملخصات محادثات محفوظة في الذاكرة، واحد لكل خيط؛ والأقل استخدامًا مؤخرًا يذهب أولًا.
KAZMA_PROMPT_CACHEonيحزم ملاحظات النظام في بادئة ثابتة واحدة زائد كتلة لكل دور، فتصيب ذاكرات تلميح المزوّد المؤقتة (يحصل Anthropic على نقاط توقف ذاكرة صريحة). 0 يعيد تخطيط رسالة-لكل-ملاحظة القديم.
KAZMA_DETACHED_TTL_S300الدور الذي انقطع عميله يُلغى بعد هذا العدد من الثواني، فلا يدفع أحد لاستدعاءات LLM لن يقرأها أحد. يبدأ العد عند مغادرة العميل، لا عند بدء الدور.
KAZMA_TURN_DURABLE_INTERVAL_S2.0أثناء تدفق إجابة، يُحفظ نصها في سجلّ الدور على الأقل بهذه الوتيرة (وهذا ما يستعيده تحديث أو إعادة اتصال) …
KAZMA_TURN_DURABLE_CHARS600… أو بعد هذا العدد من المحارف الجديدة، أيهما جاء أولًا.
KAZMA_TURN_LIVENESS_GRACE_S600كم يجوز لدور رد أن يبقى مفتوحًا بلا شيء يعمل عليه ولا موافقة معلقة قبل أن يُبلَّغ عنه (60 على الأقل).
KAZMA_TURN_LIVENESS_HEALoff1 يغلق مثل هذا الدور أيضًا. معطل افتراضيًا: الإغلاق هو ما أخطأ فيه الخطأ الأصلي، ففعّله فقط حين تُظهر التقارير ما يتراكم.
KAZMA_INTENT_ENGINEonمحرك النية يصنف كل دور ويجوز أن يوجهه إلى معالج أو يضيف ملاحظة خطة. 0 يرسل كل دور مباشرة إلى حلقة الوكيل (ConfigStore ‏agent.intent.enabled).
KAZMA_INTENT_EXECUTEon0 يبقي التصنيف وملاحظات الخطة لكنه لا يشغّل معالجًا مباشرة أبدًا (agent.intent.execute_enabled).
KAZMA_INTENT_TIER2on0 يتخطى صقل الـLLM للتصنيفات الحدية، فيبقى الاستدلال فقط (agent.intent.tier2_enabled).
KAZMA_PERSONALITYdefaultالشخصية حين لا يسميها مفتاح وقت تشغيل ولا agent.personality: default، أو friendly_expert، أو concise، أو gulf_engineer، أو creative_partner، أو sysadmin، أو teacher، أو code_reviewer. الاسم غير المعروف يلجأ إلى default مع تحذير.
KAZMA_LONG_TASK_TTL_SECONDS1800كم تبقى ميزانية /long على خيط. off / none / infinite تبقيها حتى إطفائها؛ والأرقام ثوانٍ، 60 على الأقل (0 تعني 60).
KAZMA_LONG_TASK_MAX_ITER100أكثر تكرارات يجوز لميزانية /long أن تطلبها (5–100).
KAZMA_LONG_TASK_MAX_RECURSION500أكثر خطوات رسم بياني يجوز لدور /long أن يتخذها (50–500).
KAZMA_MISSION_MAX_ROUNDS500جولات أدوات يجريها دور وضع-المهمة قبل أن يجب أن يتوقف (40–2000).
KAZMA_MISSION_RECURSION5 × roundsخطوات الرسم البياني لدور مهمة (500–5000)؛ تتبع KAZMA_MISSION_MAX_ROUNDS إلا إن ضُبطت.

المتغيرالافتراضيالغرض
KAZMA_MCP_TIMEOUT_MS90000مهلة الطلب، بالملّي ثانية، لخوادم MCP التي لا يضبط إعدادها timeout (وهو بالثواني، ويتفوق).
KAZMA_MCP_STDIO_LIMIT16777216 (16 MiB)أكبر رسالة واحدة يجوز لخادم MCP عبر stdio إرسالها (256 KiB–64 MiB). كانت الأكبر تكسر الأنبوب لكل استدعاء لاحق.
KAZMA_MCP_TOOLSunset (all)أسماء مفصولة بفواصل للأدوات التي ينشرها kazma mcp لعملاء MCP. أدوات الخطر ما زالت تحتاج مسار موافقة (KAZMA_BUS_BRIDGE).
KAZMA_MCP_IDE_ENABLEDtrueأي قيمة غير 1 / true / yes تجعل خادم MCP IDE للبوابة (write_file، وrun_tests، … خلف KAZMA_SECRET وفحص الأمان) يرفض استدعاءات الأدوات.

المفاتيح التي تُرخي MCP (KAZMA_MCP_INHERIT_ENV، وKAZMA_MCP_ALLOW_UNGATED، …) في جدول الأمن.


المسارات ومواقع البيانات

Section titled “المسارات ومواقع البيانات”

كل واحد من هذه ينقل ملفًا أو دليلًا واحدًا. والمخزن المنقول إلى خارج دليل البيانات ليس في النسخ الاحتياطي الشامل ولا حزمة الترحيل، وكلاهما يعمل من دليل البيانات — لنقل البيانات، انقل KAZMA_DATA_DIR ككل.

المتغيرالافتراضيالغرض
KAZMA_DATA_DIR<install>/kazma-dataكل مخزن ومرفق ونسخة احتياطية.
KAZMA_USER_HOME<install>/.kazmaالسجلات، وحالة الحارس، وسجلّ الموزّع، وعبارة مرور restic. يُنقل ~/.kazma القديم إلى هنا مرة واحدة عند الإقلاع.
KAZMA_SKILLS_HOMEمجلد المستخدم الرئيسيالمجلد الذي تقرأ كاظمه مجلدات المهارات فيه وتثبّت فيه مهارات الوكلاء: .agents/skills (المشترك مع عملاء agentskills.io الآخرين)، و.claude/skills، و.cursor/skills، و.kazma/agent-skills القديم. اضبطه حين تعمل كاظمه بحساب خدمة ينبغي أن يقرأ مهارات مستخدم آخر؛ وتضبطه مجموعة الاختبارات كي لا يقرأ تشغيل الاختبارات المجلدات الحقيقية ولا يغيّرها.
KAZMA_PROJECT_ROOTيُوجد بالصعود إلى pyproject.tomlجذر التثبيت، يُستخدم فقط حين لا يجد ذلك الصعود شيئًا (دليل العمل هو الملاذ الأخير). يثبته kazma mcp عند ضبطه.
KAZMA_LOG_FILE<.kazma>/kazma.logملف سجلّ التطبيق. تقرأ هذا الملف أداة الوكيل read_system_logs، والإعدادات → النظام → السجلات، وتقرير المرونة الأسبوعي.
KAZMA_BACKUPS_DIR<data>/backupsالنسخ الاحتياطية الشاملة.
KAZMA_EXPORTS_DIR<data>/exportsتصديرات الذاكرة JSONL / GraphML.
KAZMA_FTS5_PATH<data>/memory.dbمخزن الذاكرة كامل النص.
KAZMA_VECTOR_PATH<data>/vector_memoryذاكرة المتجهات ChromaDB.
KAZMA_VECTOR_DB<data>/vector.dbمخزن متجهات sqlite-vec.
KAZMA_KNOWLEDGE_GRAPH_DB<data>/knowledge_graph.dbرسم المعرفة (مزوّد SQLite).
KAZMA_MEMORY_STATE_DB<data>/memory_state.dbذاكرة V2: المعتقدات، والحلقات، والكيانات (مسار القراءة الساخن).
KAZMA_MEMORY_OPS_DB<data>/memory_ops.dbطابور مهام ذاكرة V2 وسجلّ التدقيق (يُبقى منفصلًا فلا تتنافس كتابات الخلفية أبدًا مع قراءات الدردشة).
KAZMA_ARTIFACTS_DB<data>/agent_artifacts.dbالمسودات المحفوظة ونتائج لوحة الخدش.
KAZMA_FILE_CHECKPOINTS_DB<data>/file_checkpoints.dbنقاط تفتيش تتراجع عن تعديلات الوكيل لملفات مساحة العمل.
KAZMA_HUB_DB<.kazma>/hub/registry.dbسجلّ موزّع المهارات (kazma hub --registry-path يتفوق).

النسخ الاحتياطي والاحتفاظ

Section titled “النسخ الاحتياطي والاحتفاظ”
المتغيرالافتراضيالغرض
KAZMA_BACKUP_RETENTION7نسخ شاملة تُحفظ (1 على الأقل). يتفوق على backups.retention.
KAZMA_PG_BACKUP_ENABLEDon with Postgres0 يوقف pg_dump كل 6 ساعات لجداول كاظمه في Postgres، مهما قالت backups.pg.enabled.
KAZMA_PG_BACKUP_RETENTION3نسخ Postgres محلية تُحفظ (restic يحفظ التاريخ). يتفوق على backups.pg.retention.
KAZMA_RESTIC_PASSWORD<.kazma>/restic.passعبارة مرور مستودع restic؛ تتفوق على ذلك الملف. العبارة المفقودة تُبلَّغ خطأً — كاظمه لا تخترع واحدة، فالمفتاح المحفوظ فقط على القرص الذي تحميه النسخة ليس مفتاحًا. احتفظ بنسخة خارج هذا الجهاز.
KAZMA_CHECKPOINT_RETENTION_DAYSthe setting (30)أيام تُحفظ بعدها كاملةً خطوات دردشة (نقاط تفتيش LangGraph الخاصة بها) بعد آخر رسالة في الدردشة؛ تتفوق على checkpoints.retention_days (الإعدادات ← النظام). كل دردشة تحتفظ بأحدث 200 نقطة تفتيش، والدردشة الخاملة تلك المدة بأحدث 10، على SQLite وPostgres (منذ 2026-09-27؛ وPostgres لم يكن يُقلَّم قبل ذلك أبدًا)؛ و0 تحتفظ بكل نقطة تفتيش. القيمة التي ليست عددًا صحيحًا من 0 إلى 3650 تُتجاهل، بتحذير واحد.

المتغيرالافتراضيالغرض
KAZMA_TZUTCالمنطقة الزمنية لجداول cron حين تكون cron.timezone (الإعدادات) فارغة.
KAZMA_CRON_STALE_HOURSالإعداد (60 دقيقة)نافذة اللحاق بالساعات، تُستخدم فقط حين لا يكون cron.catchup_minutes (الإعدادات) مضبوطًا: التذكير أو المهمة التي حلّ موعدها وكاظمه متوقفة ما زالت تنطلق إن كانت متأخرة هذا القدر كحد أقصى، وتقول كم تأخرت. وبعده تُعدّ المهمة فائتة: لا تعمل، ويقول ذلك إشعار واحد (منذ 2026-10-14؛ وقبل ذلك كانت المهمة المتأخرة حتى 24 ساعة تعمل كأنها في موعدها، وما هو أقدم يُتخطى دون كلمة). والنافذة المعطاة عند حجز المهمة تتقدم على كليهما.

التسجيل والتنبيهات والتتبع

Section titled “التسجيل والتنبيهات والتتبع”
المتغيرالافتراضيالغرض
KAZMA_LOG_LEVELINFODEBUG، أو INFO، أو WARNING، أو ERROR، أو CRITICAL. تتفوق logging.level في الإعدادات.
KAZMA_LOG_FORMATtextjson يكتب كائن JSON واحدًا لكل سطر. تتفوق logging.format: json في الإعدادات.
KAZMA_LOG_RETENTION_DAYS7ملفات سجلات يومية تُحفظ قبل حذف الأقدم. تتفوق logging.retention_days في الإعدادات.
KAZMA_OPS_ALERTSon0 يكتم تنبيهات التشغيل (النسخ الاحتياطي، وخارج الموقع، وMCP، والاستمرارية، والأدوار الفاشلة). إشعارات الإقلاع والإطفاء منفصلة وتبقى مفعلّة.
KAZMA_OPS_ALERT_COOLDOWN_S900فترة هدوء قبل أن يجوز لنفس التنبيه أن يُطلق مجددًا.
KAZMA_DAILY_DIGESTonملخص يومي قصير لما عمل وفشل واستعاد، يُرسل عبر قناة التنبيه، فالصمت يعني صحيحًا لا ميتًا. 0 يوقفه.
KAZMA_DIGEST_INTERVAL_HOURS24ساعات بين الملخصات.
KAZMA_LOOP_STALL_WATCHDOGonيكتب مكدس كل خيط إلى .kazma/stall-*.txt حين تتوقف حلقة الأحداث عن الاستجابة 15 ثانية. 0 يطفئه (تفعله مجموعة الاختبارات).
KAZMA_OTLP_ENDPOINTunsetمجمّع OTLP/HTTP (مثل http://localhost:4318)؛ تُنشر امتدادات السرب كJSON إلى <endpoint>/v1/traces.

المتغيرالافتراضيالغرض
KAZMA_UPDATE_VERIFY_SIGNATURESunset1 يجعل kazma update يرفض التزامًا هدفًا لا يستطيع git verify-commit التحقق من توقيعه.
KAZMA_HUB_URLhttps://hub.kazma.aiAPI موزّع المهارات لkazma hub (--hub-url يتفوق).

أي الـremotes يثق بها kazma update أصلًا هو KAZMA_UPDATE_REMOTE_ALLOWLIST، في جدول الأمن.


الحارس (المشرف، scripts/service/kazma_guard.py)

Section titled “الحارس (المشرف، scripts/service/kazma_guard.py)”
المتغيرالافتراضيالغرض
KAZMA_GUARD_CMDserve.pyالأمر الذي يشغّله الحارس ويشرف عليه.
KAZMA_GUARD_CWDrepo rootدليل العمل له.
KAZMA_GUARD_HEALTH_URLhttp://127.0.0.1:9090/health/readyهدف الفحص.
KAZMA_GUARD_START_TIMEOUT900ثوانٍ مسموحة حتى أول جاهزية.
KAZMA_GUARD_INTERVAL30ثوانٍ بين الفحوص.
KAZMA_GUARD_PROBE_TIMEOUT—مهلة كل فحص.
KAZMA_GUARD_FAILURES3فحوص فاشلة متتالية قبل إعادة تشغيل. الفحوص التي لا تحصل على منفذ محلي (WinError 10048/10055) لا تُحتسب أبدًا — انظر النشر §6.
KAZMA_GUARD_DEPENDENCY_OUTAGE_S600ثوانٍ يمكن أن تجيب فيها كاظمه بأنها “غير جاهزة” (503 يسمّي تبعية فاشلة، كقاعدة البيانات) قبل أن يعيد الحارس تشغيلها. إعادة التشغيل لا تعيد قاعدة بيانات، فيُنبَّه عن الانقطاع مرة واحدة ويُتجاوَز؛ وKAZMA_GUARD_FAILURES لا يحسب إلا الفحوص التي لا تتلقى ردًا.
KAZMA_GUARD_PAGE_COOLDOWN_S—أدنى فجوة بين نداءات متطابقة.
KAZMA_GUARD_GRACEFUL_STOP_S60ثوانٍ تنتظرها التوقفية المتعمدة (إعادة تحميل، أو وقفة صيانة، أو إطفاء الحارس) ليطفئ الخادم نفسه قبل أن يُقتل.
KAZMA_GUARD_LOG / KAZMA_GUARD_STATE<install>/.kazma/سجلّ الحارس، وملف الحالة: PID الابنة، ونبض الحارس، وإشعارات إعادة التحميل.
KAZMA_GUARD_RELOAD_FILE / KAZMA_GUARD_PAUSE_FILE<install>/.kazma/طلب --reload وعلم --pause.
KAZMA_GUARD_STATE_FILEset by the guardيُعطى للخادم الذي يُفرخه الحارس: مسار ملف حالة الحارس. تقرأ إشرافة الخادم نبض الحارس هناك وتنادي حين يتوقف؛ وتقرأ جاهزية المستندات هناك سجل الحارس عن وسيط المستندات.
KAZMA_GUARD_BROKER_REQUEST_FILEset by the guardيُعطى للخادم الذي يُفرخه الحارس: حيث يطلب الخادم وسيط عامل المستندات (.kazma/document_broker.request.json). يكتب الخادم هل يحتاج إلى وسيط (ملف الحاوية) عند الإقلاع، وعند تغيّر ملف العزل، وفي كل جولة صيانة؛ ويبدأ الحارس الوسيط أو يوقفه خلال ثانية.
KAZMA_GUARD_DOCUMENT_BROKERautoهل يشغّل الحارس وسيط عامل المستندات بجانب كاظمه. ‏auto: حين يطلبه كاظمه (ملف الحاوية). ‏on: دائمًا. ‏off: أبدًا، ولا يُعطى الخادم أي عنوان وسيط. والقيمة غير المعروفة تعني auto. يُضبط في بيئة الحارس (بيئة مهمة KazmaAgent)، لا في .env.
KAZMA_GUARD_BROKER_PORTيُختار مرة واحدةمنفذ loopback لوسيط الحارس. إن لم يُضبط، يحتفظ الحارس بالمنفذ الذي استخدمه من قبل، وإلا يأخذ أول منفذ حر من 64 منفذًا مشتقة من مجلد التثبيت، بين 20000 و29999 (تحت النطاقات المؤقتة).
KAZMA_GUARD_BROKER_IMAGEالبناء الخاص بالشيفرة على القرصتثبيت صورة العامل التي يخدمها وسيط الحارس. إن لم يُضبط، يطلب kazma-document-worker:src-<16 hex> (scripts/document_worker_image.py build) ويخدم أحدث بناء ما دام ذلك البناء مفقودًا؛ وإن ثُبِّت، يخدم هذه الصورة بعينها.
KAZMA_GUARD_BROKER_SCRIPTkazma_core/documents/worker_broker.pyبرنامج الوسيط الذي يشغّله الحارس (تشغّل اختبارات الحارس بديلًا عنه).
KAZMA_PROCESS_PRIORITYnormalعلى Windows: يرفع الخادم والحارس نفسيهما عند البدء، ولا يخفضانها أبداً، إلى أولوية برنامج تفاعلي (فئة أولوية المعالج، وأولوية الذاكرة، وأولوية الإدخال/الإخراج). فالمهمة المجدولة المسجّلة بلا أولوية تشغّلهما دون كل برنامج عادي. القيمة keep تُبقيهما على ما بدآ به؛ ويضبطها scripts/fast_test.py لعمليات الاختبار التي يخفض أولويتها عمداً.
KAZMA_GUARD_TELEGRAM_TOKEN / KAZMA_GUARD_TELEGRAM_CHATvault / SWARM_*نداء Telegram مباشر، مستقل عن التطبيق.

التكلفة والفوضى والاختبارات

Section titled “التكلفة والفوضى والاختبارات”
المتغيرالافتراضيالغرض
KAZMA_MAX_COSTcost breaker defaultسقف ميزانية بالدولار الأمريكي.
KAZMA_HARD_MAX_COST15.00سقف بالدولار الأمريكي يوقف الوكيل فورًا، مهما كانت نافذة الصمت (KAZMA_MAX_COST لا تُقلع إلا بعد صمت المستخدم). يتفوق على safety.hard_max_cost.
KAZMA_TEST_BACKGROUND_SCHEDULERSunsetللاختبار فقط: 1 يبدأ مجدولات عامل الذاكرة الخلفية تحت pytest، حيث لا تعمل فيما عدا ذلك أبدًا.
KAZMA_SILENCE_WINDOWcost breaker defaultثوانٍ نافذة الصمت.
KAZMA_CHAOS_ENABLEDunsetمسارات الفوضى (يجب أن تبقى معطلة في الإنتاج).
KAZMA_SMOKE_BASEhttp://127.0.0.1:9090عنوان URL الأساسي للاختبار الدخاني.
KAZMA_TEST_FORCE_OUTPUT_ROUTINGunsetتوجيه مخرجات البوابة للاختبار فقط.
KAZMA_CODE_EXEC_DOCKERpolicyforce في compose الـDocker المحصّن لسجن code_exec.
KAZMA_MARKET_STUB0كعب بيانات سوق مهارات مثال.

المتغيرالغرض
GITHUB_TOKEN / مسار OAuthأدوات git الأصلية وعميل GitHub (يفضَّل سلسلة OAuth←PAT داخل التطبيق).
KAZMA_BOT_NAME / KAZMA_BOT_EMAILهوية الالتزام لالتزامات git الوكيل (الافتراضي kazma-agent[bot]@users.noreply.github.com). ضبط أي منهما يفعّل هوية البوت، كما يفعل git.bot_identity.enabled؛ والبريد الصريح يتفوق أيضًا على المشتق من GitHub App.
KAZMA_GITHUB_APP_ID / KAZMA_GITHUB_APP_INSTALLATION_IDالالتزام والمصادقة كGitHub App؛ مع ضبطهما تُفعَّل هوية التطبيق (تتجاوز connectors.github.app_*).
KAZMA_GITHUB_APP_PRIVATE_KEY / KAZMA_GITHUB_APP_PRIVATE_KEY_PATHالمفتاح الخاص للتطبيق، نصًّا مباشرًا أو كمسار ملف.
KAZMA_GITHUB_APP_SLUGسلاگ التطبيق، يُستخدم لإيجاد بريد البوت الخاص بالتطبيق نفسه (الذي يحمل صورته الرمزية).
KAZMA_CLONE_DIRانظر مساحة العمل والذاكرة والعرض التجريبي. KAZMA_CLONE_HOSTS في جدول الأمن.

نافذة طرفيّة
# Loopback; secret auto-generated if missing
KAZMA_HOST=127.0.0.1
# optional OPENAI_API_KEY=...
kazma serve 9090
نافذة طرفيّة
KAZMA_HOST=0.0.0.0
KAZMA_SECRET=<strong-random>
KAZMA_PRODUCTION=1
KAZMA_VAULT_KEY=<strong-random>
KAZMA_PUBLIC_URL=https://your.domain
KAZMA_TRUSTED_PROXIES=127.0.0.1 # REQUIRED — the proxy's address, not the client's
KAZMA_TRUST_LAN=0
KAZMA_CODE_EXEC_DOCKER=force

تحت Docker، KAZMA_TRUSTED_PROXIES هو عنوان الحاوية للوسيط على شبكة الجسر (غالبًا 172.17.0.1 أو بوابة شبكة compose)، وليس 127.0.0.1.

نافذة طرفيّة
KAZMA_DATABASE_URL=postgresql://…
KAZMA_RUNTIME_HA=1
KAZMA_PRODUCTION=1
KAZMA_SECRET=…
KAZMA_VAULT_KEY=…
KAZMA_PUBLIC_URL=https://…
KAZMA_TRUSTED_PROXIES=<load-balancer / ingress address>
# optional OIDC_*

الافتراضي لـKAZMA_RUNTIME_HA هو 0. اضبط 1 لقبول ملكية القاعدة قبل بدء الخدمات: تحتفظ جلسة Postgres مخصصة بقفل التشغيل، وينهي فقدها العملية دون إعادة اتصال. تقترن القاعدة بوحدة الحالة الكاملة عبر .runtime-state-id. استخدم نقطة قاعدة مباشرة أو تجميع جلسات، ولا تستخدم تجميع معاملات. يتطلب ذلك نسخة تشغيل واحدة ونظام تخزين بتسييج متحقق منه؛ ولا يتيح نسخًا نشطة متعددة. انظر النشر.


فرض الجلب المضاف في 2026-10-12

Section titled “فرض الجلب المضاف في 2026-10-12”
المتغيرالافتراضيالسلوك
KAZMA_BROWSER_NETWORK_MODErequiredفرض مساحة أسماء شبكة Linux معزولة وضوابط cgroup؛ الإطلاق الصارم غير متاح على Windows. يستخدم compatibility صراحة حدود الوسيط ووكيل المنع الأضعف.
KAZMA_JINA_TOKEN_BUDGET50000سقف رموز القارئ، عدد صحيح 500–50000؛ يظهر رفض المزوّد.
KAZMA_ACQUISITION_MAX_COST_USDغير مضبوطسقف مالي اختياري غير سالب؛ يُرفض الإرسال الخارجي ما دام حده الأعلى للرسوم غير مدعوم.