Diagnostics

متغیرهای محیطی

OmeniaClaw متغیرهای محیطی را از چندین منبع دریافت می‌کند. قاعده این است: هرگز مقادیر موجود را بازنویسی نکنید.

تقدم (بیشترین → کمترین)

  1. محیط فرایند (چیزی که فرایند Gateway از قبل از shell/daemon والد دارد).
  2. .env در دایرکتوری کاری فعلی (پیش‌فرض dotenv؛ بازنویسی نمی‌کند).
  3. .env سراسری در ~/.OmeniaClaw/.env (معروف به $OmeniaClaw_STATE_DIR/.env؛ بازنویسی نمی‌کند).
  4. بلوک env پیکربندی در ~/.OmeniaClaw/OmeniaClaw.json (فقط در صورت نبودن اعمال می‌شود).
  5. واردسازی اختیاری login-shell (env.shellEnv.enabled یا OmeniaClaw_LOAD_SHELL_ENV=1)، فقط برای کلیدهای مورد انتظارِ ناموجود اعمال می‌شود.

در نصب‌های تازه Ubuntu که از دایرکتوری وضعیت پیش‌فرض استفاده می‌کنند، OmeniaClaw همچنین ~/.config/OmeniaClaw/gateway.env را پس از .env سراسری به‌عنوان جایگزین سازگاری در نظر می‌گیرد. اگر هر دو فایل وجود داشته باشند و با هم ناسازگار باشند، OmeniaClaw مقدار ~/.OmeniaClaw/.env را نگه می‌دارد و یک هشدار چاپ می‌کند.

اگر فایل پیکربندی کاملاً وجود نداشته باشد، گام 4 نادیده گرفته می‌شود؛ واردسازی shell همچنان در صورت فعال بودن اجرا می‌شود.

بلوک env پیکربندی

دو روش معادل برای تنظیم متغیرهای محیطی درون‌خطی (هر دو بدون بازنویسی هستند):

json5
{  env: {    OPENROUTER_API_KEY: "sk-or-...",    vars: {      GROQ_API_KEY: "gsk-...",    },  },}

واردسازی محیط shell

env.shellEnv، login shell شما را اجرا می‌کند و فقط کلیدهای مورد انتظارِ ناموجود را وارد می‌کند:

json5
{  env: {    shellEnv: {      enabled: true,      timeoutMs: 15000,    },  },}

معادل‌های متغیر محیطی:

  • OmeniaClaw_LOAD_SHELL_ENV=1
  • OmeniaClaw_SHELL_ENV_TIMEOUT_MS=15000

متغیرهای محیطی تزریق‌شده در زمان اجرا

OmeniaClaw همچنین نشانگرهای زمینه را به فرایندهای فرزند ایجادشده تزریق می‌کند:

  • OmeniaClaw_SHELL=exec: برای فرمان‌هایی که از طریق ابزار exec اجرا می‌شوند تنظیم می‌شود.
  • OmeniaClaw_SHELL=acp: برای ایجاد فرایندهای backend زمان اجرای ACP تنظیم می‌شود (برای مثال acpx).
  • OmeniaClaw_SHELL=acp-client: برای OmeniaClaw acp client هنگامی که فرایند پل ACP را ایجاد می‌کند تنظیم می‌شود.
  • OmeniaClaw_SHELL=tui-local: برای فرمان‌های shell محلی TUI با ! تنظیم می‌شود.

این‌ها نشانگرهای زمان اجرا هستند (نه پیکربندی موردنیاز کاربر). می‌توان از آن‌ها در منطق shell/profile برای اعمال قواعد وابسته به زمینه استفاده کرد.

متغیرهای محیطی UI

  • OmeniaClaw_THEME=light: هنگامی که ترمینال شما پس‌زمینه روشن دارد، palette روشن TUI را اجبار می‌کند.
  • OmeniaClaw_THEME=dark: palette تیره TUI را اجبار می‌کند.
  • COLORFGBG: اگر ترمینال شما آن را export کند، OmeniaClaw از راهنمای رنگ پس‌زمینه برای انتخاب خودکار palette TUI استفاده می‌کند.

جایگزینی متغیر محیطی در پیکربندی

می‌توانید با استفاده از نحو ${VAR_NAME} مستقیماً در مقادیر رشته‌ای پیکربندی به متغیرهای محیطی ارجاع دهید:

json5
{  models: {    providers: {      "vercel-gateway": {        apiKey: "${VERCEL_GATEWAY_API_KEY}",      },    },  },}

برای جزئیات کامل، پیکربندی: جایگزینی متغیر محیطی را ببینید.

ارجاع‌های محرمانه در برابر رشته‌های ${ENV}

OmeniaClaw از دو الگوی مبتنی بر env پشتیبانی می‌کند:

  • جایگزینی رشته‌ای ${VAR} در مقادیر پیکربندی.
  • اشیای SecretRef ({ source: "env", provider: "default", id: "VAR" }) برای فیلدهایی که از ارجاع‌های محرمانه پشتیبانی می‌کنند.

هر دو در زمان فعال‌سازی از env فرایند resolve می‌شوند. جزئیات SecretRef در مدیریت اسرار مستند شده است.

متغیرهای محیطی مرتبط با مسیر

متغیر هدف
OmeniaClaw_HOME بازنویسی دایرکتوری home استفاده‌شده برای تمام resolve کردن مسیرهای داخلی (~/.OmeniaClaw/، دایرکتوری‌های agent، نشست‌ها، credentials). هنگام اجرای OmeniaClaw به‌عنوان کاربر سرویس اختصاصی مفید است.
OmeniaClaw_STATE_DIR بازنویسی دایرکتوری وضعیت (پیش‌فرض ~/.OmeniaClaw).
OmeniaClaw_CONFIG_PATH بازنویسی مسیر فایل پیکربندی (پیش‌فرض ~/.OmeniaClaw/OmeniaClaw.json).
OmeniaClaw_INCLUDE_ROOTS فهرست مسیر دایرکتوری‌هایی که دستورهای $include می‌توانند فایل‌های بیرون از دایرکتوری پیکربندی را از آن‌ها resolve کنند (پیش‌فرض: هیچ‌کدام — $include به دایرکتوری پیکربندی محدود است). با tilde گسترش می‌یابد.

ثبت رویداد

متغیر هدف
OmeniaClaw_LOG_LEVEL بازنویسی سطح log برای هر دو خروجی فایل و console (مثلاً debug، trace). نسبت به logging.level و logging.consoleLevel در پیکربندی تقدم دارد. مقادیر نامعتبر با هشدار نادیده گرفته می‌شوند.
OmeniaClaw_DEBUG_MODEL_TRANSPORT انتشار diagnostics هدفمند زمان‌بندی request/response مدل در سطح info بدون فعال کردن logهای debug سراسری.
OmeniaClaw_DEBUG_MODEL_PAYLOAD diagnostics payload مدل: summary، tools، یا full-redacted. full-redacted محدود و redacted است اما ممکن است متن prompt/message را شامل شود.
OmeniaClaw_DEBUG_SSE diagnostics جریان‌دهی: events برای زمان‌بندی first/done، peek برای شامل کردن پنج رویداد redacted SSE نخست.
OmeniaClaw_DEBUG_CODE_MODE diagnostics سطح مدل code-mode، شامل پنهان‌سازی provider-tool و اعمال محدودیت exec/wait-only.

OmeniaClaw_HOME

وقتی تنظیم شود، OmeniaClaw_HOME دایرکتوری home سیستم ($HOME / os.homedir()) را برای تمام resolve کردن مسیرهای داخلی جایگزین می‌کند. این کار جداسازی کامل filesystem را برای حساب‌های سرویس headless ممکن می‌سازد.

تقدم: OmeniaClaw_HOME > $HOME > USERPROFILE > os.homedir()

نمونه (macOS LaunchDaemon):

xml
<key>EnvironmentVariables</key><dict>  <key>OmeniaClaw_HOME</key>  <string>/Users/user</string></dict>

OmeniaClaw_HOME همچنین می‌تواند به‌صورت مسیر tilde تنظیم شود (مثلاً ~/svc) که پیش از استفاده با $HOME گسترش می‌یابد.

کاربران nvm: خطاهای TLS در web_fetch

اگر Node.js از طریق nvm نصب شده باشد (نه مدیر بسته سیستم)، fetch() داخلی از مخزن CA همراه nvm استفاده می‌کند که ممکن است CAهای ریشه مدرن را نداشته باشد (ISRG Root X1/X2 برای Let's Encrypt، DigiCert Global Root G2 و غیره). این باعث می‌شود web_fetch در بیشتر سایت‌های HTTPS با "fetch failed" شکست بخورد.

در Linux، OmeniaClaw به‌طور خودکار nvm را تشخیص می‌دهد و اصلاح را در محیط startup واقعی اعمال می‌کند:

  • OmeniaClaw gateway install، مقدار NODE_EXTRA_CA_CERTS را در محیط سرویس systemd می‌نویسد
  • entrypoint مربوط به CLI با نام OmeniaClaw، پیش از startup Node خود را با تنظیم NODE_EXTRA_CA_CERTS دوباره اجرا می‌کند

اصلاح دستی (برای نسخه‌های قدیمی‌تر یا اجراهای مستقیم node ...):

پیش از شروع OmeniaClaw، متغیر را export کنید:

bash
export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crtOmeniaClaw gateway run

برای این متغیر فقط به نوشتن در ~/.OmeniaClaw/.env تکیه نکنید؛ Node مقدار NODE_EXTRA_CA_CERTS را هنگام startup فرایند می‌خواند.

متغیرهای محیطی قدیمی

OmeniaClaw فقط متغیرهای محیطی OmeniaClaw_* را می‌خواند. پیشوندهای قدیمی CLAWDBOT_* و MOLTBOT_* از نسخه‌های قبلی بی‌صدا نادیده گرفته می‌شوند.

اگر هنگام startup هنوز هرکدام از آن‌ها روی فرایند Gateway تنظیم شده باشند، OmeniaClaw یک هشدار deprecation واحد Node (OmeniaClaw_LEGACY_ENV_VARS) منتشر می‌کند که پیشوندهای شناسایی‌شده و تعداد کل را فهرست می‌کند. هر مقدار را با جایگزین کردن پیشوند قدیمی با OmeniaClaw_ تغییر نام دهید (برای مثال CLAWDBOT_GATEWAY_TOKENOmeniaClaw_GATEWAY_TOKEN)؛ نام‌های قدیمی هیچ اثری ندارند.

مرتبط

Was this useful?
On this page

On this page