Fundamentals

فضای کاری عامل

فضای کاری خانه‌ی عامل است. این تنها دایرکتوری کاری است که برای ابزارهای فایل و برای زمینه‌ی فضای کاری استفاده می‌شود. آن را خصوصی نگه دارید و مانند حافظه با آن رفتار کنید.

این از ~/.openclaw/ جداست؛ جایی که پیکربندی، اعتبارنامه‌ها، و نشست‌ها را ذخیره می‌کند.

مکان پیش‌فرض

  • پیش‌فرض: ~/.openclaw/workspace
  • اگر OPENCLAW_PROFILE تنظیم شده باشد و برابر "default" نباشد، پیش‌فرض به ~/.openclaw/workspace-<profile> تبدیل می‌شود.
  • بازنویسی در ~/.openclaw/openclaw.json:
{
  agents: {
    defaults: {
      workspace: "~/.openclaw/workspace",
    },
  },
}

openclaw onboard، openclaw configure، یا openclaw setup فضای کاری را ایجاد می‌کند و اگر فایل‌های bootstrap وجود نداشته باشند، آن‌ها را seed می‌کند.

اگر خودتان از قبل فایل‌های فضای کاری را مدیریت می‌کنید، می‌توانید ایجاد فایل bootstrap را غیرفعال کنید:

{ agents: { defaults: { skipBootstrap: true } } }

پوشه‌های فضای کاری اضافی

نصب‌های قدیمی‌تر ممکن است ~/openclaw را ایجاد کرده باشند. نگه داشتن چند دایرکتوری فضای کاری می‌تواند باعث auth گیج‌کننده یا drift در وضعیت شود، چون در هر لحظه فقط یک فضای کاری فعال است.

نقشه‌ی فایل‌های فضای کاری

این‌ها فایل‌های استانداردی هستند که OpenClaw انتظار دارد داخل فضای کاری وجود داشته باشند:

AGENTS.md - دستورالعمل‌های عملیاتی

دستورالعمل‌های عملیاتی برای عامل و اینکه چگونه باید از حافظه استفاده کند. در آغاز هر نشست بارگذاری می‌شود. جای خوبی برای قوانین، اولویت‌ها، و جزئیات «چگونه رفتار کردن» است.

SOUL.md - پرسونا و لحن

پرسونا، لحن، و مرزها. در هر نشست بارگذاری می‌شود. راهنما: راهنمای شخصیت SOUL.md.

USER.md - کاربر کیست

کاربر کیست و چگونه باید او را خطاب کرد. در هر نشست بارگذاری می‌شود.

IDENTITY.md - نام، حس‌وحال، ایموجی

نام، حس‌وحال، و ایموجی عامل. در طول مراسم bootstrap ایجاد/به‌روزرسانی می‌شود.

TOOLS.md - قراردادهای ابزار محلی

یادداشت‌هایی درباره‌ی ابزارها و قراردادهای محلی شما. دسترس‌پذیری ابزارها را کنترل نمی‌کند؛ فقط راهنماست.

HEARTBEAT.md - چک‌لیست Heartbeat

چک‌لیست کوچک اختیاری برای اجرای Heartbeat. آن را کوتاه نگه دارید تا از مصرف توکن جلوگیری شود.

BOOT.md - چک‌لیست راه‌اندازی

چک‌لیست راه‌اندازی اختیاری که هنگام restart شدن Gateway به‌طور خودکار اجرا می‌شود (وقتی hookهای داخلی فعال باشند). آن را کوتاه نگه دارید؛ برای ارسال‌های خروجی از ابزار message استفاده کنید.

BOOTSTRAP.md - مراسم اجرای نخست

مراسم یک‌باره‌ی اجرای نخست. فقط برای یک فضای کاری کاملاً جدید ایجاد می‌شود. پس از کامل شدن مراسم، آن را حذف کنید.

memory/YYYY-MM-DD.md - گزارش حافظه‌ی روزانه

گزارش حافظه‌ی روزانه (یک فایل برای هر روز). توصیه می‌شود هنگام شروع نشست، امروز + دیروز را بخوانید.

MEMORY.md - حافظه‌ی بلندمدت گزینش‌شده (اختیاری)

حافظه‌ی بلندمدت گزینش‌شده. فقط در نشست اصلی و خصوصی بارگذاری کنید (نه زمینه‌های مشترک/گروهی). برای workflow و flush خودکار حافظه، حافظه را ببینید.

skills/ - Skills فضای کاری (اختیاری)

Skills اختصاصی فضای کاری. مکان Skill با بالاترین اولویت برای آن فضای کاری. وقتی نام‌ها تداخل داشته باشند، Skills عامل پروژه، Skills عامل شخصی، Skills مدیریت‌شده، Skills bundled، و skills.load.extraDirs را override می‌کند.

canvas/ - فایل‌های Canvas UI (اختیاری)

فایل‌های Canvas UI برای نمایش‌های node (برای مثال canvas/index.html).

چه چیزی در فضای کاری نیست

این‌ها زیر ~/.openclaw/ قرار دارند و نباید به repo فضای کاری commit شوند:

  • ~/.openclaw/openclaw.json (پیکربندی)
  • ~/.openclaw/agents/<agentId>/agent/auth-profiles.json (پروفایل‌های auth مدل: OAuth + کلیدهای API)
  • ~/.openclaw/agents/<agentId>/agent/codex-home/ (حساب runtime مخصوص هر عامل برای Codex، پیکربندی، skills، plugins، و وضعیت thread بومی)
  • ~/.openclaw/credentials/ (وضعیت channel/provider به‌همراه داده‌های import قدیمی OAuth)
  • ~/.openclaw/agents/<agentId>/sessions/ (transcriptهای نشست + metadata)
  • ~/.openclaw/skills/ (skills مدیریت‌شده)

اگر لازم است نشست‌ها یا پیکربندی را migrate کنید، آن‌ها را جداگانه کپی کنید و بیرون از version control نگه دارید.

پشتیبان‌گیری Git (توصیه‌شده، خصوصی)

با فضای کاری مانند حافظه‌ی خصوصی رفتار کنید. آن را در یک repo git خصوصی قرار دهید تا پشتیبان‌گیری شود و قابل بازیابی باشد.

این مراحل را روی ماشینی اجرا کنید که Gateway روی آن اجرا می‌شود (یعنی همان جایی که فضای کاری قرار دارد).

  • Initialize کردن repo

    اگر git نصب باشد، فضاهای کاری کاملاً جدید به‌طور خودکار initialize می‌شوند. اگر این فضای کاری از قبل repo نیست، اجرا کنید:

    cd ~/.openclaw/workspace
    git init
    git add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/
    git commit -m "Add agent workspace"
    
  • افزودن remote خصوصی

    GitHub web UI

    1. یک repository خصوصی جدید در GitHub ایجاد کنید.
    2. با README initialize نکنید (از merge conflict جلوگیری می‌کند).
    3. URL مربوط به HTTPS remote را کپی کنید.
    4. remote را اضافه کنید و push کنید:
    git branch -M main
    git remote add origin <https-url>
    git push -u origin main
    

    GitHub CLI (gh)

    gh auth login
    gh repo create openclaw-workspace --private --source . --remote origin --push
    

    GitLab web UI

    1. یک repository خصوصی جدید در GitLab ایجاد کنید.
    2. با README initialize نکنید (از merge conflict جلوگیری می‌کند).
    3. URL مربوط به HTTPS remote را کپی کنید.
    4. remote را اضافه کنید و push کنید:
    git branch -M main
    git remote add origin <https-url>
    git push -u origin main
    
  • به‌روزرسانی‌های مداوم

    git status
    git add .
    git commit -m "Update memory"
    git push
    
  • اسرار را commit نکنید

    شروع‌کننده‌ی پیشنهادی .gitignore:

    .DS_Store
    .env
    **/*.key
    **/*.pem
    **/secrets*
    

    انتقال فضای کاری به یک ماشین جدید

  • Clone کردن repo

    repo را در مسیر دلخواه clone کنید (پیش‌فرض ~/.openclaw/workspace).

  • به‌روزرسانی پیکربندی

    agents.defaults.workspace را در ~/.openclaw/openclaw.json روی آن مسیر تنظیم کنید.

  • Seed کردن فایل‌های مفقود

    openclaw setup --workspace <path> را اجرا کنید تا هر فایل مفقودی seed شود.

  • کپی کردن نشست‌ها (اختیاری)

    اگر به نشست‌ها نیاز دارید، ~/.openclaw/agents/<agentId>/sessions/ را جداگانه از ماشین قدیمی کپی کنید.

  • نکات پیشرفته

    • routing چندعاملی می‌تواند برای هر عامل از فضای کاری متفاوتی استفاده کند. برای پیکربندی routing، Routing کانال را ببینید.
    • اگر agents.defaults.sandbox فعال باشد، نشست‌های غیر اصلی می‌توانند از فضاهای کاری sandbox مخصوص هر نشست زیر agents.defaults.sandbox.workspaceRoot استفاده کنند.

    مرتبط