متغيرات البيئة
مرجع متغيرات البيئة الكامل للتشغيل المحلي وDocker والإنتاج. فضّل الأسرار القوية؛ ولا تُودِع
.envبمفاتيح حقيقية أبدًا. انظر أيضًا الإعداد لkazma.yamlوConfigStore.
| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_COMPUTER_USE | 1 | 0 يعطّل أداة 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_DOCLING | 1 | نقض إضافي على إنقاذ Docling المحلي لاستخراجات PDF الضعيفة، الذي تحكمه documents.security.local_salvage (مفعّلة افتراضيًا): القيم 0/false/off/no تطفئه؛ ولا قيمة لهذا المتغير تشغّله. ويعمل الإنقاذ داخل عامل المحلّل المحدود. |
KAZMA_REMOTE_PARSE | unset (لا نقض) | الإنقاذ البعيد معطل افتراضيًا. إنقاذ 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_LITELLM | 1 | 0 يعطّل وسيط 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_DUPLEX | 1 | 0 يعطّل ازدواج LiveKit حتى لو ضُبطت الاعتمادات |
KAZMA_CUA_PLANNER | 1 | 0 يُبقي computer_use على vision-JSON (بلا تعيين Anthropic CUA / Gemini) |
KAZMA_MCP_SAMPLING | 0 | 1 يسمح بMCP sampling/createMessage بعد بطاقة HITL (لا أدوات على استدعاء الـLLM ذاك) |
KAZMA_MCP_SAMPLING_TIMEOUT | 60 | ثواني انتظار بطاقة HITL لأخذ العينات |
الأسبقية (تذكير)
Section titled “الأسبقية (تذكير)”- المساعدات المحددة قد تقرأ البيئة أولًا (
KAZMA_SECRET، والخزانة، والإفصاح). - قاعدة بيانات ConfigStore تتفوق لمعظم إعدادات التشغيل.
kazma.yamlيزرع مفاتيح قاعدة البيانات الناقصة.- الافتراضيات المضمّنة في الشيفرة أخيرًا.
لا تُراكب ConfigStore.get() العامة كل متغير بيئة تلقائيًا — فقط المفاتيح الموثقة أدناه التي تقرؤها الشيفرة صراحةً.
ذكاء المستندات
Section titled “ذكاء المستندات”حدود منصة المستندات، وOCR، والعمال، والاحتفاظ، والسعة، وأعلام الطرح
مفاتيح ConfigStore / kazma.yaml (تُقرأ حية)، لا مصفوفة بيئة موازية.
المفاتيح الأساسية متداخلة، مثل:
documents.enabled/documents.shadow/documents.default_authoritativedocuments.intake.max_bytes، وdocuments.intake.lease_seconds، وdocuments.limits.max_pagesdocuments.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_BACKEND | unset | sqlite (أو sqlite3) يفرض طابور مهام SQLite؛ وأي قيمة أخرى تتبع المنصة: Postgres حين تكون قاعدة بيانات كاظمه Postgres. ومجمّع Postgres الذي يتعذر الوصول إليه عند البدء يتراجع إلى SQLite، وتُبلغ عنه الجاهزية بوصفه متدهورًا. |
KAZMA_DOCUMENTS_METADATA_BACKEND | unset (auto) | sqlite / postgres (وأيضًا postgresql، وpg) / auto (غير مضبوط أو auto: يتبع طرف المهام)؛ وأي قيمة أخرى تعني SQLite. بيانات Postgres الوصفية تفعّل CRUD متعدد النسخ؛ وعلام/مسح GC مستقل عن الطرف (repository.gc_mark) |
KAZMA_DOCUMENT_SOAK_ITERATIONS | 100 | تكرارات اختبار التحليل المتكرر الممتد في certify_documents.py --soak. وليس نقعًا متعدد الأيام، ولا يُبلَّغ عنه بوصفه كذلك. |
KAZMA_DOCUMENT_FONT_DIR | vendored documents/assets/fonts/ | دليل الخطوط لPDF/DOCX/HTML المولدة. المسار الذي ليس دليلًا يُتجاهل مع تحذير، ويُستخدم IBM Plex Sans Arabic المرفق. ما زالت الخطوط تُختار بتغطية محارف مُتحقَّقة. |
KAZMA_DOCUMENT_WORKER_ISOLATION | unset (إعداد المشرف، وإلا 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_DIR | unset (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_URL | set by the guard | الوسيط لعزل container: unix:///path/to/broker.sock أو tcp://host:port. يعطي الحارس الخادم الذي يُفرخه عنوان loopback لوسيطه الخاص؛ والقيمة من .env تتقدم (وسيط آخر: compose، أو وسيط يُشغَّل يدويًا)، ولا يشغّل الحارس حينئذ أي وسيط. ومن دونه يرفض container كل تشغيل. مكان TCP شبكة خاصة: الرمز هو المصادقة الوحيدة. |
KAZMA_DOCUMENT_BROKER_TOKEN_FILE | set 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_HOST | 127.0.0.1 | اضبطه عمدًا | عنوان الربط. غير الـloopback يستلزم KAZMA_SECRET. |
KAZMA_PORT / معامل serve | 9090 (CLI) | لا | منفذ HTTP (kazma serve [port]). قد تختلف صور Docker — راجع compose. |
KAZMA_SECRET | يولَّد على loopback | نعم على ربط عام | السر المشترك للمصادقة / مادة الجلسة. الافتراضي السيئ المعروف يُرفض. |
KAZMA_PRODUCTION | unset | نعم للإنتاج | يفعّل اشتراط الخزانة، وجذر مساحة العمل، وسياسة code_exec، والحجب القاسي لYOLO، وغيرها. |
KAZMA_ENV | unset | اختياري | بعض المسارات تعامل production بطريقة خاصة. |
KAZMA_PUBLIC_URL | unset | يوصى به خلف وسيط | الأصل العام لإعادة توجيه OAuth/OIDC. |
KAZMA_CORS_ORIGINS | unset | إن كان المتصفح عابر الأصول | أصول HTTP(S) صريحة مفصولة بفواصل موثوقة لCORS المُعتمد وطفرات API. يجب أن يطابق المخطط والمنفذ؛ وتُرفض البدل (wildcards). منافذ التطوير المحلي غير موثوقة افتراضيًا. أعلن أصل الوسيط العكسي الخارجي بKAZMA_PUBLIC_URL. أعد التشغيل بعد تغيير هذه الإعدادات. |
KAZMA_ENV_FILE | unset | لا | مسار مطلق لملف .env إضافي، يُحمَّل أخيرًا فيتفوق. سلّم .env هو: <kazma home>/.env ← <cwd>/.env ← هذا. أما kazma mcp وkazma ask، اللذان تشغّلهما برامج أخرى من مجلداتها، فيقرآن ملف .env في نسخة التثبيت بدل ملف مجلد التشغيل. لا يُقرأ شيء خارج التثبيت ما لم تسمّه هنا. |
KAZMA_TRUSTED_PROXIES | unset | نعم خلف أي وسيط | عناوين أو نطاقات CIDR مفصولة بفواصل يتصل الوسيط العكسي منها (127.0.0.1 لnginx/Caddy على نفس المضيف أو Cloudflare Tunnel، أو IP الجسر أو 172.17.0.0/16 تحت Docker). فقط هؤلاء الأقران يجوز لهم ضبط X-Forwarded-For / X-Forwarded-Proto؛ وتُتجاهل *. انظر التحذير أدناه. |
KAZMA_LOOPBACK_AUTOLOGIN | 0 | أبقِه 0 | يعيد تفعيل دخول loopback بلا اعتمادات حتى مع إعلان وسيط. فقط لمضيف يكون 127.0.0.1 فيه حقًا أنت وحدك. |
KAZMA_TRUST_LAN | 0 | أبقِه 0 إلا للحاجة | ثقة الشبكة المحلية لبرمجية المصادقة الوسيطة. |
KAZMA_AUTH_DISABLED | unset | أبدًا في الإنتاج | يعطّل مساعدات المصادقة — للتطوير فقط. |
KAZMA_ALLOW_YOLO | unset | تجنّبه | السبيل الوحيد لإعادة تفعيل YOLO مع KAZMA_PRODUCTION=1. |
KAZMA_VERBOSE_ERRORS | 0 | أبقِه 0 | يُلحق رسالة الاستثناء الحقيقية بأخطاء API (ما زالت منقحة للمسارات والاعتمادات). للتطوير فقط — يُعيد الإنتاج رمزًا مع معرّف ترابط. |
KAZMA_BASE_URL | unset | لا | عنوان إضافي يجوز للوكيل استخدامه للوصول إلى API هذا الخادم نفسه (بعد KAZMA_PUBLIC_URL في ملاحظة وقت تشغيل الوكيل، وبعد مرشحي loopback لاستدعاءات API المحلية). |
KAZMA_GIT_SHA | git 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_KEY | unset | نعم في الإنتاج | المادة الرئيسية لخزانة AES. |
KAZMA_JWT_SECRET | unset | إن استُخدمت مسارات JWT | توقيع JWT لرموز المستأجر/API. |
KAZMA_DISCLOSURE_KEY | unset | اختياري | مساعد تشفير الإفصاح عن الثغرات. |
قاعدة البيانات والنسخ المتعددة
Section titled “قاعدة البيانات والنسخ المتعددة”| المتغير | الافتراضي | مطلوب في الإنتاج؟ | الغرض |
|---|---|---|---|
KAZMA_DATABASE_URL | unset (SQLite) | النسخ المتعددة نعم | DSN لPostgres ← مخازن مزدوجة الطرف + نقطة تفتيش LangGraph. |
DATABASE_URL | unset | بديل | يقبله سكربت الترحيل اسمًا بديلًا. |
KAZMA_DB_BACKEND | auto | اختياري | يفرض postgres / sqlite. |
KAZMA_DB_CONTAINER | kazma-db | الترحيل | اسم حاوية Docker لاكتشاف pg_dump / pg_restore أثناء kazma migrate. انظر الترحيل. |
KAZMA_DB_INTERNAL_PORT | 5432 | الترحيل | منفذ Postgres داخل الحاوية عندما يعمل pg_dump / pg_restore عبر docker exec (منفذ المضيف المُمرَّر لا يمكن الوصول إليه من داخل الحاوية). |
KAZMA_DOCKER_BIN | unset | اختياري | المسار المطلق ل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_RETRIES | 5 | اختياري | عدد إعادة محاولات إنشاء مجموعة الاتصالات. يتعامل مع الإخفاقات العابرة (جسر Docker على Windows، وحاوية في منتصف الإقلاع). |
KAZMA_PG_POOL_RETRY_DELAY | 1.0 | اختياري | ثوانٍ بين إعادة محاولات إنشاء المجموعة. |
KAZMA_PG_POOL_MIN | 1 | اختياري | أقل عدد اتصالات في مجموعة psycopg. |
KAZMA_PG_POOL_MAX | 10 | اختياري | أكثر اتصالات في مجموعة psycopg. |
KAZMA_PG_POOL_TIMEOUT | 5 | اختياري | ثوانٍ ينتظرها المستدعي لاتصال حر في المجموعة. كان تعليق هنا يجمد معه /health/ready على حلقة الأحداث. |
KAZMA_REPLICA_AFFINITY | on | النسخ المتعددة | 0 يوقف ضبط كوكي kazma-replica (HttpOnly). تعيش SSE الدردشة وبعض حالة السرب في عملية واحدة، فخلف موازن حمل أبقه مفعّلًا واجعل الموازن لاصقًا على تلك الكوكي (أو على تجزئة IP المصدر). |
KAZMA_REPLICA_ID | hostname | النسخ المتعددة | القيمة التي تكتبها هذه العقدة في كوكي kazma-replica. |
KAZMA_SHARED_BREAKERS | on in production / multi-user | النسخ المتعددة | إبقاء حالة قواطع دائرة السرب في مخزن الإعدادات (swarm.breaker.<worker>) لترى كل نسخة قاطعًا فتحته نسخة أخرى. القيمتان 1 / 0 تفرضانها في الاتجاهين. |
KAZMA_SWARM_MAX_ACTIVE | swarm max_concurrent_tasks (10) | لا | كم مهمة سرب يجوز أن تعمل دفعة واحدة؛ والتالية تُرفض (“Swarm at capacity”). خطوط الأنابيب المتوقفة عند نقطة تفتيش لا تُحتسب. |
KAZMA_MIGRATE_CHECK_PORT | off | الترحيل | 1 يجعل kazma migrate import يرفض أيضًا أثناء استماع شيء على KAZMA_PORT / PORT (الافتراضي 9090). الفحص الرئيسي هو نبض الخادم العامل؛ وفحص المنفذ معطل افتراضيًا لأن خادم تطوير غير ذي صلة على ذلك المنفذ كان سيحجب كل استيراد. |
KAZMA_DB_BACKEND_SOURCE | — | ليس دخلًا | يُكتب ولا يُقرأ أبدًا: يسجل kazma migrate export طرف قاعدة البيانات المصدر بهذا الاسم في meta.env للحزمة. |
KAZMA_PG_RESTORE_REHEARSAL | unset (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_KEY | unset | شيفرة غير موثوقة / متعددة المستخدمين | E2B Firecracker لpython_exec بموافقة HITL. |
KAZMA_E2B | auto if key set | لا | 0 يُبقي Docker/المحلي حتى مع مفتاح. |
KAZMA_CODE_EXEC_DOCKER | auto | سجن المشغّل الواحد | تتطلب 1/true/on/yes/docker/force/required Docker دون بديل محلي وتحجب صدفة المضيف إلا بمنحة صريحة. يطلب 0 التنفيذ المحلي، الذي تظل سياسة الإنتاج وتعدد المستخدمين ترفضه. |
KAZMA_HOST_SHELL | unset | منفذ نجاة | ترفض ملفات الإنتاج وتعدد المستخدمين وDocker الإجباري صدفة المضيف افتراضيًا. يمنحها 1 صراحة بعد HITL؛ وهذا يعيد قدرة المضيف، لا العزل. ترفضها أعطال قراءة السياسة. |
KAZMA_CODE_EXEC_IMAGE | python:3.12-slim | لا | صورة سجن Docker الذي يشغّل python_exec / code_exec (بلا شبكة، وقرص عمل للقراءة فقط، وtmpfs على /tmp، وسقف ذاكرة). |
KAZMA_LIVE_EVAL | unset | لا | 1 يشغّل تقييم النموذج الحي الاختياري (tests/test_hands_live.py). تتخطاه CI. |
KAZMA_TEMPORAL_HOST / TEMPORAL_ADDRESS | unset | سرب متعدد الساعات | واجهة Temporal الأمامية (localhost:7233). كل مهمة سرب مقبولة تعمل عبر سير عمل Temporal ينفّذ نشاطُه تشغيلَ المحرك نفسه في هذه العملية (دليل السرب §1.0a). |
KAZMA_TEMPORAL | auto if host set | لا | 0 يُبقي السرب داخل العملية. |
KAZMA_TEMPORAL_REQUIRED | unset | تنفيذ دائم مطلوب | يفشل 1 المهمة إذا عُطّل Temporal/SDK أو توقف، أو لم يكن عامل هذه العملية يعمل؛ وتُؤجَّل الموافقة حينئذ مع ترك نقطة تفتيشها مفتوحة. وتتطلب الجاهزية العامل الجاري أيضًا. بعد الإرسال لا يسمح أي ملف ببديل محلي. لا يعيد Temporal أبدًا محاولة نشاط مهمة. |
KAZMA_TEMPORAL_NAMESPACE | default | لا | نطاق Temporal. |
KAZMA_TEMPORAL_QUEUE | kazma-swarm | لا | طابور مهام سير العمل. وتستخدم أنشطة كل عملية <queue>-run-<tag>، وهو طابور لا تستطلعه إلا تلك العملية (يُختار الوسم عند البدء). |
KAZMA_CODE_INDEX | on | لا | 0 يعطّل فهرس رموز مساحة العمل + codebase_search. |
KAZMA_IDE_LSP | on | لا | 0 يعطّل الطرف الخلفي /api/ide/lsp. محرر الويب /ide هو CodeMirror 5 (نحو فقط)؛ وواجهة hover/complete غير مربوطة. |
للاختبار فقط: KAZMA_TEST_TEMPORAL_REQUIRED=1 يجعل تأهيل المسار الدائم
(tests/test_swarm_temporal_durable.py، على خادم اختبار Temporal الذي يتخطى
الزمن) يفشل بدل أن يُتخطى حين تكون SDK مفقودة أو يتعذر بدء خادم الاختبار؛ وتضبطه
مهمة CI الخاصة به.
LLM / المزوّد
Section titled “LLM / المزوّد”| المتغير | الافتراضي | مطلوب في الإنتاج؟ | الغرض |
|---|---|---|---|
OPENAI_API_KEY | unset | مفتاح مزوّد واحد | مفتاح متوافق مع OpenAI؛ يُستخدم أيضًا للطرف الخلفي dall-e لتوليد الصور. |
KAZMA_API_KEY | unset | احتياط | احتياط مفتاح API عام. |
KAZMA_PROVIDER | unset | إقلاع اختياري | معرّف المزوّد عند الإقلاع. |
KAZMA_MODEL | unset | إقلاع اختياري | معرّف النموذج عند الإقلاع. |
ANTHROPIC_API_KEY | unset | لClaude | واجهة Anthropic Messages الأصلية (anthropic_llm.py). |
AZURE_OPENAI_ENDPOINT / AZURE_OPENAI_API_KEY / AZURE_OPENAI_DEPLOYMENT / AZURE_OPENAI_API_VERSION | unset | لAzure | Azure OpenAI (azure_llm.py). |
AWS_REGION / AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY | unset | لBedrock | AWS Bedrock عبر سلسلة اعتمادات boto3 القياسية (bedrock_llm.py). |
STABILITY_API_KEY | unset | اختياري | الطرف الخلفي Stability SDXL لتوليد الصور. |
FAL_KEY | unset | اختياري | الطرف الخلفي Flux لتوليد الصور (FAL.ai). |
KAZMA_IMAGE_PROVIDER | unset | اختياري | يفرض طرف صور (pollinations/dall-e/stability/flux)؛ الافتراضي auto. |
KAZMA_STRICT_TOOLS | unset (off) | لا | 1 يختم OpenAI بfunction.strict: true على مخططات الأدوات المغلقة (كل الخصائص مطلوبة؛ والاختيارية T | null). الافتراضي كائنات مغلقة بadditionalProperties: false فقط — المحلي / Anthropic / Gemini كثيرًا ما تعيد 400 على strict. |
KAZMA_LLM_STREAM | on | لا | 0 يلجأ إلى chat() الحاجب (بلا SSE للرموز). |
KAZMA_TOOL_HOOKS | on | لا | 0 يعطّل PreToolUse / PostToolUse (داخل العملية وكأمر). القوائم agent.hooks.* الفارغة لا تفعل شيئًا. لا تستطيع الخطافات تخطي HITL. |
KAZMA_PLAN_MODE | on | لا | 0 يعطّل دخول/تنفيذ /plan. وضع الخطة ليس تجاوزًا لHITL. |
GOOGLE_CALENDAR_TOKEN / MS_CALENDAR_TOKEN | unset | اختياري | تجاوز فقط. تعيش رموز التقويم عادةً في الخزانة (calendar.google.* / calendar.microsoft.*) عبر الإعدادات ← البريد ← ربط التقويم / الاتصال بMicrosoft. |
KAZMA_CALENDAR_PROVIDER | auto | لا | طرف التقويم حين لا يسمي الاستدعاء واحدًا: auto يختار Google إن كان متصلًا، وإلا Microsoft، وإلا الصندوق الرملي. وgoogle أو outlook (أيضًا microsoft / graph) أو sandbox تفرض واحدًا؛ والمزوّد المفروض بلا اعتمادات يفشل بدل اللجوء إلى غيره. |
KAZMA_VISION_MODELS | unset | لا | أنماط معرّفات نماذج إضافية مفصولة بفواصل (بدل shell، غير حساسة لحالة الأحرف) تُعامل كقادرة على الرؤية، مثلًا لكي يلتقط analyze_image نموذجًا لا تعرفه القائمة المدمجة. قائمة النص فقط المدمجة ما زالت تتفوق. |
| خاصة بالمزوّد | — | حسب الاستخدام | مثل DeepSeek، وGroq، وxAI، وOpenRouter، وMistral، وTogether، وCohere، وFireworks، وPerplexity، وAI21، وGoogle ADC — انظر الإعداد. |
مساحة العمل والذاكرة والعرض التجريبي
Section titled “مساحة العمل والذاكرة والعرض التجريبي”| المتغير | الافتراضي | مطلوب في الإنتاج؟ | الغرض |
|---|---|---|---|
KAZMA_WORKSPACE | مساحة WorkspaceStore / دليل البيانات النشط | سياسة جذر الإنتاج | جذر مساحة ملفات الوكيل. |
KAZMA_VECTOR_COLLECTION | agent_memory | لا | اسم مجموعة Chroma. |
KAZMA_VECTOR_MODEL | BAAI/bge-m3 | لا | اسم بديل قديم لمعرّف نموذج التضمين (يفضَّل KAZMA_EMBED_MODEL). |
KAZMA_EMBED_PROVIDER | local | لا | مزوّد التضمين (local أو openai-compatible). |
KAZMA_EMBED_MODEL | BAAI/bge-m3 | لا | معرّف نموذج التضمين (يتجاوز memory.embedding.model). |
KAZMA_EMBED_DIM | 1024 | لا | بُعد التضمين (يجب أن يطابق مخرجات النموذج). |
KAZMA_EMBED_BASE_URL | unset | بعيد فقط | عنوان URL الأساسي لنقطة النهاية /embeddings لopenai-compatible. |
KAZMA_EMBED_API_KEY | unset | بعيد فقط | مفتاح API لنقطة النهاية /embeddings البعيدة. |
KAZMA_EMBEDDER_PREWARM | unset (on) | لا | 0 يتخطى تحميل المُضمِّن عند الإقلاع؛ ويحمّله أول استدعاء ذاكرة يحتاج إليه. تضبطه مجموعة الاختبارات: كل تطبيق بناه اختبارٌ كان يحمّل النموذج المحلي هنا. |
KAZMA_DEMO_MODE | unset | لا | عُدد العرض التجريبي — لا تفعّله في إنتاج حقيقي أبدًا. |
KAZMA_MEMORY_ENFORCE_TENANT | unset | تعدد مستأجرين فقط | عندما يكون 1/true — ودائمًا تحت KAZMA_PRODUCTION=1 أو متعدد المستخدمين — يُنطق كل مسار /api/memory القراءات، والعدادات، والطفرات المفتاحة بالمعرّف، ورموز التراجع، والنظافة، ومسح الرسم بمستأجر الطلب (تضبطه برمجية المصادقة الوسيطة من مطالبات JWT/جلسة-opaque مُتحقَّقة). غير مضبوط خارج الإنتاج ومتعدد المستخدمين = مستأجر مفرد default. |
KAZMA_MEMORY_STATE_ROLE | unset (mirror) | نسخ متعددة فقط | primary يجعل طرف حالة Postgres مصدر حقيقة الاسترجاع (فشل مغلق إن كان متوقفًا — بلا SQLite صامت). البحث الكثيف pgvector مدموج مع ILIKE. لا تفعّله حتى يبلغ python scripts/reconcile_memory_mirror.py --dry-run انعدام الصفوف ميتة-في-المرآة / موجودة-في-المرآة-فقط. |
KAZMA_PGVECTOR | auto 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_ROOT | unset | تحصين متعدد المشاريع | عند ضبطه، يجب أن تعيش مساحة عمل مختارة في الواجهة (Switch Repo، منتقي المسار) تحت هذا الدليل. وهو أيضًا أساس يجوز تحته حذف مساحات العمل المستنسخة. |
KAZMA_CLONE_DIR | ~/kazma-repos | لا | حيث تُوضع المستودعات المستنسخة من الواجهة أو /ide clone؛ ومساحات العمل المستنسخة تحته يجوز حذفها من الواجهة. |
KAZMA_MEMORY_STATE_REGION | unset | مناطق متعددة فقط | معرّف المنطقة المختوم على الصفوف التي يعكسها هذا التثبيت إلى طرف حالة Postgres. |
KAZMA_MEMORY_CONFLICT_POLICY | last_write_wins | مناطق متعددة فقط | ما تفعله كتابة منعكسة بصف كتبته منطقة أخرى أولًا: last_write_wins تستبدله؛ وorigin_wins تبقي صف المنطقة الأخرى بصمت (تحتسبه صحة الذاكرة kept_by_origin)؛ وfail_closed ترفض الكتابة نفسها وتبلغ عنها: صحة الذاكرة تحسب region_conflicts، ومزامنة المرآة تسجل تحذيرًا كل تمريرة وتنادي المشغّل (memory.region_conflict، بحد أقصى كل 6 ساعات). |
KAZMA_GRAPH_PROVIDER | sqlite | لا | neo4j يضع رسم المعرفة على Neo4j، وكذلك ضبط KAZMA_NEO4J_URL / NEO4J_URI أو KAZMA_NEO4J_DEFAULT=1. هذه تملأ إعدادات فارغة فقط: المزوّد المختار مسبقًا في الإعدادات يتفوق. |
KAZMA_NEO4J_URL | bolt://localhost:7687 | لا | عنوان Neo4j (NEO4J_URI / NEO4J_URL مقبولة أيضًا)؛ وضبطه يختار Neo4j. |
KAZMA_NEO4J_USER | neo4j | لا | مستخدم Neo4j (NEO4J_USER مقبول أيضًا). |
KAZMA_NEO4J_PASSWORD | unset | لا | كلمة مرور Neo4j (NEO4J_PASSWORD مقبولة أيضًا)؛ تملأ كلمة مرور فارغة فقط. |
KAZMA_NEO4J_DEFAULT | unset | لا | 1 يختار Neo4j بالافتراضيات أعلاه؛ ويضبطه ملف تعريف docker-compose.neo4j. |
KAZMA_AUTO_STORE_BELIEFS | conservative | لا | أي الحقائق يحفظها مستخرج الذاكرة من محادثة دون أن يُطلب منه: off، أو conservative (الافتراضي) أو aggressive (كل معتقد مستخرج — السلوك القديم). يتفوق على memory.auto_store_beliefs. |
KAZMA_TRANSCRIPT_RECALL | on | لا | 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_URL | multi-base auto-discovery | طرف البحث المفضل لweb_search (أيضًا ConfigStore search.searxng_url). |
KAZMA_READ_URL_MAX_CHARS | 16000 | حجم النافذة الافتراضي لاستجابة read_url / crawl_page واحدة. |
KAZMA_TOOL_RESULT_MAX_CHARS | 100000 | محارف نتيجة أداة عادية واحدة يراها النموذج؛ والباقي يُقتطع. 0 أو أقل = بلا حد. |
KAZMA_TOOL_RESULT_RESEARCH_MAX_CHARS | 200000 | سقف أعلى لأدوات البحث والتنفيذ (read_url، وcrawl_site، والهضمات، وweb_search، وshell_exec، وpython_exec، …). |
KAZMA_RESEARCH_DIR | research | المجلد الفرعي الافتراضي لمساحة العمل لحفظ read_url_to_file / الزحف ذي التسمية التلقائية. |
KAZMA_RESEARCH_DIGEST_MAX | 12000 | أقصى حجم لمخرجات digest_research_file. |
KAZMA_CRAWL_MAX_PAGES | 50 | السقف الصلب لmax_pages في crawl_site. |
KAZMA_CRAWL_MAX_DEPTH | 5 | السقف الصلب لmax_depth في crawl_site. |
KAZMA_ACQUISITION_MODE | local_only | HTTP واستخراج وChromium محليون افتراضيًا. يسمح local_first_with_remote_fallback بالمزوّدين المسمّين أدناه فقط. |
KAZMA_ACQUISITION_REMOTE_PROVIDERS | فارغ | jina وfirecrawl وproxy مفصولة بفواصل؛ تحتاج الوضع البعيد أيضًا. لا تمنح المفاتيح والأعلام القديمة إذنًا. |
KAZMA_FETCH_DEADLINE_SECONDS | 90 | مهلة جلب النص الكاملة بما فيها DNS ومحاولات HTTP والعرض؛ 1–300 ثانية. |
KAZMA_REMOTE_JOB_REQUESTS | 256 | حصة طلبات خارجية دائمة لكل مهمة جلب أو بحث أو زحف، 0–1024. تستهلك الإخفاقات والمحاولات غير المؤكدة الحصة؛ والطلبات المتداخلة تشترك فيها. حد أعلى للطلبات لا سقف إنفاق مالي. |
KAZMA_REMOTE_DAY_REQUESTS | 1024 | حصة طلبات خارجية دائمة للتثبيت لكل يوم UTC، 0–4096. مشتركة بين المزوّدين والعمليات. يمنع الصفر الإرسال الخارجي. استخدام رصيد المزوّد وأرصدته منفصلان. |
KAZMA_BROWSER_CGROUP_ROOT | مجموعة Linux الحالية | جذر cgroup v2 مفوّض مطلق وقابل للكتابة لشجرة مشغّل Chromium المحلي. يحتاج ضوابط الذاكرة وswap وpids وCPU وقتل المجموعة. يمنع غيابها العرض؛ ولا تضبط كاظمه متحكمات المضيف. يستخدم Windows كائنات Job Object. |
KAZMA_FETCH_BACKEND | auto | اختيار بعيد قديم: auto | httpx | jina | firecrawl؛ يخضع دائمًا لسياسة الجلب. |
KAZMA_FIRECRAWL_API_KEY | غير مضبوط | اعتماد Firecrawl اختياري؛ يستخدم بعد فشل المحلي فقط حين تسمح السياسة. المفتاح وحده ليس إذنًا. |
KAZMA_FIRECRAWL_URL | https://api.firecrawl.dev | أساس Firecrawl API (الاستضافة الذاتية مقبولة). |
KAZMA_JINA_READER | غير مضبوط | يمنع 0/off Jina. لا تتجاوز القيم الأخرى سياسة الجلب وقائمة المزوّدين. |
JINA_API_KEY / KAZMA_JINA_API_KEY | unset | رمز Bearer اختياري لJina لحدود معدل أعلى. |
KAZMA_FETCH_MAX_BYTES | 5000000 | سقف جسم الاستجابة المفكوك لـ HTTP المباشر والكشط المستضاف؛ محصور في 65536–20000000 بايت. استهلاك الشبكة وتوسع gzip/deflate محدودان. الاقتطاع صريح؛ وتُرفض حمولة الخدمة وJSON الناقصان. حد لكل استجابة، لا ميزانية ذاكرة المهمة أو المتصفح كاملة. |
KAZMA_CRAWL_RESPECT_ROBOTS | 1 | فرض سياسة KazmaBot على الزحف الآلي واكتشاف المعرفة واستيعابها وحفظ البحث. يمنع فشل الفحص الإرسال؛ و404/410 يعنيان قواعد غائبة. يُسجل 0 الصريح أو crawl_site(respect_robots=False) كتغيير من المشغّل. القيمتان 0/1 فقط صالحتان. |
KAZMA_RESEARCH_ROUTE | soft | لطلب بصياغة بحث عميق، يخبر الدور الأول الوكيل باستخدام run_research_pipeline مرة واحدة بدل سلسلة بحثات يدوية كثيرة. 0 يزيل التلميح. |
KAZMA_RESEARCH_SOFT_NUDGE | deep | حين يكون الوكيل قد بحث وقرأ أقل من KAZMA_RESEARCH_MIN_SOURCES مصدرًا كاملًا، يُخبَر مرة واحدة بعدم الإجابة من المقتطفات: deep للطلبات العميقة الصياغة، وأي قيمة أخرى لكل طلب بحث، و0 أبدًا. |
KAZMA_RESEARCH_MIN_SOURCES | 2 | المصادر الكاملة (read_url، وread_url_to_file، والزحف، والهضمات) التي تُحتسب كافية لذلك التنبيه (1–8). |
KAZMA_RESEARCH_ALLOW_THIN | unset | 1 يتيح لخط أنابيب depth="deep" أن ينتهي بمصادر أقل من حده الأدنى. بدونه يفشل التشغيل العميق؛ والتشغيل القياسي يحذر فقط. |
KAZMA_RESEARCH_EXPORT_DOCX | unset | 1 يصدّر كل تقرير خط أنابيب أيضًا كDOCX، كما لو مُرر export_docx=True. |
KAZMA_RESEARCH_GAP_LOOP | on | بعد التركيب الأول للتشغيل العميق، يجوز لناقد أن يطلب جولة مصادر إضافية واحدة. 0 تتخطاها. |
KAZMA_RESEARCH_LLM_PLANNER | on | 0 يخطط استعلامات البحث بالاستدلال بدل استدعاء LLM. |
KAZMA_RESEARCH_LLM_CRITIC | on | 0 يفحص المسودة للفجوات بالاستدلال بدل استدعاء LLM. |
KAZMA_RESEARCH_SYNTH_MAX_IN | 48000 | محارف ملفات البحث التي يقرؤها استدعاء 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_INJECT | on | مقاطع المكتبات الموسومة بحقن تلقائي يجوز إضافتها إلى سياق الدور. 0 يطفئ ذلك لكل مكتبة. |
KAZMA_KB_AUTO_INJECT_TOP_K | 3 | مقاطع تُحقن لكل دور (1–10). |
KAZMA_KB_SMART_SEARCH | off | 1 يحقن أيضًا من كل مكتبة نشطة ذات محتوى (ليس الموسومة بحقن تلقائي فقط) حين تبدو الرسالة تقنية. ConfigStore knowledge.smart_search؛ قيمة البيئة تتفوق. مرشحات المستأجر والأرشيف ما زالت تنطبق. |
KAZMA_KB_MAX_PAGES | 200 | صفحات يجلبها عمل استيعاب مكتبة واحد (1–1000). |
KAZMA_KB_MAX_DEPTH | 10 | عمق روابط زحف الاستيعاب حين لا يكون للموقع sitemap (0–20). |
KAZMA_KB_DELAY_MS | 300 | توقف بين جلبات صفحات عمل استيعاب واحد (0–5000 ملّي ثانية). |
RAYON_NUM_THREADS | تضبطه كاظمه على 1 إن لم يكن مضبوطًا | ليس متغيّرًا من كاظمه: عدد خيوط مجمّع خيوط Rust في chromadb (وفي tokenizers). تضبطه كاظمه على 1 قبل أن يبدأ مخزن متجهات مكتبة المعرفة، لأن إعادة Chroma المتوازية لسجل كتابات مكتبة قد تُسقط العملية. القيمة التي تضبطها بنفسك تُحفظ، مع WARNING في السجل؛ اتركه غير مضبوط. انظر مكتبة المعرفة. |
KAZMA_KB_SCOPE_MODE | tree | أي الروابط يتبعها زحف الاستيعاب: tree (نفس المضيف ومقطع مسار موضوع مشترك)، أو prefix (بادئة مسار صارمة)، أو domain (نفس المضيف، أي مسار)، أو exact (الصفحة الواحدة). |
KAZMA_KB_JINA_FALLBACK | محكوم بالسياسة | بديل اكتشاف Jina يتطلب الوضع البعيد وإذن jina. يمنعه 0 أو KAZMA_JINA_READER=0؛ ولا يمنح 1 إذنًا. |
OIDC / تعدد المستخدمين
Section titled “OIDC / تعدد المستخدمين”| المتغير | الافتراضي | مطلوب في الإنتاج؟ | الغرض |
|---|---|---|---|
KAZMA_OIDC_ISSUER | unset | إن كان SSO | عنوان URL لمُصدر OIDC. |
KAZMA_OIDC_CLIENT_ID | unset | إن كان SSO | معرّف العميل. |
KAZMA_OIDC_CLIENT_SECRET | unset | إن كان SSO | سر العميل (مطلوب لid_token من نوع HS*). |
KAZMA_OIDC_TENANT_CLAIM | unset | لا | المطالبة في id_token التي تسمّي مستأجر المستخدم في كاظمه؛ تُربط بالجلسة عند تسجيل الدخول. غير مضبوطة = كل مستخدم OIDC يتشارك المستأجر الافتراضي. |
KAZMA_OIDC_REDIRECT_URI | {KAZMA_PUBLIC_URL}/api/auth/oidc/callback | إن لم يكن هناك عنوان عام | عنوان رد النداء المسجل لدى IdP. يرفض تسجيل الدخول البدء حين لا يكون هذا ولا KAZMA_PUBLIC_URL مضبوطًا. |
KAZMA_OIDC_SCOPES | openid profile email | لا | النطاقات المطلوبة عند تسجيل الدخول. |
KAZMA_OIDC_ROLE_CLAIM | role | لا | مطالبة id_token التي تسمّي دور المستخدم (roles ثم groups تُجربان تاليًا). تُستخدم admin / operator / viewer كما هي؛ وowner وmember وreadonly وما شابه تُرسم إلى أدوار. |
KAZMA_OIDC_DEFAULT_ROLE | operator | أبقِه operator أو viewer | الدور لمستخدم لا يسمّي رمزه دورًا معروفًا. ضبط admin يجعل كل هؤلاء المستخدمين مدراء. |
KAZMA_MULTI_USER | unset | تعدد مستخدمين | 1 يطبق وضعية تعدد المستخدمين قبل وجود أي مستخدم منصة: ترشيح لكل مستأجر، وجلسات opaque دائمًا، وفحص RBAC لا يستطيع العمل يرفض الطلب بدل السماح به. |
KAZMA_SESSION_TTL_SECONDS | 1209600 (14 يومًا) | لا | عمر جلسة المتصفح؛ 300 على الأقل. |
KAZMA_TENANT_ID | default | CLI فقط | المستأجر الذي يتصرف باسمه CLI kazma. |
انظر إعداد OIDC IdP وSaaS متعدد المستخدمين.
البريد (Gmail / Microsoft Graph / الصندوق الرملي)
Section titled “البريد (Gmail / Microsoft Graph / الصندوق الرملي)”مهارة أصلية email-manager. المزوّد الافتراضي auto: حساب حقيقي إن كان مضبوطًا، وإلا الصندوق الرملي.
| المتغير | الغرض |
|---|---|
EMAIL_DEFAULT_PROVIDER | auto | sandbox | gmail | microsoft | imap | pop |
EMAIL_GMAIL_ADDRESS | عنوان Gmail (تملؤه OAuth أو IMAP/POP) |
EMAIL_GMAIL_APP_PASSWORD | كلمة مرور تطبيق لIMAP/POP (كثيرًا ما تُحجب على Workspace) |
EMAIL_GMAIL_AUTH | oauth | 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_AUTH | oauth | 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_PROTOCOL | imap | pop للحساب العام |
EMAIL_IMAP_HOST / EMAIL_IMAP_PORT | IMAP (الافتراضي 993) |
EMAIL_POP_HOST / EMAIL_POP_PORT | POP3 SSL (الافتراضي 995) |
EMAIL_SMTP_HOST / EMAIL_SMTP_PORT | SMTP (الافتراضي 587 STARTTLS) |
EMAIL_ACCOUNTS | كنى حسابات متعددة مفصولة بفواصل |
EMAIL_ACCOUNT_{ALIAS}_TYPE | gmail | 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_POST | unset (on if Settings enabled) | 0 يعطّل النشر تعطيلًا قاسيًا (Studio، والدردشة، وإطلاق المجدول، ومنشورات الرد التلقائي). |
KAZMA_X_SCHEDULE | unset (on) | 0 يعطّل الجدولة فقط (book_x_post / جدولة Studio). |
KAZMA_X_REPLY | unset (on if Settings enabled) | 0 يعطّل الرد التلقائي على الذكر فقط. المنشورات المجدولة ما زالت تعمل. |
KAZMA_X_SHADOW | unset | حارس داخلي يضبطه عامل التقييم المعزول scripts/x_shadow.py. تمنع القيمة 1 جميع طلبات شبكة X وتسليم التنبيهات؛ استخدم برنامج التقييم بدل ضبطه على تثبيت يعمل. |
X_API_KEY | unset | مفتاح مستهلك OAuth 1.0a (وإلا connectors.x.api_key). |
X_API_KEY_SECRET | unset | سر المستهلك. |
X_ACCESS_TOKEN | unset | رمز وصول المستخدم. |
X_ACCESS_TOKEN_SECRET | unset | سر رمز وصول المستخدم. |
لا تستخدم رمز Bearer الخاص بالتطبيق فقط. يجب أن تكون مصادقة المستخدم قراءة وكتابة.
حمايات الأمان وتنزيلات المضمِّن (2026-08-19)
Section titled “حمايات الأمان وتنزيلات المضمِّن (2026-08-19)”تحصين اختياري من تدقيق البنية العميقة
(docs/audits/AUDIT_DEEP_STRUCTURE_2026-08-19.md) — كلها معطلة افتراضيًا
(السلوك الحالي محفوظ) ما لم يُذكر غير ذلك.
| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_HITL_CANONICAL_FLOOR | on | قائمة require_approval_for الفعلية تتضمن دائمًا أدوات الخطر القانونية، فلا تستطيع الإعدادات/YAML تضييقها دونها. 0 ينصرف ويشغّل تحذيرًا؛ وتحذير الانحراف يتكرر كل 15 دقيقة في الحالتين. (كان اختياريًا ب1 حتى 2026-09-16؛ ومفعلًا افتراضيًا منذ نتيجة التدقيق F-5.) |
KAZMA_GATEWAY_STRICT_ALLOWLIST | unset (compat) | إيقاف فرض _allow_all على محولات Telegram/Discord/Slack — فتفشل قائمة السماح الفارغة مغلقًا (لا رسائل). بدونه، يسجل الفرض القسري للسماح-للكل تحذير WARNING يسمي المعالجَين حين لا تكون قائمة سماح مضبوطة. |
KAZMA_MCP_SCOPE_GUARD | 1 (on) | إغلاق فاشل لاستدعاءات أدوات MCP حين يستهدف workspace_scope الخاص بكل مهمة جذرًا مختلفًا عن جذر MCP المرتبط بالعملية (يمنع عمليات مستودع-خاطئ صامتة). اضبط 0 فقط إن كان الحارس يحجب تدفقًا مشروعًا. |
KAZMA_EMBED_ALLOW_DOWNLOAD | unset (contextual) | السماح القسري للمضمِّن المحلي بتنزيل نموذجه من HuggingFace. المضمِّنات الاحتياطية (مزوّد مجهول / إعداد بعيد مكسور) لا تنزل أبدًا — تفحص ذاكرة HF المحلية وتتدهور إلى لا تضمينات مع تحذير قابل للتنفيذ بدل التعليق على تنزيل ~2GB. إعدادات local المتعمدة تحتفظ بحقوق تنزيل أول تشغيل. |
KAZMA_PERMISSIONS_ENFORCE | unset | 1 يفرض قوائم السماح لكل مستخدم في kazma-permissions.yaml حتى قبل وجود أي إدخال users:، ويرفض كل أداة إن تعذرت قراءة الملف. بدونه، يبدأ الفرض متى امتلك مستخدم قائمة سماح أو رفض. |
KAZMA_DIVISION | unset (ConfigStore agent.division) | يشغّل هذا التثبيت كقسم: خوادم MCP المسرودة تحت divisions.<name>.denied_mcp_servers في kazma-permissions.yaml محجوبة، وكل استدعاء محجوب يودع طلب وصول. غير مضبوط = لا فحوص أقسام إطلاقًا. |
KAZMA_DIVISION_USER | default | معرّف المستخدم الذي تُودع له طلبات وصول القسم. |
KAZMA_SELF_IMPROVEMENT | on | 0 يوقف محرك التحسين الذاتي على مساري الدردشة والسرب: لا فروق Soul جديدة تُتعلم أو تُحقن. يُقرأ حيًّا. |
KAZMA_BUS_BRIDGE | on | يتيح لkazma mcp (عملية بلا ناقل موافقات) طلب الموافقة عبر سجلّ البوابات، حيث تعرض لوحة التحكم البطاقة. 0 يزيل ذلك المسار، فيحجب kazma mcp كل أداة خطر. |
KAZMA_WATCHER_STALE_SECONDS | 120 | ما يجب أن يكون حديثًا نبضُ مراقب الموافقات للخادم العامل ليشتبك ذلك الجسر. بلا نبض حديث لا أحد يقرأ الموافقات، فتُرفض الأداة فورًا بدلًا من بعد مهلة. |
مفاتيح تُضعف افتراضًا أمنيًا
Section titled “مفاتيح تُضعف افتراضًا أمنيًا”كل متغير هنا يطفئ حماية. جُمعت معًا في الصفحة الموجهة للمشغّل، لأن مفتاحًا لا يستطيع أحد اكتشافه مفتاح لا يستطيع أحد تدقيقه — بما في ذلك المشغّل الذي ضبطه قبل سنتين. كل صف يقول ما الذي توقف عن حمايتك، لا ما يفعله العلم فقط.
يفشل tests/test_static_gates.py::test_security_env_vars_are_documented البناء
إن قرأت الشيفرة أحدها وكان غائبًا عن .env.example وهذا الجدول معًا.
| المتغير | الافتراضي | ما يطفئه | متى يكون ضبطه آمنًا |
|---|---|---|---|
KAZMA_ACQUISITION_MODE / KAZMA_ACQUISITION_REMOTE_PROVIDERS | local_only / فارغ | يسمح local_first_with_remote_fallback مع مزوّدين مسمّين بالاستخراج المستضاف أو وكلاء الكشط المضبوطين. قد تغادر الروابط والمحتويات الجهاز وقد تتقاضى الخدمات رسومًا. | يسمح المشغّل بهؤلاء المزوّدين عمدًا. تحد حجوزات الطلبات الدائمة إرسال المهمة واليوم؛ وليست سقوفًا مالية أو رسومًا مرصودة. يحتاج رصيد Firecrawl تحديثًا صريحًا يُحتسب؛ وتبقى الأرصدة غير المدعومة مجهولة. المفتاح وحده لا يمنح شيئًا. |
KAZMA_AUTH_DISABLED | unset | بوابة مصادقة HTTP بأكملها. يصبح KAZMA_SECRET المضبوط بلا أهمية — المفتاح يعطّل الفحص الذي يقرأه. | لجهاز loopback فقط، ولا وكيل أمامه. يُرفض عند الإقلاع مع ربط بغير loopback أو خلف وكيل مُعلَن (KAZMA_TRUSTED_PROXIES، security/boot_guard.py). وما دام مضبوطًا يُجاب الطلب الذي جاء عبر وكيل بالرمز 503. ويُرفض كليًا مع KAZMA_PRODUCTION=1. |
KAZMA_DEV_WS_BYPASS | unset | المصادقة على كل مصافحة WebSocket، بما فيها مقبس الدردشة الذي يحمل تدفق الدور. مصادقة HTTP غير متأثرة، وهو ما يجعل من السهل تفويته. | لجهاز loopback فقط، ولا وكيل أمامه. يُرفض عند الإقلاع مع ربط بغير loopback أو خلف وكيل مُعلَن، بالحارس نفسه الذي يرفض KAZMA_AUTH_DISABLED. |
KAZMA_DEMO_MODE | unset | بوابة المصادقة، عمدًا، لعرض تجريبي عام قابل للرمي (fly.toml). مسموح على ربط عام ومُعلن بصوت عال عند الإقلاع. | نسخة تجريبية قابلة للرمي بلا بيانات أو اعتمادات أو خزانة حقيقية. أبدًا على تثبيت يهمك. |
KAZMA_AUTOLOGIN_HOSTS | loopback set | يقيّد أي المضيفين يجوز أن تُصدر لهم كوكي جلسة تلقائيًا دون تقديم السر. توسيعه يمنح جلسات إدارية صامتة لأولئك المضيفين. | تتحكم بكل مضيف في القائمة. إضافة مضيف غير loopback تكافئ نشر السر له. |
KAZMA_GATEWAY_ADMINS | unset | من يجوز له تشغيل أوامر منصات الدردشة المميزة. الفراغ يعني أن قائمة السماح الخاصة بالمحول هي البوابة الوحيدة. | اضبطه صراحةً على أي منصة دردشة متعددة المستخدمين. |
KAZMA_GATEWAY_STRICT_ALLOWLIST | unset (compat) | يفعّل المحولات الفاشلة مغلقًا. تركه غير مضبوط يُبقي فرض _allow_all القديم حين لا تكون قائمة سماح مضبوطة. | اضبطه 1 على أي نشر يستطيع أكثر من شخص مراسلته. |
KAZMA_HITL_CANONICAL_FLOOR | on | 0 يطفئ الأرضية: عندئذ يجوز للإعدادات/YAML تضييق require_approval_for دون قائمة الخطر القانونية. تبقى تلك الأدوات مبوّبة بطبقتها، لكن مقاطعة الرسم البياني وناقل السرب يقرآن القائمة نفسها. | أبدًا — لا نشر يحتاج قائمة أضيق. |
KAZMA_MCP_ALLOW_UNGATED | unset | موافقة HITL لأدوات MCP التي لم تُصنَّف آمنة. أسماء أدوات خادم MCP دخل غير موثوق. | أبدًا، على تثبيت باعتمادات حقيقية. تنقيح خادم محلي واحد موثوق على الأكثر. |
KAZMA_MCP_SAFE_ALLOWLIST | built-in | يوسّع مجموعة أدوات MCP التي تتخطى HITL بالاسم. الأسماء تأتي من الخادم، فهذه قائمة أسماء تثق بطرف ثالث أن يختارها بصدق. | فقط لأدوات قرأت تنفيذها. |
KAZMA_MCP_TRUSTED_IN_PROD | unset | رفض الإنتاج لخوادم MCP غير الموسومة موثوقة. | تملك كل خادم مسرود. |
KAZMA_CODE_EXEC_ALLOW_LOCAL | unset | حظر تشغيل python_exec كعملية ابنة على المضيف حين لا يكون Docker موجودًا. للاحتياط المحلي قائمة حظر استيراد؛ وهو ليس سجنًا. | جهاز مخبر لا شيء فيه يستحق السرقة. الإنتاج ومتعدد المستخدمين يحظرانه بكل حال — انظر KAZMA_CODE_EXEC_DOCKER=force. |
KAZMA_SHELL_ALLOW_MUTATE | unset | PATH/قائمة السماح المقيدة المطبقة على shell_exec بعد أن يوافق الإنسان. الموافقة رضا؛ وقائمة السماح هي الاحتواء. | تقبل بأن أمر شل موافقًا عليه يعمل بلا قيود. |
KAZMA_YOLO_TTL_SECONDS | 3600 | يطيل النافذة التي تُوافق فيها أدوات الخطر الأخرى تلقائيًا بعد منحة YOLO واحدة. TTL طويلة تحول موافقة واحدة إلى جلسة مفتوحة. off / none / infinite = بلا انتهاء؛ والأرقام ثوانٍ، 60 على الأقل (0 تعني 60). | قيم قصيرة فقط. هذا قرص نطاق انفجار. |
KAZMA_DISABLE_COST_BREAKER | unset | سقف الإنفاق الذي يوقف حلقة جامحة. | أبدًا دون مراقبة. |
KAZMA_CHAOS_ENABLED | unset | يفعّل مسارات حقن الأعطال. معطل افتراضيًا؛ ولا يُركّب الموجّه بدونه. | بيئات الاختبار فقط — يجب أن يبقى معطلًا في الإنتاج. |
KAZMA_WS_ORIGIN_CHECK | on | 0 يطفئ فحص Origin على مصافحات WebSocket. صفحة على أي موقع آخر، مفتوحة في متصفح المشغّل، تستطيع عندئذ فتح مقبس موثق إلى كاظمه من عنوان loopback أو شبكة محلية موثوقة (اختطاف WebSocket عابر للمواقع). | أبدًا على تثبيت يستطيع متصفح الوصول إليه. |
KAZMA_WS_EXTRA_ORIGINS | unset | يضيف أصولًا يقبلها فحص Origin للـWebSocket (scheme://host[:port] مطابقًا، مفصولة بفواصل). كل أصل مسرود يجوز له فتح مقبس موثق. | أنت تخدم الواجهة من ذلك الأصل بنفسك (نفق، دومين ثانٍ). |
KAZMA_OPAQUE_SESSIONS | on | 0 يجعل كوكي المتصفح تحمل KAZMA_SECRET المشترك نفسه بدل معرّف جلسة عشوائي على الخادم: لا يمكن إلغاء الجلسات واحدةً واحدة، والكوكي المسروقة هي سر التثبيت. وضع تعدد المستخدمين يتجاهله. | أبدًا على تثبيت قابل للوصول من الشبكة. |
KAZMA_RATE_LIMIT_ENABLED | on when auth is on | 0 يزيل حدود المعدل لكل عميل على تدفقات الدردشة، والصوت، وجلسات البحث، وإرسال السرب، وفلش النظام. (معطلة أصلًا بلا KAZMA_SECRET وفي وضع العرض التجريبي.) | تثبيت loopback لمشغّل واحد. |
KAZMA_TENANT_FILTER | on | 0 يوقف نطق مكتبات قاعدة المعرفة وقوائم مهام السرب بمستأجر المتصل في الإنتاج / وضع تعدد المستخدمين، فيقرأ كل مستأجر صفوف كل مستأجر. | تثبيت بمستأجر واحد، حيث لا يغيّر شيئًا. |
KAZMA_SESSION_OPEN_TAKEOVER | unset | فحص المالك على /session <id> في منصات الدردشة. مع 1 يستطيع أي مرسل مسموح التبديل إلى جلسة مستخدم آخر، ومواصلتها، والإجابة على بطاقات الموافقة المنتظرة عليها (نتيجة التدقيق H-3). | كل مرسل مسموح ينتمي إلى فريق واحد يتشارك كل شيء. |
KAZMA_SEMANTIC_CACHE | متقاعد | لا شيء: أُزيلت خبيئة ردود LLM الدلالية في 2026-09-30. كانت تُفهرس على المحادثة كاملة، ويغلب موجّه النظام المشترك على تمثيلها المتجهي، فتعيد جواب دور واستدعاءات أدواته لطلبات لاحقة مختلفة (تدقيق AUD-001). ضبطها لا يفعل إلا تسجيل تحذير عند الإقلاع. | — |
KAZMA_MCP_INHERIT_ENV | unset | قائمة سماح البيئة لخوادم MCP عبر stdio. مع 1 تتلقى كل عملية خادم MCP بيئة كاظمه كاملة — KAZMA_SECRET، وKAZMA_VAULT_KEY، ومفاتيح API للمزوّدين — بدل PATH، وTEMP، وHOME وما شابه. إعداد env / auth الخاص بالخادم يُمرر في الحالتين. | عمليًا أبدًا؛ مرر ما يحتاجه خادم واحد في إعداده بدلًا من ذلك. |
KAZMA_CHILD_ENV_ALLOW | unset | أسماء (مفصولة بفواصل) تُمرر عبر مرشح الأسرار على العمليات التي تبدؤها الأدوات — pytest، وتثبيتات pip/npm، وruff، وgit (security/child_env.py). تلك الأبناء يشغّلون اختبارات مستودع وخطافاته وسكربتات تثبيت الحزم؛ وافتراضيًا يحصلون على بيئة الخادم بلا أي متغير KAZMA_* أو متغير باسم اعتمادي (*_TOKEN، و*_API_KEY، و*_PASSWORD، …) أو URL يحمل كلمة مرور. الاسم المسرود يصل كل ابن كهذا. أسماء KAZMA_* لا تُمرر أبدًا. | اسم واحد يحتاجه الابن حقًا، مثل NPM_TOKEN لسجل npm خاص. |
KAZMA_ALLOW_PRIVATE_LLM | unset | فحص SSRF على اكتشاف النماذج للمزوّدين المخصصين المتوافقين مع OpenAI. مع 1، قد يستدعي سرد نماذج مزوّد عنوانًا خاصًا أو داخليًا، مرسلًا مفتاح API ذلك المزوّد إليه. اكتشاف Ollama وLM Studio منفصل وغير متأثر. | خادم النماذج على شبكة خاصة ومديرون فقط يستطيعون تحرير المزوّدين. |
KAZMA_CLONE_HOSTS | unset (github.com only) | قاعدة github.com-فقط للاستنساخ من الواجهة. المضيف المسرود يُقبل بأي مخطط، بما فيه http:// الصريح. | GitHub Enterprise أو خادم git خاص بك، عبر https. |
KAZMA_UPDATE_REMOTE_ALLOWLIST | github.com/mubder/kazma | أي remotes لorigin يثق بها kazma update، كسلاسل فرعية مفصولة بفواصل. يعيد المحدّث تعيين التثبيت قسرًا إلى ذلك الـremote ويشغّل مثبّته، فهذه القائمة تقرر لمن تشتغل شيفرة من. | نسخة تتحكم بها؛ اجعل كل إدخال محددًا بما يكفي لئلا يطابق مستودع شخص آخر. |
KAZMA_HITL_GRANT_TTL_SECONDS | 1800 | كم تدوم موافقة “لهذه الأداة” على خيط؛ حتى ذلك الحين تعمل تلك الأداة بلا سؤال. off / none / infinite تبقيها حتى تُمسح؛ والأرقام ثوانٍ، 60 على الأقل (0 تعني 60). | قيم قصيرة. مثل KAZMA_YOLO_TTL_SECONDS، قرص نطاق انفجار. |
KAZMA_UNRESTRICTED_TTL_SECONDS | 3600 | كم يبقى /unrestricted (وضع المهمة، وكل أداة خطر بلا موافقة) مفعلًا بعد آخر رسالة مستخدم. القيمتان 0 / off تبقيانه مفعلًا حتى /unrestricted off؛ والأرقام الأخرى 60 على الأقل. | قيم قصيرة؛ وأبدًا 0 على تثبيت يستطيع آخرون مراسلته. |
KAZMA_SHELL_STRICT | on in production | 0 في الإنتاج يجعل shell_exec موافقًا عليه يبحث عن برنامجه (المسموح) على PATH العملية كلها بدل أدلة النظام، فيعمل بدلًا منه تنفيذي بالاسم نفسه مزروع أبكر في أي دليل PATH. و1 يفعّل البحث الصارم خارج الإنتاج. | أبدًا 0 في الإنتاج. |
KAZMA_SHELL_ALLOW_ARCHIVE | unset | يعيد tar، وgzip، وgunzip، وzip، وunzip إلى قائمة سماح shell_exec في الوضع الصارم للإنتاج. الأرشيف يستطيع الكتابة خارج دليل العمل عبر مسارات أعضاء مطلقة أو ../. | تحتاج الأرشيفات في الإنتاج وتقبل الاستخراج في أي مكان تستطيع العملية الكتابة فيه. |
KAZMA_GATE_REGISTRY | on | يوقف 0 إسقاطات دورة حياة الموافقة. تبقى قرارات التنفيذ على الويب والمنصات والمهلة معلّقة لأن تسجيل القرار الدائم مطلوب. | للتشخيص فقط؛ يجب استعادة السجل قبل استئناف الأدوات. |
KAZMA_COMMITMENT_ENABLED | on | 0 يزيل طبقة الالتزام: لم تعد التذكيرات تُفحص ضد الذاكرة (تاريخ اخترعه النموذج يُجدول كما كُتب)، ولم تعد قائمة رفض التنفيذ توقف أوامر كارثية قبل بطاقة الموافقة، وتتوقف مفاتيح الإعداد المحمية وقائمة سماح الصادر عن الانطباق، ويفقد عمال السرب سقف نطاقهم. | أبدًا على تثبيت حقيقي؛ وُجد لاستبعاد الطبقة أثناء التشخيص. |
KAZMA_COMMITMENT_SWARM_SCOPE_ENFORCE | on | 0 يرفع السقف عن عمال السرب المرسلين: عندئذ يجوز لهم محاولة أعمال تنفيذ وصادر وإعداد وهوية، بما فيها تغييرات Soul (بطاقات الموافقة ما زالت تنطبق). | أبدًا مع عمال لم تكتبها. |
KAZMA_COMMITMENT_SOUL_REQUIRES_CONFIRM | off; on in production / multi-user | 0 في الإنتاج أو وضع تعدد المستخدمين يجعل تغييرات Soul للتحسين الذاتي تُطبق دون أن يؤكدها مشغّل. و1 يشترط التأكيد في أي مكان. | تثبيت مشغّل واحد يراجع تغييرات Soul بطريقة أخرى. |
KAZMA_COMMITMENT_MODE | balanced | yolo يتخطى فحصَي التذكير والإلغاء، فيُجدول تذكير بأي وقت كتبه النموذج — فئة الحادث التي وُجدت الطبقة لأجلها؛ و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_SECONDS | 120 | حد الوقت الفعلي لاستدعاء أداة واحد؛ و0 أو أقل يعطلها. ConfigStore agent.tool_timeout_seconds تتفوق. |
KAZMA_TOOL_RESULT_FILE_MAX_CHARS | 32000 | سقف لأدوات الملفات (file_read، وfile_search، وcodebase_search، وقراءات MCP لنظام الملفات، …) — أضيق من سقف البحث، فلا تستطيع قراءة ملف إعادة نفخ تلميح قُلم للتو. |
KAZMA_NO_TRUNCATE | unset | 1 يطفئ اقتطاع نتائج الأدوات كليًا؛ عندئذ تستطيع نتيجة كبيرة واحدة ملء نافذة السياق. |
KAZMA_COMPACT_PRESERVE_TOOL_RESULTS | 12 | نتائج أدوات تُحفظ عند تكثيف محادثة. إسقاطها كلها كان يجعل الوكيل يكرر نفس الاستدعاءات. |
KAZMA_SEMANTIC_COMPACT | on | عند قلم التاريخ (/compact، وميزانية الـ80%، وخطأ فيض السياق)، يُلخَّص الجزء المُسقط ويعاد إلى المحادثة. 0 يُسقطه بلا تلخيص. |
KAZMA_SUMMARIES_MAX_ENTRIES | 500 | ملخصات محادثات محفوظة في الذاكرة، واحد لكل خيط؛ والأقل استخدامًا مؤخرًا يذهب أولًا. |
KAZMA_PROMPT_CACHE | on | يحزم ملاحظات النظام في بادئة ثابتة واحدة زائد كتلة لكل دور، فتصيب ذاكرات تلميح المزوّد المؤقتة (يحصل Anthropic على نقاط توقف ذاكرة صريحة). 0 يعيد تخطيط رسالة-لكل-ملاحظة القديم. |
KAZMA_DETACHED_TTL_S | 300 | الدور الذي انقطع عميله يُلغى بعد هذا العدد من الثواني، فلا يدفع أحد لاستدعاءات LLM لن يقرأها أحد. يبدأ العد عند مغادرة العميل، لا عند بدء الدور. |
KAZMA_TURN_DURABLE_INTERVAL_S | 2.0 | أثناء تدفق إجابة، يُحفظ نصها في سجلّ الدور على الأقل بهذه الوتيرة (وهذا ما يستعيده تحديث أو إعادة اتصال) … |
KAZMA_TURN_DURABLE_CHARS | 600 | … أو بعد هذا العدد من المحارف الجديدة، أيهما جاء أولًا. |
KAZMA_TURN_LIVENESS_GRACE_S | 600 | كم يجوز لدور رد أن يبقى مفتوحًا بلا شيء يعمل عليه ولا موافقة معلقة قبل أن يُبلَّغ عنه (60 على الأقل). |
KAZMA_TURN_LIVENESS_HEAL | off | 1 يغلق مثل هذا الدور أيضًا. معطل افتراضيًا: الإغلاق هو ما أخطأ فيه الخطأ الأصلي، ففعّله فقط حين تُظهر التقارير ما يتراكم. |
KAZMA_INTENT_ENGINE | on | محرك النية يصنف كل دور ويجوز أن يوجهه إلى معالج أو يضيف ملاحظة خطة. 0 يرسل كل دور مباشرة إلى حلقة الوكيل (ConfigStore agent.intent.enabled). |
KAZMA_INTENT_EXECUTE | on | 0 يبقي التصنيف وملاحظات الخطة لكنه لا يشغّل معالجًا مباشرة أبدًا (agent.intent.execute_enabled). |
KAZMA_INTENT_TIER2 | on | 0 يتخطى صقل الـLLM للتصنيفات الحدية، فيبقى الاستدلال فقط (agent.intent.tier2_enabled). |
KAZMA_PERSONALITY | default | الشخصية حين لا يسميها مفتاح وقت تشغيل ولا agent.personality: default، أو friendly_expert، أو concise، أو gulf_engineer، أو creative_partner، أو sysadmin، أو teacher، أو code_reviewer. الاسم غير المعروف يلجأ إلى default مع تحذير. |
KAZMA_LONG_TASK_TTL_SECONDS | 1800 | كم تبقى ميزانية /long على خيط. off / none / infinite تبقيها حتى إطفائها؛ والأرقام ثوانٍ، 60 على الأقل (0 تعني 60). |
KAZMA_LONG_TASK_MAX_ITER | 100 | أكثر تكرارات يجوز لميزانية /long أن تطلبها (5–100). |
KAZMA_LONG_TASK_MAX_RECURSION | 500 | أكثر خطوات رسم بياني يجوز لدور /long أن يتخذها (50–500). |
KAZMA_MISSION_MAX_ROUNDS | 500 | جولات أدوات يجريها دور وضع-المهمة قبل أن يجب أن يتوقف (40–2000). |
KAZMA_MISSION_RECURSION | 5 × rounds | خطوات الرسم البياني لدور مهمة (500–5000)؛ تتبع KAZMA_MISSION_MAX_ROUNDS إلا إن ضُبطت. |
MCP (عميلًا وخادمًا)
Section titled “MCP (عميلًا وخادمًا)”| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_MCP_TIMEOUT_MS | 90000 | مهلة الطلب، بالملّي ثانية، لخوادم MCP التي لا يضبط إعدادها timeout (وهو بالثواني، ويتفوق). |
KAZMA_MCP_STDIO_LIMIT | 16777216 (16 MiB) | أكبر رسالة واحدة يجوز لخادم MCP عبر stdio إرسالها (256 KiB–64 MiB). كانت الأكبر تكسر الأنبوب لكل استدعاء لاحق. |
KAZMA_MCP_TOOLS | unset (all) | أسماء مفصولة بفواصل للأدوات التي ينشرها kazma mcp لعملاء MCP. أدوات الخطر ما زالت تحتاج مسار موافقة (KAZMA_BUS_BRIDGE). |
KAZMA_MCP_IDE_ENABLED | true | أي قيمة غير 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_RETENTION | 7 | نسخ شاملة تُحفظ (1 على الأقل). يتفوق على backups.retention. |
KAZMA_PG_BACKUP_ENABLED | on with Postgres | 0 يوقف pg_dump كل 6 ساعات لجداول كاظمه في Postgres، مهما قالت backups.pg.enabled. |
KAZMA_PG_BACKUP_RETENTION | 3 | نسخ Postgres محلية تُحفظ (restic يحفظ التاريخ). يتفوق على backups.pg.retention. |
KAZMA_RESTIC_PASSWORD | <.kazma>/restic.pass | عبارة مرور مستودع restic؛ تتفوق على ذلك الملف. العبارة المفقودة تُبلَّغ خطأً — كاظمه لا تخترع واحدة، فالمفتاح المحفوظ فقط على القرص الذي تحميه النسخة ليس مفتاحًا. احتفظ بنسخة خارج هذا الجهاز. |
KAZMA_CHECKPOINT_RETENTION_DAYS | the setting (30) | أيام تُحفظ بعدها كاملةً خطوات دردشة (نقاط تفتيش LangGraph الخاصة بها) بعد آخر رسالة في الدردشة؛ تتفوق على checkpoints.retention_days (الإعدادات ← النظام). كل دردشة تحتفظ بأحدث 200 نقطة تفتيش، والدردشة الخاملة تلك المدة بأحدث 10، على SQLite وPostgres (منذ 2026-09-27؛ وPostgres لم يكن يُقلَّم قبل ذلك أبدًا)؛ و0 تحتفظ بكل نقطة تفتيش. القيمة التي ليست عددًا صحيحًا من 0 إلى 3650 تُتجاهل، بتحذير واحد. |
Cron والجدولة
Section titled “Cron والجدولة”| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_TZ | UTC | المنطقة الزمنية لجداول cron حين تكون cron.timezone (الإعدادات) فارغة. |
KAZMA_CRON_STALE_HOURS | الإعداد (60 دقيقة) | نافذة اللحاق بالساعات، تُستخدم فقط حين لا يكون cron.catchup_minutes (الإعدادات) مضبوطًا: التذكير أو المهمة التي حلّ موعدها وكاظمه متوقفة ما زالت تنطلق إن كانت متأخرة هذا القدر كحد أقصى، وتقول كم تأخرت. وبعده تُعدّ المهمة فائتة: لا تعمل، ويقول ذلك إشعار واحد (منذ 2026-10-14؛ وقبل ذلك كانت المهمة المتأخرة حتى 24 ساعة تعمل كأنها في موعدها، وما هو أقدم يُتخطى دون كلمة). والنافذة المعطاة عند حجز المهمة تتقدم على كليهما. |
التسجيل والتنبيهات والتتبع
Section titled “التسجيل والتنبيهات والتتبع”| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_LOG_LEVEL | INFO | DEBUG، أو INFO، أو WARNING، أو ERROR، أو CRITICAL. تتفوق logging.level في الإعدادات. |
KAZMA_LOG_FORMAT | text | json يكتب كائن JSON واحدًا لكل سطر. تتفوق logging.format: json في الإعدادات. |
KAZMA_LOG_RETENTION_DAYS | 7 | ملفات سجلات يومية تُحفظ قبل حذف الأقدم. تتفوق logging.retention_days في الإعدادات. |
KAZMA_OPS_ALERTS | on | 0 يكتم تنبيهات التشغيل (النسخ الاحتياطي، وخارج الموقع، وMCP، والاستمرارية، والأدوار الفاشلة). إشعارات الإقلاع والإطفاء منفصلة وتبقى مفعلّة. |
KAZMA_OPS_ALERT_COOLDOWN_S | 900 | فترة هدوء قبل أن يجوز لنفس التنبيه أن يُطلق مجددًا. |
KAZMA_DAILY_DIGEST | on | ملخص يومي قصير لما عمل وفشل واستعاد، يُرسل عبر قناة التنبيه، فالصمت يعني صحيحًا لا ميتًا. 0 يوقفه. |
KAZMA_DIGEST_INTERVAL_HOURS | 24 | ساعات بين الملخصات. |
KAZMA_LOOP_STALL_WATCHDOG | on | يكتب مكدس كل خيط إلى .kazma/stall-*.txt حين تتوقف حلقة الأحداث عن الاستجابة 15 ثانية. 0 يطفئه (تفعله مجموعة الاختبارات). |
KAZMA_OTLP_ENDPOINT | unset | مجمّع OTLP/HTTP (مثل http://localhost:4318)؛ تُنشر امتدادات السرب كJSON إلى <endpoint>/v1/traces. |
CLI: التحديث والموزّع
Section titled “CLI: التحديث والموزّع”| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_UPDATE_VERIFY_SIGNATURES | unset | 1 يجعل kazma update يرفض التزامًا هدفًا لا يستطيع git verify-commit التحقق من توقيعه. |
KAZMA_HUB_URL | https://hub.kazma.ai | API موزّع المهارات ل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_CMD | serve.py | الأمر الذي يشغّله الحارس ويشرف عليه. |
KAZMA_GUARD_CWD | repo root | دليل العمل له. |
KAZMA_GUARD_HEALTH_URL | http://127.0.0.1:9090/health/ready | هدف الفحص. |
KAZMA_GUARD_START_TIMEOUT | 900 | ثوانٍ مسموحة حتى أول جاهزية. |
KAZMA_GUARD_INTERVAL | 30 | ثوانٍ بين الفحوص. |
KAZMA_GUARD_PROBE_TIMEOUT | — | مهلة كل فحص. |
KAZMA_GUARD_FAILURES | 3 | فحوص فاشلة متتالية قبل إعادة تشغيل. الفحوص التي لا تحصل على منفذ محلي (WinError 10048/10055) لا تُحتسب أبدًا — انظر النشر §6. |
KAZMA_GUARD_DEPENDENCY_OUTAGE_S | 600 | ثوانٍ يمكن أن تجيب فيها كاظمه بأنها “غير جاهزة” (503 يسمّي تبعية فاشلة، كقاعدة البيانات) قبل أن يعيد الحارس تشغيلها. إعادة التشغيل لا تعيد قاعدة بيانات، فيُنبَّه عن الانقطاع مرة واحدة ويُتجاوَز؛ وKAZMA_GUARD_FAILURES لا يحسب إلا الفحوص التي لا تتلقى ردًا. |
KAZMA_GUARD_PAGE_COOLDOWN_S | — | أدنى فجوة بين نداءات متطابقة. |
KAZMA_GUARD_GRACEFUL_STOP_S | 60 | ثوانٍ تنتظرها التوقفية المتعمدة (إعادة تحميل، أو وقفة صيانة، أو إطفاء الحارس) ليطفئ الخادم نفسه قبل أن يُقتل. |
KAZMA_GUARD_LOG / KAZMA_GUARD_STATE | <install>/.kazma/ | سجلّ الحارس، وملف الحالة: PID الابنة، ونبض الحارس، وإشعارات إعادة التحميل. |
KAZMA_GUARD_RELOAD_FILE / KAZMA_GUARD_PAUSE_FILE | <install>/.kazma/ | طلب --reload وعلم --pause. |
KAZMA_GUARD_STATE_FILE | set by the guard | يُعطى للخادم الذي يُفرخه الحارس: مسار ملف حالة الحارس. تقرأ إشرافة الخادم نبض الحارس هناك وتنادي حين يتوقف؛ وتقرأ جاهزية المستندات هناك سجل الحارس عن وسيط المستندات. |
KAZMA_GUARD_BROKER_REQUEST_FILE | set by the guard | يُعطى للخادم الذي يُفرخه الحارس: حيث يطلب الخادم وسيط عامل المستندات (.kazma/document_broker.request.json). يكتب الخادم هل يحتاج إلى وسيط (ملف الحاوية) عند الإقلاع، وعند تغيّر ملف العزل، وفي كل جولة صيانة؛ ويبدأ الحارس الوسيط أو يوقفه خلال ثانية. |
KAZMA_GUARD_DOCUMENT_BROKER | auto | هل يشغّل الحارس وسيط عامل المستندات بجانب كاظمه. 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_SCRIPT | kazma_core/documents/worker_broker.py | برنامج الوسيط الذي يشغّله الحارس (تشغّل اختبارات الحارس بديلًا عنه). |
KAZMA_PROCESS_PRIORITY | normal | على Windows: يرفع الخادم والحارس نفسيهما عند البدء، ولا يخفضانها أبداً، إلى أولوية برنامج تفاعلي (فئة أولوية المعالج، وأولوية الذاكرة، وأولوية الإدخال/الإخراج). فالمهمة المجدولة المسجّلة بلا أولوية تشغّلهما دون كل برنامج عادي. القيمة keep تُبقيهما على ما بدآ به؛ ويضبطها scripts/fast_test.py لعمليات الاختبار التي يخفض أولويتها عمداً. |
KAZMA_GUARD_TELEGRAM_TOKEN / KAZMA_GUARD_TELEGRAM_CHAT | vault / SWARM_* | نداء Telegram مباشر، مستقل عن التطبيق. |
التكلفة والفوضى والاختبارات
Section titled “التكلفة والفوضى والاختبارات”| المتغير | الافتراضي | الغرض |
|---|---|---|
KAZMA_MAX_COST | cost breaker default | سقف ميزانية بالدولار الأمريكي. |
KAZMA_HARD_MAX_COST | 15.00 | سقف بالدولار الأمريكي يوقف الوكيل فورًا، مهما كانت نافذة الصمت (KAZMA_MAX_COST لا تُقلع إلا بعد صمت المستخدم). يتفوق على safety.hard_max_cost. |
KAZMA_TEST_BACKGROUND_SCHEDULERS | unset | للاختبار فقط: 1 يبدأ مجدولات عامل الذاكرة الخلفية تحت pytest، حيث لا تعمل فيما عدا ذلك أبدًا. |
KAZMA_SILENCE_WINDOW | cost breaker default | ثوانٍ نافذة الصمت. |
KAZMA_CHAOS_ENABLED | unset | مسارات الفوضى (يجب أن تبقى معطلة في الإنتاج). |
KAZMA_SMOKE_BASE | http://127.0.0.1:9090 | عنوان URL الأساسي للاختبار الدخاني. |
KAZMA_TEST_FORCE_OUTPUT_ROUTING | unset | توجيه مخرجات البوابة للاختبار فقط. |
KAZMA_CODE_EXEC_DOCKER | policy | force في compose الـDocker المحصّن لسجن code_exec. |
KAZMA_MARKET_STUB | 0 | كعب بيانات سوق مهارات مثال. |
GitHub
Section titled “GitHub”| المتغير | الغرض |
|---|---|
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 في جدول الأمن. |
الأنماط (سريع)
Section titled “الأنماط (سريع)”مشغّل محلي واحد
Section titled “مشغّل محلي واحد”# Loopback; secret auto-generated if missingKAZMA_HOST=127.0.0.1# optional OPENAI_API_KEY=...kazma serve 9090Docker / وسيط عكسي
Section titled “Docker / وسيط عكسي”KAZMA_HOST=0.0.0.0KAZMA_SECRET=<strong-random>KAZMA_PRODUCTION=1KAZMA_VAULT_KEY=<strong-random>KAZMA_PUBLIC_URL=https://your.domainKAZMA_TRUSTED_PROXIES=127.0.0.1 # REQUIRED — the proxy's address, not the client'sKAZMA_TRUST_LAN=0KAZMA_CODE_EXEC_DOCKER=forceتحت Docker، KAZMA_TRUSTED_PROXIES هو عنوان الحاوية للوسيط على
شبكة الجسر (غالبًا 172.17.0.1 أو بوابة شبكة compose)، وليس
127.0.0.1.
تشغيل نشط واحتياطي
Section titled “تشغيل نشط واحتياطي”KAZMA_DATABASE_URL=postgresql://…KAZMA_RUNTIME_HA=1KAZMA_PRODUCTION=1KAZMA_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.
استخدم نقطة قاعدة مباشرة أو تجميع جلسات، ولا تستخدم تجميع معاملات. يتطلب
ذلك نسخة تشغيل واحدة ونظام تخزين بتسييج متحقق منه؛ ولا يتيح نسخًا نشطة
متعددة. انظر النشر.
ذات صلة
Section titled “ذات صلة”- الإعداد — مفاتيح YAML وConfigStore
- Postgres وSaaS
- قائمة فحص الإنتاج
- الأمن والسلامة
فرض الجلب المضاف في 2026-10-12
Section titled “فرض الجلب المضاف في 2026-10-12”| المتغير | الافتراضي | السلوك |
|---|---|---|
KAZMA_BROWSER_NETWORK_MODE | required | فرض مساحة أسماء شبكة Linux معزولة وضوابط cgroup؛ الإطلاق الصارم غير متاح على Windows. يستخدم compatibility صراحة حدود الوسيط ووكيل المنع الأضعف. |
KAZMA_JINA_TOKEN_BUDGET | 50000 | سقف رموز القارئ، عدد صحيح 500–50000؛ يظهر رفض المزوّد. |
KAZMA_ACQUISITION_MAX_COST_USD | غير مضبوط | سقف مالي اختياري غير سالب؛ يُرفض الإرسال الخارجي ما دام حده الأعلى للرسوم غير مدعوم. |

