Fundamentals
زمان اجرای عامل
OpenClaw یک زماناجرای عاملِ تعبیهشده واحد اجرا میکند - یک فرایند عامل برای هر Gateway، با فضای کاری، فایلهای راهاندازی اولیه، و ذخیرهگاه نشست خودش. این صفحه قرارداد آن زماناجرا را پوشش میدهد: فضای کاری باید چه چیزهایی داشته باشد، کدام فایلها تزریق میشوند، و نشستها چگونه بر اساس آن راهاندازی اولیه میشوند.
فضای کاری (الزامی)
OpenClaw از یک پوشه فضای کاری عامل واحد (agents.defaults.workspace) بهعنوان تنها پوشه کاری عامل (cwd) برای ابزارها و زمینه استفاده میکند.
توصیهشده: از openclaw setup استفاده کنید تا اگر ~/.openclaw/openclaw.json وجود ندارد ساخته شود و فایلهای فضای کاری مقداردهی اولیه شوند.
طرح کامل فضای کاری + راهنمای پشتیبانگیری: فضای کاری عامل
اگر agents.defaults.sandbox فعال باشد، نشستهای غیر اصلی میتوانند این را با
فضاهای کاری مخصوص هر نشست زیر agents.defaults.sandbox.workspaceRoot بازنویسی کنند (ببینید
پیکربندی Gateway).
فایلهای راهاندازی اولیه (تزریقشده)
درون agents.defaults.workspace، OpenClaw انتظار دارد این فایلهای قابل ویرایش توسط کاربر وجود داشته باشند:
AGENTS.md- دستورالعملهای عملیاتی + «حافظه»SOUL.md- شخصیت، مرزها، لحنTOOLS.md- یادداشتهای ابزار که کاربر نگهداری میکند (مثلاًimsg،sag، قراردادها)BOOTSTRAP.md- آیین یکباره اجرای نخست (پس از تکمیل حذف میشود)IDENTITY.md- نام/حالوهوا/ایموجی عاملUSER.md- نمایه کاربر + شیوه خطاب ترجیحی
در اولین نوبت یک نشست جدید، OpenClaw محتوای این فایلها را در زمینه پروژه پرامپت سیستم تزریق میکند.
فایلهای خالی نادیده گرفته میشوند. فایلهای بزرگ کوتاه و با یک نشانگر بریده میشوند تا پرامپتها سبک بمانند (برای محتوای کامل، فایل را بخوانید).
اگر فایلی وجود نداشته باشد، OpenClaw یک خط نشانگر «فایل مفقود» تزریق میکند (و openclaw setup یک الگوی پیشفرض امن میسازد).
BOOTSTRAP.md فقط برای یک فضای کاری کاملاً جدید ساخته میشود (وقتی هیچ فایل راهاندازی اولیه دیگری وجود ندارد). تا زمانی که در انتظار اجراست، OpenClaw آن را در زمینه پروژه نگه میدارد و بهجای کپی کردن آن در پیام کاربر، راهنمای راهاندازی اولیه پرامپت سیستم را برای آیین آغازین اضافه میکند. اگر پس از تکمیل آیین آن را حذف کنید، نباید در راهاندازیهای دوباره بعدی بازسازی شود.
برای غیرفعال کردن کامل ساخت فایل راهاندازی اولیه (برای فضاهای کاری از پیش آمادهشده)، تنظیم کنید:
{ agents: { defaults: { skipBootstrap: true } } }
ابزارهای داخلی
ابزارهای هستهای (خواندن/اجرا/ویرایش/نوشتن و ابزارهای سیستمی مرتبط) همیشه در دسترساند،
مشروط به سیاست ابزار. apply_patch اختیاری است و با
tools.exec.applyPatch کنترل میشود. TOOLS.md تعیین نمیکند کدام ابزارها وجود دارند؛
راهنمایی است برای اینکه شما میخواهید چگونه از آنها استفاده شود.
Skills
OpenClaw مهارتها را از این مکانها بارگذاری میکند (با بالاترین اولویت در ابتدا):
- فضای کاری:
<workspace>/skills - Skills عامل پروژه:
<workspace>/.agents/skills - Skills عامل شخصی:
~/.agents/skills - مدیریتشده/محلی:
~/.openclaw/skills - بستهشده همراه نصب
- پوشههای مهارت اضافی:
skills.load.extraDirs
Skills میتواند با پیکربندی/متغیر محیطی کنترل شود (بخش skills را در پیکربندی Gateway ببینید).
مرزهای زماناجرا
زماناجرای عامل تعبیهشده بر پایه هسته عامل Pi ساخته شده است (مدلها، ابزارها، و خط لوله پرامپت). مدیریت نشست، کشف، اتصال ابزارها، و تحویل کانالی لایههایی متعلق به OpenClaw روی آن هسته هستند.
نشستها
رونوشتهای نشست بهصورت JSONL در این مسیر ذخیره میشوند:
~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
شناسه نشست پایدار است و OpenClaw آن را انتخاب میکند. پوشههای نشست قدیمی از ابزارهای دیگر خوانده نمیشوند.
هدایت هنگام استریم
وقتی حالت صف steer باشد، پیامهای ورودی به اجرای فعلی تزریق میشوند.
هدایت صفشده پس از پایان نوبت فعلی دستیار در اجرای فراخوانیهای ابزارش،
پیش از فراخوانی بعدی LLM تحویل داده میشود. Pi همه پیامهای هدایت در انتظار را
برای steer با هم تخلیه میکند؛ queue قدیمی در هر مرز مدل یک پیام را تخلیه میکند.
هدایت دیگر فراخوانیهای ابزار باقیمانده از پیام فعلی دستیار را رد نمیکند.
وقتی حالت صف followup یا collect باشد، پیامهای ورودی تا پایان
نوبت فعلی نگه داشته میشوند، سپس یک نوبت عامل جدید با محمولههای صفشده آغاز میشود. برای رفتار حالت
و مرز، صف و صف هدایت را ببینید.
استریم بلوکی، بلوکهای تکمیلشده دستیار را بهمحض پایانشان میفرستد؛ این قابلیت
بهطور پیشفرض خاموش است (agents.defaults.blockStreamingDefault: "off").
مرز را از طریق agents.defaults.blockStreamingBreak تنظیم کنید (text_end در برابر message_end؛ پیشفرض text_end است).
قطعهبندی نرم بلوک را با agents.defaults.blockStreamingChunk کنترل کنید (پیشفرض
800-1200 نویسه است؛ ابتدا شکست پاراگراف، سپس خطوط جدید، و در آخر جملهها را ترجیح میدهد).
قطعههای استریمشده را با agents.defaults.blockStreamingCoalesce ادغام کنید تا
هرزپیام تکخطی کاهش یابد (ادغام مبتنی بر بیکاری پیش از ارسال). کانالهای غیر Telegram برای فعال کردن پاسخهای بلوکی به
*.blockStreaming: true صریح نیاز دارند.
خلاصههای پرجزئیات ابزار هنگام شروع ابزار منتشر میشوند (بدون debounce)؛ Control UI
در صورت دسترس بودن، خروجی ابزار را از طریق رویدادهای عامل استریم میکند.
جزئیات بیشتر: استریم + قطعهبندی.
ارجاعهای مدل
ارجاعهای مدل در پیکربندی (برای مثال agents.defaults.model و agents.defaults.models) با جدا کردن بر اساس اولین / پردازش میشوند.
- هنگام پیکربندی مدلها از
provider/modelاستفاده کنید. - اگر خود شناسه مدل شامل
/است (سبک OpenRouter)، پیشوند ارائهدهنده را وارد کنید (مثال:openrouter/moonshotai/kimi-k2). - اگر ارائهدهنده را حذف کنید، OpenClaw ابتدا یک نام مستعار را امتحان میکند، سپس یک تطابق یکتای ارائهدهنده پیکربندیشده برای همان شناسه دقیق مدل، و فقط پس از آن به ارائهدهنده پیشفرض پیکربندیشده برمیگردد. اگر آن ارائهدهنده دیگر مدل پیشفرض پیکربندیشده را ارائه نکند، OpenClaw بهجای نشان دادن یک پیشفرض کهنه مربوط به ارائهدهنده حذفشده، به اولین ارائهدهنده/مدل پیکربندیشده برمیگردد.
پیکربندی (حداقلی)
در حداقل حالت، تنظیم کنید:
agents.defaults.workspacechannels.whatsapp.allowFrom(اکیداً توصیه میشود)
بعدی: گفتوگوهای گروهی 🦞