Fundamentals
زمان اجرای عامل
OpenClaw با یک زماناجرای تعبیهشدهٔ عامل عرضه میشود: یک حلقهٔ عامل داخلی، اتصال ابزارها و سرهمبندی پرامپت که با واگذاری نوبتها به یک فرایند هارنس خارجی تفاوت دارد. هر عامل پیکربندیشده (برای اجرای چند عامل، مسیریابی چندعاملی را ببینید) فضای کاری، فایلهای راهانداز و مخزن نشست مختص خود را دارد. این صفحه قرارداد آن زماناجرا را پوشش میدهد: فضای کاری باید شامل چه چیزهایی باشد، کدام فایلها تزریق میشوند و نشستها چگونه بر مبنای آن راهاندازی میشوند.
فضای کاری (الزامی)
هر عامل از یک پوشهٔ فضای کاری واحد (agents.defaults.workspace، یا
agents.entries.*.workspace برای هر عامل) بهعنوان تنها پوشهٔ کاری خود (cwd)
برای ابزارها و زمینه استفاده میکند.
توصیه میشود: از openclaw setup برای ایجاد ~/.openclaw/openclaw.json در صورت نبود آن و مقداردهی اولیهٔ فایلهای فضای کاری استفاده کنید.
چیدمان کامل فضای کاری و راهنمای پشتیبانگیری: فضای کاری عامل
اگر agents.defaults.sandbox فعال باشد، نشستهای غیر اصلی میتوانند این مورد را با
فضاهای کاری مختص هر نشست در agents.defaults.sandbox.workspaceRoot بازنویسی کنند (پیکربندی Gateway را ببینید).
فایلهای راهانداز (تزریقشده)
درون فضای کاری، OpenClaw انتظار دارد این فایلهای قابلویرایش توسط کاربر وجود داشته باشند:
| فایل | هدف |
|---|---|
AGENTS.md |
دستورالعملهای عملیاتی + «حافظه» |
SOUL.md |
شخصیت، مرزها، لحن |
TOOLS.md |
یادداشتها و قراردادهای ابزار که کاربر نگهداری میکند |
IDENTITY.md |
نام/حالوهوا/ایموجی عامل |
USER.md |
نمایهٔ کاربر + شیوهٔ خطاب ترجیحی |
HEARTBEAT.md |
دستورالعملهای مختص Heartbeat |
BOOTSTRAP.md |
آیین یکبارهٔ نخستین اجرا (پس از تکمیل حذف میشود) |
MEMORY.md |
فایل ریشهٔ حافظهٔ بلندمدت، در صورت وجود |
در نخستین نوبت یک نشست جدید، OpenClaw محتوای این فایلها را در «زمینهٔ پروژه» در پرامپت سیستمی تزریق میکند. MEMORY.md فقط هنگامی تزریق میشود که در ریشهٔ فضای کاری وجود داشته باشد.
فایلهای خالی نادیده گرفته میشوند. فایلهای بزرگ کوتاه و بریده میشوند و نشانهای به آنها افزوده میشود تا پرامپتها کمحجم بمانند (برای محتوای کامل، فایل را بخوانید). نبودن یک فایل (بهجز MEMORY.md) بهجای آن یک خط نشانهٔ «فایل موجود نیست» تزریق میکند؛ openclaw setup یک الگوی پیشفرض امن برای آن ایجاد میکند.
BOOTSTRAP.md فقط برای یک فضای کاری کاملاً جدید ایجاد میشود (هیچ فایل راهانداز دیگری وجود نداشته باشد). تا زمانی که تکمیل نشده است، OpenClaw آن را در «زمینهٔ پروژه» نگه میدارد و بهجای کپیکردنش در پیام کاربر، راهنمای راهاندازی آیین اولیه را به پرامپت سیستمی میافزاید. اگر پس از تکمیل آیین آن را حذف کنید، در راهاندازیهای مجدد بعدی دوباره ایجاد نمیشود.
پس از مشاهدهشدن یک فضای کاری، OpenClaw وضعیت راهاندازی و
گواهی آن را در پایگاهدادهٔ SQLite مشترک در
~/.openclaw/state/openclaw.sqlite ذخیره میکند. اگر فضای کاریای که اخیراً گواهی شده
ناپدید یا پاک شود، راهاندازی از بذرگذاری مجدد بیسروصدای BOOTSTRAP.md خودداری میکند؛
فضای کاری را بازیابی کنید یا از بازنشانی کامل فرایند آغاز به کار استفاده کنید تا فضای کاری و
وضعیت پایگاهدادهٔ آن با هم پاک شوند.
نسخههای قدیمیتر از JSON فضای کاری و فایلهای جانبی .attested استفاده میکردند. زماناجرا
آن فایلها را نمیخواند. openclaw doctor --fix را اجرا کنید تا اعتبارسنجی شوند، وضعیتشان
به SQLite وارد شود و هر منبع پس از تأیید ردیفهای واردشده حذف شود.
برای غیرفعالکردن کامل ایجاد فایلهای راهانداز (برای فضاهای کاری ازپیشبذرگذاریشده)، این مقدار را تنظیم کنید:
{ agents: { defaults: { skipBootstrap: true } } }ابزارهای داخلی
ابزارهای هسته (خواندن/اجرا/ویرایش/نوشتن و ابزارهای سیستمی مرتبط) همواره، با رعایت خطمشی ابزار، در دسترساند.
apply_patch بهطور پیشفرض برای مدلهای OpenAI فعال است و با
tools.exec.applyPatch (enabled، workspaceOnly، allowModels) کنترل میشود. TOOLS.md ابزارهای موجود را کنترل نمیکند؛ بلکه
راهنمایی میکند که شما میخواهید آنها چگونه استفاده شوند.
Skills
OpenClaw مهارتها را از این مکانها بارگذاری میکند (ابتدا بالاترین اولویت):
- فضای کاری:
<workspace>/skills - مهارتهای عامل پروژه:
<workspace>/.agents/skills - مهارتهای شخصی عامل:
~/.agents/skills - مدیریتشده/محلی:
~/.openclaw/skills - همراه (عرضهشده با نصب)
- پوشههای اضافی مهارت:
skills.load.extraDirs
ریشههای مهارت میتوانند پوشههای گروهبندیشدهای مانند
<workspace>/skills/personal/foo/SKILL.md داشته باشند؛ مهارت همچنان با نام تختِ فرانتمتر خود نمایش داده میشود،
برای مثال foo.
Skills میتوانند با پیکربندی/متغیر محیطی محدود شوند (skills را در پیکربندی Gateway ببینید).
مرزهای زماناجرا
زماناجرای تعبیهشدهٔ عامل متعلق به OpenClaw است: کشف مدل، اتصال ابزارها، سرهمبندی پرامپت، مدیریت نشست و تحویل کانال یک سطح زماناجرای یکپارچه را به اشتراک میگذارند.
نشستها
ردیفهای نشست در پایگاهدادهٔ SQLite مختص هر عامل ذخیره میشوند:
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite
فایلهای رونوشت JSONL همچنان میتوانند در
~/.openclaw/agents/<agentId>/sessions/ بهعنوان ورودیهای مهاجرت قدیمی، بایگانیهای حذف یا
بازنشانیشده، ورودیها، خروجیها و مصنوعات پشتیبانی قرار گیرند. تاریخچهٔ فعال عامل
همراه ردیفهای نشست در SQLite ذخیره میشود. شناسهٔ نشست پایدار است و
OpenClaw آن را انتخاب میکند. OpenClaw پوشههای نشست ابزارهای دیگر را نمیخواند.
هدایت هنگام جریاندهی
پرامپتهای ورودی که در میانهٔ اجرا میرسند، بهطور پیشفرض به اجرای جاری هدایت میشوند. هدایت پس از پایان اجرای فراخوانیهای ابزار در نوبت جاری دستیار و پیش از فراخوانی بعدی LLM تحویل داده میشود و دیگر فراخوانیهای ابزار باقیمانده از پیام جاری دستیار را نادیده نمیگیرد.
/queue steer رفتار پیشفرض اجرای فعال است. /queue followup و
/queue collect باعث میشوند پیامها بهجای هدایت، برای نوبتی بعدی منتظر بمانند.
/queue interrupt در عوض اجرای فعال را لغو میکند. برای رفتار صف و مرزها، صف
و صف هدایت را ببینید.
جریاندهی بلوکی، بلوکهای تکمیلشدهٔ دستیار را بهمحض پایان ارسال میکند؛ این قابلیت
بهطور پیشفرض خاموش است (agents.defaults.blockStreamingDefault: "off").
مرز را از طریق agents.defaults.blockStreamingBreak تنظیم کنید (text_end در برابر message_end؛ مقدار پیشفرض text_end است).
قطعهبندی نرم بلوک را با agents.defaults.blockStreamingChunk کنترل کنید (مقدار پیشفرض
800-1200 نویسه است؛ ابتدا شکست بند، سپس خط جدید و در آخر جمله را ترجیح میدهد).
قطعههای جریانیافته را با agents.defaults.blockStreamingCoalesce ادغام کنید تا
انبوه پیامهای تکخطی کاهش یابد (ادغام مبتنی بر بیکاری پیش از ارسال). کانالهای غیر Telegram برای
فعالکردن پاسخهای بلوکی به *.streaming.block.enabled: true صریح نیاز دارند (QQ Bot
در عوض پاسخهای بلوکی را جریان میدهد، مگر اینکه channels.qqbot.streaming.mode برابر "off" باشد).
خلاصههای تفصیلی ابزار هنگام آغاز ابزار منتشر میشوند (بدون تأخیرزدایی)؛ Control UI
در صورت دسترسی، خروجی ابزار را از طریق رویدادهای عامل جریان میدهد.
جزئیات بیشتر: جریاندهی + قطعهبندی.
ارجاعهای مدل
ارجاعهای مدل در پیکربندی (برای مثال agents.defaults.model و agents.defaults.models) با تقسیم در اولین / تجزیه میشوند.
- هنگام پیکربندی مدلها از
provider/modelاستفاده کنید. - اگر خود شناسهٔ مدل شامل
/است (به سبک OpenRouter)، پیشوند ارائهدهنده را وارد کنید (مثال:openrouter/moonshotai/kimi-k2). - اگر ارائهدهنده را حذف کنید، OpenClaw ابتدا یک نام مستعار و سپس یک تطبیق یکتای ارائهدهندهٔ پیکربندیشده برای همان شناسهٔ دقیق مدل را امتحان میکند و تنها پس از آن به ارائهدهندهٔ پیشفرض پیکربندیشده برمیگردد. اگر آن ارائهدهنده دیگر مدل پیشفرض پیکربندیشده را عرضه نکند، OpenClaw بهجای نمایش یک پیشفرض منسوخ مربوط به ارائهدهندهٔ حذفشده، به نخستین ارائهدهنده/مدل پیکربندیشده برمیگردد.
پیکربندی (حداقلی)
حداقل این موارد را تنظیم کنید:
agents.defaults.workspacechannels.whatsapp.allowFrom(اکیداً توصیه میشود)